From e8bd4306302d388dbeb69ae4c73fa7aca148259a Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 7 Jul 2021 08:09:59 -0400 Subject: [PATCH 01/28] Restructured kick methods and refactored getacch to get_accel method. Created basic helio setup method --- src/drift/drift.f90 | 8 ++--- src/gr/gr.f90 | 8 ++--- src/helio/helio_getacch.f90 | 4 +-- src/helio/helio_kick.f90 | 53 +++++++++++++++++++++++++++++ src/helio/helio_setup.f90 | 14 ++++++++ src/helio/helio_step.f90 | 16 ++++----- src/kick/kick.f90 | 28 ++------------- src/modules/helio_classes.f90 | 57 +++++++++++++++++++++---------- src/modules/rmvs_classes.f90 | 8 ++--- src/modules/swiftest_classes.f90 | 23 +++++-------- src/modules/whm_classes.f90 | 17 ++++------ src/rmvs/rmvs_getacch.f90 | 2 +- src/rmvs/rmvs_setup.f90 | 58 +++++++++++++++++--------------- src/whm/whm_getacch.f90 | 4 +-- src/whm/whm_setup.f90 | 2 +- src/whm/whm_step.f90 | 16 ++++----- 16 files changed, 188 insertions(+), 130 deletions(-) create mode 100644 src/helio/helio_kick.f90 diff --git a/src/drift/drift.f90 b/src/drift/drift.f90 index 31afa8c08..8bba1a273 100644 --- a/src/drift/drift.f90 +++ b/src/drift/drift.f90 @@ -18,10 +18,10 @@ module pure elemental subroutine drift_one(mu, px, py, pz, vx, vy, vz, dt, iflag !! Adapted from Hal Levison and Martin Duncan's Swift routine drift_one.f implicit none ! Arguments - real(DP), intent(in) :: mu !! G * (Mcb + m), G = gravitational constant, Mcb = mass of central body, m = mass of body to drift - real(DP), intent(inout) :: px, py, pz, vx, vy, vz !! Position and velocity of body to drift - real(DP), intent(in) :: dt !! Step size - integer(I4B), intent(out) :: iflag !! iflag : error status flag for Danby drift (0 = OK, nonzero = ERROR) + real(DP), intent(in) :: mu !! G * (Mcb + m), G = gravitational constant, Mcb = mass of central body, m = mass of body to drift + real(DP), intent(inout) :: px, py, pz, vx, vy, vz !! Position and velocity of body to drift + real(DP), intent(in) :: dt !! Step size + integer(I4B), intent(out) :: iflag !! iflag : error status flag for Danby drift (0 = OK, nonzero = ERROR) ! Internals integer(I4B) :: i real(DP) :: dttmp diff --git a/src/gr/gr.f90 b/src/gr/gr.f90 index 6afc9f5ed..a778e3db2 100644 --- a/src/gr/gr.f90 +++ b/src/gr/gr.f90 @@ -11,11 +11,11 @@ subroutine gr_getaccb_ns_body(self, cb, param, agr, agr0) !! Adapted from David A. Minton's Swifter routine routine gr_getaccb_ns.f90 implicit none ! Arguments - class(swiftest_body), intent(inout) :: self - class(swiftest_cb), intent(inout) :: cb + class(swiftest_body), intent(inout) :: self + class(swiftest_cb), intent(inout) :: cb class(swiftest_parameters), intent(in) :: param - real(DP), dimension(:, :), intent(inout) :: agr - real(DP), dimension(NDIM), intent(out) :: agr0 + real(DP), dimension(:, :), intent(inout) :: agr + real(DP), dimension(NDIM), intent(out) :: agr0 ! Internals real(DP), dimension(NDIM) :: xh, vh real(DP) :: rmag, rdotv, vmag2 diff --git a/src/helio/helio_getacch.f90 b/src/helio/helio_getacch.f90 index af6ab9e4d..dd63ec392 100644 --- a/src/helio/helio_getacch.f90 +++ b/src/helio/helio_getacch.f90 @@ -27,7 +27,7 @@ module subroutine helio_getacch_pl(self, system, param, t) pl%ah(:,:) = pl%ahi(:,:) if (param%loblatecb) call pl%obl_acc(cb) if (param%lextra_force) call pl%user_getacch(system, param, t) - if (param%lgr) call pl%gr_getacch(param) + !if (param%lgr) call pl%gr_get_accel(param) end associate return @@ -61,7 +61,7 @@ module subroutine helio_getacch_tp(self, system, param, t, xhp) tp%ah(:,:) = tp%ahi(:,:) if (param%loblatecb) call tp%obl_acc(cb) if (param%lextra_force) call tp%user_getacch(system, param, t) - if (param%lgr) call tp%gr_getacch(param) + !if (param%lgr) call tp%gr_get_accel(param) end select end associate return diff --git a/src/helio/helio_kick.f90 b/src/helio/helio_kick.f90 new file mode 100644 index 000000000..9d5cea3a6 --- /dev/null +++ b/src/helio/helio_kick.f90 @@ -0,0 +1,53 @@ +submodule(helio_classes) s_helio_kick + use swiftest +contains + module subroutine helio_kickvb_pl(self, dt) + !! author: David A. Minton + !! + !! Kick barycentric velocities of bodies + !! + !! Adapted from Martin Duncan and Hal Levison's Swift routine kickvh.f + !! Adapted from David E. Kaufmann's Swifter routine helio_kickvb.f90 + implicit none + ! Arguments + class(helio_pl), intent(inout) :: self !! Swiftest generic body object + real(DP), intent(in) :: dt !! Stepsize + ! Internals + integer(I4B) :: i + + associate(pl => self, npl => self%nbody) + if (npl ==0) return + do concurrent(i = 1:npl, pl%status(i) == ACTIVE) + pl%vb(:, i) = pl%vb(:, i) + pl%ah(:, i) * dt + end do + end associate + + return + + end subroutine helio_kickvb_pl + + module subroutine helio_kickvb_tp(self, dt) + !! author: David A. Minton + !! + !! Kick barycentric velocities of bodies + !! + !! Adapted from Martin Duncan and Hal Levison's Swift routine kickvh_tp.f + !! Adapted from David E. Kaufmann's Swifter routine helio_kickvb_tp.f90 + implicit none + ! Arguments + class(helio_tp), intent(inout) :: self !! Swiftest generic body object + real(DP), intent(in) :: dt !! Stepsize + ! Internals + integer(I4B) :: i + + associate(tp => self, ntp => self%nbody) + if (ntp ==0) return + do concurrent(i = 1:ntp, tp%status(i) == ACTIVE) + tp%vb(:, i) = tp%vb(:, i) + tp%ah(:, i) * dt + end do + end associate + + return + + end subroutine helio_kickvb_tp +end submodule s_helio_kick \ No newline at end of file diff --git a/src/helio/helio_setup.f90 b/src/helio/helio_setup.f90 index b31b43b26..6a1f99f2a 100644 --- a/src/helio/helio_setup.f90 +++ b/src/helio/helio_setup.f90 @@ -1,6 +1,20 @@ submodule(helio_classes) s_helio_setup use swiftest contains + module subroutine helio_setup_system(self, param) + !! author: David A. Minton + !! + !! Initialize a Helio nbody system from files + implicit none + ! Arguments + class(helio_nbody_system), intent(inout) :: self !! Helio system object + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters + + call io_read_initialize_system(self, param) + ! Make sure that the discard list gets allocated initially + call self%tp_discards%setup(self%tp%nbody) + end subroutine helio_setup_system + module procedure helio_setup_pl !! author: David A. Minton & Carlisle A. Wishard !! diff --git a/src/helio/helio_step.f90 b/src/helio/helio_step.f90 index 53052fc9e..be1b2b71c 100644 --- a/src/helio/helio_step.f90 +++ b/src/helio/helio_step.f90 @@ -64,12 +64,12 @@ module subroutine helio_step_pl(self, system, param, t, dt) lfirst = .false. end if call pl%lindrift(cb, dth, ptbeg) - call pl%getacch(system, param, t) - call pl%kickvb(dth) + call pl%get_accel(system, param, t) + call pl%kick(dth) call pl%drift(system, param, dt) - call pl%getacch(system, param, t + dt) - call pl%kickvb(dth) + call pl%get_accel(system, param, t + dt) + call pl%kick(dth) call pl%lindrift(cb, dth, ptend) call pl%vb2vh(cb) end associate @@ -106,11 +106,11 @@ module subroutine helio_step_tp(self, system, param, t, dt) lfirst = .false. end if call tp%lindrift(dth, tp%ptbeg) - call tp%getacch(system, param, t, xbeg) - call tp%kickvb(dth) + call tp%get_accel(system, param, t, xbeg) + call tp%kick(dth) call tp%drift(system, param, dt) - call tp%getacch(system, param, t + dt, xend) - call tp%kickvb(dth) + call tp%get_accel(system, param, t + dt, xend) + call tp%kick(dth) call tp%lindrift(dth, tp%ptend) call tp%vb2vh(vbcb = -tp%ptend) end associate diff --git a/src/kick/kick.f90 b/src/kick/kick.f90 index 97a2b2bab..a54677dcd 100644 --- a/src/kick/kick.f90 +++ b/src/kick/kick.f90 @@ -1,7 +1,7 @@ submodule(swiftest_classes) s_kick use swiftest contains - module subroutine kick_vh_body(self, dt) + module subroutine kickvh_body(self, dt) !! author: David A. Minton !! !! Kick heliocentric velocities of bodies @@ -23,30 +23,6 @@ module subroutine kick_vh_body(self, dt) end associate return - end subroutine kick_vh_body + end subroutine kickvh_body - module subroutine kick_vb_body(self, dt) - !! author: David A. Minton - !! - !! Kick barycentric velocities of bodies - !! - !! Adapted from Martin Duncan and Hal Levison's Swift routine kickvh.f and kickvh_tp.f - !! Adapted from David E. Kaufmann's Swifter routine helio_kickvb.f90 and helio_kickvb_tp.f90 - implicit none - ! Arguments - class(swiftest_body), intent(inout) :: self !! Swiftest generic body object - real(DP), intent(in) :: dt !! Stepsize - ! Internals - integer(I4B) :: i - - associate(n => self%nbody, vb => self%vb, ah => self%ah, status => self%status) - if (n ==0) return - do concurrent(i = 1:n, status(i) == ACTIVE) - vb(:, i) = vb(:, i) + ah(:, i) * dt - end do - end associate - - return - - end subroutine kick_vb_body end submodule s_kick diff --git a/src/modules/helio_classes.f90 b/src/modules/helio_classes.f90 index ad10018a2..65320346c 100644 --- a/src/modules/helio_classes.f90 +++ b/src/modules/helio_classes.f90 @@ -4,16 +4,18 @@ module helio_classes !! Definition of classes and methods specific to the Democratic Heliocentric Method !! Adapted from David E. Kaufmann's Swifter routine: helio.f90 use swiftest_globals - use rmvs_classes, only : rmvs_cb, rmvs_pl, rmvs_tp, rmvs_nbody_system + use swiftest_classes, only : swiftest_cb, swiftest_pl, swiftest_tp + use whm_classes, only : whm_nbody_system implicit none !******************************************************************************************************************************** ! helio_nbody_system class definitions and method interfaces !******************************************************************************************************************************** - type, public, extends(rmvs_nbody_system) :: helio_nbody_system + type, public, extends(whm_nbody_system) :: helio_nbody_system contains private + procedure, public :: initialize => helio_setup_system !! Performs Helio-specific initilization steps, procedure, public :: step => helio_step_system end type helio_nbody_system @@ -21,7 +23,7 @@ module helio_classes ! helio_cb class definitions and method interfaces !******************************************************************************************************************************* !> Helio central body particle class - type, public, extends(rmvs_cb) :: helio_cb + type, public, extends(swiftest_cb) :: helio_cb contains end type helio_cb @@ -30,14 +32,15 @@ module helio_classes !******************************************************************************************************************************* !! Helio massive body particle class - type, public, extends(rmvs_pl) :: helio_pl + type, public, extends(swiftest_pl) :: helio_pl real(DP), dimension(:,:), allocatable :: ahi !! heliocentric acceleration due to interactions contains procedure, public :: vh2vb => helio_coord_vh2vb_pl !! Convert massive bodies from heliocentric to barycentric coordinates (velocity only) procedure, public :: vb2vh => helio_coord_vb2vh_pl !! Convert massive bodies from barycentric to heliocentric coordinates (velocity only) procedure, public :: drift => helio_drift_pl !! Method for Danby drift in Democratic Heliocentric coordinates procedure, public :: lindrift => helio_drift_linear_pl !! Method for linear drift of massive bodies due to barycentric momentum of Sun - procedure, public :: getacch => helio_getacch_pl !! Compute heliocentric accelerations of massive bodies + procedure, public :: get_accel => helio_getacch_pl !! Compute heliocentric accelerations of massive bodies + procedure, public :: kick => helio_kickvb_pl !! Kicks the barycentric velocities procedure, public :: setup => helio_setup_pl !! Constructor method - Allocates space for number of particles procedure, public :: step => helio_step_pl !! Steps the body forward one stepsize end type helio_pl @@ -47,18 +50,19 @@ module helio_classes !******************************************************************************************************************************* !! Helio test particle class - type, public, extends(rmvs_tp) :: helio_tp + type, public, extends(swiftest_tp) :: helio_tp real(DP), dimension(:,:), allocatable :: ahi !! heliocentric acceleration due to interactions real(DP), dimension(NDIM) :: ptbeg !! negative barycentric velocity of the Sun at beginning of time step real(DP), dimension(NDIM) :: ptend !! negative barycentric velocity of the Sun at beginning of time step contains - procedure, public :: vh2vb => helio_coord_vh2vb_tp !! Convert test particles from heliocentric to barycentric coordinates (velocity only) - procedure, public :: vb2vh => helio_coord_vb2vh_tp !! Convert test particles from barycentric to heliocentric coordinates (velocity only) + procedure, public :: vh2vb => helio_coord_vh2vb_tp !! Convert test particles from heliocentric to barycentric coordinates (velocity only) + procedure, public :: vb2vh => helio_coord_vb2vh_tp !! Convert test particles from barycentric to heliocentric coordinates (velocity only) procedure, public :: drift => helio_drift_tp !! Method for Danby drift in Democratic Heliocentric coordinates procedure, public :: lindrift => helio_drift_linear_tp !! Method for linear drift of massive bodies due to barycentric momentum of Sun - procedure, public :: getacch => helio_getacch_tp !! Compute heliocentric accelerations of massive bodies + procedure, public :: get_accel => helio_getacch_tp !! Compute heliocentric accelerations of massive bodies + procedure, public :: kick => helio_kickvb_tp !! Kicks the barycentric velocities procedure, public :: setup => helio_setup_tp !! Constructor method - Allocates space for number of particles - procedure, public :: step => helio_step_tp !! Steps the body forward one stepsize + procedure, public :: step => helio_step_tp !! Steps the body forward one stepsize end type helio_tp interface @@ -109,15 +113,15 @@ end subroutine helio_drift_tp module subroutine helio_drift_linear_pl(self, cb, dt, pt) use swiftest_classes, only : swiftest_cb implicit none - class(helio_pl), intent(inout) :: self !! Helio test particle data structure - class(swiftest_cb), intent(in) :: cb !! Helio central body data structure + class(helio_pl), intent(inout) :: self !! Helio test particle object + class(swiftest_cb), intent(in) :: cb !! Helio central body object real(DP), intent(in) :: dt !! Stepsize real(DP), dimension(:), intent(out) :: pt !! negative barycentric velocity of the central body end subroutine helio_drift_linear_pl module subroutine helio_drift_linear_tp(self, dt, pt) implicit none - class(helio_tp), intent(inout) :: self !! Helio test particle data structure + class(helio_tp), intent(inout) :: self !! Helio test particle object real(DP), intent(in) :: dt !! Stepsize real(DP), dimension(:), intent(in) :: pt !! negative barycentric velocity of the Sun end subroutine helio_drift_linear_tp @@ -125,7 +129,7 @@ end subroutine helio_drift_linear_tp module subroutine helio_getacch_pl(self, system, param, t) use swiftest_classes, only : swiftest_parameters, swiftest_nbody_system implicit none - class(helio_pl), intent(inout) :: self !! Helio massive body particle data structure + class(helio_pl), intent(inout) :: self !! Helio massive body object class(swiftest_nbody_system), intent(inout) :: system !! WHM nbody system object class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters of real(DP), intent(in) :: t !! Current simulation time @@ -134,19 +138,38 @@ end subroutine helio_getacch_pl module subroutine helio_getacch_tp(self, system, param, t, xhp) use swiftest_classes, only : swiftest_parameters, swiftest_nbody_system implicit none - class(helio_tp), intent(inout) :: self !! Helio test particle data structure + class(helio_tp), intent(inout) :: self !! Helio test particle object class(swiftest_nbody_system), intent(inout) :: system !! WHM nbody system object class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current time real(DP), dimension(:,:), intent(in) :: xhp !! Heliocentric positions of planets end subroutine helio_getacch_tp + module subroutine helio_kickvb_pl(self, dt) + implicit none + class(helio_pl), intent(inout) :: self !! Helio massive body object + real(DP), intent(in) :: dt !! Stepsize + end subroutine helio_kickvb_pl + + module subroutine helio_kickvb_tp(self, dt) + implicit none + class(helio_tp), intent(inout) :: self !! Helio test particle object + real(DP), intent(in) :: dt !! Stepsize + end subroutine helio_kickvb_tp + module subroutine helio_setup_pl(self, n) implicit none class(helio_pl), intent(inout) :: self !! Helio massive body object integer, intent(in) :: n !! Number of test particles to allocate end subroutine helio_setup_pl + module subroutine helio_setup_system(self, param) + use swiftest_classes, only : swiftest_parameters + implicit none + class(helio_nbody_system), intent(inout) :: self !! Helio system object + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters + end subroutine helio_setup_system + module subroutine helio_setup_tp(self,n) implicit none class(helio_tp), intent(inout) :: self !! Helio test particle object @@ -165,7 +188,7 @@ end subroutine helio_step_system module subroutine helio_step_pl(self, system, param, t, dt) use swiftest_classes, only : swiftest_nbody_system, swiftest_parameters implicit none - class(helio_pl), intent(inout) :: self !! Helio massive body particle data structure + class(helio_pl), 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 @@ -175,7 +198,7 @@ end subroutine helio_step_pl module subroutine helio_step_tp(self, system, param, t, dt) use swiftest_classes, only : swiftest_cb, swiftest_parameters implicit none - class(helio_tp), intent(inout) :: self !! Helio test particle data structure + class(helio_tp), intent(inout) :: self !! Helio test particle object class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current simulation time diff --git a/src/modules/rmvs_classes.f90 b/src/modules/rmvs_classes.f90 index e595af5fe..136bd3f37 100644 --- a/src/modules/rmvs_classes.f90 +++ b/src/modules/rmvs_classes.f90 @@ -27,9 +27,9 @@ module rmvs_classes contains private !> Replace the abstract procedures with concrete ones - procedure, public :: initialize => rmvs_setup_system !! Performs RMVS-specific initilization steps, like calculating the Jacobi masses - procedure, public :: step => rmvs_step_system - procedure, public :: set_beg_end => rmvs_setup_set_beg_end !! Sets the beginning and ending values of planet positions. Also adds the end velocity for RMVS + procedure, public :: initialize => rmvs_setup_system !! Performs RMVS-specific initilization steps, including generating the close encounter planetocentric structures + procedure, public :: step => rmvs_step_system !! Advance the RMVS nbody system forward in time by one step + procedure, public :: set_beg_end => rmvs_setup_set_beg_end !! Sets the beginning and ending values of planet positions. Also adds the end velocity for RMVS. end type rmvs_nbody_system type, private :: rmvs_interp @@ -71,7 +71,7 @@ module rmvs_classes procedure, public :: discard => rmvs_discard_tp !! Check to see if test particles should be discarded based on pericenter passage distances with respect to planets encountered procedure, public :: encounter_check => rmvs_encounter_check_tp !! Checks if any test particles are undergoing a close encounter with a massive body procedure, public :: fill => rmvs_fill_tp !! "Fills" bodies from one object into another depending on the results of a mask (uses the MERGE intrinsic) - procedure, public :: getacch => rmvs_getacch_tp !! Calculates either the standard or modified version of the acceleration depending if the + procedure, public :: get_accel => rmvs_getacch_tp !! Calculates either the standard or modified version of the acceleration depending if the !! if the test particle is undergoing a close encounter or not procedure, public :: setup => rmvs_setup_tp !! Constructor method - Allocates space for number of particles procedure, public :: spill => rmvs_spill_tp !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index ad0a17598..be9c83038 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -9,10 +9,10 @@ module swiftest_classes public :: discard_pl, discard_system, discard_tp public :: drift_one public :: eucl_dist_index_plpl, eucl_dist_index_pltp, eucl_irij3_plpl - public :: kick_vb_body, kick_vh_body public :: io_dump_param, io_dump_swiftest, io_dump_system, io_get_args, io_param_reader, io_param_writer, io_read_body_in, & io_read_cb_in, io_read_param_in, io_read_frame_body, io_read_frame_cb, io_read_frame_system, io_read_initialize_system, & io_write_discard, io_write_encounter, io_write_frame_body, io_write_frame_cb, io_write_frame_system + public :: kickvh_body public :: obl_acc_body public :: orbel_el2xv_vec, orbel_xv2el_vec, orbel_scget, orbel_xv2aeq, orbel_xv2aqt public :: setup_body, setup_construct_system, setup_pl, setup_set_ir3h, setup_set_msys, setup_set_mu_pl, setup_set_mu_tp, & @@ -164,8 +164,7 @@ module swiftest_classes procedure, public :: initialize => io_read_body_in !! Read in body initial conditions from a file procedure, public :: read_frame => io_read_frame_body !! I/O routine for writing out a single frame of time-series data for the central body procedure, public :: write_frame => io_write_frame_body !! I/O routine for writing out a single frame of time-series data for the central body - procedure, public :: kickvb => kick_vb_body !! Kicks the barycentric velocities - procedure, public :: kickvh => kick_vh_body !! Kicks the heliocentric velocities + procedure, public :: kick => kickvh_body !! Kicks the heliocentric velocities procedure, public :: obl_acc => obl_acc_body !! Compute the barycentric accelerations of bodies due to the oblateness of the central body procedure, public :: el2xv => orbel_el2xv_vec !! Convert orbital elements to position and velocity vectors procedure, public :: xv2el => orbel_xv2el_vec !! Convert position and velocity vectors to orbital elements @@ -383,18 +382,6 @@ module subroutine eucl_irij3_plpl(self) class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object end subroutine eucl_irij3_plpl - module subroutine kick_vb_body(self, dt) - implicit none - class(swiftest_body), intent(inout) :: self !! Swiftest generic body object - real(DP), intent(in) :: dt !! Stepsize - end subroutine kick_vb_body - - module subroutine kick_vh_body(self, dt) - implicit none - class(swiftest_body), intent(inout) :: self !! Swiftest generic body object - real(DP), intent(in) :: dt !! Stepsize - end subroutine kick_vh_body - module subroutine io_dump_param(self, param_file_name) implicit none class(swiftest_parameters),intent(in) :: self !! Output collection of parameters @@ -532,6 +519,12 @@ 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 kickvh_body(self, dt) + implicit none + class(swiftest_body), intent(inout) :: self !! Swiftest generic body object + real(DP), intent(in) :: dt !! Stepsize + end subroutine kickvh_body + module subroutine obl_acc_body(self, cb) implicit none class(swiftest_body), intent(inout) :: self !! Swiftest generic body object diff --git a/src/modules/whm_classes.f90 b/src/modules/whm_classes.f90 index 1707ef875..52f87249b 100644 --- a/src/modules/whm_classes.f90 +++ b/src/modules/whm_classes.f90 @@ -5,11 +5,9 @@ module whm_classes !! Partially adapted from David E. Kaufmann's Swifter module: module_whm.f90 use swiftest_globals use swiftest_classes, only : swiftest_cb, swiftest_pl, swiftest_tp, swiftest_nbody_system - implicit none public - !******************************************************************************************************************************** ! whm_cb class definitions and method interfaces !******************************************************************************************************************************* @@ -37,9 +35,9 @@ module whm_classes procedure, public :: j2h => whm_coord_j2h_pl !! Convert position and velcoity vectors from Jacobi to helliocentric coordinates procedure, public :: vh2vj => whm_coord_vh2vj_pl !! Convert velocity vectors from heliocentric to Jacobi coordinates procedure, public :: drift => whm_drift_pl !! Loop through massive bodies and call Danby drift routine - procedure, public :: getacch => whm_getacch_pl !! Compute heliocentric accelerations of massive bodies procedure, public :: fill => whm_fill_pl !! "Fills" bodies from one object into another depending on the results of a mask (uses the MERGE intrinsic) - procedure, public :: gr_getacch => whm_gr_getacch_pl !! Acceleration term arising from the post-Newtonian correction + procedure, public :: get_accel => whm_getacch_pl !! Compute heliocentric accelerations of massive bodies + procedure, public :: gr_get_accel => whm_gr_getacch_pl !! Acceleration term arising from the post-Newtonian correction procedure, public :: gr_p4 => whm_gr_p4_pl !! Position kick due to p**4 term in the post-Newtonian correction procedure, public :: gr_vh2pv => whm_gr_vh2pv_pl !! Converts from heliocentric velocity to psudeovelocity for GR calculations procedure, public :: gr_pv2vh => whm_gr_pv2vh_pl !! Converts from psudeovelocity to heliocentric velocity for GR calculations @@ -62,8 +60,8 @@ module whm_classes contains private procedure, public :: drift => whm_drift_tp !! Loop through test particles and call Danby drift routine - procedure, public :: getacch => whm_getacch_tp !! Compute heliocentric accelerations of test particles - procedure, public :: gr_getacch => whm_gr_getacch_tp !! Acceleration term arising from the post-Newtonian correction + procedure, public :: get_accel => whm_getacch_tp !! Compute heliocentric accelerations of test particles + procedure, public :: gr_get_accel => whm_gr_getacch_tp !! Acceleration term arising from the post-Newtonian correction procedure, public :: gr_p4 => whm_gr_p4_tp !! Position kick due to p**4 term in the post-Newtonian correction procedure, public :: gr_vh2pv => whm_gr_vh2pv_tp !! Converts from heliocentric velocity to psudeovelocity for GR calculations procedure, public :: gr_pv2vh => whm_gr_pv2vh_tp !! Converts from psudeovelocity to heliocentric velocity for GR calculations @@ -81,9 +79,9 @@ module whm_classes contains private !> Replace the abstract procedures with concrete ones - procedure, public :: initialize => whm_setup_system !! Performs WHM-specific initilization steps, like calculating the Jacobi masses - procedure, public :: step => whm_step_system - procedure, public :: set_beg_end => whm_setup_set_beg_end !! Sets the beginning and ending positions of planets. + procedure, public :: initialize => whm_setup_system !! Performs WHM-specific initilization steps, like calculating the Jacobi masses + procedure, public :: step => whm_step_system !! Advance the WHM nbody system forward in time by one step + procedure, public :: set_beg_end => whm_setup_set_beg_end !! Sets the beginning and ending positions of planets. end type whm_nbody_system interface @@ -213,7 +211,6 @@ module pure subroutine whm_gr_vh2pv_tp(self, param) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters of on parameters end subroutine whm_gr_vh2pv_tp - !> Reads WHM massive body object in from file module subroutine whm_setup_pl(self,n) implicit none diff --git a/src/rmvs/rmvs_getacch.f90 b/src/rmvs/rmvs_getacch.f90 index dcbf5aff9..58cccbf3e 100644 --- a/src/rmvs/rmvs_getacch.f90 +++ b/src/rmvs/rmvs_getacch.f90 @@ -64,7 +64,7 @@ module subroutine rmvs_getacch_tp(self, system, param, t, xhp) end if if (param%lextra_force) call tp%user_getacch(system, param, t) - if (param%lgr) call tp%gr_getacch(param) + if (param%lgr) call tp%gr_get_accel(param) tp%xh(:,:) = xh_original(:,:) end associate diff --git a/src/rmvs/rmvs_setup.f90 b/src/rmvs/rmvs_setup.f90 index 9d5916f56..c5e126a74 100644 --- a/src/rmvs/rmvs_setup.f90 +++ b/src/rmvs/rmvs_setup.f90 @@ -46,37 +46,10 @@ module subroutine rmvs_setup_pl(self,n) return end subroutine rmvs_setup_pl - module subroutine rmvs_setup_tp(self,n) - !! author: David A. Minton - !! - !! Allocate WHM test particle structure - !! - !! Equivalent in functionality to David E. Kaufmann's Swifter routine whm_setup.f90 - implicit none - ! Arguments - class(rmvs_tp), intent(inout) :: self !! RMVS test particle object - integer, intent(in) :: n !! Number of test particles to allocate - - !> Call allocation method for parent class - call whm_setup_tp(self, n) - if (n <= 0) return - - allocate(self%lperi(n)) - allocate(self%plperP(n)) - allocate(self%plencP(n)) - if (self%lplanetocentric) then - allocate(self%xheliocentric(NDIM, n)) - end if - - self%lperi(:) = .false. - - return - end subroutine rmvs_setup_tp - module subroutine rmvs_setup_system(self, param) !! author: David A. Minton !! - !! Wrapper method to initialize a basic Swiftest nbody system from files. + !! nitialize an RMVS nbody system from files and sets up the planetocentric structures. !! !! We currently rearrange the pl order to keep it consistent with the way Swifter does it !! In Swifter, the central body occupies the first position in the pl list, and during @@ -144,6 +117,35 @@ module subroutine rmvs_setup_system(self, param) end select end subroutine rmvs_setup_system + + module subroutine rmvs_setup_tp(self,n) + !! author: David A. Minton + !! + !! Allocate WHM test particle structure + !! + !! Equivalent in functionality to David E. Kaufmann's Swifter routine whm_setup.f90 + implicit none + ! Arguments + class(rmvs_tp), intent(inout) :: self !! RMVS test particle object + integer, intent(in) :: n !! Number of test particles to allocate + + !> Call allocation method for parent class + call whm_setup_tp(self, n) + if (n <= 0) return + + allocate(self%lperi(n)) + allocate(self%plperP(n)) + allocate(self%plencP(n)) + if (self%lplanetocentric) then + allocate(self%xheliocentric(NDIM, n)) + end if + + self%lperi(:) = .false. + + return + end subroutine rmvs_setup_tp + + module subroutine rmvs_setup_set_beg_end(self, xbeg, xend, vbeg) !! author: David A. Minton diff --git a/src/whm/whm_getacch.f90 b/src/whm/whm_getacch.f90 index 67ecc7487..595c4546b 100644 --- a/src/whm/whm_getacch.f90 +++ b/src/whm/whm_getacch.f90 @@ -33,7 +33,7 @@ module subroutine whm_getacch_pl(self, system, param, t) if (param%loblatecb) call pl%obl_acc(cb) if (param%lextra_force) call pl%user_getacch(system, param, t) - if (param%lgr) call pl%gr_getacch(param) + if (param%lgr) call pl%gr_get_accel(param) end associate return @@ -67,7 +67,7 @@ module subroutine whm_getacch_tp(self, system, param, t, xhp) call whm_getacch_ah3_tp(system, xhp) if (param%loblatecb) call tp%obl_acc(cb) if (param%lextra_force) call tp%user_getacch(system, param, t) - if (param%lgr) call tp%gr_getacch(param) + if (param%lgr) call tp%gr_get_accel(param) end associate return end subroutine whm_getacch_tp diff --git a/src/whm/whm_setup.f90 b/src/whm/whm_setup.f90 index e0812d00d..80c0e81c9 100644 --- a/src/whm/whm_setup.f90 +++ b/src/whm/whm_setup.f90 @@ -75,7 +75,7 @@ end subroutine whm_setup_set_mu_eta_pl module subroutine whm_setup_system(self, param) !! author: David A. Minton !! - !! Wrapper method to initialize a basic Swiftest nbody system from files + !! Initialize a WHM nbody system from files !! implicit none ! Arguments diff --git a/src/whm/whm_step.f90 b/src/whm/whm_step.f90 index 8e87796ea..411e8b59c 100644 --- a/src/whm/whm_step.f90 +++ b/src/whm/whm_step.f90 @@ -50,18 +50,18 @@ module subroutine whm_step_pl(self, system, param, t, dt) dth = 0.5_DP * dt if (pl%lfirst) then call pl%h2j(cb) - call pl%getacch(system, param, t) + call pl%get_accel(system, param, t) pl%lfirst = .false. end if - call pl%kickvh(dth) + call pl%kick(dth) call pl%vh2vj(cb) !If GR enabled, calculate the p4 term before and after each drift if (param%lgr) call pl%gr_p4(param, dth) call pl%drift(system, param, dt) if (param%lgr) call pl%gr_p4(param, dth) call pl%j2h(cb) - call pl%getacch(system, param, t + dt) - call pl%kickvh(dth) + call pl%get_accel(system, param, t + dt) + call pl%kick(dth) end associate return end subroutine whm_step_pl @@ -88,16 +88,16 @@ module subroutine whm_step_tp(self, system, param, t, dt) associate(tp => self, cb => system%cb, pl => system%pl, xbeg => system%xbeg, xend => system%xend) dth = 0.5_DP * dt if (tp%lfirst) then - call tp%getacch(system, param, t, xbeg) + call tp%get_accel(system, param, t, xbeg) tp%lfirst = .false. end if - call tp%kickvh(dth) + call tp%kick(dth) !If GR enabled, calculate the p4 term before and after each drift if (param%lgr) call tp%gr_p4(param, dth) call tp%drift(system, param, dt) if (param%lgr) call tp%gr_p4(param, dth) - call tp%getacch(system, param, t + dt, xend) - call tp%kickvh(dth) + call tp%get_accel(system, param, t + dt, xend) + call tp%kick(dth) end associate end select return From f7b90d7e965c1184448c11163769be11ebc0ed6d Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 7 Jul 2021 08:31:15 -0400 Subject: [PATCH 02/28] Fixed bugs in helio and changed example for one similar to the WHM example --- .../1pl_1tp_encounter/.idea/.gitignore | 3 - .../1pl_1tp_encounter/cb.swiftest.in | Bin 64 -> 0 bytes .../1pl_1tp_encounter/check_init_cond.ipynb | 929 ------------------ .../1pl_1tp_encounter/init_cond.py | 228 ----- .../1pl_1tp_encounter/param.swifter.in | 26 - .../1pl_1tp_encounter/param.swiftest.in | 29 - .../1pl_1tp_encounter/pl.swifter.in | 8 - .../1pl_1tp_encounter/pl.swiftest.in | Bin 160 -> 0 bytes .../swiftest_vs_swifter.ipynb | 145 --- .../1pl_1tp_encounter/tp.swifter.in | 4 - .../1pl_1tp_encounter/tp.swiftest.in | Bin 128 -> 0 bytes .../9pl_18tp_encounters/.idea/.gitignore | 3 - .../9pl_18tp_encounters/cb.swiftest.in | 4 - .../9pl_18tp_encounters/init_cond.py | 184 ---- .../9pl_18tp_encounters/param.swifter.in | 26 - .../9pl_18tp_encounters/param.swiftest.in | 29 - .../9pl_18tp_encounters/pl.swifter.in | 40 - .../9pl_18tp_encounters/pl.swiftest.in | 37 - .../swiftest_rmvs_vs_swifter_rmvs.ipynb | 697 ------------- .../9pl_18tp_encounters/tp.in | 55 -- .../helio_swifter_comparison/Untitled.ipynb | 169 ++++ .../helio_swifter_comparison/cb.swiftest.in | Bin 0 -> 64 bytes .../helio_swifter_comparison/init_cond.py | 323 ++++++ .../mars_ejecta/.idea/.gitignore | 3 - .../mars_ejecta/cb.swiftest.in | 4 - .../mars_ejecta/config.swiftest.in | 33 - .../mars_ejecta/param.swifter.in | 30 - .../mars_ejecta/pl.swifter.in | 36 - .../mars_ejecta/pl.swiftest.in | 33 - .../mars_ejecta/profmaker.sh | 2 - .../mars_ejecta/profswifter.sh | 2 - .../mars_ejecta/start.in | 1 - .../swiftest_rmvs_vs_swifter_rmvs.ipynb | 241 ----- .../mars_ejecta/tp.in | 601 ----------- .../helio_swifter_comparison/param.swifter.in | 26 + .../param.swiftest.in | 29 + .../helio_swifter_comparison/pl.swifter.in | 40 + .../helio_swifter_comparison/pl.swiftest.in | Bin 0 -> 700 bytes .../swiftest_vs_swifter.ipynb | 363 +++++++ .../helio_swifter_comparison/tp.swifter.in | 13 + .../helio_swifter_comparison/tp.swiftest.in | Bin 0 -> 280 bytes src/helio/helio_drift.f90 | 9 +- src/main/swiftest_driver.f90 | 3 - 43 files changed, 966 insertions(+), 3442 deletions(-) delete mode 100644 examples/helio_swifter_comparison/1pl_1tp_encounter/.idea/.gitignore delete mode 100644 examples/helio_swifter_comparison/1pl_1tp_encounter/cb.swiftest.in delete mode 100644 examples/helio_swifter_comparison/1pl_1tp_encounter/check_init_cond.ipynb delete mode 100644 examples/helio_swifter_comparison/1pl_1tp_encounter/init_cond.py delete mode 100644 examples/helio_swifter_comparison/1pl_1tp_encounter/param.swifter.in delete mode 100644 examples/helio_swifter_comparison/1pl_1tp_encounter/param.swiftest.in delete mode 100644 examples/helio_swifter_comparison/1pl_1tp_encounter/pl.swifter.in delete mode 100644 examples/helio_swifter_comparison/1pl_1tp_encounter/pl.swiftest.in delete mode 100644 examples/helio_swifter_comparison/1pl_1tp_encounter/swiftest_vs_swifter.ipynb delete mode 100644 examples/helio_swifter_comparison/1pl_1tp_encounter/tp.swifter.in delete mode 100644 examples/helio_swifter_comparison/1pl_1tp_encounter/tp.swiftest.in delete mode 100644 examples/helio_swifter_comparison/9pl_18tp_encounters/.idea/.gitignore delete mode 100644 examples/helio_swifter_comparison/9pl_18tp_encounters/cb.swiftest.in delete mode 100644 examples/helio_swifter_comparison/9pl_18tp_encounters/init_cond.py delete mode 100644 examples/helio_swifter_comparison/9pl_18tp_encounters/param.swifter.in delete mode 100644 examples/helio_swifter_comparison/9pl_18tp_encounters/param.swiftest.in delete mode 100644 examples/helio_swifter_comparison/9pl_18tp_encounters/pl.swifter.in delete mode 100644 examples/helio_swifter_comparison/9pl_18tp_encounters/pl.swiftest.in delete mode 100644 examples/helio_swifter_comparison/9pl_18tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb delete mode 100644 examples/helio_swifter_comparison/9pl_18tp_encounters/tp.in create mode 100644 examples/helio_swifter_comparison/Untitled.ipynb create mode 100644 examples/helio_swifter_comparison/cb.swiftest.in create mode 100644 examples/helio_swifter_comparison/init_cond.py delete mode 100644 examples/helio_swifter_comparison/mars_ejecta/.idea/.gitignore delete mode 100644 examples/helio_swifter_comparison/mars_ejecta/cb.swiftest.in delete mode 100644 examples/helio_swifter_comparison/mars_ejecta/config.swiftest.in delete mode 100644 examples/helio_swifter_comparison/mars_ejecta/param.swifter.in delete mode 100644 examples/helio_swifter_comparison/mars_ejecta/pl.swifter.in delete mode 100644 examples/helio_swifter_comparison/mars_ejecta/pl.swiftest.in delete mode 100755 examples/helio_swifter_comparison/mars_ejecta/profmaker.sh delete mode 100755 examples/helio_swifter_comparison/mars_ejecta/profswifter.sh delete mode 100644 examples/helio_swifter_comparison/mars_ejecta/start.in delete mode 100644 examples/helio_swifter_comparison/mars_ejecta/swiftest_rmvs_vs_swifter_rmvs.ipynb delete mode 100644 examples/helio_swifter_comparison/mars_ejecta/tp.in create mode 100644 examples/helio_swifter_comparison/param.swifter.in create mode 100644 examples/helio_swifter_comparison/param.swiftest.in create mode 100644 examples/helio_swifter_comparison/pl.swifter.in create mode 100644 examples/helio_swifter_comparison/pl.swiftest.in create mode 100644 examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb create mode 100644 examples/helio_swifter_comparison/tp.swifter.in create mode 100644 examples/helio_swifter_comparison/tp.swiftest.in diff --git a/examples/helio_swifter_comparison/1pl_1tp_encounter/.idea/.gitignore b/examples/helio_swifter_comparison/1pl_1tp_encounter/.idea/.gitignore deleted file mode 100644 index 26d33521a..000000000 --- a/examples/helio_swifter_comparison/1pl_1tp_encounter/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/examples/helio_swifter_comparison/1pl_1tp_encounter/cb.swiftest.in b/examples/helio_swifter_comparison/1pl_1tp_encounter/cb.swiftest.in deleted file mode 100644 index 2386b53c8a2bcee968968e01db63bf30bc75c07a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64 zcmd;JU|=xH*zksXud@ROkPX6j{SWxW@f6#``25D)QG73^*uwa(zDpQecDd{U@d2$e B4EX>6 diff --git a/examples/helio_swifter_comparison/1pl_1tp_encounter/check_init_cond.ipynb b/examples/helio_swifter_comparison/1pl_1tp_encounter/check_init_cond.ipynb deleted file mode 100644 index b8794b9f0..000000000 --- a/examples/helio_swifter_comparison/1pl_1tp_encounter/check_init_cond.ipynb +++ /dev/null @@ -1,929 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import swiftestio as swio\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" - ] - } - ], - "source": [ - "inparfile = 'param.swifter.in'\n", - "paramgr = swio.read_swifter_param(inparfile)\n", - "swifterdat = swio.swifter2xr(paramgr)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[,\n", - " ]" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "swifterdat.plot.scatter(x='px', y='py', hue='id', hue_style=\"discrete\", marker='.')" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reading Swiftest file param.swiftest.in\n" - ] - } - ], - "source": [ - "param_file_name = 'param.swiftest.in'\n", - "config = swio.read_swiftest_config(param_file_name)\n", - "swiftestdat = swio.swiftest2xr(config)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[,\n", - " ,\n", - " ]" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "swiftestdat.plot.scatter(x='px', y='py', hue='id', hue_style=\"discrete\", marker='.')" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "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: 2, time: 41)\n",
-       "Coordinates:\n",
-       "  * id        (id) int64 2 100\n",
-       "    time (y)  (time) float64 0.0 0.0006845 0.001369 ... 0.02601 0.02669 0.02738\n",
-       "Dimensions without coordinates: time\n",
-       "Data variables:\n",
-       "    Mass      (time, id) float64 0.0 nan 0.0 nan 0.0 nan ... nan 0.0 nan 0.0 nan\n",
-       "    Radius    (time, id) float64 0.0 nan 0.0 nan 0.0 nan ... nan 0.0 nan 0.0 nan\n",
-       "    delta x   (time, id) float64 0.0 0.0 0.0 0.0 ... -4.108e-15 0.0 -4.441e-15\n",
-       "    delta y   (time, id) float64 0.0 0.0 0.0 0.0 ... -3.886e-16 0.0 -3.886e-16\n",
-       "    pz        (time, id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n",
-       "    vx        (time, id) float64 0.0 0.0 0.0 ... -2.984e-13 0.0 -3.062e-13\n",
-       "    vy        (time, id) float64 0.0 0.0 0.0 0.0 ... -3.553e-14 0.0 -3.73e-14\n",
-       "    vz        (time, id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0
" - ], - "text/plain": [ - "\n", - "Dimensions: (id: 2, time: 41)\n", - "Coordinates:\n", - " * id (id) int64 2 100\n", - " time (y) (time) float64 0.0 0.0006845 0.001369 ... 0.02601 0.02669 0.02738\n", - "Dimensions without coordinates: time\n", - "Data variables:\n", - " Mass (time, id) float64 0.0 nan 0.0 nan 0.0 nan ... nan 0.0 nan 0.0 nan\n", - " Radius (time, id) float64 0.0 nan 0.0 nan 0.0 nan ... nan 0.0 nan 0.0 nan\n", - " delta x (time, id) float64 0.0 0.0 0.0 0.0 ... -4.108e-15 0.0 -4.441e-15\n", - " delta y (time, id) float64 0.0 0.0 0.0 0.0 ... -3.886e-16 0.0 -3.886e-16\n", - " pz (time, id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n", - " vx (time, id) float64 0.0 0.0 0.0 ... -2.984e-13 0.0 -3.062e-13\n", - " vy (time, id) float64 0.0 0.0 0.0 0.0 ... -3.553e-14 0.0 -3.73e-14\n", - " vz (time, id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "swiftdiff = swiftestdat - swifterdat\n", - "swiftdiff = swiftdiff.rename_vars({'time' : 'time (y)','px' : 'delta x','py' : 'delta y'})\n", - "swiftdiff" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[,\n", - " ]" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "swiftdiff.plot.scatter(x='delta x', y='delta y', hue='id', hue_style=\"discrete\", marker='.')" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.savefig('rmvsdiff.png')" - ] - }, - { - "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/helio_swifter_comparison/1pl_1tp_encounter/init_cond.py b/examples/helio_swifter_comparison/1pl_1tp_encounter/init_cond.py deleted file mode 100644 index 5b5f5e76e..000000000 --- a/examples/helio_swifter_comparison/1pl_1tp_encounter/init_cond.py +++ /dev/null @@ -1,228 +0,0 @@ -""" -For testing RMVS, the code generates clones of test particles based on one that is fated to impact Mercury. -To use the script, modify the variables just after the "if __name__ == '__main__':" line -""" -import numpy as np -from astroquery.jplhorizons import Horizons -import astropy.constants as const -import swiftestio as swio -from scipy.io import FortranFile -import sys - -#Values from JPL Horizons -AU2M = np.longdouble(const.au.value) -GMSunSI = np.longdouble(const.GM_sun.value) -Rsun = np.longdouble(const.R_sun.value) -GC = np.longdouble(const.G.value) -JD = 86400 -year = np.longdouble(365.25 * JD) -c = np.longdouble(299792458.0) -MSun_over_Mpl = np.array([6023600.0, - 408523.71, - 328900.56, - 3098708., - 1047.3486, - 3497.898, - 22902.98, - 19412.24, - 1.35e8], dtype=np.longdouble) - -MU2KG = np.longdouble(GMSunSI / GC) #Conversion from mass unit to kg -DU2M = np.longdouble(AU2M) #Conversion from radius unit to centimeters -TU2S = np.longdouble(year) #Conversion from time unit to seconds -GU = np.longdouble(GC / (DU2M**3 / (MU2KG * TU2S**2))) -GMSun = np.longdouble(GMSunSI / (DU2M**3 / TU2S**2)) - -# Solar oblatenes values: From Mecheri et al. (2004), using Corbard (b) 2002 values (Table II) -J2 = np.longdouble(2.198e-7) * (Rsun / DU2M)**2 -J4 = np.longdouble(-4.805e-9) * (Rsun / DU2M)**4 - -#Planet Msun/M ratio -MSun_over_Mpl = { - 'mercury' : np.longdouble(6023600.0), - 'venus' : np.longdouble(408523.71), - 'earthmoon' : np.longdouble(328900.56), - 'mars' : np.longdouble(3098708.), - 'jupiter' : np.longdouble(1047.3486), - 'saturn' : np.longdouble(3497.898), - 'uranus' : np.longdouble(22902.98), - 'neptune' : np.longdouble(19412.24), - 'plutocharon' : np.longdouble(1.35e8) -} - -#Planet radii in meters -Rpl = { - 'mercury' : np.longdouble(2439.4e3), - 'venus' : np.longdouble(6051.8e3), - 'earthmoon' : np.longdouble(6371.0084e3), # Earth only for radius - 'mars' : np.longdouble(3389.50e3), - 'jupiter' : np.longdouble(69911e3), - 'saturn' : np.longdouble(58232.0e3), - 'uranus' : np.longdouble(25362.e3), - 'neptune' : np.longdouble(24622.e3), - 'plutocharon' : np.longdouble(1188.3e3) -} - -THIRDLONG = np.longdouble(1.0) / np.longdouble(3.0) - -swifter_input = "param.swifter.in" -swifter_pl = "pl.swifter.in" -swifter_tp = "tp.swifter.in" -swifter_bin = "bin.swifter.dat" -swifter_enc = "enc.swifter.dat" - -swiftest_input = "param.swiftest.in" -swiftest_pl = "pl.swiftest.in" -swiftest_tp = "tp.swiftest.in" -swiftest_cb = "cb.swiftest.in" -swiftest_bin = "bin.swiftest.dat" -swiftest_enc = "enc.swiftest.dat" - -# Simple initial conditions of a circular planet with one test particle in a close encounter state -# Simulation start, stop, and output cadence times -t_0 = 0 # simulation start time -deltaT = 0.25 * JD / TU2S # simulation step size -end_sim = year / TU2S #10 * JD / TU2S # simulation end time -t_print = deltaT #output interval to print results - -iout = int(np.ceil(t_print / deltaT)) -rmin = Rsun / DU2M -rmax = 1000.0 - -npl = 1 -plid = 2 -tpid = 100 - -radius = np.double(Rpl['earthmoon'] / DU2M) -mass = np.double(GMSun * MSun_over_Mpl['earthmoon']**-1) -apl = np.longdouble(1.0) -atp = np.longdouble(1.01) -vpl = np.longdouble(2 * np.pi) -vtp = np.longdouble(2 * np.pi / np.sqrt(atp)) - -p_pl = np.array([apl, 0.0, 0.0], dtype=np.double) -v_pl = np.array([0.0, vpl, 0.0], dtype=np.double) - -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 = apl * ((3 * MSun_over_Mpl['earthmoon'])**(-THIRDLONG)) - -#Make Swifter files -plfile = open(swifter_pl, 'w') -print(npl+1, f'! Planet input file generated using init_cond.py',file=plfile) -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(mass),Rhill, file=plfile) -print(radius, file=plfile) -print(*p_pl, file=plfile) -print(*v_pl, file=plfile) -plfile.close() - -tpfile = open(swifter_tp, 'w') -print(1,file=tpfile) -print(tpid, file=tpfile) -print(*p_tp, file=tpfile) -print(*v_tp, file=tpfile) -tpfile.close() - -sys.stdout = open(swifter_input, "w") -print(f'! Swifter input file generated using init_cond.py') -print(f'T0 {t_0} ') -print(f'TSTOP {end_sim}') -print(f'DT {deltaT}') -print(f'PL_IN {swifter_pl}') -print(f'TP_IN {swifter_tp}') -print(f'IN_TYPE ASCII') -print(f'ISTEP_OUT {iout:d}') -print(f'ISTEP_DUMP {iout:d}') -print(f'BIN_OUT {swifter_bin}') -print(f'OUT_TYPE REAL8') -print(f'OUT_FORM XV') -print(f'OUT_STAT NEW') -print(f'J2 {J2}') -print(f'J4 {J4}') -print(f'CHK_CLOSE yes') -print(f'CHK_RMIN {rmin}') -print(f'CHK_RMAX {rmax}') -print(f'CHK_EJECT {rmax}') -print(f'CHK_QMIN {rmin}') -print(f'CHK_QMIN_COORD HELIO') -print(f'CHK_QMIN_RANGE {rmin} {rmax}') -print(f'ENC_OUT {swifter_enc}') -print(f'EXTRA_FORCE no') -print(f'BIG_DISCARD no') -print(f'RHILL_PRESENT yes') -sys.stdout = sys.__stdout__ - -#Now make Swiftest files -cbfile = FortranFile(swiftest_cb, 'w') -Msun = np.double(1.0) -cbfile.write_record(np.double(GMSun)) -cbfile.write_record(np.double(rmin)) -cbfile.write_record(np.double(J2)) -cbfile.write_record(np.double(J4)) -cbfile.close() - -plfile = FortranFile(swiftest_pl, 'w') -plfile.write_record(npl) - -plfile.write_record(plid) -plfile.write_record(p_pl[0]) -plfile.write_record(p_pl[1]) -plfile.write_record(p_pl[2]) -plfile.write_record(v_pl[0]) -plfile.write_record(v_pl[1]) -plfile.write_record(v_pl[2]) -plfile.write_record(mass) -plfile.write_record(radius) -plfile.close() -tpfile = FortranFile(swiftest_tp, 'w') -ntp = 1 -tpfile.write_record(ntp) -tpfile.write_record(tpid) -tpfile.write_record(p_tp[0]) -tpfile.write_record(p_tp[1]) -tpfile.write_record(p_tp[2]) -tpfile.write_record(v_tp[0]) -tpfile.write_record(v_tp[1]) -tpfile.write_record(v_tp[2]) - -tpfile.close() - -sys.stdout = open(swiftest_input, "w") -print(f'! Swiftest input file generated using init_cond.py') -print(f'T0 {t_0} ') -print(f'TSTOP {end_sim}') -print(f'DT {deltaT}') -print(f'CB_IN {swiftest_cb}') -print(f'PL_IN {swiftest_pl}') -print(f'TP_IN {swiftest_tp}') -print(f'IN_TYPE REAL8') -print(f'ISTEP_OUT {iout:d}') -print(f'ISTEP_DUMP {iout:d}') -print(f'BIN_OUT {swiftest_bin}') -print(f'OUT_TYPE REAL8') -print(f'OUT_FORM XV') -print(f'OUT_STAT REPLACE') -print(f'CHK_CLOSE yes') -print(f'CHK_RMIN {rmin}') -print(f'CHK_RMAX {rmax}') -print(f'CHK_EJECT {rmax}') -print(f'CHK_QMIN {rmin}') -print(f'CHK_QMIN_COORD HELIO') -print(f'CHK_QMIN_RANGE {rmin} {rmax}') -print(f'ENC_OUT {swiftest_enc}') -print(f'EXTRA_FORCE no') -print(f'BIG_DISCARD no') -print(f'ROTATION no') -print(f'GR no') -print(f'MU2KG {MU2KG}') -print(f'DU2M {DU2M}') -print(f'TU2S {TU2S}') - - - - - diff --git a/examples/helio_swifter_comparison/1pl_1tp_encounter/param.swifter.in b/examples/helio_swifter_comparison/1pl_1tp_encounter/param.swifter.in deleted file mode 100644 index 40cedba41..000000000 --- a/examples/helio_swifter_comparison/1pl_1tp_encounter/param.swifter.in +++ /dev/null @@ -1,26 +0,0 @@ -! Swifter input file generated using init_cond.py -T0 0 -TSTOP 0.2 -DT 0.00034223134839151266 -PL_IN pl.swifter.in -TP_IN tp.swifter.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 4.7535806948127355e-12 -J4 -2.2473967953572827e-18 -CHK_CLOSE yes -CHK_RMIN 0.004650467260962157 -CHK_RMAX 1000.0 -CHK_EJECT 1000.0 -CHK_QMIN 0.004650467260962157 -CHK_QMIN_COORD HELIO -CHK_QMIN_RANGE 0.004650467260962157 1000.0 -ENC_OUT enc.swifter.dat -EXTRA_FORCE no -BIG_DISCARD no -RHILL_PRESENT yes diff --git a/examples/helio_swifter_comparison/1pl_1tp_encounter/param.swiftest.in b/examples/helio_swifter_comparison/1pl_1tp_encounter/param.swiftest.in deleted file mode 100644 index 914af3324..000000000 --- a/examples/helio_swifter_comparison/1pl_1tp_encounter/param.swiftest.in +++ /dev/null @@ -1,29 +0,0 @@ -! Swiftest input file generated using init_cond.py -T0 0 -TSTOP 0.2 -DT 0.00034223134839151266 -CB_IN cb.swiftest.in -PL_IN pl.swiftest.in -TP_IN tp.swiftest.in -IN_TYPE REAL8 -ISTEP_OUT 1 -ISTEP_DUMP 1 -BIN_OUT bin.swiftest.dat -OUT_TYPE REAL8 -OUT_FORM XV -OUT_STAT REPLACE -CHK_CLOSE yes -CHK_RMIN 0.004650467260962157 -CHK_RMAX 1000.0 -CHK_EJECT 1000.0 -CHK_QMIN 0.004650467260962157 -CHK_QMIN_COORD HELIO -CHK_QMIN_RANGE 0.004650467260962157 1000.0 -ENC_OUT enc.swiftest.dat -EXTRA_FORCE no -BIG_DISCARD no -ROTATION no -GR no -MU2KG 1.988409870698051e+30 -DU2M 149597870700.0 -TU2S 31557600.0 diff --git a/examples/helio_swifter_comparison/1pl_1tp_encounter/pl.swifter.in b/examples/helio_swifter_comparison/1pl_1tp_encounter/pl.swifter.in deleted file mode 100644 index 6f91ef4c9..000000000 --- a/examples/helio_swifter_comparison/1pl_1tp_encounter/pl.swifter.in +++ /dev/null @@ -1,8 +0,0 @@ -2 ! Planet input file generated using init_cond.py -1 39.47692640889762629 -0.0 0.0 0.0 -0.0 0.0 0.0 -2 0.00012002693582795246295385 0.010044724833237895015 -4.25875607065041e-05 -1.0 0.0 0.0 -0.0 6.283185307179586 0.0 diff --git a/examples/helio_swifter_comparison/1pl_1tp_encounter/pl.swiftest.in b/examples/helio_swifter_comparison/1pl_1tp_encounter/pl.swiftest.in deleted file mode 100644 index d3786c3df574e6b225dbd22bfec2c4995b86dd25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 160 zcmd;JU|?VbVi4efVkR&T!G~}^*u&(Z(s1>J_!7D,\n", - " ]" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEGCAYAAABy53LJAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAjkklEQVR4nO3de5wU1Zn/8c/jAGIURG46MBAmMhrwAuIEWTWYaHABEyfGxECyAS+7hDVk4yZmw25+SXTd/CRu0ERlMRiNaC4kXqJoUEK4xCiiDIggIIKIMjAOIyKCEi7Ds39U4XbanpnuoaurL9/369Wv7qo6p+qpspjHc6rqlLk7IiIi6Toi7gBERKSwKHGIiEhGlDhERCQjShwiIpIRJQ4REclIu7gDyIXu3bt7v3794g5DRKSgLFu27E1375E8vyQSR79+/aitrY07DBGRgmJmr6War64qERHJiBKHiIhkRIlDREQyUhLXOFLZv38/dXV1/PWvf407lKzq2LEjFRUVtG/fPu5QRKRIlWziqKuro1OnTvTr1w8zizucrHB3tm/fTl1dHZWVlXGHIyJFqmS7qv7617/SrVu3okkaAGZGt27diq4VJSL5pWQTB1BUSeOQYtwnEckvJZ04RESK1v498Ph3YHdj1letxBGRs88+O+X8yy+/nAceeCDH0YhIyfnT9fDsHdCwKuurVuKIyOLFi+MOQURK1cZF8Ox0GPpVOPH8rK++ZO+qitoxxxzD7t27cXe+/vWvs2DBAiorK9EbF0UkUnt2wMNXQ7cq+NR1kWxCiSNiv//971m3bh2rVq2ioaGBgQMHcuWVV8YdlogUqznfht0NcNU86PChSDahrqqIPfnkk4wdO5aysjJ69erF+ednv9koIgLAiw/CqvvhvO9A7yGRbUaJIwd0i6yIRO6drfDYN6F3NZz7zUg3pcQRseHDhzNr1iyampqor69n4cKFcYckIsXGHR75GjTtg0t+BmXRXoXQNY6IXXLJJSxYsIDTTjuNk046ifPOOy/ukESk2Cz9ObyyAC6aCt37R745JY6I7N69Gwi6qW6//faYoxGRorX9Ffjj96D/p6D6qpxsMtKuKjMbaWbrzGyDmU1OsdzM7NZw+UozGxLO72hmz5nZC2a22syuT6jT1czmmdn68Pu4KPdBRCRvHWwKbr1t1wEuvg1ydD01ssRhZmXANGAUMBAYa2YDk4qNAqrCzwRgejh/L3C+uw8CBgMjzWxYuGwyMN/dq4D54bSISOlZMh02L4FRN0HnXjnbbJQtjqHABnff6O77gFlATVKZGuBeDywBuphZeTi9OyzTPvx4Qp2Z4e+ZwGcj3AcRkfzU+DIsuAFOHg2nfzGnm44ycfQGNidM14Xz0ipjZmVmtgLYBsxz92fDMse7ez1A+N0z1cbNbIKZ1ZpZbWNj9gf5EhGJzcEmePifof1R8Omf5KyL6pAoE0eqPUkeb6PZMu7e5O6DgQpgqJmdmsnG3X2Gu1e7e3WPHj0yqSoikt8W3wZbamH0j6HT8TnffJSJow7okzBdAWzNtIy7vw0sAkaGsxrMrBwg/N6WtYhFRPLdtpdg4Q9hwGfg1EtjCSHKxLEUqDKzSjPrAIwBZieVmQ2MC++uGgbsdPd6M+thZl0AzOwo4FPASwl1xoe/xwOPRLgPkdq8eTOf/OQnGTBgAKeccgo//elP4w5JRPJZ0wF4eCIc2QkuuiXnXVSHRPYch7sfMLNJwFygDLjb3Veb2cRw+R3AHGA0sAF4D7girF4OzAzvzDoC+J27PxYumwL8zsyuAl4HvhDVPkStXbt2TJ06lSFDhrBr1y7OPPNMRowYwcCByTefiYgAT/8Etj4PX7gHjomvCz7SBwDdfQ5Bckicd0fCbwe+lqLeSuCMZta5Hbggu5HGo7y8nPLycgA6derEgAED2LJlixKHiHxQw2pYNAVOuST4xEhPjgPXP7qaNVvfyeo6B/bqzA8+c0ra5Tdt2sTzzz/PWWedldU4RKQINO2H30+Eo7rA6KlxR6PEkQ92797NpZdeyk9+8hM6d+4cdzgikm/+cjO8sRK++Es4ulvc0ShxABm1DLJt//79XHrppXz5y1/mc5/7XGxxiEiealgDT/43nPr54E6qPKBh1WPk7lx11VUMGDCAb34z2vHzRaQAHWyC2ZOgY+dgWJE8ocQRo6effpr77ruPBQsWMHjwYAYPHsycOXNarygipeHZO2DLsiBp5EEX1SHqqorRueeeS3BjmYhIkrdehfk3wEkjY3vQrzlqcYiI5Bt3ePQbcEQ7uOjm2B70a45aHCIi+eb5X8Krf4ZP3wLHJo8NGz+1OERE8sk79TD3u/Dhc2HI5XFHk5ISh4hIvnCHOddC0164+FY4Ij//ROdnVCIipWjNI/DSY/CJf4duJ8YdTbOUOERE8sF7bwWtjfJB8HeT4o6mRUocMbryyivp2bMnp576f++oeuuttxgxYgRVVVWMGDGCHTt2vL/sxhtvpH///px88snMnTs3jpBFJCpzvwt7dkDNNCjL7/uWlDhidPnll/PEE0/8zbwpU6ZwwQUXsH79ei644AKmTJkCwJo1a5g1axarV6/miSee4Oqrr6apqSmOsEUk2zbMhxd+DedcAyecFnc0rVLiiNHw4cPp2rXr38x75JFHGD8+eE/V+PHjefjhh9+fP2bMGI488kgqKyvp378/zz33XK5DFpFs2/cePPav0K0Khn877mjSkt/toVx5fDK8sSq76zzhNBg1JeNqDQ0N77+jo7y8nG3bgjfjbtmyhWHDhr1frqKigi1btmQnVhGJz5M3wduvweV/gPYd444mLWpxFIhUQ5NYnj1NKiIZalgNi2+Dwf8A/c6NO5q0qcUBbWoZROX444+nvr6e8vJy6uvr6dmzJxC0MDZv3vx+ubq6Onr16hVXmCJyuA4ehEevgY7HwoU3xB1NRtTiyDMXX3wxM2fOBGDmzJnU1NS8P3/WrFns3buXV199lfXr1zN06NA4QxWRw7H8Hqh7Di78IXyoa6vF84laHDEaO3YsixYt4s0336SiooLrr7+eyZMnc9lll3HXXXfRt29f7r//fgBOOeUULrvsMgYOHEi7du2YNm0aZWVlMe+BiLTJrgaYdx30+zgMGhN3NBmzUhjWu7q62mtra/9m3tq1axkwYEBMEUWrmPdNpCg8cCWsfRT++Rno3j/uaJplZsvcvTp5vrqqRERyaf2f4MUH4ePX5nXSaEmkicPMRprZOjPbYGaTUyw3M7s1XL7SzIaE8/uY2UIzW2tmq83sGwl1rjOzLWa2IvyMjnIfRESyZt978IdvBs9snHtN3NG0WWTXOMysDJgGjADqgKVmNtvd1yQUGwVUhZ+zgOnh9wHgW+6+3Mw6AcvMbF5C3Vvc/ceHG6O7F90traXQ9ShSsBKf2Wh3ZNzRtFmULY6hwAZ33+ju+4BZQE1SmRrgXg8sAbqYWbm717v7cgB33wWsBbL6NpOOHTuyffv2ovpD6+5s376djh0L4yEikZJSoM9spBLlXVW9gc0J03UErYnWyvQG6g/NMLN+wBnAswnlJpnZOKCWoGWygyRmNgGYANC3b98PBFdRUUFdXR2NjY3p71EB6NixIxUVFXGHISKJCviZjVSiTByp+oCS//e+xTJmdgzwIHCNu78Tzp4O3BCWuwGYClz5gZW4zwBmQHBXVfLy9u3bU1lZ2fpeiIgcruUzg2c2PntHwT2zkUqUXVV1QJ+E6Qpga7plzKw9QdL4lbs/dKiAuze4e5O7HwTuJOgSExHJT+9uh/nXB6+CLcBnNlKJMnEsBarMrNLMOgBjgNlJZWYD48K7q4YBO9293oIr1ncBa9395sQKZlaeMHkJ8GJ0uyAicpj+9APYuwsu+jEUyc04kXVVufsBM5sEzAXKgLvdfbWZTQyX3wHMAUYDG4D3gCvC6ucAXwFWmdmKcN5/uPsc4CYzG0zQVbUJ+GpU+yAiclg2L4Xn74Ozvw49i+eh3JJ9clxEJFIHm2DGJ+DdN2HSc3Bkp7gjylhzT45rrCoRkSgsvQveWAmf/0VBJo2WaMgREZFs270NFvwXfOQTcMolcUeTdUocIiLZNu/7sP89GF08F8QTKXGIiGTTa4vhhd8EF8S7V8UdTSSUOEREsqVpP/zhW3BsHxh+bdzRREYXx0VEsuW5GbBtDXzxl9Dh6LijiYxaHCIi2fBOPSy8EfqPgI9+Ou5oIqXEISKSDfO+B037YPRNRXlBPJESh4jI4XrtGVh1P5zzL9D1I3FHEzklDhGRw3GwCR7/N+jcG87917ijyQldHBcRORzL7w2eEL/0rqK+IJ5ILQ4RkbbaswMW3AB9z4ZTL407mpxR4hARaatFU4LkMepHRX9BPJESh4hIW2xbC8/dCWdeDuWnxx1NTilxiIhkyh0e/w4ceQx88v/FHU3OKXGIiGTqpcfg1T8HSePobnFHk3NKHCIimdi/B+b+B/QcCNVXxh1NLHQ7rohIJhbfDm+/DuNmQ1lp/glVi0NEJF076+AvU2HAxfCR8+KOJjZKHCIi6Zr3fcDhwv+KO5JYKXGIiKTj9WfhxQfh7H+B4z4cdzSxUuIQEWnNwYMw99/hmBPg3GvijiZ2kSYOMxtpZuvMbIOZTU6x3Mzs1nD5SjMbEs7vY2YLzWytma02s28k1OlqZvPMbH34fVyU+yAiwuqHYMsyuOD7JTMeVUsiSxxmVgZMA0YBA4GxZjYwqdgooCr8TACmh/MPAN9y9wHAMOBrCXUnA/PdvQqYH06LiERj/x6Y9wMoHwSDxsYdTV6IssUxFNjg7hvdfR8wC6hJKlMD3OuBJUAXMyt393p3Xw7g7ruAtUDvhDozw98zgc9GuA8iUuqemQbv1MGFP4Qj1LsP0SaO3sDmhOk6/u+Pf9plzKwfcAbwbDjreHevBwi/e6bauJlNMLNaM6ttbGxs6z6ISCnb1QBP3RK8Crby43FHkzeiTByphor0TMqY2THAg8A17v5OJht39xnuXu3u1T169MikqohIYOF/wYG9MOI/444kr0SZOOqAPgnTFcDWdMuYWXuCpPErd38ooUyDmZWHZcqBbVmOW0QE3lgFy++DoROg24lxR5NXokwcS4EqM6s0sw7AGGB2UpnZwLjw7qphwE53rzczA+4C1rr7zSnqjA9/jwceiW4XRKQkucPc78JRXeC8b8cdTd6JbKAVdz9gZpOAuUAZcLe7rzazieHyO4A5wGhgA/AecEVY/RzgK8AqM1sRzvsPd58DTAF+Z2ZXAa8DX4hqH0SkRK3/YzD67cgfwVG64z+ZuSdfdig+1dXVXltbG3cYIlIImvbD//wd4HD1EihrH3dEsTGzZe5enTy/NId2FBFpTu0vYPt6GDurpJNGS3RTsojIIXvehkU3QuVwOGlk3NHkLSUOEZFDnroZ9uwIHvazVE8LCChxiIgEdtbBkjvg9C9C+elxR5PXlDhERAAW3gg4nP/duCPJe0ocIiINa+CFXwcP+3XpG3c0eU+JQ0TkT9dBh07w8W/FHUlBUOIQkdK26SlYPxc+/q/woa5xR1MQlDhEpHS5B+8R79wbzpoYdzQFQw8AikjpWvNw8Ga/mmnQ/qi4oykYanGISGlq2g/z/xN6DtSb/TKkFoeIlKZl98BbG+FLv4MjyuKOpqCoxSEipWfvLvjzj+DD50LVhXFHU3DU4hCR0rP4dni3Ecb+VkOLtIFaHCJSWnY3wuLbYGANVJwZdzQFSYlDRErLUzfDgT1w/vfijqRgpZU4wrftJU6XmdkPoglJRCQiO+tg6V0w+EvQvSruaApWui2OC8xsjpmVm9mpwBKgU4RxiYhk359vAj8I530n7kgKWloXx939S2b2RWAVwbvBx7r705FGJiKSTdtfged/CR/7Rw1keJjS7aqqAr4BPAhsAr5iZh+KMC4RkexadCOUddBAhlmQblfVo8D33P2rwHnAy8DSyKISEcmmhtWw6gEYNhE6HR93NAUv3cQxFBhkZg8BDwAOjIksKhGRbFrwQziyE5z9L3FHUhTSTRw/B04BbgNuBwYArd7LZmYjzWydmW0ws8kplpuZ3RouX2lmQxKW3W1m28zsxaQ615nZFjNbEX5Gp7kPIlKK6pbBuj8ESUPDpmdFuk+On+zugxKmF5rZCy1VMLMyYBowAqgDlprZbHdfk1BsFFAVfs4CpoffAPcQJKl7U6z+Fnf/cZqxi0gpW/Cf8KFuQTeVZEW6LY7nzWzYoQkzOwto7a6qocAGd9/o7vuAWUBNUpka4F4PLAG6mFk5gLs/CbyVZnwiIh/06pOwcVFwQfxIPUGQLekmjrOAxWa2ycw2Ac8A55nZKjNb2Uyd3sDmhOm6cF6mZVKZFHZt3W1mx6UqYGYTzKzWzGobGxvTWKWIFBV3mH8DdOoF1Ve1Xl7Slm5X1cg2rDvVyGHehjLJpgM3hOVuAKYCV35gJe4zgBkA1dXVra1TRIrN+nlQ9xx8+hZo3zHuaIpKug8AvtaGddcBfRKmK4CtbSiTHEvDod9mdifwWBtiE5Fi5h48t9GlLwz+h7ijKTpRDnK4FKgys0oz60Bw++7spDKzgXHh3VXDgJ3uXt/SSg9dAwldArzYXFkRKVHr58HW5fDxa6Fdh7ijKTqRvY/D3Q+Y2SRgLlAG3O3uq81sYrj8DmAOMBrYQDCUyRWH6pvZb4BPAN3NrA74gbvfBdxkZoMJuqo2AV+Nah9EpAAltjb0SthIRPoiJ3efQ5AcEufdkfDbga81Uzflf3F3/0o2YxSRInOotfGZW9XaiIjexyEixeNvrm18Ke5oipYSh4gUj0OtjeHfhrL2cUdTtJQ4RKQ46NpGzihxiEhxUGsjZ5Q4RKTwqbWRU0ocIlL41NrIKSUOESlsam3knBKHiBS2VxaET4l/S62NHFHiEJHC9peboXNvGKTnNnJFiUNECtfrS+C1p+Dsr+sp8RxS4hCRwvWXqcHb/YaMizuSkqLEISKFqX4lrP8jDLsaOhwddzQlRYlDRArTX6bCkZ3hY/8YdyQlR4lDRArPm+thzSNB0jiqS9zRlBwlDhEpPE/dAu06Bt1UknNKHCJSWN5+HVb+Fs4cD8f0iDuakqTEISKFZfFtgAW34EoslDhEpHDs3gbL74VBY+DYirijKVlKHCJSOJ6bAQf2wjnXxB1JSVPiEJHCsO9dWPpz+OhF0L1/3NGUNCUOESkMz/8K9uzQtY08oMQhIvnvYBM8cztUDIW+w+KOpuRFmjjMbKSZrTOzDWY2OcVyM7Nbw+UrzWxIwrK7zWybmb2YVKermc0zs/Xh93FR7oOI5IG1s+Ht19TayBORJQ4zKwOmAaOAgcBYMxuYVGwUUBV+JgDTE5bdA4xMserJwHx3rwLmh9MiUqzc4elboetHgusbErsoWxxDgQ3uvtHd9wGzgJqkMjXAvR5YAnQxs3IAd38SeCvFemuAmeHvmcBnowheRPLEa4uDFzX93SQ4oizuaIRoE0dvYHPCdF04L9MyyY5393qA8LtnqkJmNsHMas2strGxMaPARSSPLL4tGDp9sF7UlC+iTByWYp63oUybuPsMd6929+oePTQsgUhBalwHLz8OQydA+6PijkZCUSaOOqBPwnQFsLUNZZI1HOrOCr+3HWacIpKvnrk9GMxQQ6fnlSgTx1KgyswqzawDMAaYnVRmNjAuvLtqGLDzUDdUC2YD48Pf44FHshm0iOSJd7fDC7+FQWPh6O5xRyMJIksc7n4AmATMBdYCv3P31WY20cwmhsXmABuBDcCdwPtjJJvZb4BngJPNrM7MrgoXTQFGmNl6YEQ4LSLFZvk90LQXzprYalHJLXPPyiWFvFZdXe21tbVxhyEi6WraDz8dBN2rYJw6FeJiZsvcvTp5vp4cF5H889Jj8M4WtTbylBKHiOSfZ38Gx/WDqgvjjkRSUOIQkfyydQW8/kxwC64e+MtLShwikl+emwHtj4bBX447EmmGEoeI5I/djbDqfhg8Fo7qEnc00gwlDhHJH8vvgaZ9QTeV5C0lDhHJD037YeldcOL50OPkuKORFihxiEh+ePkJ2FUPH/unuCORVihxiEh+qP0FdOqlW3ALgBKHiMRvxyZ4ZQEMGQdl7eKORlqhxCEi8Vs2E8yCxCF5T4lDROLVtB+e/yVU/T0c29p73CQfKHGISLxe+gO8uw2qr4w7EkmTEoeIxGvZL+DYPtD/grgjkTQpcYhIfLa/AhsXwZDxGpeqgChxiEh8ls8EK4Mz/iHuSCQDShwiEo+mA/DCLDjp76FzedzRSAaUOEQkHhsXwu4GGPyluCORDClxiEg8Vvwajuoa3IYrBUWJQ0Ryb8+O4Dbc074A7TrEHY1kSIlDRHJv9e+haW/w3g0pOEocIpJ7K34NPQZA+eC4I5E2iDRxmNlIM1tnZhvMbHKK5WZmt4bLV5rZkNbqmtl1ZrbFzFaEn9FR7oOIZNmb66FuaXBR3CzuaKQNIkscZlYGTANGAQOBsWY2MKnYKKAq/EwApqdZ9xZ3Hxx+5kS1DyISgRW/BjsCTr8s7kikjaJscQwFNrj7RnffB8wCapLK1AD3emAJ0MXMytOsKyKFxh1WPRC85a/TCXFHI20UZeLoDWxOmK4L56VTprW6k8KurbvN7LhUGzezCWZWa2a1jY2Nbd0HEcmmulrY+TqcemnckchhiDJxpOq89DTLtFR3OnAiMBioB6am2ri7z3D3anev7tGjR1oBi0jEVj8EZR3goxfFHYkchihftVUH9EmYrgC2plmmQ3N13b3h0EwzuxN4LHshi0hkDh6E1Q9D/09Bx2PjjkYOQ5QtjqVAlZlVmlkHYAwwO6nMbGBceHfVMGCnu9e3VDe8BnLIJcCLEe6DiGTL5iWwayuc8rm4I5HDFFmLw90PmNkkYC5QBtzt7qvNbGK4/A5gDjAa2AC8B1zRUt1w1TeZ2WCCrqtNwFej2gcRyaIXH4J2HeHkkXFHIofJ3JMvOxSf6upqr62tjTsMkdJ1sAmmfhT6DoMv3hd3NJImM1vm7tXJ8/XkuIhE77Wng9fDnqpuqmKgxCEi0XvpD0E3VdWFcUciWaDEISLRcod1j0PledDh6LijkSxQ4hCRaDW+BG+/poviRUSJQ0SitS4cTu4kJY5iocQhItFa90QwfHrnXnFHIlmixCEi0dndGAyhfvKouCORLFLiEJHorP8j4OqmKjJKHCISnY2L4OgeUD4o7kgki5Q4RCQa7vDqk1A5XG/6KzJKHCISjTdfht1vBM9vSFFR4hCRaLz6ZPBdOTzeOCTrlDhEJBqv/hmO7QvH9Ys7EskyJQ4Ryb6DB2HTU7q+UaSUOEQk+95+DfbsgD5D445EIqDEISLZ98aq4PuE0+KNQyKhxCEi2ffGKrAy6Dkg7kgkAkocIpJ9b6yC7idB+6PijkQioMQhItn3xip1UxUxJQ4Rya733oJ36pQ4ipgSh4hkly6MFz0lDhHJLiWOohdp4jCzkWa2zsw2mNnkFMvNzG4Nl680syGt1TWzrmY2z8zWh9/HRbkPIpKhN1ZBp15wdPe4I5GIRJY4zKwMmAaMAgYCY81sYFKxUUBV+JkATE+j7mRgvrtXAfPDaRHJF7owXvTaRbjuocAGd98IYGazgBpgTUKZGuBed3dgiZl1MbNyoF8LdWuAT4T1ZwKLgO9EsQPP/M8EBjfOjmLVADiFNxRDlDEX4vGAAj4mEQwFcoQ3cYzv5qH3TuO3P3sm6+uXzA3s1ZkffOaUrK4zysTRG9icMF0HnJVGmd6t1D3e3esB3L3ezHqm2riZTSBoxdC3b9827cDmY05n+7v721S3dR7ReonsT415dDFHezwK71gHCvOYtPd9PHnUBZGtX+IXZeJI9W8q+Wxtrkw6dVvk7jOAGQDV1dVt+ldy2bhJbakmUvLOjzsAiVSUF8frgD4J0xXA1jTLtFS3IezOIvzelsWYRUSkFVEmjqVAlZlVmlkHYAyQfMFgNjAuvLtqGLAz7IZqqe5sYHz4ezzwSIT7ICIiSSLrqnL3A2Y2CZgLlAF3u/tqM5sYLr8DmAOMBjYA7wFXtFQ3XPUU4HdmdhXwOvCFqPZBREQ+yDzSC575obq62mtra+MOQ0SkoJjZMnevTp6vJ8dFRCQjShwiIpIRJQ4REcmIEoeIiGSkJC6Om1kj8Fobq3cH3sxiONmiuDKjuDKjuDJTrHF92N17JM8sicRxOMysNtVdBXFTXJlRXJlRXJkptbjUVSUiIhlR4hARkYwocbRuRtwBNENxZUZxZUZxZaak4tI1DhERyYhaHCIikhElDhERyUhJJQ4zG2lm68xsg5l94F3l4fDut4bLV5rZkNbqmllXM5tnZuvD7+NyFZeZ9TGzhWa21sxWm9k3EupcZ2ZbzGxF+Bmdq7jCZZvMbFW47dqE+XEer5MTjscKM3vHzK4Jl+XieH3UzJ4xs71mdm06dXN0vFLGlQfnV0vHK87zq7njFff59eXwfF9pZovNbFBrddt8vNy9JD4Ew7O/AnwE6AC8AAxMKjMaeJzgDYTDgGdbqwvcBEwOf08GfpTDuMqBIeHvTsDLCXFdB1wbx/EKl20CuqdYb2zHK8V63iB4wClXx6sn8DHgh4nbyoPzq7m44j6/UsaVB+dXs3HFfH6dDRwX/h5FhH+/SqnFMRTY4O4b3X0fMAuoSSpTA9zrgSVAFwveMthS3RpgZvh7JvDZXMXl7vXuvhzA3XcBawne154Nh3O8WhLb8UoqcwHwiru3dUSBjONy923uvhRIfpF9rOdXc3HFfX61cLxaEtvxShLH+bXY3XeEk0sI3pzaWt02Ha9SShy9gc0J03V88B9Bc2Vaqnu8B28tJPzumcO43mdm/YAzgGcTZk8Km613t6HJfrhxOfBHM1tmZhMSyuTF8SJ4q+RvkuZFfbzaUjcXx6tVMZ1fLYnz/EpH3OfXVQSt7tbqtul4lVLisBTzku9Fbq5MOnXb6nDiChaaHQM8CFzj7u+Es6cDJwKDgXpgao7jOsfdhxA0mb9mZsMz3H5UcWHB64gvBu5PWJ6L4xVF3cjXHeP51ZI4z6+WVxDz+WVmnyRIHN/JtG66Silx1AF9EqYrgK1plmmpbsOhbpDwe1sO48LM2hP8o/6Vuz90qIC7N7h7k7sfBO4kaK7mLC53P/S9Dfh9wvZjPV6hUcByd284NCNHx6stdXNxvJoV8/nVrJjPr9bEdn6Z2enAz4Ead9+eRt02Ha9SShxLgSozqwz/j2AMMDupzGxgnAWGATvD5ltLdWcD48Pf44FHchWXmRlwF7DW3W9OrJDUp38J8GIO4zrazDqFcRwNXJiw/diOV8LysSR1I+ToeLWlbi6OV0p5cH41F1fc51drYjm/zKwv8BDwFXd/Oc26bTte6VxBL5YPwd02LxPcYfDdcN5EYGL424Bp4fJVQHVLdcP53YD5wPrwu2uu4gLOJWhyrgRWhJ/R4bL7wrIrw5OjPIdxfYTgzo0XgNX5crzCZR8CtgPHJq0zF8frBIL/+3sHeDv83TkPzq+UceXB+dVcXHGfXy39d4zz/Po5sCPhv1VtS3UP53hpyBEREclIKXVViYhIFihxiIhIRpQ4REQkI0ocIiKSESUOERHJiBKHSIbMrIuZXZ0w3cvMHohoW581s++3UubHZnZ+FNsXSUW344pkKBy36TF3PzUH21oMXOzub7ZQ5sPAne5+YdTxiIBaHCJtMQU40YL3Kvy3mfUzsxcBzOxyM3vYzB41s1fNbJKZfdPMnjezJWbWNSx3opk9EQ7S9xcz+2jyRszsJGCvu79pZp3C9bUPl3W24J0U7T0YgbWbmZ2Qw2MgJUyJQyRzkwmGzB7s7t9OsfxU4EsE4xH9EHjP3c8AngHGhWVmAF939zOBa4H/SbGec4DEYc0XAReFy8YAD7r7oaG9l4flRSLXLu4ARIrQwvAP/S4z2wk8Gs5fBZwejjZ7NnB/MBwUAEemWE850Jgw/XPg34CHgSuAf0pYtg3ola0dEGmJEodI9u1N+H0wYfogwb+5I4C33X1wK+vZAxx7aMLdnw67xc4Dytw9caC8jmF5kcipq0okc7sIXqXaJh680+JVM/sCvP+O9EEpiq4F+ifNu5dg5NVfJM0/icxHXBVpEyUOkQx58J6Dp83sRTP77zau5svAVWZ2aITX5NffAjwJnGEJ/VnAr4DjSBi2O7xg3h+obWMsIhnR7bgieczMfgo86u5/Cqc/T/CSnq8klLkEGOLu34spTCkxusYhkt/+P3AWgJndRvB2udFJZdqR+atIRdpMLQ4REcmIrnGIiEhGlDhERCQjShwiIpIRJQ4REcmIEoeIiGTkfwHIodhfqACDIgAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "swiftdiff['px'].plot.line(x=\"time (y)\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "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/examples/helio_swifter_comparison/1pl_1tp_encounter/tp.swifter.in b/examples/helio_swifter_comparison/1pl_1tp_encounter/tp.swifter.in deleted file mode 100644 index 9c026369e..000000000 --- a/examples/helio_swifter_comparison/1pl_1tp_encounter/tp.swifter.in +++ /dev/null @@ -1,4 +0,0 @@ -1 -100 -1.01 0.0 0.0 -0.0 6.252003053624663 0.0 diff --git a/examples/helio_swifter_comparison/1pl_1tp_encounter/tp.swiftest.in b/examples/helio_swifter_comparison/1pl_1tp_encounter/tp.swiftest.in deleted file mode 100644 index e1506974ae338f098f33af16f09e91ed31946bbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128 wcmd;JU|?VbVi4ef;uJ6s!PkuGKlD}OgFQ?hDh*dph~H?tT#T1V(gB-(0O>IX>i_@% diff --git a/examples/helio_swifter_comparison/9pl_18tp_encounters/.idea/.gitignore b/examples/helio_swifter_comparison/9pl_18tp_encounters/.idea/.gitignore deleted file mode 100644 index 26d33521a..000000000 --- a/examples/helio_swifter_comparison/9pl_18tp_encounters/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/examples/helio_swifter_comparison/9pl_18tp_encounters/cb.swiftest.in b/examples/helio_swifter_comparison/9pl_18tp_encounters/cb.swiftest.in deleted file mode 100644 index 689d47628..000000000 --- a/examples/helio_swifter_comparison/9pl_18tp_encounters/cb.swiftest.in +++ /dev/null @@ -1,4 +0,0 @@ -0.0002959122081920778 -0.004650467260962157 -4.7535806948127355e-12 --2.2473967953572827e-18 diff --git a/examples/helio_swifter_comparison/9pl_18tp_encounters/init_cond.py b/examples/helio_swifter_comparison/9pl_18tp_encounters/init_cond.py deleted file mode 100644 index 314e59420..000000000 --- a/examples/helio_swifter_comparison/9pl_18tp_encounters/init_cond.py +++ /dev/null @@ -1,184 +0,0 @@ -import numpy as np -import swiftest.io as swio -import astropy.constants as const -import sys -import xarray as xr - -# Both codes use the same tp input file -tpin = "tp.in" - -swifter_input = "param.swifter.in" -swifter_pl = "pl.swifter.in" -swifter_bin = "bin.swifter.dat" -swifter_enc = "enc.swifter.dat" - -swiftest_input = "param.swiftest.in" -swiftest_pl = "pl.swiftest.in" -swiftest_cb = "cb.swiftest.in" -swiftest_bin = "bin.swiftest.dat" -swiftest_enc = "enc.swiftest.dat" - -#Values from JPL Horizons -AU2M = np.longdouble(const.au.value) -GMSunSI = np.longdouble(const.GM_sun.value) -Rsun = np.longdouble(const.R_sun.value) -GC = np.longdouble(const.G.value) -JD = 86400 -year = np.longdouble(365.25 * JD) -c = np.longdouble(299792458.0) - -MU2KG = np.longdouble(GMSunSI / GC) #Conversion from mass unit to kg -DU2M = np.longdouble(AU2M) #Conversion from radius unit to centimeters -TU2S = np.longdouble(JD) #Conversion from time unit to seconds -GU = np.longdouble(GC / (DU2M**3 / (MU2KG * TU2S**2))) -GMSun = np.longdouble(GMSunSI / (DU2M**3 / TU2S**2)) - -t_0 = 0 # simulation start time -deltaT = 1.00 * JD / TU2S # simulation step size -end_sim = year / TU2S # simulation end time -t_print = deltaT #output interval to print results - -iout = int(np.ceil(t_print / deltaT)) -rmin = Rsun / DU2M -rmax = 1000.0 - -sys.stdout = open(swiftest_input, "w") -print(f'! VERSION Swiftest input file generated using init_cond.py') -print(f'T0 {t_0} ') -print(f'TSTOP {end_sim}') -print(f'DT {deltaT}') -print(f'CB_IN {swiftest_cb}') -print(f'PL_IN {swiftest_pl}') -print(f'TP_IN {tpin}') -print(f'IN_TYPE ASCII') -print(f'ISTEP_OUT {iout:d}') -print(f'ISTEP_DUMP {iout:d}') -print(f'BIN_OUT {swiftest_bin}') -print(f'OUT_TYPE REAL8') -print(f'OUT_FORM XV') -print(f'OUT_STAT REPLACE') -print(f'CHK_CLOSE yes') -print(f'CHK_RMIN {rmin}') -print(f'CHK_RMAX {rmax}') -print(f'CHK_EJECT {rmax}') -print(f'CHK_QMIN {rmin}') -print(f'CHK_QMIN_COORD HELIO') -print(f'CHK_QMIN_RANGE {rmin} {rmax}') -print(f'ENC_OUT {swiftest_enc}') -print(f'EXTRA_FORCE no') -print(f'BIG_DISCARD no') -print(f'ROTATION no') -print(f'GR no') -print(f'MU2KG {MU2KG}') -print(f'DU2M {DU2M}') -print(f'TU2S {TU2S}') -sys.stdout = sys.__stdout__ -param = swio.read_swiftest_param(swiftest_input) - -# Dates to fetch planet ephemerides from JPL Horizons -tstart = '2021-06-15' -ds = swio.solar_system_pl(param, tstart) -cb = ds.sel(id=0) -pl = ds.where(ds.id > 0, drop=True) -npl = pl.id.size - -ntp = 18 -dims = ['time', 'id', 'vec'] -tp = [] -t = np.array([0.0]) -clab, plab, tlab = swio.make_swiftest_labels(param) - -# For each planet, we will initialize a pair of test particles. One on its way in, and one on its way out. We will also initialize two additional particles that don't encounter anything -tpnames = np.arange(101, 101 + ntp) -tpxv1 = np.empty((6)) -tpxv2 = np.empty((6)) - -p1 = [] -p2 = [] -p3 = [] -p4 = [] -p5 = [] -p6 = [] - -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 - 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'])]) - tpxv1 = plvec + xvstart - tpxv2 = plvec - xvstart - p1.append(tpxv1[0]) - p1.append(tpxv2[0]) - p2.append(tpxv1[1]) - p2.append(tpxv2[1]) - p3.append(tpxv1[2]) - p3.append(tpxv2[2]) - p4.append(tpxv1[3]) - p4.append(tpxv2[3]) - p5.append(tpxv1[4]) - p5.append(tpxv2[4]) - p6.append(tpxv1[5]) - p6.append(tpxv2[5]) - -tvec = np.vstack([p1, p2, p3, p4, p5, p6]) -tpframe = np.expand_dims(tvec.T, axis=0) -tpxr = xr.DataArray(tpframe, dims = dims, coords = {'time' : t, 'id' : tpnames, 'vec' : tlab}) - -tp = [tpxr] -tpda = xr.concat(tp,dim='time') -tpds = tpda.to_dataset(dim = 'vec') - -ds = xr.combine_by_coords([ds, tpds]) -swio.swiftest_xr2infile(ds, param) - -# Swifter PL file -plfile = open(swifter_pl, 'w') -print(npl + 1, file=plfile) -print(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: - pli = pl.sel(id=i) - print(f"{int(i)} {pli['Mass'].values[0]} {pli['Rhill'].values[0]}", file=plfile) - print(f"{pli['Radius'].values[0]}", file=plfile) - print(f"{pli['px'].values[0]} {pli['py'].values[0]} {pli['pz'].values[0]}", file=plfile) - print(f"{pli['vx'].values[0]} {pli['vy'].values[0]} {pli['vz'].values[0]}", file=plfile) -plfile.close() - -# Swifter parameter file -sys.stdout = open(swifter_input, "w") -print(f"! VERSION Swifter input file generated using init_cond.py") -print(f"T0 {t_0} ") -print(f"TSTOP {end_sim}") -print(f"DT {deltaT}") -print(f"PL_IN {swifter_pl}") -print(f"TP_IN {tpin}") -print(f"IN_TYPE ASCII") -print(f"ISTEP_OUT {iout:d}") -print(f"ISTEP_DUMP {iout:d}") -print(f"BIN_OUT {swifter_bin}") -print(f"OUT_TYPE REAL8") -print(f"OUT_FORM XV") -print(f"OUT_STAT UNKNOWN") -print(f"J2 {param['J2']}") -print(f"J4 {param['J4']}") -print(f"CHK_CLOSE yes") -print(f"CHK_RMIN {rmin}") -print(f"CHK_RMAX {rmax}") -print(f"CHK_EJECT {rmax}") -print(f"CHK_QMIN {rmin}") -print(f"CHK_QMIN_COORD HELIO") -print(f"CHK_QMIN_RANGE {rmin} {rmax}") -print(f"ENC_OUT {swifter_enc}") -print(f"EXTRA_FORCE no") -print(f"BIG_DISCARD no") -print(f"RHILL_PRESENT yes") -sys.stdout = sys.__stdout__ - diff --git a/examples/helio_swifter_comparison/9pl_18tp_encounters/param.swifter.in b/examples/helio_swifter_comparison/9pl_18tp_encounters/param.swifter.in deleted file mode 100644 index ec31caa63..000000000 --- a/examples/helio_swifter_comparison/9pl_18tp_encounters/param.swifter.in +++ /dev/null @@ -1,26 +0,0 @@ -! Swifter input file generated using init_cond.py -T0 0 -TSTOP 365.25 -DT 1.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 4.7535806948127355e-12 -J4 -2.2473967953572827e-18 -CHK_CLOSE yes -CHK_RMIN 0.004650467260962157 -CHK_RMAX 1000.0 -CHK_EJECT 1000.0 -CHK_QMIN 0.004650467260962157 -CHK_QMIN_COORD HELIO -CHK_QMIN_RANGE 0.004650467260962157 1000.0 -ENC_OUT enc.swifter.dat -EXTRA_FORCE no -BIG_DISCARD no -RHILL_PRESENT yes diff --git a/examples/helio_swifter_comparison/9pl_18tp_encounters/param.swiftest.in b/examples/helio_swifter_comparison/9pl_18tp_encounters/param.swiftest.in deleted file mode 100644 index fff05bacf..000000000 --- a/examples/helio_swifter_comparison/9pl_18tp_encounters/param.swiftest.in +++ /dev/null @@ -1,29 +0,0 @@ -! VERSION Swiftest input file generated using init_cond.py -T0 0 -TSTOP 365.25 -DT 1.0 -CB_IN cb.swiftest.in -PL_IN pl.swiftest.in -TP_IN tp.in -IN_TYPE ASCII -ISTEP_OUT 1 -ISTEP_DUMP 1 -BIN_OUT bin.swiftest.dat -OUT_TYPE REAL8 -OUT_FORM XV -OUT_STAT REPLACE -CHK_CLOSE yes -CHK_RMIN 0.004650467260962157 -CHK_RMAX 1000.0 -CHK_EJECT 1000.0 -CHK_QMIN 0.004650467260962157 -CHK_QMIN_COORD HELIO -CHK_QMIN_RANGE 0.004650467260962157 1000.0 -ENC_OUT enc.swiftest.dat -EXTRA_FORCE no -BIG_DISCARD no -ROTATION no -GR no -MU2KG 1.988409870698051e+30 -DU2M 149597870700.0 -TU2S 86400.0 diff --git a/examples/helio_swifter_comparison/9pl_18tp_encounters/pl.swifter.in b/examples/helio_swifter_comparison/9pl_18tp_encounters/pl.swifter.in deleted file mode 100644 index f02f6bc6f..000000000 --- a/examples/helio_swifter_comparison/9pl_18tp_encounters/pl.swifter.in +++ /dev/null @@ -1,40 +0,0 @@ -10 -0 0.00029591220819207776388 -0.0 0.0 0.0 -0.0 0.0 0.0 -1 4.9125474498983625e-11 0.0014751258227142052 -1.6306381826061646e-05 -0.008059842448018334 -0.4616051037329109 -0.03846017738329229 -0.02248719132054853 0.001934639213990692 -0.001904656977422976 -2 7.243452483873647e-10 0.006759134232034941 -4.0453784346544176e-05 --0.5115875215389065 0.5030818749037324 0.03642547299277956 --0.01425515725454357 -0.01452868630179309 0.0006232072038298823 -3 8.997011382166019e-10 0.010044625087011915 -4.25875607065041e-05 --0.1090020607540907 -1.009893805009766 4.823302918632528e-05 -0.01682491922568941 -0.001910549762056979 3.992660742687128e-08 -4 9.549535102761465e-11 0.0072467897902424765 -2.2657408050928896e-05 --1.342897929331636 0.9778655112682739 0.05343398538723887 --0.007712315645393206 -0.01011917844182223 -2.287744801261131e-05 -5 2.825345908631355e-07 0.3552720805286442 -0.0004673261703049093 -3.923184193414315 -3.168419770483168 -0.0746147877972047 -0.004655552638985802 0.006232623300954468 -0.0001300429201057457 -6 8.459715183006416e-08 0.4376460836930155 -0.00038925687730393614 -6.185794462795267 -7.804174837804826 -0.110498432926239 -0.004066833203985018 0.003458637040736611 -0.0002219310939327014 -7 1.2920249163736674e-08 0.46946272948265794 -0.00016953449859497232 -14.9290976575471 12.92949673572929 -0.1454099139559955 --0.002599557960646664 0.002795888198858545 4.391864857782088e-05 -8 1.5243589003230834e-08 0.78119478483336 -0.00016458790412449367 -29.54416169025338 -4.716921603714237 -0.5838030174427992 -0.0004792636209523189 0.00312573757291745 -7.53264045199501e-05 -9 2.1919422829042796e-12 0.05379680851617536 -7.943294877391593e-06 -14.54448346259197 -31.05223519593471 -0.8828000265625595 -0.002923077617691739 0.0006625916902153526 -0.0009142553677224461 diff --git a/examples/helio_swifter_comparison/9pl_18tp_encounters/pl.swiftest.in b/examples/helio_swifter_comparison/9pl_18tp_encounters/pl.swiftest.in deleted file mode 100644 index 0920f9b2e..000000000 --- a/examples/helio_swifter_comparison/9pl_18tp_encounters/pl.swiftest.in +++ /dev/null @@ -1,37 +0,0 @@ -9 -1 4.9125474498983625056e-11 -1.6306381826061645943e-05 -0.008059842448018333591 -0.46160510373291091524 -0.038460177383292291908 -0.02248719132054852949 0.0019346392139906921279 -0.0019046569774229759606 -2 7.243452483873647106e-10 -4.0453784346544178454e-05 --0.51158752153890652004 0.5030818749037323512 0.036425472992779560355 --0.01425515725454356988 -0.014528686301793089943 0.00062320720382988232425 -3 8.997011382166018993e-10 -4.25875607065040958e-05 --0.109002060754090704386 -1.0098938050097661101 4.8233029186325282966e-05 -0.016824919225689409317 -0.0019105497620569790936 3.9926607426871282392e-08 -4 9.549535102761465872e-11 -2.265740805092889601e-05 --1.3428979293316360977 0.97786551126827392366 0.053433985387238869258 --0.007712315645393206092 -0.0101191784418222296525 -2.2877448012611311785e-05 -5 2.8253459086313549713e-07 -0.00046732617030490929307 -3.923184193414314791 -3.1684197704831680298 -0.07461478779720470689 -0.0046555526389858022113 0.006232623300954467766 -0.00013004292010574569365 -6 8.45971518300641563e-08 -0.00038925687730393611812 -6.1857944627952665684 -7.804174837804826126 -0.11049843292623899582 -0.0040668332039850179674 0.0034586370407366113193 -0.00022193109393270141328 -7 1.2920249163736673984e-08 -0.00016953449859497231466 -14.929097657547099942 12.9294967357292893695 -0.14540991395599550673 --0.0025995579606466640267 0.0027958881988585450113 4.391864857782088156e-05 -8 1.5243589003230834746e-08 -0.000164587904124493665 -29.544161690253378794 -4.7169216037142369657 -0.58380301744279916587 -0.00047926362095231893815 0.00312573757291745008 -7.532640451995010825e-05 -9 2.1919422829042797324e-12 -7.943294877391593783e-06 -14.544483462591969669 -31.052235195934709822 -0.88280002656255951443 -0.0029230776176917390448 0.0006625916902153525834 -0.0009142553677224461557 diff --git a/examples/helio_swifter_comparison/9pl_18tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb b/examples/helio_swifter_comparison/9pl_18tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb deleted file mode 100644 index 0a95cb75e..000000000 --- a/examples/helio_swifter_comparison/9pl_18tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb +++ /dev/null @@ -1,697 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import xarray as xr\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 3.660e+02\n", - "Creating Dataset\n", - "Successfully converted 367 output frames.\n", - "Swifter simulation data stored as xarray DataSet .ds\n" - ] - } - ], - "source": [ - "inparfile = 'param.swifter.in'\n", - "swiftersim = swiftest.Simulation(param_file=inparfile, codename=\"Swifter\")\n", - "swiftersim.bin2xr()\n", - "swifterdat = swiftersim.ds" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reading Swiftest file param.swiftest.in\n", - "Reading in time 3.660e+02\n", - "Creating Dataset\n", - "Successfully converted 367 output frames.\n", - "Swiftest simulation data stored as xarray DataSet .ds\n" - ] - } - ], - "source": [ - "inparfile = 'param.swiftest.in'\n", - "swiftestsim = swiftest.Simulation(param_file=inparfile)\n", - "swiftestsim.bin2xr()\n", - "swiftestdat = swiftestsim.ds" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "swiftdiff = swiftestdat - swifterdat" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "swiftdiff = swiftdiff.rename({'time' : 'time (d)'})" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "swiftdiff['rmag'] = np.sqrt(swiftdiff['px']**2 + swiftdiff['py']**2 + swiftdiff['pz']**2)\n", - "swiftdiff['vmag'] = np.sqrt(swiftdiff['vx']**2 + swiftdiff['vy']**2 + swiftdiff['vz']**2)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "plidx = swiftdiff.id.values[swiftdiff.id.values < 10]\n", - "tpidx = swiftdiff.id.values[swiftdiff.id.values > 10]" - ] - }, - { - "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 'px' (time (d): 367)>\n",
-       "array([0., 0., 0., 0., 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., 0., 0., 0., 0.,\n",
-       "       0., 0., 0., 0., 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., 0., 0., 0., 0.,\n",
-       "       0., 0., 0., 0., 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., 0., 0., 0., 0.,\n",
-       "       0., 0., 0., 0., 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., 0., 0., 0., 0.,\n",
-       "       0., 0., 0., 0., 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., 0., 0., 0., 0.,\n",
-       "       0., 0., 0., 0., 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., 0., 0., 0., 0.,\n",
-       "       0., 0., 0., 0., 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., 0., 0., 0., 0.,\n",
-       "       0., 0., 0., 0., 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., 0., 0., 0., 0.,\n",
-       "       0., 0., 0., 0., 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., 0., 0., 0., 0.,\n",
-       "       0., 0., 0., 0., 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., 0., 0., 0., 0.,\n",
-       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
-       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])\n",
-       "Coordinates:\n",
-       "    id        int64 4\n",
-       "  * time (d)  (time (d)) float64 0.0 1.0 2.0 3.0 4.0 ... 363.0 364.0 365.0 366.0
" - ], - "text/plain": [ - "\n", - "array([0., 0., 0., 0., 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., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 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., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 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., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 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., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 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., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 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., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 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., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 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., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 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., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 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., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])\n", - "Coordinates:\n", - " id int64 4\n", - " * time (d) (time (d)) float64 0.0 1.0 2.0 3.0 4.0 ... 363.0 364.0 365.0 366.0" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "swiftdiff['px'].sel(id=4)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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28LyI4HB6WMi8NsaxGRmGWtsQqr3pqQ8qVliiIhHgXdaWGUccF0kngR6S9q5NtGZWVbqvcaQR3nqfN4FWFDwvCGd9yGSJkqaIWnGkiVLahKcmbUPdz7nT54SQ6nztEp+UiLiyogYExFj+vTp085hmVl72tiU5BpDbuQpMTQA/Que9wMWZhSLmVndylNimAqcosQBwN8jYlHWQZlZ+3JTUv7ULDFIugl4AthTUoOkCZLOkHRGuso04FVgHnAV8K1axWZm2XFTUmW+9rWvscMOOzBixIeuAihbza5jiIjxm1gewLdrFI6Z5UTjGElODOU59dRTOfPMMznllFOqVmaempLMrI7V+yB65TrooIPYdtttq1qmh8Qws0xtrCl08ArDBXfM5sWFy6ta5rC+W/Ojzw+vapmt4RqDmWXKfQz54xqDmWWqs1z5nMUv+/biGoOZZcqnq+aPE4OZZcpNSZUZP348H//4x5k7dy79+vXj97//fcVluinJzKwDu+mmm6pepmsMZpYpD7udP04MZpapztL53Jk4MZhZptz5nD9ODGaWKXc+548Tg5llyk1J+ePEYGaZ2tiE5LyQG04MZpapxprCBjyIXlstWLCAQw89lKFDhzJ8+HAmT55clXJ9HYOZZcqnq5ava9eu/OpXv2LUqFGsWLGC0aNHc/jhhzNs2LCKynWNwcwy5T6G8u28886MGjUKgF69ejF06FDeeOONist1jcHMcqHDJ4a7z4U3X6humTvtBUde1KpVX3vtNZ577jn233//infrGoOZZcqdz5VbuXIlxx13HJdccglbb711xeW5xmBmmeo0TUmt/GVfbWvXruW4447jpJNO4thjj61Kma4xmFmmfOVz+SKCCRMmMHToUH7wgx9UrVwnBjPLlK98Lt/06dO5/vrreeihhxg5ciQjR45k2rRpFZfrpiQzy1SnaUrKwIEHHtguNS3XGMwsF9yUlB9ODGaWqQ3hK57zxonBzDLlPob8cWIws0z5rKT8cWIws0xtHETPTUq54cRgZtlyRSF3apoYJI2VNFfSPEnnlli+jaQ7JD0vabak02oZn5nVnk9XLd/q1avZb7/92GeffRg+fDg/+tGPqlJuza5jkNQFuAw4HGgAnpY0NSJeLFjt28CLEfF5SX2AuZJujIg1tYrTzGrLfQzl23zzzXnooYfo2bMna9eu5cADD+TI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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots()\n", - "swiftdiff['rmag'].sel(id=plidx).plot.line(ax=ax, x=\"time (d)\")\n", - "ax.set_ylabel(\"$|\\mathbf{r}_{swiftest} - \\mathbf{r}_{swifter}|$\")\n", - "ax.set_title(\"Heliocentric position differences \\n Planets only\")\n", - "fig.savefig(\"rmvs_swifter_comparison-mars_ejecta-planets-rmag.png\", facecolor='white', transparent=False, dpi=300)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots()\n", - "swiftdiff['vmag'].sel(id=plidx).plot.line(ax=ax, x=\"time (d)\")\n", - "ax.set_ylabel(\"$|\\mathbf{v}_{swiftest} - \\mathbf{v}_{swifter}|$\")\n", - "ax.set_title(\"Heliocentric velocity differences \\n Planets only\")\n", - "fig.savefig(\"rmvs_swifter_comparison-mars_ejecta-planets-vmag.png\", facecolor='white', transparent=False, dpi=300)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "No handles with labels found to put in legend.\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAElCAYAAADgCEWlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABmPUlEQVR4nO3dd3wc13Xw/d/ZvuhELwTYqyiKpCiS6l2iJIpFzZIlKnac6HESO4kTx3GcxNbj2LHTnDiv7fhRHMemJEsuokSKoqjeRaqQYu8VvfftO3PfP2YAAiAAghCAXZD3+/kMd3ZmdvdgCMzZuXfmXFFKoWmapmldHIkOQNM0TUsuOjFomqZpvejEoGmapvWiE4OmaZrWi04MmqZpWi86MWiapmm96MSg9UtEHhWRJ+z5MhHpFBFnouMajIhcLSKHEh0HnD2WsdynIvKmiPyBPf+giLzcY92VInLEjmW1iBSIyNsi0iEi/zbasWnJSSeG85SInBSRm/os+5yIvHuu76WUKldKpSmljJGL8NyIiBKR6YNto5R6Ryk1a6xiGkzfWPr+fyRqnyqlnlRK3dJj0beBH9mxPAc8AjQCGUqpvxzL2LTkoRODdl4QEVeiYxinJgH7+jzfr4Zx56v+Pzh/6MRwARORYhF5RkQaROSEiPzpANtNtr+xu3q8bqOINIvIURH5wx7bOkXkGyJyzG6O2C4ipfa62SLyiv26QyJyX4/X/UJEfiwiL9iv+0BEptnr3rY322U3eXxGRK4TkUoR+WsRqQX+t2tZj/csFZH19s/XJCI/GuDne1REficiv7Y/e4eIXNJj/Ry7OaZVRPaJyMoe624Xkf3266pE5Kv28u5YRORxoAx43o7/a+e4Tx8Vkd+IyDr7c/aJyOJB/l9vFpGDItJm/8zSY133WaOIHAOm9ojrKeD3gK/Zz28SEYeIfN3+/2yy48ju83vxBREpB163l/++iBwQkRYReUlEJvX4fCUiX7Sbr1rs//Oe8f2h/doOe78u6rF/+v1dFZElIvKxiLSLSJ2I/GCgfaMNkVJKT+fhBJwEbuqz7HPAu/a8A9gOfBPwYB0gjgO32usfBZ6w5ycDCnDZz98CfgL4gAVAA3Cjve6vgD3ALKwD0iVADpAKVACfB1zAIqwmi4vs1/0CaAaW2OufBJ7uEbsCpvd4fh0QB/4J8AJ+e1mlvd4J7AL+3f5sH3DVAPvqUSAG3AO4ga8CJ+x5N3AU+Ia9n24AOoBZ9mtrgKvt+QnAoh7xVQ70/3GO+/RRIAzcbv9c3wO2DfCz5ALtPX6Wr9j76Q/6/g4MENcvgO/0eP7nwDZgor2f/x/wVJ+fYZ29j/3Aant/zbH/H/8OeL/P/+MmIAsrWTYAy+119wJVwGVYvzvTsc5gzva7uhVYa8+nAcsS/fc33qeEB6CnUfqPtf7gO4HWHlOQ04lhKVDe5zV/A/yvPf8o/SQGoBQwgPQer/se8At7/hCwqp94PgO802fZ/wO+Zc//AvhZj3W3Awd7PO8vMUQBX59lXYnhcvug4xrCvnqUHgda+0BUA1xtT7WAo8f6p4BH7fly4P9gtcnTXyw9/j/6TQxD2KePAq/2WDcXCA3wszzc52cRoJLhJ4YD2AnKfl6ElURdPX6GqT3Wvwh8oc++DAKTevw/XtVj/W+Ar9vzLwF/1s/PdLbf1beB/wvkJvrv7nyZdFPS+W21UiqrawL+uMe6SUCx3TzSKiKtWN+KC87ynsVAs1Kqo8eyU0CJPV8KHOvndZOApX0+70GgsMc2tT3mg1jf/gbToJQKD7CuFDillIqf5T26VHTNKKVMrINpsT1V2Mu69Px578ZKYqdE5C0RuXyIn9fT2fYpnLlvfNJ/m35xn59F9Xw+DJOAZ3v8nx3ASmI9f08q+mz/wx7bN2Mlp8F+lq7/58F+dwb7Xf0CMBM4KCIficiKc/4ptV50Z9GFqwI4oZSacY6vqwayRSS9x4GsDKsJoOt9pwF7+/m8t5RSNw834H4M1kFaAZSJiGuIyaG0a0ZEHFhNJ9Vd60TE0SM5lAGHAZRSHwGrRMQNfAnrG3D3ew0x1rPt03NR0+dnkQHiGaoK4PeVUu/1XSEik+1Z1Wf77yqlnhzmZ00bYPmAv6tKqSPAA/b/213A70QkRykVGEYMGrrz+UL2IdBud976xeo0nicilw32IqVUBfA+8D0R8YnIfKxvbF0Hgp8B/yAiM8QyX0RysNqVZ4rIWhFx29NlIjJniPHWYbUtn8vPVwN8X0RS7VivHGT7S0XkLvtb+J8DEay29Q+AAFaHrFtErgPuBJ4WEY9Y9wVkKqViWG37A11+OmD8Q9in5+IF4KIeP8uf0vus7Fz9FPhuVweyiOSJyKqzbP83InKRvX2miNw7xM/6GfBVEbnU/t2Zbn/uoL+rIvKQiOTZibvVfq+EXVp9PtCJ4QKlrOvn78Tq6DyB1RH8MyBzCC9/AKt9uRp4Fquf4BV73Q+wvjW/jHWg/B/Ab38TvgW4335dLac7jofiUeCXdlPCfWfbuMfPNx2rH6ASq59jIBvs9S3AWuAupVRMKRUFVgK3Ye2jnwAPK6UO2q9bC5wUkXbgi8BDA7z/94C/s+P/aj/rB9unQ6aUasTqxP0+0ATMAM74tn8OfghsBF4WkQ6sZLl0kM9/Fuv/9Wl7n+zF2ndDif23wHeBX2F18D8HZA/hd3U5sE9EOu147x+kiVEbArE7bzTtgiUij2J1bA90UNe0C4o+Y9A0TdN60YlB0zRN60U3JWmapmm96DMGTdM0rRedGDRtFEmfMteDbNdd5jwZiFW76juJjkNLDJ0YtKQhp8co6JqUiAR6PL96GO95RvnxPuuvExHTfv8OsYr7fX6Y8fcqjAf9lrnWtKSn73zWkoZSqpweZTBERAGXKKWOjvJHVyulJtp3Ca/CunP2A6XU/qG+wQDlKTRtXNJnDNq4ICJeEflXESkXq7TyT0XEb6/LFZFN9s1jzSLyjljlos8odz3YZyjLc1g3uc0VkTtE5BOxyjlX2Pc7dMXTX8nprvLgrfbnXS59BkcSkYvkdOnxOhH5xgA/7zIRed/+mXbZd1x3rfuciBy3z3BOiMiDg+yz/xCRanv6DxHx2uu6ypb/pYjUi0jNQGdKIrJXRO7s8dwtIo0ismCw/amNXzoxaOPFP2EVSluAdTdzCVYZZoC/xLqzOQ+rsNo3sI7za7Huer5TWSOU/fNgH2AnkzVYJaH3YJXCeNh+fgfwRyKyus/LrsUqMX0rcI29LMv+vK193j8deBXYglXsbjrwWj9xlGCVtvgOkI1VBvwZuxxFKvCfwG1KqXTgCmDnAD/S3wLLsPbZJVglzf+ux/pCrLuHS7BKcPxYRCb08z7r6H1H9+1AjVJqoM/VxjmdGLSkZzfx/CHwFaVUVxXSf8QqrwFWGegirNLOMWUNq3ku12EXi1WxsxH4FlZt/0NKqTeVUnuUUqZSajdWue1r+7z2UaVUQCkVGsLnrABqlVL/ppQKK6U6lFIf9LPdQ8BmpdRm+7NfAT7GOiADmMA8EfErpWqUUvv6eQ+wqtd+WylVr5RqwCpNvbbH+pi9PqaU2oxVpr2/oVGfAG4XkQz7+Vrg8SH8vNo4pRODNh7kASnAdjlddnmLvRzgX7AGh3nZbmL5+jm+f7VdmjxbKbVAKfU0gIgsFZE3xBo1rA2rFlJun9eeS0nrgcpK9zUJuFd6l5m+CiiyK4Z+xo6lRqwR72YP8D7FWOW7u5yyl3Vp6lN5tt9S50qpaqx6S3eLSBZW7aPhFPjTxgmdGLTxoBEIYY321jW+RKZSKg3A/ub9l0qpqVjF1v5CRG60X/tp7uD8FVYBuVKlVCZW5VDps40aYL4/A5WV7m+7x3uOpaGUSlVKfR9AKfWSXb68CDgI/PcA71ONlWS6lHG6lPi5+iXWmcy9wFal1HBKgmvjhE4MWtKzyyn/N/DvIpIPVju8iNxqz68Qq0SzcLr0dVfZ5XMt191TOtYAOmERWQJ89izbN2A18wz0eZuAQhH5c7tjOF1E+qtU+gRwp4jcKlaJaZ/dWTxRRApEZKXd1xDBav4ZqMT0U1gVXfNEJBerT2a490o8hzUc659h9Tlo5zGdGLTx4q+xmou2iVXO+VVOt4fPsJ93Yo3/+xOl1Jv2urOVux7MHwPfFqvc9DexyokPSCkVxCob/Z79ecv6rO8AbsY6q6kFjgDX9/M+FViXzX4DK9lUYI2l7bCnv8T65t+M1efxx33fw/YdrL6J3Vid6TvsZefM7kN5BpgCrB/Oe2jjh66VpGnakIjIN4GZujz5+U/flKNp2lmJSDbWJa1rz7atNv7ppiRN0wYlIn+I1Zz1olLq7bNtr41/uilJ0zRN60WfMWiapmm9jPs+htzcXDV58uREh6FpmjaubN++vVEpldffunGfGCZPnszHH3+c6DA0TdPGFRE5NdA63ZSkaZqm9aITg6ZpmtbLmCUG+7b+D+3a8vtE5P/2s811ItImIjvt6Zv9vZemaZo2esayjyEC3KCU6hQRN/CuiLyolNrWZ7t3lFIrxjAuTdM0rYcxSwx2ffxO+6nbnvRNFJqmaUlmTPsY7EqRO4F64JUBBim53G5uelFELhrgfR4RkY9F5OOGhobRDFnTNO2CM6aJQSllKKUWABOBJSIyr88mO7BG4boE+P+wSv329z6PKaUWK6UW5+X1exmupmmaNkwJuSpJKdUKvAks77O8XSnVac9vBtx2HXlN0zTNZsTivLpuEyd3HBmV9x+zPgYRyQNiSqlWEfEDN2EN8N5zm0KgTiml7IFRHEDTWMWoaZqW7Cp2H2fDhg00Gm2EQ2EmL5ox4p8xllclFQG/FBEn1gH/N0qpTSLyRQCl1E+Be4A/EpE41lCO95/joO6apmnnpVgoyitPbOKjyj34xM2qZctZuHzZ2V84DOO+uurixYuVLomhadr57NiHB3h+ywu0mp3MyZrCirVrSM3J+FTvKSLblVKL+1s37mslaZqmna/CHUFeXLeBXfWHSBM/9123mrnXLRj1z9WJQdM0LQkdeGsnL7zxEp0qxIL8WSx/eDW+dP+YfLZODJqmaUkk0NTOpnXPcqDtBFmOVNbeeh/Tls4d0xh0YtA0TUsSn2zZxsvbXiesYiyZOJ+bH1qB2+8Z8zh0YtA0TUuwtppmNj6xnmOBSnKdmXx21f2Uzp+asHh0YtA0TUsQ0zT5aMPbvL7rXeLK5Kppi7nu/uW4PIk9NOvEoGmalgCNJ2vZ8NR6KiL1FLlzWHXvagpnliY6LEAnBk3TtDFlGibv/OYV3jn4IQLcOPdKrrznRhzO5Bk3TScGTdO0MVJzsIINzzxLbayZMn8BKz97F7llBYkO6ww6MWiapo2yeDTGG7/awtYTO3CLi9sX3cjiFVficCTPWUJPOjFomqaNovKdR9mwcSNNZjvT00u5c+0aMguyEx3WoHRi0DRNGwXRYJiXH9/E9up9+MTDmitu55JbliQ6rCHRiUHTNG2EHd26j+df3kybCjA3exp3PLya1AnpiQ5ryHRi0DRNGyGhtgAvPr6B3Y2HSRc/99+4htlXX5LosM6ZTgyapmkjYO/rO9jy9st0qjALC+Zw68Mr8aWNTdG7kaYTg6Zp2qfQ0djGC48/y8G2k0xwpLH29vuZtnh2osP6VHRi0DRNGwbTNNm5ZRsvf/gmERVjaekl3PTQHbh9Y1/0bqTpxKBpmnaOWqsb2fjEsxwPVpHnyuSh1Q8wcd6URIc1YnRi0DRNGyLTNPng2bd4Y897GMrkmulLuPb+W3G6nYkObUSNWWIQER/wNuC1P/d3Sqlv9dlGgB8CtwNB4HNKqR1jFaOmadpAGo7XsOHX66mMNFDsyWX1fWvIn16S6LBGxVieMUSAG5RSnSLiBt4VkReVUtt6bHMbMMOelgL/ZT9qmqYlhBE3eOfXr/Du4Q8RhJvnXc3ld12fVEXvRtqYJQallAI67adue1J9NlsFrLO33SYiWSJSpJSqGas4NU3TulQfOMWGZ56jLt7CpJQiVj14F9kT8xId1qgb0z4GEXEC24HpwI+VUh/02aQEqOjxvNJe1isxiMgjwCMAZWVloxavpmkXpngkxutPbmbbqZ24xcWKS29i0R1XJG3Ru5E2polBKWUAC0QkC3hWROYppfb22ET6e1k/7/MY8BjA4sWLz1ivaZo2XCd3HGHjpo00mx3MyCjjzrVryMifkOiwxlRCrkpSSrWKyJvAcqBnYqgEeg5hNBGoHsPQNE27QEUCYV5+fCM7avbjFy93XXkH82++LNFhJcRYXpWUB8TspOAHbgL+qc9mG4EvicjTWJ3Obbp/QdO00XbovT288OqLtKsg83Kmc/vDq0nJSkt0WAkzlmcMRcAv7X4GB/AbpdQmEfkigFLqp8BmrEtVj2Jdrvr5MYxP07QLTLC1k83rnmNv81EyJIUHbr6bWVdenOiwEm4sr0raDSzsZ/lPe8wr4E/GKiZN0y5ce1/7mBffeYWgirCoaC63rl2JN9WX6LCSgr7zWdO0C0p7fQubHn+Owx2nyHakc++Ku5m8aGaiw0oqOjFomnZBME2THZu38urHbxJVcS6ftIAbH7wDl9ed6NCSjk4Mmqad95orG9j45HpOhmrId01g1V2rKJk7OdFhJS2dGDRNO2+ZhsnW9W/w5t6tmJhcN3MZV3/mZpyu86vo3UjTiUHTtPNS/dFqNvxmPVXRRkq8eay6fw35U4sTHda4oBODpmnnFSNm8PavX+LdIx/jwMGt869l6ZprL5hyFiNBJwZN084blXtPsvG556iPtzIltZiVD97FhJLcRIc17ujEoGnauBcLR3n1yc18WL4Lr7i5c8ktLFy+TJ8lDJNODJqmjWvHPz7E85s30WJ2MCtzMivWriE9LzPRYY1rOjFomjYuhTtDvPT4Rj6pPUCq+LjnmjuZd8OliQ7rvKATg6Zp487Bd3ez+bUttKsgF+fO5PaHV+HPTE10WOcNnRg0TRs3gi2dvLDuWfa1HCNTUnnwlnuZccVFiQ7rvKMTg6Zp48Lulz9iy/uvElIRFhfP45a1K/Ck6KJ3o0EnBk3Tklp7XQvPP7GeIx0V5Dgz+MyKe5i0cEaiwzqv6cSgaVpSMk2Tjze9x2s73iam4lwxeRE3PHgbLo8uejfadGLQNC3pNJXXsfFXz3IqXEuBawKr7llD8eyyRId1wdCJQdO0pGEaJu//7nXe2r8VheL62Zdz1b036aJ3Y0wnBk3TkkLtkUo2/OZZamJNTPTls+r+u8ibUpjosC5IOjFompZQRszgzae28P6x7TjFwfJLrmfJqqt1OYsE0olB07SEqdhznA3PbaDRaGNqWgkrH7ybrOLsRId1wRuzxCAipcA6oBAwgceUUj/ss811wAbghL1ovVLq22MVo6ZpYyMWivLKE5v4qHIPPnGzaulyFixfiogkOjSNsT1jiAN/qZTaISLpwHYReUUptb/Pdu8opVaMYVyapo2hYx8e5Pktm2g1O5mTNYUVD68hNScj0WFpPYxZYlBK1QA19nyHiBwASoC+iUHTtPNQuCPElnUb2Fl/kDTxcd91q5l73YJEh6X1IyF9DCIyGVgIfNDP6stFZBdQDXxVKbWvn9c/AjwCUFamr23WtGR34K2dbH7zJTpUiEvyZrH84ZX4M3TRu2Q15olBRNKAZ4A/V0q191m9A5iklOoUkduB54Az7n1XSj0GPAawePFiNboRa5o2XIHmdl5Y9xz7W4+T5UjloeX3MX3p3ESHpZ3FmCYGEXFjJYUnlVLr+67vmSiUUptF5CcikquUahzLODVN+/R2vvQBL219nbCKclnJxdyy9k7cfk+iw9KGYCyvShLgf4ADSqkfDLBNIVCnlFIisgRwAE1jFaOmaZ9eW20zGx9fz7FAJbnODB5YeR9ll0xLdFjaORjLM4YrgbXAHhHZaS/7BlAGoJT6KXAP8EciEgdCwP1KKd1UpGnjgGmafLThHV7f9Q5xZXLV1MVc98CtuujdODSWVyW9Cwx6kbJS6kfAj8YmIk3TRkrjyVo2PL2einA9he5sVt27hqKZpYkOSxsmfeezpmnDZhom7/7mFd4++CEAN8y5gqvuvQmHU5ezGM/OmhhEZKjXg7b2c5WRpmnnqZpDFWz43bPUxpop8xew8oG7yJ1UkOiwtBEwlDOGXwKKwZuBFPALrJIXmqadx+LRGG/8agtbT+zALU5uW3ADl628She9O4+cNTEopa7vu0xECpVStaMTkqZpyap81zE2btxAo9HO9PSJ3PnQXWQW6qJ355vh9jE8DPzzSAaiaVryigbDvPLEJj6u2odPPKy+/DYW3Lo00WFpo2S4iWGViASBV5RSh0YyIE3TksvRbft5/qUXaFMB5k6Yyh0PryY1Wxe9O58NNzHchVXraI2ITFdK/cEIxqRpWhIItQd4cd0GdjceJl38fOaG1cy5ZkGiw9LGwLASg1KqDthiT5qmnWf2vbGDF996mU4VZkHBbJavXYUv3Z/osLQxMqzEICI/BlKVUp8TkVuUUi+PcFyapiVAR2MbLzz+LAfbTjLBkcba2+5n2mWzEx2WNsaG25QUBers+RsAnRg0bRwzTZOdWz7glQ/fIKxiLC2dz00PrcDt00XvLkTDTQxBINOulqoHRNC0cay1uomNT6zneLCKPGcmn119P6UXT010WFoCDTcxNGMVufsx8N7IhaNp2lgxTZMPn3ub13e/i6FMrpm+hGvvvxWn25no0LQEO6fEICJZwL8Ds4AnsO50/sLIh6Vp2mhqOF7Dhl8/S2WknmJPDivvvYvCGSWJDktLEueUGJRSrSLyfWAy0AjMB84YcEfTtORkxA3e/c2rvHPoAwThpouu5oq7r9dF77RehtOU9AXghFLqJWD7CMejadooqT5wig3PPEddvIVJ/kJWPng3OaV5iQ5LS0LDSQwtwBdFZBawC9iplPpkZMPSNG2kxCMxXv/Vi2w7+QlucXHHopu4dMUVuuidNqBzTgxKqe+JyGvAYWABcA2gE4OmJaFTO46wcdPzNJntzMgo486H1pBRMCHRYWlJ7pwTg4h8G3ACO7HOFt4c4Zg0TfuUIoEwLz/+PDtq9uEXL3ddeQfzb74s0WFp48Rwzhi+KSIFWLWS7haRaUqpPxz50DRNG44j7+/l+Vc2066CzMuZzu1rV5MyIS3RYWnjyHDvY/g/wP9TSulaSZqWJEJtATave449TUfIkBTuv+luZl91caLD0sah4SaGnwN/JCKpwJNKqZ1ne4GIlGLd91AImMBjSqkf9tlGgB8Ct2PdXf05pdSOYcaoaReMva9v58W3XyGowiwqnMsta+/El6aL3mnDM9zE8KdY9ZJcwH9idUCfTRz4S6XUDhFJB7aLyCtKqf09trkNmGFPS4H/sh81TetHR30rm554lkPtp5jgSOfu29cwdfGsRIeljXPDTQzHsA7eG5RSXxnKC5RSNUCNPd8hIgeAEqBnYlgFrFNKKWCbiGSJSJH9Wk3TbKZp8smLW3nlozeJqjjLyhZw00N34PK6Ex2adh4YbmLYB1QAXxCRf1FKndPlDiIyGavz+oM+q0rs9+1SaS/rlRhE5BHgEYCyMl3DT7uwtFQ1suHJZzgZrCHflcWqNaspuWhyosPSziPDTQwzgQbgMawb3oZMRNKAZ4A/V0q1913dz0vUGQuUesz+bBYvXnzGek07H5mmybb1b/LGnvcxMbl2xhKuuf9WnC5d9E4bWcNNDLOxxmD4MXAKq8/hrOwy3c9gdVj3V2OpEijt8XwiUD3MGDXtvFF/rJoNv36WqmgDJd5cVn3mLvKnFSc6LO08NdzEkAX8NfA1hlhd1b7i6H+AA0qpHwyw2UbgSyLyNFanc5vuX9AuZEbc4O2nX+bdIx/hwMEtF1/Dsruu0+UstFE13MTwbWC2UuqQiJhDfM2VwFpgj4jstJd9A3ugH6XUT4HNWJeqHsW6XPXzw4xP08a9qv0n2bD+OerjrUxOLWLVg3czoSQ30WFpF4AhJQYRcWI18/y9UupnSqlK+zlKqa8P5T2UUu/Sfx9Cz20U8CdDeT9NO1/FIzFefeIFPizfhUdc3HnZzSy87XJ9lqCNmSElBqWUISJ7gWmjHI+mXdBO7jjMhk3P02J2MCtzEivW3kV6Xmaiw9IuMOfSlJQCfE1EbuZ0h7BSSq0a+bA07cISCYR5ad1GPqndT4p4ufvqO7n4xksTHZZ2gTqXxHC5/bjInqCfS0k1TTs3h97dwwuvvUi7CnJx7gxuf3g1/szURIelXcDOJTFMGbUoNO0CFGzpZPO659jbcpQMSeHBW+5hxhXzEh2Wpg09MSilTo1mIJp2Idn9ykdsee9VQirCpUUXccvaO/Gm+hIdlqYBw79cVdO0YWiva+H5J9ZzpKOCbEc6n7nzHiYtnJHosDStF50YNG0MmKbJ9k3v8+qOt4ipOFdMXsQNn71NF73TktJwhva8Uyn1/GgEo2nno6aKBjb+6hlOhWopcE1g1d2rKZ4zKdFhadqAhnPG8F1AJwZNOwvTMHn/mdd5a99WFIrrZ13OVffdpIveaUlvOIlh0LuXNU2DuqNVbPjNeqqjTUz05bHq/rvJm1KY6LA0bUiGkxj0vQuaNgAjZvDmU1t4/9h2nOJg+fzrWLL6Gl3OQhtXdOezpo2Qij3H2fjcBhqMNqamlrDyoTVkFeuid9r4oxODpn1KsXCUV5/YxIcVe/CJm5VLbmXB8qX6LEEbt4aTGOpGPApNG6eOfXSQTS9uosXsZHbWZO5Yu4b0XF30ThvfzjkxKKVuHo1ANG08CXeE2PL4BnbWHSRNfNx77Uouun7R2V+oaeOAbkrStHN04O2dbH7jJTpUiPl5M7nt4VX4M3TRO+38oRODpg1RoLmdF9Y9x/7W42RKKg8tv5fpyy5KdFiaNuKGlRhE5C+6xm0WkVlKqUMjG5amJZddL33Alq2vE1ZRLiuZxy1rV+L2exIdlqaNinNKDCKSBfw7MFtEwsBu4AvosZm181RbbTPPP7Geo52V5DozeGDlfZRdogcy1M5v55QYlFKtwOdF5A6gFrgFWD8KcWlaQpmmyUcb3+X1nW8TUwZXTrmU6z+7HJdHF73Tzn/D7WO4FvhPYBlQxBBqJ4nIz4EVQL1S6ozRSETkOmADcMJetF4p9e1hxqdpw9Z4qo6NT62nPFxHoTubVfesoWhWaaLD0rQxM9zEkAX8NfA1rKakofgF8CNg3SDbvKOUWjHMmDTtUzENk/d+9xpv79+GAm6YcwVX3XsTDqe+UU27sAw3MXwbmK2UOiQi5lBeoJR6W0QmD/PzNG1U1R6u4LnfPkttrJlSfz6r7r+L3Mm66J12YRpWYlBKVQKV9vzXRzCey0VkF1ANfFUpta+/jUTkEeARgLKyshH8eO1CE4/GePOpl9h6fAcucXDbguu5bOXVupyFdkEb7uWqPwZSlVKfE5FblFIvj0AsO4BJSqlOEbkdeA7od8xDpdRjwGMAixcv1tVetWEp33WMjRs30mi0MS19IisfuovMwuxEh6VpCTfcpqQop2sm3QB86sSglGrvMb9ZRH4iIrlKqcZP+96a1lMsFOXlx5/n46q9+MTN6mXLWbB8WaLD0rSkMdzEEAQyRcQNjEhbjogUAnVKKSUiSwAH0DQS761pXY5+sJ9NW16gVQWYO2Eqdzy8mtTsjESHpWlJZbiJoRkIAT8G3hvKC0TkKeA6IFdEKoFvAW4ApdRPgXuAPxKRuP3e9yuldDORNiJC7QFeXLeB3Y2HScPPZ65fzZxrFyQ6LE1LSsO983kW8ATWpadDulxVKfXAWdb/COtyVk0bUfvf3MnmN7fQqcIsyJ/N8odX4Uv3JzosTUta53zns4h8H5gMNALz0Xc+a0kq0NTO8+vWc7DtJFmONNbeeh/Tls5NdFialvSG05T0BeCEUuolYPsIx6NpI+KTF7fy8gdvEFYxlkycz80PrdBF7zRtiIaTGFqAL4rILGAXsFMp9cnIhqVpw9Na3czGJ5/heKCKXGcmn111P6XzpyY6LE0bV4Yzgtv3ROQ14DCwALgG0IlBSyjTNPlww9u8vutdDGVy1bTFXP/AbTjdzkSHpmnjzjknBhH5NuAEdmKdLbw5wjFp2jlpOFHLhqfXUxmpp8idw6r71lA4Y2Kiw9K0cWs4ZwzfFJFvYt1ncLeITFNK/eHIh6ZpgzPiBu/+9lXeOfgBgnDj3Cu58p4bddE7TfuUhnsfw8+BPwBSgZ+MXDiaNjQ1Byt47nfPUhdvpsxfwKrP3kVOWUGiw9K088JwE8OfYpXFcAE/xOpn0LRRF4/GeONXL7L1xCe4xcXti25k8YorddE7TRtBw00Mx7AK3G1QSn1lBOPRtAGd2nmUjRs30mS2Mz29lJVr7yKjYEKiw9K0885wE8M+oAL4goj8i1LqshGMSdN6iQbDvPT4JnZU78MvHtZccTuX3LIk0WFp2nlruIlhGtb9DI/Zj5o2Ko5s3cemlzfTpgLMzZ7GiofXkDIhLdFhadp5bbiJoUIp9bqIFAH1IxmQpgGE2gJsXreBPU2HSRc/99+4htlXX5LosDTtgjDcxLBcRA5jVVc9hdUZrWkjYu/rO9jy9st0qjALC2Zz68Or8KXponfahUmZCjMYw+yMYXTGMAMxzM4oRiCGd1IGvlkjP7jUcBNDFvDXwNewLlvVtE+to6GNTY8/y6H2k0xwpPHw7fczdfHsRIelaaNCKYUKGxjtEYy2KEZbxJrau+ajGB1RzGAM+huAQIDrSpMqMXwbmK2UOiQixkgGpF14TNNk55ZtvPzhm0RUjKVlC7jpwdtx+3TRO218UzGDeEuEeHOYeFMIozlszTeHMVrCqKh5xmscqW6cmR6cWV48Zek40tw40zw40tzWOvvRkeJGHDIqcQ8pMYiIE6gE/l4p9TOlVKX9HKXU10clMu2C0FrdyIYn1nMiWE2eK4uHVq9i4rwpiQ5L04ZMKYXRHiVeHyRWH7QfQxhNIYz2aK9txePAle3DlePHNz0LZ6bXSgIZXms+w4O4En9PzpASg1LKEJG9WFcjadqnZpomHzz7Fm/seQ9DmVwzYwnXfuZWXfROS2pGR5RYdSfRmsDpRNAQQkVON5yI34U7PwXvjAlWEsj24bQfHWluREbnW/5IOpempBTgayJyM1BtL1NKqVUjH5Z2Pms4XsNzv15PVaSBYk8uq++7i/zpxYkOS9O6KVNhNIeJVncSqwlYyaA6gNlx+gzAkeHBnZ9CyqJ83AUpuPJScOenjJuD/2DOJTFcbj8usifov0tE0/plxA3e+fUrvHP4QxwIN8+7msvvul4XvdMSzuiIEi3vIFrRbj1WdZ4+C3AI7vwUfDOycBen4S5KxVOUiiPFndigR9G5JIZP1fArIj8HVgD1Sql5/awXrLpLtwNB4HNKqR2f5jO15FF94BQbnnmOungLk1KKWPXgXWRPzEt0WNoFSBkm0apOKwGUW4nAaI1YKx2CuziVlEX5eIrTrESQn4K4k+/LSzAYRClFamrqiL/3WRODiJTZs/2eHfRY36qUah/krX4B/AhYN8D627DqL80AlgL/ZT9q41g8EuO1JzfzwamduMXFiktvYtEdV+iid9qYUXGTaGUHkeNtRE60ET3V3n01UNeVP54ri/GUZeApTkWSuJ9LKcWpU6fYsWMH+/bt4/LLL+emm24a8c8ZyhnDL7GSwmCNZgrrwD/QQR+l1NsiMnmQ91gFrFNKKWCbiGSJSJFSqmYIMWpJ6OSOI2zctJFms4OZGWWsWLuGjHxd9E4bXcpQRCvaiRxttZJBeQfErUTgLkwh5dICvFMz8U7KwJnhTXC0QxMIBNi1axfbt2+nqakJr9fLokWLmD9//qh83lkTg1Lq+lH55DOVYBXm61JpLzsjMYjII8AjAGVlZX1XawkWCYR5+fGN7KjZT4p4ufuqFVx80+JEh6Wdx+LNYcKHWwgfaSFytNXqHxBwF6aStrQQ75RMPFMycaaOn34BpRQnT55k+/btHDhwAMMwKC0t5eqrr2bu3Ll4PKN3n89wb3AbDf2dkfTbfKWUegyrgB+LFy/WHeBJ5NB7e3jh1RdpV0Hm5Uzn9odXk5Kli95pI8uMGkSOtRI+3ELkSCvxxhBgNQ2lXJKHd0YWvmlZ47KDuLOzk507d7Jjxw6am5vx+XwsXryYRYsWUVAwNoNRJVNiqARKezyfyOnLYrUkF2ztZPO659jbfJQMSeGBm+9m1pUXJzos7TxidEQJH2wmtL/JOiuImYjbgXdqJqmXF+GbMQFXnn9cXipqmiYnTpxg+/btHDx4ENM0mTRpEtdeey1z587F7R7bBJdMiWEj8CUReRqr07lN9y+MD3te+5gt77xCUEVYVDiXWx9eiTfVl+iwtHFOKUW8PkhofzPhA01EKzpA2WcFiwvwz8nBOzUzKe4UHq729vbus4PW1lb8fj9Lly5l0aJF5OUl7qq9MUsMIvIUcB2QKyKVwLcAN4BS6qfAZqxLVY9iXa76+bGKTRue9voWNj3+LIc7ysl2pHPviruZvGhmosPSxjGlFLHaIKE9DYR2N3Y3EbknppFx0yR8c7JxF6WOy7OCLrFYjEOHDvHJJ59w/PhxlFJMnjyZG2+8kTlz5uByJf77+phFoJR64CzrFfAnYxSO9imYpsmOzVt59eM3iao4l09awI0P3oHLO/7ac7XEU0oRrwsS3N1AaE8j8YYQCHinZpJ2VTH+OTk4M8fH1UMDUUpRXV3Nzp072bNnD+FwmIyMDK6++moWLFhAdvbIV0j9NBKfmrRxpbmygY1PrudkqIZ81wRW3bWKkrmTEx2WNg7F6gIEdzcS2t3QOxlcWYJ/Xg7OtPFfXbezs5Pdu3ezc+dO6uvrcblczJ49m4ULFzJlypSkvZ9HJwZtSEzDZOv6N3hz71ZMTK6buYyrP3MzTlfy3gykjb2YYRKIxFH2tYIOEdJ9Lhx2eWijI0pwVwPBT+qJVXVayWCKnQwuysGZPv6TgWEYHDlyhE8++YQjR45gmiYlJSXccccdzJs3D78/+Qed0olBO6v6o9Vs+M16qqKNlHjzWHX/GvKn6qJ3F6pQ1GBXZStH6jo4Ut/J0fpOatvDNHVGaQvFztjeDyz3+rhZuZkXFRxA5wQPrmuKKbtyIp5x3kwEVlNRTU0Nu3fvZs+ePQQCAVJTU1m2bBkLFiwgPz8/0SGeE50YtAEZMYO3fv0S7x35GAcObp1/LUvXXJu0p7/a6IjEDT4pb+X9Y01sO9bEJxUtxAzrlCDd62JafhpzijLITfWQk+YlzetCUGQ3RSioCFJQE8IdUbS5hBdTTH4TDnKspR3ebiT9w6NcNjmbpVOyuWF2PtPz08ZVx3JLSwt79uxh9+7dNDY24nA4mDlzJgsXLmT69Ok4nePzjFqUGt/3hy1evFh9/PHHiQ7jvFO17yQbnn2O+ngrk1OKWPXg3UwoyU10WCMubpjUdUSobg3REY4RiZmE4wamCX6PE5/bQYrHRV66l8IMH6ne8/+7VMww2V3ZytZjTbx/rIntp1qIxE0cAheXZLJsWg7LpuQwpyiDggxvrwO50R4hsL2OwEd1GM1hxOvEPy+XlEX5eKdkIg4hZpicagqwp6qND0808+GJZo41BACYnJPCzXMLWDG/mPkTM5MySYRCIfbt28fu3bspLy8HrAoM8+fPZ+7cuaSkpCQ4wqERke1KqX5LEujEoPUSC0d59cnNfFi+C6+4ufmy61h427Lz4iyhLRRj+6lm9lS2s6eqlQM1HdS0hTDP4U8gzeuiIMPL5JxUpuWnMS0vlWl5aUzNSyM7NYnax2NhCDaBMgEF/mzw9n8Hesww2V/dzrbjViL46GQzwahVcnpOUQaXT83himk5XDYlm0z/mVeeKcMkfLCFwEe1hA81g7I6kVMvK8R3UQ4Oz9m/Nde2hXn1QB0v769j67FGYoZiZkEa91w6kTULJ5KXntjmpng8zpEjR9i9ezeHDx/GMAxycnK45JJLuPjii5kwYfzVANOJQRuS4x8f4vnNm2gxO5iVMYkVa+8iPS8z0WF9KofrOnj1QB1vHmxge3kLhqkQgWl5acwrzqAsO4XiLD9FWX4y/W58bgdelxOHQDhmEooZBCJx6jvC1LVHqG0LU9sW5mRTgOONAaLx02P2Zqd6mJ6XxrR8K1lMz09jWl4aJVn+7s7XURFuh5PvQPk2qPwYmo9BZ92Z23nSURPKCOXMo8o/k63GHLbUZ/NJRRuhmJUIpuenccW0HC6fmsPSqTmDJrtYY4jgx7UEttdhdsRwpLtJvbSQ1MUFuHKH38HaForxwu4afru9gk/KW/E4HaxaUMwfXjOVmQXpw37fc2WaJhUVFezevZt9+/YRDodJTU1l3rx5XHLJJRQVFSXlGc1Q6cSgDSrcGeKlxzfySe0BUsXHbdfczLwbLk10WMPW1Blhw85qntlRyb5qqxL8RcUZXD8rnyun53LxxEzSRqBJyDAVVS0hjjV2cqy+k2MNVkfs0fpOWoKnO2H9bidT81IpnZBCQYaX/Awf+eleslM9+N1OfB4nXpcD04S4aWKYipihiBkm0bhJ1DCJGSaRuP08bkKknbKGt5jW8CqlLVtxmVEMcdOQPofW1Kl0+osJebKJGEJHJA6BRlzBOiYEy5nFcfLE2i8tkkX5hKWYU66j9NI7yC2eNOjPrAyT0L4mAttqiBxvAwf4ZmVbZwezshHnyB4oj9Z38Mv3T/Hb7RWEYybXzcrjL26eyfyJWSP6OV2UUlRVVbF371727dtHR0cHbreb2bNnM3/+fKZOnTpu+w360olBG9DBd/ew+TWr6N3FOTO5/eFV+DNHfuCPsbC3qo3/efcEz++qJm4qLi7J5O5FJdx2cREFGWNboqM5EO1OEkfrOzna0El1a4j69jDt4fiw3jONIDc6drDC+QHXOHbjlRjVKpsXjaW8ZCxml5pGhDO/4Wf63eSmeSjI8DE9P40ZeanMTevgoshOfKfeguNvQrDR2jj/Iph2PUy7ASZdAW7rm7/RHqHzg1oCH9ZidkRxZvtIvayQ1Evzx6R0dUsgyhPbTvHz907QEoxxx/wi/uqWWUzO/fS/q0opamtru5NBa2srDoeD6dOnM2/ePGbNmoXXO/6vnOpLJwbtDMGWTl5Y9yz7Wo6RISncefPtzLjijIH1kp5SirePNPJfbx5l2/Fm0rwu7l08kQeWlI1ps8O5CMcM6tsjtASjhGMGoZhBOGbicghOp1iPDsHjdOCPt5Jd+SoZJ7aQUvkuYkQw04sxZq/EnLsKs/gylEj3fQMKa590/VV7XVbT2KBME+r2wLHXral8GxhRlMNLNO9eOsM3EKrPAyX4Zk4g9YpifDMnIKPZPDaAjnCM/377OP/9zglihsnnr5zMV26eSYrn3M8A6+vru5NBU1MTIsK0adO46KKLmD179ri43+DT0IlB62X3yx+x5f1XCakIi4rncevaFXhSxl/Ruw9PNPOvLx3iw5PNFGf6+PyVU/jMklIyfOO0NIcRg+YT0HAQKj6AU+9DzU6rAzmzDOasgLmrYeJlMIoXA5gd7QTf/JjAzhCxQAZCJ6nOV0hzbsblaYH0IsgogfRCSMmBlGyrczslG9LyIX8upI7uFWz1HWF+8PJhnv6ogokT/Hx3zcVcO/PsReeampq6k0F9fT0iMDk/g4sK3Mwp9JGamg7eDMiZDtlTwDlOf5eGQCcGDYD2uhaef2I9RzoqyHaks+rOlUxaOCPRYZ2zYw2dfGfTft441EB+upcv3zCdz1xWhidZq2wqBS0nofoTaKuAjloINEC4DUKt1mO41bqKyLSbmZxemLgYJl8Fs++Awvkwyh2dsYYggW01BLbXocIG7qJU0i4vxj83DUfrQajZBS0noL0G2quhowZCzVb8fWVPhZm3wcIHoeCiUYv5g+NN/M2zezjeEOCuhSU8uuqiXl8MlFI0NDRw4MABDuzfT22d1Slf5m7hotgu5nKIdIL9v7nDDUWXwNTrYPqNULpsVBPyWNOJ4QJnmiYfb3qP13a8TUzFWTZ5ITd89rbxUfTOiFvfoGt2Ea3ew+Hjx2luqMEjisLcCUwsyMOVPQlyplkHoIKLwZkk9xq0lsNH/wP7noXWU6eXu1MhLQ98WeDLBL/9mJoHOTMgb6bV1u8e/bM4ZSrCB5vp3FpN5EgrOAX/vFzSrijGU5Y+tKtujDiEWqwk0V4Fdfvg+Ftw4i0wotaB9aZHoXjhqPwMkbjBj18/yo/fPEZRpo//+MwlFLnDVjI4cICmpiZAUSZ1zFEHmeusIHPyfChZDEXzIaMYUvPB4YRYyErWTUeg/oB11la1HZQBGRNh/r2wcK31+zbO6cRwAWuqaGDjr57hVKiWAtcEVt29muI5g195knDxCBzeAgdfgMMvWd+mgTAe6s1MSM2haEI6bjNsXarZVmn94YJ10C29DMqugJm3QNGCUf+mfYbm4/DOD2DXU9bzqdfBrNusA1HONPAmvu/DCMQIfFRLYFsNRmsEZ4aH1KVFpC4pHLl6RcFm2PFLeP9HVuf2/Pvhxm9CZsnIvH8Ppmny6kf7efrlreTEG0iVKA6Byd5W5oS3M9tRTvpFt8BFa6z/D8853IQWboMjr8DuX8PR16ymvTkr4Mo/t87qximdGC5ApmHy/jOv89a+rSgUV89aylX33ZTcRe9aTsHH/wOfPGE1q/gnEJt2C79rncHPjmXizZ/Bd+5ewKKyPjcTGTHr23nNTqvjtHwr1O4FlNUePnO5dWCeck33VTajovEovPNv1gHE4YJLfw+u/DPInDh6n3mOohUddG6tJri7AeLKHv2sGP/cbMQ5Ss0k4XZ49wew9SfWt/Kr/gKu+PKnPiOKx+OcOHGCAwcOcPDgQYLBIE6ng0xHkIXRD7hU9uHOLMK95Auw4EFIzfn0P0tHLXz4GHz0MythzFkJN3/b6o8YZ3RiuMDUHa1iw2/WUx1tYqI3n1X330XelMJEhzWwlpPw9r9a37CVsg7iiz/P++Y8/mr9fmraQnzx2mn82U0zzn6FTZdAIxx5GQ69aF1pE+0Ed4p1Geas22DGrVZzzkio3glbfwR7n7H6BhZ/Hq74U8goGpn3/5RUzCS4u4HObTXEKjoQj5OURfmkXV6Eu2AML01uOQUv/x0c2AhZZXDLd2HOned0RhcMBjl69CiHDh3i6NGjRCIRPB4PMwpSmRvbzfTajXglTk3BdTxas4ytzOfbq+ezeuEIn6VEOmHbT+Ddf7f6ha7+Klz9l8nTjDkEOjFcIIyYwZtPbeH9Y9txioMb5l/FktXXJG85i2gA3vpn66AqTrj0c3DlnxHyF/JPWw7yi/dPMjU3lX+975IzzxLORTxi3Rl8aIuVKNorAYHSpVZz06SrrPZv1zk0oQSbrWauHeug/H2rCeuyL1jfhNOSo5JmvCVM4IMaAh/VYgbiuPL8pF1eTMqifBy+BB7Ajr8FW74O9fth4hK44kswe4V1NtGPxsZGDh06xOHDhykvL0cpRWpqKjMn5jLbeYqpp57GHaixzg4XrrXO1DInUtEc5Cu/3snHp1pYeUkx/7B6Xr8lPT6V9mp4+e9h7++spsJ7/9dKeuOATgwXgIo9x9nw3AYajTamppSw8qE1ZBUncdG7I6/Apq9YV+kseAhu+FvIKGZHeQtf/c0ujjcG+NwVk/nr5bPxD6HWzpApBbW7rQRxaLN1pQ2Ay2f9YRfMhdyZ1h+3L9PqD4hHINJhHQTq91lnCKfet/o1sspg6Rdh4UPW9gmmTEXkWCudW2sIH2gCwDc3h7TLi/BOy0qeEg5GHHb8At77T6tjPrMMLloNM27BKJxPRV1LdzKwOo+hIDebmblOZjnKKa7egqP1JIgDZtxifamYfvMZ39jjhsl/vXmM/3jtCAXpXr6zZh43zC4Y+Z9n73p4/s/A5YXPPAFlywbc1DQVFS1BDtVaZctr28I0dFj3tRimwlCKVI+L7FQP+ele5hRlMLc4g5kF6ThH8N4RnRjOY7FwlFef2MSHFXvwiZubl1zPguVLk/cswYjD6/8A7/0H5M2BFf8Oky4nHDP44WtH+H9vHaMo08+/3DOfK6aPQWLrbLD6JMq3QcU2aDgM0Y6Bt3d6IX+OdXfw7DutM40k2NdmKG5VNd1WQ7wxhCPVTeqSQlKXFuLKSuJ7VEwDDr5A8MN1HDtVyWE1iSNMIYwPByZTPC3MdFYwK7yLLNVsvcadat2VPedOmHX7kJoEPylv4a9+t5uj9Z0sv6iQv79zLiVZI9zf1HAInrrf+gJx/6+sS1yxrpraVdHGB8eb2HaiiR2nWrtrUwFkpbjJS/MyIcWD2yU4ROiMxGkJRKlpCxOx63FNSHFzw+wCls8r5IbZ+Z86SejEcJ469tFBNr24iRazk9mZk7lj7RrScxP/rXVAgSb49UNW08vi34dbvwduX68/2vsWT+TvV8wlPVE3qSlldTC2VUKkzTpTcPnAkwZpBdb1+UnUjhyt7iSwtYbgznpUzMRTlk7q5cWkXJyLJOt9HVhXEVVXV3P06FGOHj1KVVUVSin8XhczJ8BMfwvTnHX4nAZ4Uq0O/MxSKFk07EuSo3GT/37nOP/52hGUggeWlPIn108nfyTLpQSaMNetgoZDbJz9L/y6dTY7yq2y5SIwuzCDpVOymVOUzoyCdGbkpw36u26YihONAfZWtfHmoXpeP1hPezhOSZafz10xmfsuKx1281jSJAYRWQ78EHACP1NKfb/P+uuADcAJe9F6pdS3B3vPCzExhDtCbHl8AzvrDpImPpZfewvzrl+U6LAG11EH61ZZN0it/BHMv5fOSJz/fO0IP3vnOAUZPr5318VcNys52ueTmYqbhPY00rm1mmh5B+J2kLIgn9RlRXhK+i+tnQw6Ozs5duxYdzIIhUIAlJSUMH36dKZPn05JScmon+1WtYb40etH+O3HlThEuOWiAj5zWSlXTssdVhXctlCMT8pb2H6qhY9ONnOsvJL/dXyHGVLJd9P/DtesW1k2NZslU7LJSvl0lwLHDJPXPznFaxveInLwINOXLeTLf/mZYb1XUiQGEXECh4GbgUrgI+ABpdT+HttcB3xVKbViqO97oSWGA2/vZPMbL9GhQszPncltD6/Cn5HkRe/aqmDdSuuO2Qeewpx8Des/qeKftxykviPCA0tK+cbtcxJ3ljBOWJ3JtXZncgxXrp/UZUWkLsrHkZJ8+84wDKqqqjh69ChHjhyhpqYGgNTUVKZNm8aMGTOYOnUqqamJ+f0tbwry8/dO8OwnVbSFYmSluFk2JYclU7KZmpfKpJxUsvxu3PaZV3soRkswSkVziGMNVkXdfdXtHK7vQClwOoS5RdYZwVUTXVz9/u/jbD4CDz1j3cE+DMowiBw9Rmj3LsK7dxPavYfIkSNWfSvA/cBDTP/W3w7rvZMlMVwOPKqUutV+/jcASqnv9djmOnRi6FeguZ0X1j3H/tbjZEoqd956O9OXjV6pgRHTchJ+uRJCLcQf+DXPt5TxX28e43BdJwtKs/jWnXNZ+GmuODrPKVMROdJC57YawgetNnbfnB6dyQkoZDeQrvITx48f5/jx45w8eZJoNIqIMHHiRGbMmMH06dMpLCxMqj6wcMzg1QN1vHWogfePNVHVGhrS64oyfcwsSOfSSRNYPGkCl5Rm9R7hL9AI/3ub9YXo9zZAyeCl7JVSxGtrCe3eYyeCPYT27UMFrZIdjsxM/BdfjH/+xfjmz8c3dy6uvLxhX1CQLInhHmC5UuoP7OdrgaVKqS/12OY64BmsM4pqrCSxr5/3egR4BKCsrOzSU6dO9d3kvLLrpQ/YsvV1wirK4pKLuGXtStz+/k9J28MxDlS3d1/tUNceJhCNE42b3Z1YKR4nKR4XqV4neWk+8jO81jgB6T6KMn1kp3pG5uqVxqOwbiVGJMCvZv4HPz2SSVVriFkF6fzx9dO4c37x6A5gM47F2yIEP6ol8HEdRmskaTuT29rauhPBiRMn6OzsBCA7O5upU6cyZcoUpk6dOm4qlSqlaOiIcKo5SHlTkI5wjJihMJUi0+8mK8VNSVYKU/JShzamR3s1/Hw5RNrhc5utq95sRmcn4b17Ce3aTWj3bsK7dxNvaABA3G68c+bgnz8f//yL8c+fj3vSpBG9qixZEsO9wK19EsMSpdSXe2yTAZhKqU4RuR34oVJq0Cpv5/MZQ1ttM88/sZ6jnZXkOjNYuXIVZZf0rtESiRu8f7SJtw438PaRBo7bY+cCOATy0r2k+9x4nA68butbWihqEIjG6QzHew0o08XrclCU6aMo009Rlo/iPo9FmX4yfK4zfkmVUrSFYpxoDNBwbCeXv/f7xA2DB8J/w2HKuHJ6Lg9fPpkbZ+frhNAPZVh1i3oNkTk9i9Qlhfjn5iRFZ3IoFOLkyZPdyaDrUtLU1NTuJDB16lSysrISG2gyaT6B+tlyws2K8PQvEzpWQ2jPbqLHjtNVL90zaRK+S+bjv3g+/kvm4509G4dndIeKHSwxjOXlFZVAaY/nE7HOCroppdp7zG8WkZ+ISK5SqnGMYkwKpmny0cZ3eX3n28SUwZVTLuX6zy7H5TndjnyotoOnPiznuZ1VtAZj+NwOlk3N4e5FE5lbnMGsgnTy0724zlLmIBo3aeyMUNfeNXRliJq2MFWt1uO2Y03UdUQw+gyM3DUEptvpwO0UwjGDjnCcuKm4SE7yuOcfCYmb/6/kB9w351JWzC8a2as/ziPxphCBj+sIfFyH2RHFke4h/bpSa4jMnMR+0w4EApw6dYpTp05x8uRJ6uzqpG63m8mTJ7N48WKmTp1Kfn5+8twjkWBKKWJVVVafwK7dhPbsIbzXh4pGgZ/gzMrEf8kCMm67Df/8S/BfPA9nkiXSsUwMHwEzRGQKUAXcD3y25wYiUgjUKaWUiCwBHEDTGMaYcI2n6tj41HrKw3UUurNZdc8aimadzqd7q9r4z9eO8PL+OjxOB7dcVMDdl07k8qk5+NznfiOYx+WgOMtP8SDXdMcNk4bOCNWtYWraQlS3hmjoiNjDTirihonP7STd5+KiyE5u3fuPKG8mjs89zz/kjv8qlKPBjBqE9jUR3F5H5GgrSI8hMmeP/BCZQ9XR0dErETTYTRsul4vS0lKuu+46pkyZQklJCS5X8ly2m0jxlhbCe/ZYCWC39Wg0W/1B4vXimzuXCQ88gK80Hf/+f8JdmIL8/j+MXEmWUTBm/7NKqbiIfAl4Cety1Z8rpfaJyBft9T8F7gH+SETiQAi4X433Gy2GyDRM3vvda7y9fxsKuGH25Vx138047G/8jZ0R/vGFA6z/pIoMn4s/v2kGv3f5ZCYMMlj7SHE5HVazUqYfGKSjePdv4bkvWYOcPPS7pCoelwyUqYgcbyO4o47Q3kZU1MQ5wUvGTWWkXFaIK3Nsh49UStHW1kZ5eTknT57k1KlT3U1DHo+H0tJS5s+fz6RJkyguLtaJADCDQcL79xPavYfw3j2Edu8hVllprRTBM20qaddcg/+S+VYH8cyZiLvHFWOnFsHja6zpoWcgfRTuwh4B+ga3JFB7uIINv32OmlgTpT6r6F3uZKvonVKK33xcwXdfOEAoZvDINVN55JppI1/z5dMw4vDm9+Cdf7XqDt3/pDXGgAZArD5IcEc9wU/qMdoiiNdJyvw8Uhbl45mUMWZXFsXjcWpra6moqOieOjqsu7y9Xi+TJk1i0qRJTJ48mcLCwvNm0PvhMqNRIkeOEN6zl9Be62wgcvTo6UtFi4vxdV0lNO9ifBddhDNtCJfeHnsdnn4QUnLhs7/u1SE9lpKi83m0jOfEEI/GePOpl9h6fAcucXDDgqu5bOXV3ZfytYVifP2Z3by6t5I7SyN8damfYr8B8bBVdM6bZg1DmDnRGmoxEXfkNh2DDV+y7mZe+BDc8QOrXswFLt4WIbS7keCuemKVneAA34wJpCwqsEpcD6PZ71wFAgEqKyu7k0BVVRXxuDVCXFZWFqWlpd1TQUFBUl1COtaMzk4iBw8S3n+A8AFrihw7BjHr4gxnVpaVBC6+GN9869GV8ynKeFd/Ar/6jHVn/e3/Cgs+O+bjhujEkITKdx1j48aNNBptTEudyMq1d5FZmG2tVIrjO17jo82/4JLYTmY6qnBgDv6G4rCSQ+4MKJgHhRdbI5rlzhydcWvDbbD1x/Duf1glI27/Z7jk/pH/nHHEaI8S2tNAcHcj0VPWdRTu4lRSFhaQsiBv5AbA6Uc8Hqeuro7q6mqqqqqoqKjobhZyOBwUFRX1SgQZGRmjFkuyizc0WAf/HkkgVl7evd6Zm4tvzhx7mo1v3jzcEyeOfOd6ezWsf8Sq/Dvrdlj+fZgwdoNo6cSQRGKhKC8//jwfV+3FJ25uWXYDC5fblRiNOOz+NYHX/4XUjhNEcBMpWkLGjCusdvsJU6yzBJfPGkUq0mGNbtZWaQ1U03LKGgaz4aA1pCKA0wN5s6wxgwsvthPGvOE39TQetUbl2rHO+uyL7oLl37MGhr8AGR1RQvsaCe1uJHKiDRS4ClJImZ+Hf34u7rxzGClsiEzTpLGxsTsJVFVVUVdXh2FYhdlSUlJ6JYHi4mLc7iRqehwjZjBI5NgxIoePEDliTeHDhzAaTl/k6C4rwzd7Nr65ViLwzpmDO38My7KYhvUF683vWfOX/h5c/qUxSRA6MSSJYx/s5/mXXqDVDDAnayor1q4mNcf+5la+zSrb23CQveZkXstYzWc//2XycoZRYdSIQeMRa+zd2t1Qtxdq91gD0HfJLLOSRP4cu0DZRKuefc/EE26zxh1oOGCNiHbqPWg8bDVjzb7dGpykeMGI7JvxJNYQJLy/idD+ZqLl7VYyyPPjn59HyvzcER38RilFa2trryRQU1NDNGolfo/HQ3FxMcXFxZSUlFBSUkJmZuYFdemoikaJnDjZffDvmmKVld33CYjPh3faNLwzZpxOArNn40xP/DCrALRWwFvfh11PWwP/TL7aGnlw8pXWWb+nz++UaUJnrTVS4DDH/9CJIcFC7QG2rNvIroZDpImfO66/lTnXLrBWmga8/h149we0ewv5ascDyOw7+I/7F43sOARgFbKr3QN1e6zH2j3QdNRKAmfjy4TiRdYv60WrL6gzBGUqohUdhPY3Ed7fRLzBKpngLkrFNzcH/7xc6xLET3kwNgyDpqYmamtrqampoba2ltra2u5ic06nk4KCgu4EUFxcTG5u7gXTN2AGAkROnCR64jjREyeIHD9B5OgRoidPgd13gsuFd8pkvDNm9JrcEyci46EzvbXCGslwz2+tL2FdfJlWhV+n2xoqNdxq/d1e9Rdw07eG9VE6MSTQ/jd3svnNLXSqMAvyZ7H84dX40u17BsJt8Jvfg+NvsCt/FQ+Ur+K2RdP553vmj+iAHIMy4tY3j7Yq6KiGWMjq3AbwZVlNTrkzrf6LC+hbqNEZJXK0lfDhFsKHWzA7Y+AQvFMz8c/Jxjc3B9eE4d+wF41Gqaur65UE6uvruzuHu5JAYWEhhYWFlJSUUFBQcN5fMqpMk3htLZHjJ4ieOEH0xHEiJ04QPX6CuH1zHQAOB+6JE/FOn94rAXimTB71O4bHTFsVVH5oNd8GGqwRD42IdcFJSrZVBr50KRTNH9bbJ8udzxeUQFM7m9Y9y4G2E2Q50lh7631MW9rjsrTOBnjiLlT9fp6f/A3+9OA8HlhSyndXXzy25SKcrtNNSRcwZZhEyzu6E0GsuhMUOFJceKdn4Z+bg29WNg7/uf3JmKZJS0sL9fX13VNtbW13xzCAz+ejqKiIyy67rDsR5ObmnreXiyqliDc0EKuoIHqqnGhFObFTp6yzgZMnUaHTRewc6el4pkwhddkyPFOm4Jk6Be+UKbgnTTp/EsBAMksgc01CPlonhlHwyZZtvLztdcIqxpKJ87n5oRW9i94Fm+GXd6JaTrJu8j/xrf1FfO6KyXzrzrkXVNtwIilTEasJEDneRuR4K5HjbaiIAQ7wlGaQcdMkfDMn4C5JG9J9BqZp0tbWRkNDQ68k0NjY2H0WANZlooWFhVx88cXdSeB87BNQ8Tix2lpi5eVEy8uJllcQLT9FrLyCaEVFr4M/Dgfu4mI8U6eQuuQyPFOmdicAZ27uebdvxgOdGEZQa3Uzzz/5DMcCVeQ6M/nsqvspnT+190bRAPzqPlTzMX426V/47v48/s81U/n6bbP1H8AoUoYiVt1J5ESblQxOtqHC1lU8rhwfKZfk4Zs5Ae+0rEHPCgzDoLW1lcbGxu6pvr6ehoaG7g5hgPT0dPLz85kyZQr5+fnk5eWRl5eH13t+3OOhlMJobSVWWUWsuppYVRWxykqiFRVWMqiu7r4HAEA8HtylpXjKyki9fBnusjI89uQuLu59d7CWcDoxjADTNPlww9u8vutdDGVy1bTFXP/AbTj73sQUj8JvHkZVbWdd6bf57v48/uT6aXz1llk6KYwwozNKtKKDaHmH9VjRYZ0RAK5cPynz8/BOzcQ7JRNnP6UoAoEATU1NNDY29npsbm7GNE931qekpJCfn8+CBQu6E0B+fv64KTM9EKUURlOTdcCvsg7+0aoeSaCquve3fsCRloa7rBTvnDmk33ILnklluEvL8JSV4iooQC6QTvLzgU4Mn1LjyVo2PLWeikg9Re4cVt27msKZpWduaJrw3B/B0Vf5bdHX+NbhqfzpjTP4yk0zdFL4lMyoQaw2QKyyk2h5O5GKDowmuwPdAe7CVFIW5uOdkoF3ShbODA9KKYLBIDUtDbSUt9Dc3ExLS0t3Agj1bOd2OMjOziY3N5dZs2aRm5tLTk4Oubm5pKSM/H0KY8EMBIjV1RGrqSFeW0esrpZ4Ta114LcnFYn0eo0jMxN3STGeyZNJu/JK3CUluIuLrceSEpwX8E1z5xudGIbJiBu8+9tXeefghwhw49wrufKeG7uL3vWiFGz5a9j7OzblPcLXTizgKzfN5M9uGnSoCa0fRiBGrLqTWHWAaHUnsZpO6/JR++I6R7oHT1k6aUsKcZWkEcwwaO1oo6WlhZb6EzQftBJAS0sLkT4HvrS0NHJycpg7d273gT8nJ4esrKxx1RFsdHQQr60lVltHvM56jNVaCaDruWnXSOrJOWEC7pISvDNmkHbddX0O/MU405J3POkLRdyMU9FRwaGWQxxuPsyC/AVcM/GaEf8cnRiGoeZgBRueeZbaWDNl/gJWPnAXuZMGqZL4xnfhw8d4OeMevlRxLV+9ZSZfukEnhcGYkTjx+hCxuiCxhiDxuiCxmk6MttPt+CrDRSTfQajURdAfI+CK0h5uoq3tIK07W2l7q61Xs4/T6SQrK4sJEyZQVlbGhAkTmDBhAtnZ2WRlZeFJ8qtczFCIeEPD6am+53w9sbo64rW1mIHAGa915uXiLijEPWkSKUuW4ioswF1YiLuwEFdhIa78fBznSf/HeKeUoj3aTmVnJSfaTvSaTrWfImba9ZvEyR/O/8NRSQz6PoZzEI/GeONXL7L1xCe4xcWNC69m8Z1XDX6D0Xv/Ca/8Pa/4buGRtt/j2yvnsfbyyWMSb7JTpsJojxJvChFvDBGvDxKrDxKvDxJvixAmRkAidDrDhNIMgilxAs4oHWaQ9lAngeCZB8D09HQyMzPJzMzsPuh3JYCMjIykuxlMKYUZCFgH+fr63gf+PlN/3/JxuXDl5uLKz7cP8gW4Cwq7D/yugkLiOenURhppCjfRGmmlJdxCa6SV1kgrkXiEiBEhakSJGBEiZgRBcIgDBw5EpPu50+HE6/T2nlxefE4fHqfn9KPLh9dpLe9a37XM7/J3v/ZCbEI1TIPWSCtN4Saaw800hZqoDdRSE6ihurO6+zEYD3a/xiEOStNLmZIxhSmZ1jQrexbTsqbhdQ4/mev7GEZA+a5jbNi4gSajnenppdz50JrTRe8GsvXH8Mrf85rzSv6083P814OXsnzehXPHMICKm8RbwsSbwxhNYeJNIYINHbQ1ttLR0U7ACBOUiDU5owTdMYJECPjDmD3vyA6DK+7qPugXlhWTlZXV/TwzM5OMjIykuAFMmSZGWxtGUxPxpmaM5v4f442NxBsazujEBWuAF1deHq78fLwzZpB6xRXW864p33p0ZmUhDgeBWICKjgrK28sp7yinouNDyhvKKT9eTn2wvt84/S5/rwO1x+nB7XAjCCamlbSU2T0fN+NEjShhI2wlESNC3Iz3+95D4XV6eyURn8vXbzLplVBcXvxOf/c2XcvcDjcuceF0OHE5XDjFidvhtp73WO4Sl7XecbppUCmFstsiB5qPGlFrMqMDzgdiATqjnXTGOrsfA7EAHdEO2qPtNIebaQm3dL9nTxmeDIrTiilNL2Vp0VKKUosoSSthcsZkyjLK8DjH9mw28X9FSS4aDPPy45vYXr0Pn3hYc8XtXHLLksFfZJqo176NvPfvvGQu4bueP+VXjyxlYdkgg9yMQ8pUmJ1R4q0Ros1BOhva6Ghup6O1g0BHB4FgkGA0RFCiBIl0J4CYWFcH4bQnwOvxkp6RTnp6FgXp6aSnp5ORkdF9BpCVlUVKyqcvOzFcZihEvKnp7Af75iaM5hawC9r14nDgnDABV3Y2zpwcq3RznwN91+RIT+/1syqlaI20UtlZZR/891Kx/3QiaA439/qoHF8OZRllLCtaRll6GRPTJ5Ljz2GCdwITfBPI8maNyMGmK1l0JYqIESEcP504QvFQr2XhePh0Yon3WG+EicStx3A8THOsudfru9Z1NaOcjS/iYEK7h+wON1kdHnxRB564A3fcgcMUTIfCFIXhVERdJlG3ScRtPXbNR9wmEY/RPR91m6ghnHC6HC7S3emkedJIc6eR5kmjLL2MhfkLyfZlk+PPIduXbc37cihILSDFlYJpKOJRg3jMJB41iccM4m0mjY0B4tEOe3mP9VGDgskZlMwa+eOKTgyDOLJ1H5te3kybCjA3exp3rF1FavZZrrwINhN4+vdJLX+DJ+M38trUv2LDZy4dk5HWRooyTIzOGJGWAB2N1sG+s7WDzo5OAoFOAqEgwUiIYDxMiAghiRGR/v9gXR4nqd4U0tPTKc4qIGNCZvcBv+c0Vtf3K6UwOzsxWlutqaWlez7eY95oae21Td8rdLo4UlJw5ubiys7GPXEi/vnzceZk48rOsR5zcnBmZ+PKzcWZmTlgvZ6uA39VqIHa9p1UVFVQ1VlFZUclVZ1VVHVWEYj1bjorSCmgLKOM60uvpzS9lLKMsu4kkOoeuUJ+g3E5rG/gKe6xuTrLMI1eiaQz3E5LdRUtFRW0V1bTUVVDZ3UdsY7T+8qVnooz3Y8j3YN4XSiHYBoGGCbKMFHhKGYoitkcRUWi9POFvpvD48Xp8+HypuD0+nF5UnC5U3F5UnB70vG403A5U0A8gBuFB2W6UMqNEXdixBVGzKQhZlAbixKPVRGPVWBEDYbTqr/w5jKdGMZKqC3Ai49vYHfjYdLFz/03rGH2NZcM/iKlaPngSdyv/j2eWDvfkT9g8h1f5mdLJ41tiYv+QjMVsc4wHU3tBFo6CLR2EuzoJNAZIBgMEgqGCEZChKIhwvEoYRUlTJS49F9czyMu/C4fqakp5KVkkpaeTlpmOuk5maRlpZOWlkZqaippaWl4PJ5R+ZavTNM6wLd3YLa3YbS3Y7S3Y7a3Y7S1nz6ot7ZYB/m2VuL2wZ74AM0fIjgzM3FmZVlX6BQV4ZszB+eECTizsqyDvH2wd2Vn48zOxtHP/QqGaRA2wt1NCO2Rdto6K2hvareeR9tpDbfSEGqgMdTY/di3Wcbn9DExfSIlaSVcVngZJWkllKSVMCljEiVpJfhcw6/VlOyUqTAMEyNmYsQV0XCUtrpamioraKmtpKW6gtbactoba1CmdXbmcLpInVBMTuHFpMwswpdehCe1EIcjhXjMwIiaxOPWt20jZn0jN2ImcYdJ3G1i+AxisThmLIxSYVA9Hs3Tz41wCCMYRqkgqObubc7OgcPpweHy4nR5cbp9ON1e3B4/KZk+XB4vLo8Hl9eH2+vF7fPi8fpw+714/X48fh8evw9fqh9vqg9fSgqpWaNTHVYnhj72vrGDLW+9TKcKs7BgNrc+vApf2sA3KxnRMMffeZqUj35ESfgIu8xpvD79n/niXSvJTRv5b8GmaRINRAi0dBC0D/KBjgDBjgDBQIBQqOsgHyYUjxA2I4RVjLj007Rh8+DCIy7cThdOnwO/y4vf4yXuNYh544T9UYLeECFvmIgjQkxi1jfvHu3QCoVqVZitJih6tU13tal2d2qK1anpjoM3YuIPGvjDipSQgS9k4A8a+MIG3lAcf9DAGzLwBuP4gjG8oTieYBxPKIZjkG9YplOIpHmJpHqIpnmIZHiJFmUQTcsjmu4lmuYjluYlku4lnu4nmuYlnurFQGEoA0MZxM24NW/WY6ga67lhYNQaxKvj3c0eYSNMKB6y5uNhomZ04MDs/ZDpzSTXn0ueP48pmVO653NTcilMKbSafnw5Y950ZpoKI951QO7xGDeJx0xM+7Hrm2/PbeJ9X9PvenXG+3YdpOPRTmLhVuKxNsxYG8rsQJntKKMVZbYCPX6HJQ2HKw+H51IczjzEmYs4JhAzHLQ2QmsjOF0OXJ5OnK4gLo/Dfu7E5Xbg8jjwpbpwuq3nTo/DWu52nF7m7rPM07Wsz3qPE3EqzFiYSKiTaCBANBwiGgpZj8Fgj+dBokH70V4fC7UR6qghHo0Sj0SIRSMM9fThspV3c82Dnx/x3wOdGGwdjW288PizHGw7yQRHGmtvu59pl80+YztlmtRWHqP6k1eQk28xveUdZhDghCri2UnfYPHKP+YruWfP4kbcINwWINDSSbC9k2B7gGBnkFBnkFAoRCgUJByJEIqGCccjRIwoYTNKRMUwZeBfGjcuvOLCLU4cTgdetwuHQxGSGO2OdtodHXS4Omlzt9PkbqXTFUD1eT+nOLs7It0ONx6nB4/y4I668Tjc+OMOUiKCN2Lgiyh8YRNv2MQbMfCGDbwRE0/Yng8beMIG7nAcjz257ecOA0wRTIdgijWvRDDtg2HcKUR8DiJeJ0Gfg5Y0J+EcN2GPtTzsESJeBxGvEPY6CHkh6LWWhT2gHAoTawIwJYwpISuRCSgUpmElNKPV2srpcOBwOHE4nTjtTkqHw4HL6cYpzl6dmSmuFLJ92fhcPvwuf3fHqd/px+fykeZJI8OTQYYng0xvptXu7EzH70gBQ7q/EZuGdbDsejRaTUKNilNGE2bXgdQwu+e7t+sxf8Z2PbYf9DVG1wFaYcZMTHP4VylaVzhGQUVxOOKIM4bDEUOka4qiTOubtjKCGPEgZjxAPBrAiAXp24bjdPvwp2WTklFCeu5lpOcWkZVfQmZBCb60VJyungdnB06XdfB2ua0kMFZjaZ/mJTUr81O/i1IKIxYjFo1YiSISIR61H+3EEY+EiUUj5JaOzoA+Y3q5qogsB36I1eX4M6XU9/usF3v97UAQ+JxSasdg7/lpL1c1TZOdW7bx8odvElExlpTO56aH7sDhclBz8iCNJ/cSqtmPs+kIGZ3HKY6VkyHWpWQtpHMg5Uri01czceplmOEowY4Aoc5gdxNNOBImFAkTjoUJx6NEjCgRFSWi4jDI761bOfGKdSD2OF24nE7EJZgOk5gzRsgZpk3aaJQmaqij2d1Cq6sDUwycJrjjkOPMoNCZTb4zgzzJJIdUslUKaYablJjgjYEnqvDEFO6IgSsSxxGOQjiMGQxhhqxJBYPWfDCIGQx2D4beRQFRp4Ooy3l68nmJ+X3EfB6ibjdRp4OIQ4gok6hp9ntlRvJzgH35plWCvMfzfierp1LZj6ger+u7bff7OHotO/P9ei8XBHE4rEkcOByCOB2IOK15hwOH015vhYuIQlDWWzmw51X3OnqsRxmYKo4y4igzjmnEMI24PcUw4jGMeBwjHiMeGUpzCvjS0vFnZJJiT/6MDGs+M4v03HwycvPIyMvHm5J6QV7SOlaSYjwGEXECh4GbgUrgI+ABpdT+HtvcDnwZKzEsBX6olFo62Pt+msTQWt3Ihiee4USwhhxSmZkaxxerwB0J4jFNIvgJkkIIL534CYmHiDiIAlFMosQGbIcHEGU30+DCgxO3cuBCcCpwKBMxTZQRQxkxTCNCPBYkFgsSjQQwjRgOJThMe1KCQ4FDOXAqB04ciLIPDArr6KyU/aVLUH0OIAoHCCg5feBRIqe3dTitjlFxopz2OnGgRFD225gqhkkMU8VQKoJhhDHNEMo883LL7n0gPsSRAg4/4khBxA/4AOuzui9NEieC0zpS0fPSDxn8seup6vpHQff42PZzZT2q7vXqjHXWQdM+OPacF2uddeBUvQ6i1gEUENN+tN/L3sZiWgfgHp8p0hWPiaBQynofhWnHZNrfvu15O06lFEqZ9rxpTwplmqenrufKxOxebm0vYn2LPp1E7PsUuhPL6XXWMsHpdOF0u3G5PTjd7u7J5XLj9Hhwuty4PG6cLjdun99uC0/B4/fjSUnB4+t6bi3zpabhGEd3kZ/PkuU+hiXAUaXUcTuop4FVwP4e26wC1inrr2KbiGSJSJFSqmakg/mfP/4mtXluTBSl7R46avZxoNe3WAHC9nQmjz0NlUGvFtJBCW6cWNUmVddru47xvXQdbPpbPkwKGPKl6YKDFJCzXJFiAqa1LweLLJHnEOPx/OU0ode1v/2sFejOmX3T55nMHmtjwMCJX0ssp9PJl5/8+Yi/71jeBloCVPR4XmkvO9dtEJFHRORjEfm4oaGh7+ohiYc7yIp5yS1voqPmEOP90KBpmjZSxvKMob/Gwr5H46Fsg1LqMeAxsJqShhPM//n5vw/nZZqmaee9sTxjqAR61qOeCFQPYxtN0zRtFI1lYvgImCEiU0TEA9wPbOyzzUbgYbEsA9pGo39B0zRNG9iYNSUppeIi8iXgJaxesp8rpfaJyBft9T8FNmNdkXQU63LVkb9zQ9M0TRvUmN7gppTajHXw77nspz3mFfAnYxmTpmma1ltyFafXNE3TEk4nBk3TNK0XnRg0TdO0XnRi0DRN03oZ92M+i0gDcGqYL88FGkcwnNGi4xw54yFGGB9xjocYYXzEmYgYJyml8vpbMe4Tw6chIh8PVEQqmeg4R854iBHGR5zjIUYYH3EmW4y6KUnTNE3rRScGTdM0rZcLPTE8lugAhkjHOXLGQ4wwPuIcDzHC+IgzqWK8oPsYNE3TtDNd6GcMmqZpWh86MWiapmm9XLCJQUSWi8ghETkqIl9PdDxdROSkiOwRkZ0i8rG9LFtEXhGRI/bjhATE9XMRqReRvT2WDRiXiPyNvW8PicitCY7zURGpsvfpTnts8YTFKSKlIvKGiBwQkX0i8mf28qTan4PEmTT7U0R8IvKhiOyyY/y/9vJk25cDxZk0+7IX1T3I+IUzYZX9PgZMxRq6eRcwN9Fx2bGdBHL7LPtn4Ov2/NeBf0pAXNcAi4C9Z4sLmGvvUy8wxd7XzgTG+Sjw1X62TUicQBGwyJ5PBw7bsSTV/hwkzqTZn1ijPqbZ827gA2BZEu7LgeJMmn3Zc7pQzxiWAEeVUseVUlHgaWBVgmMazCrgl/b8L4HVYx2AUuptoLnP4oHiWgU8rZSKKKVOYI2vsSSBcQ4kIXEqpWqUUjvs+Q7gANbY5km1PweJcyBjHqeydNpP3fakSL59OVCcA0nY3xBcuE1JJUBFj+eVDP4LP5YU8LKIbBeRR+xlBcoeyc5+zE9YdL0NFFcy7t8vichuu6mpq1kh4XGKyGRgIdY3yKTdn33ihCTanyLiFJGdQD3wilIqKfflAHFCEu3LLhdqYpB+liXLdbtXKqUWAbcBfyIi1yQ6oGFItv37X8A0YAFQA/ybvTyhcYpIGvAM8OdKqfbBNu1nWSLjTKr9qZQylFILsMaIXyIi8wbZPGH7coA4k2pfdrlQE0MlUNrj+USgOkGx9KKUqrYf64FnsU4f60SkCMB+rE9chL0MFFdS7V+lVJ39R2kC/83pU/KExSkibqyD7ZNKqfX24qTbn/3FmYz7046rFXgTWE4S7ssuPeNM1n15oSaGj4AZIjJFRDzA/cDGBMeEiKSKSHrXPHALsBcrtt+zN/s9YENiIjzDQHFtBO4XEa+ITAFmAB8mID6g+8DQZQ3WPoUExSkiAvwPcEAp9YMeq5Jqfw4UZzLtTxHJE5Ese94P3AQcJPn2Zb9xJtO+7GWsermTbQJux7rK4hjwt4mOx45pKtaVCLuAfV1xATnAa8AR+zE7AbE9hXWqG8P6NvOFweIC/tbet4eA2xIc5+PAHmA31h9cUSLjBK7CahbYDey0p9uTbX8OEmfS7E9gPvCJHcte4Jv28mTblwPFmTT7suekS2JomqZpvVyoTUmapmnaAHRi0DRN03rRiUHTNE3rRScGTdM0rRedGDRN07RedGLQtB5EJEtE/rjH82IR+d0ofdZqEfnmAOs67cc8EdkyGp+vaQPRiUHTessCuhODUqpaKXXPKH3W14CfDLaBUqoBqBGRK0cpBk07g04Mmtbb94Fpdm38fxGRyWKP7SAinxOR50TkeRE5ISJfEpG/EJFPRGSbiGTb200TkS12IcR3RGR23w8RkZlARCnVaD+fIiJbReQjEfmHPps/Bzw4qj+1pvWgE4Om9fZ14JhSaoFS6q/6WT8P+CxWTZvvAkGl1EJgK/Cwvc1jwJeVUpcCX6X/s4IrgR09nv8Q+C+l1GVAbZ9tPwauHubPo2nnzJXoADRtnHlDWWMTdIhIG/C8vXwPMN+uRHoF8Fur1BBgDbbSVxHQ0OP5lcDd9vzjwD/1WFcPFI9M+Jp2djoxaNq5ifSYN3s8N7H+nhxAq7LKKw8mBGT2WTZQfRqfvb2mjQndlKRpvXVgDWM5LMoar+CEiNwLVoVSEbmkn00PANN7PH8Pq8ovnNmfMJPTVTc1bdTpxKBpPSilmoD3RGSviPzLMN/mQeALItJVJbe/YWPfBhbK6famP8MamOkjzjyTuB54YZixaNo509VVNS1BROSHwPNKqVfPst3bwCqlVMvYRKZd6PQZg6Ylzj8CKYNtICJ5wA90UtDGkj5j0DRN03rRZwyapmlaLzoxaJqmab3oxKBpmqb1ohODpmma1otODJqmaVov/z+ZvZTqLYOIpwAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots()\n", - "swiftdiff['rmag'].sel(id=tpidx).plot.line(ax=ax, x=\"time (d)\")\n", - "ax.set_ylabel(\"$|\\mathbf{r}_{swiftest} - \\mathbf{r}_{swifter}|$\")\n", - "ax.set_title(\"Heliocentric position differences \\n Test Particles only\")\n", - "legend = ax.legend()\n", - "legend.remove()\n", - "fig.savefig(\"rmvs_swifter_comparison-mars_ejecta-testparticles-rmag.png\", facecolor='white', transparent=False, dpi=300)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "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" - } - ], - "source": [ - "fig, ax = plt.subplots()\n", - "swiftdiff['vmag'].sel(id=tpidx).plot.line(ax=ax, x=\"time (d)\")\n", - "ax.set_ylabel(\"$|\\mathbf{v}_{swiftest} - \\mathbf{v}_{swifter}|$\")\n", - "ax.set_title(\"Heliocentric velocity differences \\n Test Particles only\")\n", - "legend = ax.legend()\n", - "legend.remove()\n", - "fig.savefig(\"rmvs_swifter_comparison-mars_ejecta-testparticles-vmag.png\", facecolor='white', transparent=False, dpi=300)" - ] - }, - { - "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/examples/helio_swifter_comparison/9pl_18tp_encounters/tp.in b/examples/helio_swifter_comparison/9pl_18tp_encounters/tp.in deleted file mode 100644 index 6ae12da23..000000000 --- a/examples/helio_swifter_comparison/9pl_18tp_encounters/tp.in +++ /dev/null @@ -1,55 +0,0 @@ -18 -101 -0.0080829031543499848395 -0.46158204302657929174 -0.038460177383292291908 -0.025090740792557679473 0.00193463921399069207 -0.0019046569774229759036 -102 -0.008036781741686682343 -0.46162816443924253873 -0.038460177383292291908 -0.01988364184853937816 0.00193463921399069207 -0.0019046569774229759036 -103 --0.51153031124843428845 0.50313908519420458276 0.036425472992779560355 --0.007907923549198175514 -0.014528686301793089508 0.0006232072038298823056 -104 --0.5116447318293787516 0.5030246646132601196 0.036425472992779560355 --0.020602390959888965127 -0.014528686301793089508 0.0006232072038298823056 -105 --0.10894183284815117663 -1.0098335771038264852 4.8233029186325282966e-05 -0.023719359459963285097 -0.0019105497620569790364 3.9926607426871281197e-08 -106 --0.109062288660030232146 -1.009954032915705735 4.8233029186325282966e-05 -0.00993047899141553253 -0.0019105497620569790364 3.9926607426871281197e-08 -107 --1.3428658869178822233 0.97789755368202779806 0.053433985387238869258 --0.0046328365471693128824 -0.01011917844182222935 -2.28774480126113111e-05 -108 --1.3429299717453899721 0.97783346885452004926 0.053433985387238869258 --0.0107917947436170988396 -0.01011917844182222935 -2.28774480126113111e-05 -109 -3.9238450924224119731 -3.1677588714750708476 -0.07461478779720470689 -0.041537769840633231855 0.0062326233009544675795 -0.00013004292010574568976 -110 -3.9225232944062176088 -3.169080669491265212 -0.07461478779720470689 --0.03222666456266162771 0.0062326233009544675795 -0.00013004292010574568976 -111 -6.1863449551503970625 -7.8036243454496956318 -0.11049843292623899582 -0.026180002087518607773 0.0034586370407366112158 -0.00022193109393270140663 -112 -6.1852439704401360743 -7.80472533015995662 -0.11049843292623899582 --0.018046335679548570347 0.0034586370407366112158 -0.00022193109393270140663 -113 -14.92933741553430238 12.9297364937164918075 -0.14540991395599550673 -0.010495205578015229936 0.0027958881988585449277 4.3918648577820880246e-05 -114 -14.928857899559897504 12.9292569777420869315 -0.14540991395599550673 --0.015694321499308556966 0.0027958881988585449277 4.3918648577820880246e-05 -115 -29.544394452699595632 -4.7166888412680219034 -0.58380301744279916587 -0.014914899434230450767 0.0031257375729174499863 -7.532640451995010599e-05 -116 -29.543928927807161955 -4.717154366160452028 -0.58380301744279916587 --0.013956372192325811402 0.0031257375729174499863 -7.532640451995010599e-05 -117 -14.544494696107316045 -31.052223962419365222 -0.88280002656255951443 -0.0037110399802695879026 0.00066259169021535256356 -0.0009142553677224461283 -118 -14.544472229076623293 -31.052246429450054421 -0.88280002656255951443 -0.002135115255113890012 0.00066259169021535256356 -0.0009142553677224461283 diff --git a/examples/helio_swifter_comparison/Untitled.ipynb b/examples/helio_swifter_comparison/Untitled.ipynb new file mode 100644 index 000000000..7d5a299df --- /dev/null +++ b/examples/helio_swifter_comparison/Untitled.ipynb @@ -0,0 +1,169 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import astropy.constants as const" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6.6743e-11\n" + ] + } + ], + "source": [ + "AU2M = np.longdouble(const.au.value)\n", + "GMSunSI = np.longdouble(const.GM_sun.value)\n", + "print(const.G.value)\n", + "Rsun = np.longdouble(const.R_sun.value)\n", + "GC = np.longdouble(const.G.value)\n", + "JD = 86400\n", + "year = np.longdouble(365.25 * JD)\n", + "c = np.longdouble(299792458.0)\n", + "MSun_over_Mpl = np.array([6023600.0,\n", + " 408523.71,\n", + " 328900.56,\n", + " 3098708.,\n", + " 1047.3486,\n", + " 3497.898,\n", + " 22902.98,\n", + " 19412.24,\n", + " 1.35e8], dtype=np.longdouble)\n", + "\n", + "MU2KG = np.longdouble(GMSunSI / GC) #Conversion from mass unit to kg\n", + "DU2M = np.longdouble(AU2M) #Conversion from radius unit to centimeters\n", + "TU2S = np.longdouble(year) #Conversion from time unit to seconds\n", + "GU = np.longdouble(GC / (DU2M**3 / (MU2KG * TU2S**2)))\n", + "\n", + "GMSun = np.longdouble(GMSunSI / (DU2M**3 / TU2S**2))" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "int" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(JD)" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([6.0236000000000000000e+06, 4.0852371000000002095e+05,\n", + " 3.2890055999999999767e+05, 3.0987080000000000000e+06,\n", + " 1.0473486000000000331e+03, 3.4978980000000001382e+03,\n", + " 2.2902979999999999563e+04, 1.9412240000000001601e+04,\n", + " 1.3500000000000000000e+08], dtype=float128)" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "MSun_over_Mpl" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [], + "source": [ + "np.set_printoptions(threshold = np.inf, precision=23)" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "39.476926408897626292\n" + ] + } + ], + "source": [ + "print(GU)" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "39.47692640889762571987376\n" + ] + } + ], + "source": [ + "print(\"{:.23f}\".format(GU))" + ] + }, + { + "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/helio_swifter_comparison/cb.swiftest.in b/examples/helio_swifter_comparison/cb.swiftest.in new file mode 100644 index 0000000000000000000000000000000000000000..7e13534c0bc881a8cc6e551b3a47dbfdd785d49e GIT binary patch literal 64 ncmd;JU|=xH*zksXud@ROkPX6j{SWxW@f6#`_&^~rz{UpvSndZF literal 0 HcmV?d00001 diff --git a/examples/helio_swifter_comparison/init_cond.py b/examples/helio_swifter_comparison/init_cond.py new file mode 100644 index 000000000..289f14f75 --- /dev/null +++ b/examples/helio_swifter_comparison/init_cond.py @@ -0,0 +1,323 @@ +import numpy as np +import sys +from astroquery.jplhorizons import Horizons +import astropy.constants as const +from scipy.io import FortranFile + +#Values from JPL Horizons +AU2M = np.longdouble(const.au.value) +GMSunSI = np.longdouble(const.GM_sun.value) +Rsun = np.longdouble(const.R_sun.value) +GC = np.longdouble(const.G.value) +JD = 86400 +year = np.longdouble(365.25 * JD) +c = np.longdouble(299792458.0) +MSun_over_Mpl = np.array([6023600.0, + 408523.71, + 328900.56, + 3098708., + 1047.3486, + 3497.898, + 22902.98, + 19412.24, + 1.35e8], dtype=np.longdouble) + +MU2KG = np.longdouble(GMSunSI / GC) #Conversion from mass unit to kg +DU2M = np.longdouble(AU2M) #Conversion from radius unit to centimeters +TU2S = np.longdouble(year) #Conversion from time unit to seconds +GU = np.longdouble(GC / (DU2M**3 / (MU2KG * TU2S**2))) + +GMSun = np.longdouble(GMSunSI / (DU2M**3 / TU2S**2)) + +# Simulation start, stop, and output cadence times +t_0 = 0 # simulation start time +deltaT = 0.25 * JD / TU2S # simulation step size +end_sim = 1 * year / TU2S # simulation end time +t_print = deltaT #year / TU2S #output interval to print results + + +# Solar oblatenes values: From Mecheri et al. (2004), using Corbard (b) 2002 values (Table II) +J2 = 0.0 #np.longdouble(2.198e-7) * (Rsun / DU2M)**2 +J4 = 0.0 #np.longdouble(-4.805e-9) * (Rsun / DU2M)**4 + +tstart = '2021-01-28' +tend = '2021-01-29' +tstep = '1d' +planetid = { + 'mercury' : '1', + 'venus' : '2', + 'earthmoon' : '3', + 'mars' : '4', + 'jupiter' : '5', + 'saturn' : '6', + 'uranus' : '7', + 'neptune' : '8', + 'plutocharon' : '9' +} +npl = 9 + +#Planet Msun/M ratio +MSun_over_Mpl = { + 'mercury' : np.longdouble(6023600.0), + 'venus' : np.longdouble(408523.71), + 'earthmoon' : np.longdouble(328900.56), + 'mars' : np.longdouble(3098708.), + 'jupiter' : np.longdouble(1047.3486), + 'saturn' : np.longdouble(3497.898), + 'uranus' : np.longdouble(22902.98), + 'neptune' : np.longdouble(19412.24), + 'plutocharon' : np.longdouble(1.35e8) +} + +#Planet radii in meters +Rpl = { + 'mercury' : np.longdouble(2439.4e3), + 'venus' : np.longdouble(6051.8e3), + 'earthmoon' : np.longdouble(6371.0084e3), # Earth only for radius + 'mars' : np.longdouble(3389.50e3), + 'jupiter' : np.longdouble(69911e3), + 'saturn' : np.longdouble(58232.0e3), + 'uranus' : np.longdouble(25362.e3), + 'neptune' : np.longdouble(24622.e3), + 'plutocharon' : np.longdouble(1188.3e3) +} + +pdata = {} +plvec = {} +Rhill = {} +THIRDLONG = np.longdouble(1.0) / np.longdouble(3.0) + +for key,val in planetid.items(): + pdata[key] = Horizons(id=val, id_type='majorbody',location='@sun', + epochs={'start': tstart, 'stop': tend, + 'step': tstep}) + plvec[key] = np.array([pdata[key].vectors()['x'][0], + pdata[key].vectors()['y'][0], + pdata[key].vectors()['z'][0], + pdata[key].vectors()['vx'][0], + pdata[key].vectors()['vy'][0], + pdata[key].vectors()['vz'][0] + ]) + + Rhill[key] = np.longdouble(pdata[key].elements()['a'][0]) * (3 * MSun_over_Mpl[key])**(-THIRDLONG) + +asteroidid = { + '100001' : 'Ceres', + '100002' : 'Pallas', + '100003' : 'Juno', + '100004' : 'Vesta' +} +ntp = 4 + +tdata = {} +tpvec = {} +for key,val in asteroidid.items(): + tdata[key] = Horizons(id=val, id_type='smallbody', location='@sun', + epochs={'start': tstart, 'stop': tend, + 'step': tstep}) + tpvec[key] = np.array([tdata[key].vectors()['x'][0], + tdata[key].vectors()['y'][0], + tdata[key].vectors()['z'][0], + tdata[key].vectors()['vx'][0], + tdata[key].vectors()['vy'][0], + tdata[key].vectors()['vz'][0] + ]) + + +if __name__ == '__main__': + # Convert from AU-day to AU-year just because I find it easier to keep track of the sim progress + for plid in plvec: + plvec[plid][3:] *= year / JD + + for tpid in tpvec: + tpvec[tpid][3:] *= year / JD + + # Names of all output files + swifter_input = "param.swifter.in" + swifter_pl = "pl.swifter.in" + swifter_tp = "tp.swifter.in" + swifter_bin = "bin.swifter.dat" + swifter_enc = "enc.swifter.dat" + + swiftest_input = "param.swiftest.in" + swiftest_pl = "pl.swiftest.in" + swiftest_tp = "tp.swiftest.in" + swiftest_cb = "cb.swiftest.in" + swiftest_bin = "bin.swiftest.dat" + swiftest_enc = "enc.swiftest.dat" + + iout = int(np.ceil(t_print / deltaT)) + rmin = Rsun / DU2M + rmax = np.longdouble(1000.0) + #Make Swifter files + + plfile = open(swifter_pl, 'w') + print(npl+1, f'! Planet input file generated using init_cond.py using JPL Horizons data for the major planets (and Pluto) for epoch {tstart}' ,file=plfile) + print(1,GMSun,file=plfile) + print('0.0 0.0 0.0',file=plfile) + print('0.0 0.0 0.0',file=plfile) + for i, plid in enumerate(plvec): + print(i + 2,"{:.23g}".format(GMSun * MSun_over_Mpl[plid]**-1),Rhill[plid], file=plfile) + print(Rpl[plid] / DU2M, file=plfile) + print(plvec[plid][0],plvec[plid][1],plvec[plid][2], file=plfile) + print(plvec[plid][3],plvec[plid][4],plvec[plid][5], file=plfile) + plfile.close() + + tpfile = open(swifter_tp, 'w') + print(ntp,file=tpfile) + for tpid, tp in tpvec.items(): + print(tpid, file=tpfile) + print(tp[0],tp[1],tp[2], file=tpfile) + print(tp[3],tp[4],tp[5], file=tpfile) + tpfile.close() + + sys.stdout = open(swifter_input, "w") + print('! Swifter input file generated using init_cond.py') + print('T0 ',t_0) + print('TSTOP ',end_sim) + print('DT ',deltaT) + print('PL_IN ',swifter_pl) + print('TP_IN ',swifter_tp) + print('IN_TYPE ASCII') + print('ISTEP_OUT ',iout) + print('ISTEP_DUMP ',iout) + print('BIN_OUT ',swifter_bin) + print('OUT_TYPE REAL8') + print('OUT_FORM XV') + print('OUT_STAT NEW') + print('J2 ',J2) + print('J4 ',J4) + print('CHK_CLOSE yes') + print('CHK_RMIN ',rmin) + print('CHK_RMAX ',rmax) + print('CHK_EJECT ',rmax) + print('CHK_QMIN ',rmin) + print('CHK_QMIN_COORD HELIO') + print('CHK_QMIN_RANGE ',rmin,rmax) + print('ENC_OUT ',swifter_enc) + print('EXTRA_FORCE no') + print('BIG_DISCARD no') + print('RHILL_PRESENT yes') + + sys.stdout = sys.__stdout__ + #Now make Swiftest files + #cbfile = open(swiftest_cb, 'w') + cbfile = FortranFile(swiftest_cb, 'w') + #print(1.0,file=cbfile) + #print(rmin,file=cbfile) + #print(J2,file=cbfile) + #print(J4,file=cbfile) + Msun = np.double(1.0) + cbfile.write_record(np.double(GMSun)) + cbfile.write_record(np.double(rmin)) + cbfile.write_record(np.double(J2)) + cbfile.write_record(np.double(J4)) + cbfile.close() + + #plfile = open(swiftest_pl, 'w') + plfile = FortranFile(swiftest_pl, 'w') + #print(npl,file=plfile) + plfile.write_record(npl) + + name = np.empty(npl, dtype=np.int32) + px = np.empty(npl, dtype=np.double) + py = np.empty(npl, dtype=np.double) + pz = np.empty(npl, dtype=np.double) + vx = np.empty(npl, dtype=np.double) + vy = np.empty(npl, dtype=np.double) + vz = np.empty(npl, dtype=np.double) + mass = np.empty(npl, dtype=np.double) + Gmass = np.empty(npl, dtype=np.double) + radius = np.empty(npl, dtype=np.double) + for i, plid in enumerate(plvec): + name[i] = i + 2 + px[i] = plvec[plid][0] + py[i] = plvec[plid][1] + pz[i] = plvec[plid][2] + vx[i] = plvec[plid][3] + vy[i] = plvec[plid][4] + vz[i] = plvec[plid][5] + Gmass[i] = GMSun * MSun_over_Mpl[plid]**-1 + radius[i] = Rpl[plid] / DU2M + plfile.write_record(name.T) + plfile.write_record(px.T) + plfile.write_record(py.T) + plfile.write_record(pz.T) + plfile.write_record(vx.T) + plfile.write_record(vy.T) + plfile.write_record(vz.T) + plfile.write_record(Gmass.T) + plfile.write_record(radius.T) + #for i, plid in enumerate(plvec): + # print(i + 2,"{:.23g}".format(np.longdouble(MSun_over_Mpl[plid]**-1)), file=plfile) + # print(Rpl[plid] / DU2M, file=plfile) + # print(plvec[plid][0], plvec[plid][1], plvec[plid][2], file=plfile) + # print(plvec[plid][3], plvec[plid][4], plvec[plid][5], file=plfile) + plfile.close() + #tpfile = open(swiftest_tp, 'w') + tpfile = FortranFile(swiftest_tp, 'w') + #print(ntp,file=tpfile) + tpfile.write_record(ntp) + #for tpid, tp in tpvec.items(): + # print(tpid, file=tpfile) + # print(tp[0],tp[1],tp[2], file=tpfile) + # print(tp[3],tp[4],tp[5], file=tpfile) + + name = np.empty(ntp, dtype=np.int32) + px = np.empty(ntp, dtype=np.double) + py = np.empty(ntp, dtype=np.double) + pz = np.empty(ntp, dtype=np.double) + vx = np.empty(ntp, dtype=np.double) + vy = np.empty(ntp, dtype=np.double) + vz = np.empty(ntp, dtype=np.double) + for i, tpid in enumerate(tpvec): + name[i] = int(tpid) + px[i] = tpvec[tpid][0] + py[i] = tpvec[tpid][1] + pz[i] = tpvec[tpid][2] + vx[i] = tpvec[tpid][3] + vy[i] = tpvec[tpid][4] + vz[i] = tpvec[tpid][5] + tpfile.write_record(name.T) + tpfile.write_record(px.T) + tpfile.write_record(py.T) + tpfile.write_record(pz.T) + tpfile.write_record(vx.T) + tpfile.write_record(vy.T) + tpfile.write_record(vz.T) + + tpfile.close() + + sys.stdout = open(swiftest_input, "w") + print('! Swiftest input file generated using init_cond.py') + print('T0 ',t_0) + print('TSTOP ',end_sim) + print('DT ',deltaT) + print('CB_IN ',swiftest_cb) + print('PL_IN ',swiftest_pl) + print('TP_IN ',swiftest_tp) + print('IN_TYPE REAL8') + print('ISTEP_OUT ',iout) + print('ISTEP_DUMP ',iout) + print('BIN_OUT ',swiftest_bin) + print('OUT_TYPE REAL8') + print('OUT_FORM XV') + print('OUT_STAT REPLACE') + print('CHK_CLOSE yes') + print('CHK_RMIN ',rmin) + print('CHK_RMAX ',rmax) + print('CHK_EJECT ',rmax) + print('CHK_QMIN ',rmin) + print('CHK_QMIN_COORD HELIO') + print('CHK_QMIN_RANGE ',rmin,rmax) + print('ENC_OUT ',swiftest_enc) + print('EXTRA_FORCE no') + print('BIG_DISCARD no') + print('ROTATION no') + print('GR no') + print('MU2KG ',MU2KG) + print('DU2M ',DU2M) + print('TU2S ',TU2S) + + + sys.stdout = sys.__stdout__ diff --git a/examples/helio_swifter_comparison/mars_ejecta/.idea/.gitignore b/examples/helio_swifter_comparison/mars_ejecta/.idea/.gitignore deleted file mode 100644 index 26d33521a..000000000 --- a/examples/helio_swifter_comparison/mars_ejecta/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/examples/helio_swifter_comparison/mars_ejecta/cb.swiftest.in b/examples/helio_swifter_comparison/mars_ejecta/cb.swiftest.in deleted file mode 100644 index 2aafc8408..000000000 --- a/examples/helio_swifter_comparison/mars_ejecta/cb.swiftest.in +++ /dev/null @@ -1,4 +0,0 @@ -0.00029591220828563 -0.004650467260962157 -0.0 -0.0 diff --git a/examples/helio_swifter_comparison/mars_ejecta/config.swiftest.in b/examples/helio_swifter_comparison/mars_ejecta/config.swiftest.in deleted file mode 100644 index 3f459514f..000000000 --- a/examples/helio_swifter_comparison/mars_ejecta/config.swiftest.in +++ /dev/null @@ -1,33 +0,0 @@ -! -! Parameter file for the CHO run of the 4 giant planets and Pluto. -! -!NPLMAX -1 ! not used -!NTPMAX -1 ! not used -T0 0.0e0 -TSTOP 6000.000 ! simulation length in days -DT 1e0 ! stepsize in days -ISTEP_OUT 1 ! output cadence -ISTEP_DUMP 1 ! system dump cadence -CB_IN cb.swiftest.in -PL_IN pl.swiftest.in -TP_IN tp.in -IN_TYPE ASCII -BIN_OUT bin.swiftest.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_RMIN 0.005e0 ! check for close solar encounters -CHK_RMAX 10000.0e0 ! discard outside of -CHK_EJECT -1.0 ! ignore this check -CHK_QMIN -1.0 ! ignore this check -!CHK_QMIN_COORD HELIO ! commented out here -!CHK_QMIN_RANGE 1.0 1000.0 ! commented out here -ENC_OUT enc.swiftest.dat -EXTRA_FORCE no ! no extra user-defined forces -BIG_DISCARD yes ! output all planets if anything discarded -ROTATION no -GR no -MU2KG 1.988409870698051e+30 -DU2M 149597870700.0 -TU2S 86400.0000 diff --git a/examples/helio_swifter_comparison/mars_ejecta/param.swifter.in b/examples/helio_swifter_comparison/mars_ejecta/param.swifter.in deleted file mode 100644 index f4035c4c0..000000000 --- a/examples/helio_swifter_comparison/mars_ejecta/param.swifter.in +++ /dev/null @@ -1,30 +0,0 @@ -! -! Parameter file for the CHO run of the 4 giant planets and Pluto. -! -!NPLMAX -1 ! not used -!NTPMAX -1 ! not used -T0 0.0e0 -TSTOP 6000.000 ! simulation length in days -DT 1e0 ! stepsize in days -ISTEP_OUT 1 ! output cadence -ISTEP_DUMP 1 ! system dump cadence -PL_IN pl.swifter.in -TP_IN tp.in -IN_TYPE ASCII -BIN_OUT bin.swifter.dat -OUT_TYPE REAL8 ! double precision real output -OUT_FORM XV ! osculating element output -OUT_STAT NEW -J2 0.0 ! no J2 term -J4 0.0 ! no J4 term -CHK_CLOSE yes ! check for planetary close encounters -CHK_RMIN 0.005 ! check for close solar encounters -CHK_RMAX 10000.0 ! discard outside of -CHK_EJECT -1.0 ! ignore this check -CHK_QMIN -1.0 ! ignore this check -!CHK_QMIN_COORD HELIO ! commented out here -!CHK_QMIN_RANGE 1.0 1000.0 ! commented out here -ENC_OUT enc.swifter.dat -EXTRA_FORCE no ! no extra user-defined forces -BIG_DISCARD yes ! output all planets if anything discarded -RHILL_PRESENT yes ! Hill's sphere radii in input file diff --git a/examples/helio_swifter_comparison/mars_ejecta/pl.swifter.in b/examples/helio_swifter_comparison/mars_ejecta/pl.swifter.in deleted file mode 100644 index ab7f6ec08..000000000 --- a/examples/helio_swifter_comparison/mars_ejecta/pl.swifter.in +++ /dev/null @@ -1,36 +0,0 @@ - 9 ! Solar system. Taken from JPL Horizons on 10-31-2012 00:00 (JD 2456231.5) - 1 2.9591220828563E-04 - .0 .0 .0 - .0 .0 .0 - 2 4.912576812862670E-11 1.475E-03 ! Mercury / Mass (Msun) / Rhill (AU) - 1.63104E-05 ! Radius (AU) - 3.347381871776144E-01 -2.106110537919978E-01 -4.792146121659843E-02 - 9.457239437449661E-03 2.510612575783642E-02 1.183593414707043E-03 - 3 7.243495778974390E-10 6.758E-03 ! Venus - 4.04538E-05 - -4.641166544325086E-01 5.473160240817795E-01 3.428518329144122E-02 - -1.549753193570599E-02 -1.319081534035637E-02 7.136685719563098E-04 - 4 8.997065158526820E-10 1.004E-02 ! Earth + Moon - 4.2587571E-05 - 7.844742229036105E-01 6.083466458892074E-01 -1.996912082982283E-05 - -1.081828010368904E-02 1.352675083743791E-02 2.330162751015549E-07 - 5 9.549592181631700E-11 7.246E-03 ! Mars - 2.26601E-05 - 3.248808297463504E-01 -1.392041319192106E+00 -3.714224198825128E-02 - 1.415678377567019E-02 4.380992498628390E-03 -2.558013868476858E-04 - 6 2.825362796108150E-07 0.3553 ! Jupiter - 4.67326E-04 - 1.873343037544675E+00 4.683322528183729E+00 -6.137078942429344E-02 - -7.104028854569467E-03 3.164193073442964E-03 1.458211211387848E-04 - 7 8.459765747874750E-08 0.4356 ! Saturn - 3.89257E-04 - -8.251865479985982E+00 -5.225008639958182E+00 4.193935221241906E-01 - 2.677374423933877E-03 -4.723961471952217E-03 -2.458643348128228E-05 - 8 1.292032638982330E-08 0.4686 ! Uranus - 1.69534E-04 - 1.992234896320000E+01 2.342619564376139E+00 -2.493547557095487E-01 - -4.936420700174518E-04 3.724868172847281E-03 2.027439791557233E-05 - 9 1.524368011623570E-08 0.7757 ! Neptune - 1.64601E-04 - 2.647158936403647E+01 -1.409652133490650E+01 -3.196444184043846E-01 - 1.449117851099529E-03 2.791630281764020E-03 -9.063088654405710E-05 diff --git a/examples/helio_swifter_comparison/mars_ejecta/pl.swiftest.in b/examples/helio_swifter_comparison/mars_ejecta/pl.swiftest.in deleted file mode 100644 index e1931fc7f..000000000 --- a/examples/helio_swifter_comparison/mars_ejecta/pl.swiftest.in +++ /dev/null @@ -1,33 +0,0 @@ -8 -2 4.91257681286267e-11 -1.63104e-05 -0.3347381871776144 -0.2106110537919978 -0.04792146121659843 -0.00945723943744966 0.02510612575783642 0.001183593414707043 -3 7.24349577897439e-10 -4.04538e-05 --0.4641166544325086 0.5473160240817795 0.03428518329144122 --0.01549753193570599 -0.01319081534035637 0.0007136685719563098 -4 8.99706515852682e-10 -4.2587571e-05 -0.7844742229036105 0.6083466458892074 -1.996912082982283e-05 --0.01081828010368904 0.01352675083743791 2.330162751015549e-07 -5 9.5495921816317e-11 -2.26601e-05 -0.3248808297463504 -1.392041319192106 -0.03714224198825128 -0.01415678377567019 0.00438099249862839 -0.0002558013868476858 -6 2.82536279610815e-07 -0.000467326 -1.873343037544675 4.683322528183729 -0.06137078942429344 --0.007104028854569467 0.003164193073442964 0.0001458211211387848 -7 8.45976574787475e-08 -0.000389257 --8.251865479985982 -5.225008639958182 0.4193935221241906 -0.002677374423933877 -0.004723961471952217 -2.458643348128228e-05 -8 1.29203263898233e-08 -0.000169534 -19.9223489632 2.342619564376139 -0.2493547557095487 --0.0004936420700174518 0.003724868172847281 2.027439791557233e-05 -9 1.52436801162357e-08 -0.000164601 -26.47158936403647 -14.0965213349065 -0.3196444184043846 -0.001449117851099529 0.00279163028176402 -9.06308865440571e-05 diff --git a/examples/helio_swifter_comparison/mars_ejecta/profmaker.sh b/examples/helio_swifter_comparison/mars_ejecta/profmaker.sh deleted file mode 100755 index 9b1adcd8c..000000000 --- a/examples/helio_swifter_comparison/mars_ejecta/profmaker.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -gprof ./swiftest_driver | /home/daminton/git/gprof2dot/gprof2dot.py | dot -Tpng -o swiftest_profile.png diff --git a/examples/helio_swifter_comparison/mars_ejecta/profswifter.sh b/examples/helio_swifter_comparison/mars_ejecta/profswifter.sh deleted file mode 100755 index a03493f54..000000000 --- a/examples/helio_swifter_comparison/mars_ejecta/profswifter.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -gprof ./swifter_rmvs | /home/daminton/git/gprof2dot/gprof2dot.py | dot -Tpng -o swifter_profile.png diff --git a/examples/helio_swifter_comparison/mars_ejecta/start.in b/examples/helio_swifter_comparison/mars_ejecta/start.in deleted file mode 100644 index d6d7c3850..000000000 --- a/examples/helio_swifter_comparison/mars_ejecta/start.in +++ /dev/null @@ -1 +0,0 @@ -param.in diff --git a/examples/helio_swifter_comparison/mars_ejecta/swiftest_rmvs_vs_swifter_rmvs.ipynb b/examples/helio_swifter_comparison/mars_ejecta/swiftest_rmvs_vs_swifter_rmvs.ipynb deleted file mode 100644 index 2ef9e28a5..000000000 --- a/examples/helio_swifter_comparison/mars_ejecta/swiftest_rmvs_vs_swifter_rmvs.ipynb +++ /dev/null @@ -1,241 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import swiftestio as swio\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" - ] - } - ], - "source": [ - "inparfile = 'param.swifter.in'\n", - "param = swio.read_swifter_param(inparfile)\n", - "swifterdat = swio.swifter2xr(param)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reading Swiftest file param.swiftest.in\n" - ] - } - ], - "source": [ - "param_file_name = 'param.swiftest.in'\n", - "config = swio.read_swiftest_config(param_file_name)\n", - "swiftestdat = swio.swiftest2xr(config)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "swiftdiff = swiftestdat - swifterdat" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "swiftdiff = swiftdiff.rename({'time' : 'time (d)'})" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "swiftdiff['rmag'] = np.sqrt(swiftdiff['px']**2 + swiftdiff['py']**2 + swiftdiff['pz']**2)\n", - "swiftdiff['vmag'] = np.sqrt(swiftdiff['vx']**2 + swiftdiff['vy']**2 + swiftdiff['vz']**2)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "plidx = swiftdiff.id.values[swiftdiff.id.values < 10]\n", - "tpidx = swiftdiff.id.values[swiftdiff.id.values > 10]" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots()\n", - "swiftdiff['rmag'].sel(id=plidx).plot.line(ax=ax, x=\"time (d)\")\n", - "ax.set_ylabel(\"$|\\mathbf{r}_{swiftest} - \\mathbf{r}_{swifter}|$\")\n", - "ax.set_title(\"Heliocentric position differences \\n Planets only\")\n", - "fig.savefig(\"rmvs_swifter_comparison-mars_ejecta-planets-rmag.png\", facecolor='white', transparent=False, dpi=300)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots()\n", - "swiftdiff['vmag'].sel(id=plidx).plot.line(ax=ax, x=\"time (d)\")\n", - "ax.set_ylabel(\"$|\\mathbf{v}_{swiftest} - \\mathbf{v}_{swifter}|$\")\n", - "ax.set_title(\"Heliocentric velocity differences \\n Planets only\")\n", - "fig.savefig(\"rmvs_swifter_comparison-mars_ejecta-planets-vmag.png\", facecolor='white', transparent=False, dpi=300)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "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" - } - ], - "source": [ - "fig, ax = plt.subplots()\n", - "swiftdiff['rmag'].sel(id=tpidx).plot.line(ax=ax, x=\"time (d)\")\n", - "ax.set_ylabel(\"$|\\mathbf{r}_{swiftest} - \\mathbf{r}_{swifter}|$\")\n", - "ax.set_title(\"Heliocentric position differences \\n Test Particles only\")\n", - "legend = ax.legend()\n", - "legend.remove()\n", - "fig.savefig(\"rmvs_swifter_comparison-mars_ejecta-testparticles-rmag.png\", facecolor='white', transparent=False, dpi=300)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "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" - } - ], - "source": [ - "fig, ax = plt.subplots()\n", - "swiftdiff['vmag'].sel(id=tpidx).plot.line(ax=ax, x=\"time (d)\")\n", - "ax.set_ylabel(\"$|\\mathbf{v}_{swiftest} - \\mathbf{v}_{swifter}|$\")\n", - "ax.set_title(\"Heliocentric velocity differences \\n Test Particles only\")\n", - "legend = ax.legend()\n", - "legend.remove()\n", - "fig.savefig(\"rmvs_swifter_comparison-mars_ejecta-testparticles-vmag.png\", facecolor='white', transparent=False, dpi=300)" - ] - }, - { - "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/helio_swifter_comparison/mars_ejecta/tp.in b/examples/helio_swifter_comparison/mars_ejecta/tp.in deleted file mode 100644 index d5eb0e3f8..000000000 --- a/examples/helio_swifter_comparison/mars_ejecta/tp.in +++ /dev/null @@ -1,601 +0,0 @@ - 200 - 6000200 - 0.321794727714005 -1.39371227734394 -3.555372224179648E-002 - 1.263074812292130E-002 3.554726326213714E-003 5.297001107625803E-004 - 6000201 - 0.327226184487893 -1.39016803345029 -3.472777857996821E-002 - 1.531652992677778E-002 5.307306923696688E-003 9.381180638637231E-004 - 6000202 - 0.327531202012097 -1.39478453402311 -3.768059236489047E-002 - 1.546735696093592E-002 3.024509922426058E-003 -5.220083559665117E-004 - 6000203 - 0.322202594471783 -1.39306474804903 -3.456946701305916E-002 - 1.283243270995610E-002 3.874920791552106E-003 1.016400989319078E-003 - 6000204 - 0.323275102327213 -1.39231827262319 -4.063286630727199E-002 - 1.336277331700188E-002 4.244042778378470E-003 -1.981867830972686E-003 - 6000205 - 0.325545380653237 -1.39090814848439 -3.352094137611809E-002 - 1.448539519756952E-002 4.941330064430509E-003 1.534882714168952E-003 - 6000206 - 0.322100032022230 -1.38941601200018 -3.760532734717235E-002 - 1.278171696789352E-002 5.679171344404378E-003 -4.847908241938090E-004 - 6000207 - 0.325337949472342 -1.39379280734375 -3.374182250017822E-002 - 1.438282328833895E-002 3.514905332112549E-003 1.425659990227191E-003 - 6000208 - 0.326082121124172 -1.39530189188417 -3.547938702480286E-002 - 1.475080609012429E-002 2.768683467912135E-003 5.664578686714714E-004 - 6000209 - 0.327275685332658 -1.39441408865592 -3.527833381550945E-002 - 1.534100742400883E-002 3.207690138697890E-003 6.658759573365761E-004 - 6000210 - 0.327855145958387 -1.39318452150569 -3.930697139978061E-002 - 1.562754285445135E-002 3.815694439606817E-003 -1.326230758891795E-003 - 6000211 - 0.328078710851062 -1.39251497560023 -3.504731288890989E-002 - 1.573809266562045E-002 4.146775820637334E-003 7.801126762871974E-004 - 6000212 - 0.321277816542297 -1.39195915492794 -3.578170284173104E-002 - 1.237514255024041E-002 4.421621614318133E-003 4.169667921656008E-004 - 6000213 - 0.324665498950826 -1.39490683098100 -3.970778222771389E-002 - 1.405030561400833E-002 2.964035733299919E-003 -1.524426284193035E-003 - 6000214 - 0.324929781829885 -1.39405065211182 -4.042853272331495E-002 - 1.418098991790633E-002 3.387404586890700E-003 -1.880827641470143E-003 - 6000215 - 0.327555988964697 -1.39432357646482 -3.871524764041770E-002 - 1.547961377324917E-002 3.252447191181946E-003 -1.033631374975754E-003 - 6000216 - 0.321438220244275 -1.39139099683337 -3.554066697282077E-002 - 1.245446000814854E-002 4.702568096196656E-003 5.361557644332466E-004 - 6000217 - 0.327269239795964 -1.39111145972877 -3.426641502936644E-002 - 1.533782019342066E-002 4.840795408002274E-003 1.166256090318398E-003 - 6000218 - 0.323989604933645 -1.39344910147082 -4.061548100580529E-002 - 1.371608517771453E-002 3.684863230669170E-003 -1.973271034886913E-003 - 6000219 - 0.321638711062574 -1.39087780679511 -3.541758920393877E-002 - 1.255360000208438E-002 4.956333618793669E-003 5.970160540173710E-004 - 6000220 - 0.322548442178556 -1.38969900689356 -3.516409557966647E-002 - 1.300344971633673E-002 5.539234202882858E-003 7.223652175672305E-004 - 6000221 - 0.326425905823290 -1.38912149826721 -3.516059934460978E-002 - 1.492080296716386E-002 5.824804396075300E-003 7.240940584451341E-004 - 6000222 - 0.325686803560988 -1.39394570042399 -4.039235894274407E-002 - 1.455532690983334E-002 3.439301774920795E-003 -1.862940196963350E-003 - 6000223 - 0.327419177059503 -1.39257520407836 -3.429421078579946E-002 - 1.541196213929194E-002 4.116993654016758E-003 1.152511465264746E-003 - 6000224 - 0.324490052620445 -1.39553030085443 -3.872774571953116E-002 - 1.396354978011187E-002 2.655738325987235E-003 -1.039811505806850E-003 - 6000225 - 0.321731345032329 -1.39031854790183 -3.853949894445081E-002 - 1.259940624537157E-002 5.232879566177696E-003 -9.467260253928260E-004 - 6000226 - 0.325601002353804 -1.39413056037783 -3.398693779254160E-002 - 1.451289937508628E-002 3.347891031734538E-003 1.304453798319087E-003 - 6000227 - 0.325825665573909 -1.38837078808078 -3.783072474317082E-002 - 1.462399229429218E-002 6.196020414654821E-003 -5.962467834347196E-004 - 6000228 - 0.328007765778950 -1.39171771880483 -3.491579285982123E-002 - 1.570301128843478E-002 4.541008506865058E-003 8.451475491903844E-004 - 6000229 - 0.326038941297358 -1.38837178473418 -3.696108906496336E-002 - 1.472945425064948E-002 6.195527583046642E-003 -1.662237200565085E-004 - 6000230 - 0.324865697509285 -1.38818972404806 -3.707510223923227E-002 - 1.414930108941243E-002 6.285554126260012E-003 -2.226016903873118E-004 - 6000231 - 0.326890450931510 -1.39246034816528 -3.388258567264032E-002 - 1.515051423076515E-002 4.173788347277624E-003 1.356054508127195E-003 - 6000232 - 0.325593633813168 -1.38828971482136 -3.764909195799739E-002 - 1.450925573155059E-002 6.236110043272472E-003 -5.064318314410409E-004 - 6000233 - 0.326626976582762 -1.39216397200456 -3.371070451979964E-002 - 1.502022973415419E-002 4.320342344240131E-003 1.441047410021331E-003 - 6000234 - 0.327898875134393 -1.39098636673654 -3.929119504411583E-002 - 1.564916633966053E-002 4.902652198234570E-003 -1.318429564711382E-003 - 6000235 - 0.325772175388830 -1.39276944665725 -4.081849758657961E-002 - 1.459754212231259E-002 4.020943329837438E-003 -2.073659984154833E-003 - 6000236 - 0.325970862049605 -1.39573308065969 -3.729140206480187E-002 - 1.469578998479103E-002 2.555466459007209E-003 -3.295590242806717E-004 - 6000237 - 0.323334466127931 -1.38903625723277 -3.899099401712434E-002 - 1.339212791235488E-002 5.866954932989258E-003 -1.169984223183693E-003 - 6000238 - 0.321058043138336 -1.39159433514890 -3.730357920900053E-002 - 1.226646757888280E-002 4.602020053452453E-003 -3.355804571435673E-004 - 6000239 - 0.321631711087942 -1.39236740484015 -3.509861335813708E-002 - 1.255013860944605E-002 4.219747562605665E-003 7.547452891357343E-004 - 6000240 - 0.321306936119327 -1.39062854909901 -3.740848791004924E-002 - 1.238954178664758E-002 5.079588173238877E-003 -3.874563887900095E-004 - 6000241 - 0.322359878582366 -1.39481226441940 -3.804012263745659E-002 - 1.291020757217519E-002 3.010797617075125E-003 -6.997912057971096E-004 - 6000242 - 0.323817379375385 -1.38838475633633 -3.772374286905647E-002 - 1.363092197200557E-002 6.189113301486290E-003 -5.433456957891204E-004 - 6000243 - 0.327623726544369 -1.39464240098381 -3.788413992758530E-002 - 1.551310908886966E-002 3.094792785121600E-003 -6.226598686018013E-004 - 6000244 - 0.322826324940355 -1.38886200520861 -3.642775302359531E-002 - 1.314085897803487E-002 5.953120198633154E-003 9.750372819152632E-005 - 6000245 - 0.322612433934003 -1.39373086883468 -3.975745217634516E-002 - 1.303509277261627E-002 3.545533085870808E-003 -1.548987400995745E-003 - 6000246 - 0.321924589943174 -1.39047906318775 -3.905523030161998E-002 - 1.269496323622005E-002 5.153506931519558E-003 -1.201748195765625E-003 - 6000247 - 0.325483402999438 -1.39432969787986 -3.410254622383869E-002 - 1.445474808727309E-002 3.249420234359466E-003 1.247286994996116E-003 - 6000248 - 0.324075789932299 -1.39390925319708 -3.387081182165206E-002 - 1.375870249214517E-002 3.457324434934150E-003 1.361876517960287E-003 - 6000249 - 0.325555351421543 -1.39061734515993 -3.362701221631959E-002 - 1.449032560743936E-002 5.085128369354139E-003 1.482432120453008E-003 - 6000250 - 0.326533132333845 -1.39533418173792 -3.601686458585766E-002 - 1.497382502421540E-002 2.752716572605950E-003 3.006824950365570E-004 - 6000251 - 0.328077463583129 -1.39411605620772 -3.770484336908437E-002 - 1.573747590852224E-002 3.355063147389858E-003 -5.340001490527292E-004 - 6000252 - 0.321651628711733 -1.39378675143995 -3.597380335900138E-002 - 1.255998760462024E-002 3.517899894512744E-003 3.219756884387962E-004 - 6000253 - 0.324493522176533 -1.38860008548191 -3.882967355197441E-002 - 1.396526542860112E-002 6.082635955702965E-003 -1.090213438304715E-003 - 6000254 - 0.324521711140188 -1.39586389310030 -3.745606427432058E-002 - 1.397920448930016E-002 2.490781479023323E-003 -4.109822564850102E-004 - 6000255 - 0.323857759005521 -1.39310641830337 -4.070010820644245E-002 - 1.365088915215276E-002 3.854315415219456E-003 -2.015118039299293E-003 - 6000256 - 0.324036458712472 -1.39214287853430 -4.089940117322854E-002 - 1.373925373669473E-002 4.330772779566417E-003 -2.113665711887594E-003 - 6000257 - 0.322090781783657 -1.39468966511415 -3.693872754859708E-002 - 1.277714285021657E-002 3.071421312874804E-003 -1.551662531073200E-004 - 6000258 - 0.328092592928615 -1.39374096057231 -3.586344633457473E-002 - 1.574495716493310E-002 3.540542858309311E-003 3.765457421963371E-004 - 6000259 - 0.324548049062538 -1.39233312653552 -3.331554270885758E-002 - 1.399222823514643E-002 4.236697719935751E-003 1.636449572938168E-003 - 6000260 - 0.324887975354043 -1.39268402922437 -4.094045138727274E-002 - 1.416031718188453E-002 4.063181093387097E-003 -2.133964486694073E-003 - 6000261 - 0.321944774836254 -1.39352845277138 -3.514035858345473E-002 - 1.270494439243692E-002 3.645625087381753E-003 7.341028406686787E-004 - 6000262 - 0.327218902932329 -1.38903404006224 -3.771600840082730E-002 - 1.531292929618219E-002 5.868051293781019E-003 -5.395211060156568E-004 - 6000263 - 0.325421465012036 -1.39138633273825 -4.089966505983452E-002 - 1.442412059147267E-002 4.704874428056443E-003 -2.113796200239817E-003 - 6000264 - 0.324143614425125 -1.39411979216184 -3.398376362544507E-002 - 1.379224078514325E-002 3.353215768678313E-003 1.306023380953205E-003 - 6000265 - 0.324251383572956 -1.39481065425279 -3.453953133960193E-002 - 1.384553116897805E-002 3.011593822657939E-003 1.031203774355344E-003 - 6000266 - 0.323082300628443 -1.39404098553295 -3.438431714855358E-002 - 1.326743548852136E-002 3.392184579203928E-003 1.107955089402535E-003 - 6000267 - 0.325299655987546 -1.39040136408079 -4.060268324575995E-002 - 1.436388767880525E-002 5.191928087451827E-003 -1.966942715894272E-003 - 6000268 - 0.328389849750416 -1.39205995084950 -3.873156679977102E-002 - 1.589194663687427E-002 4.371779396419775E-003 -1.041700978227703E-003 - 6000269 - 0.325793463819930 -1.38928905744628 -3.967831695053032E-002 - 1.460806896313280E-002 5.741948651668003E-003 -1.509856103742432E-003 - 6000270 - 0.326601355314686 -1.39233804164542 -4.057608377821496E-002 - 1.500756036413905E-002 4.234267264663880E-003 -1.953789639491635E-003 - 6000271 - 0.321827451960849 -1.39213071131237 -3.479524070321862E-002 - 1.264692981972560E-002 4.336789306004781E-003 9.047589577125814E-004 - 6000272 - 0.321663381504649 -1.39142897193463 -3.917019157646589E-002 - 1.256579920152172E-002 4.683789923007624E-003 -1.258594988989431E-003 - 6000273 - 0.324648930551282 -1.39538104296497 -3.904801998382525E-002 - 1.404211276485815E-002 2.729544330582880E-003 -1.198182791282209E-003 - 6000274 - 0.321223963022878 -1.39253230185508 -3.603509083528145E-002 - 1.234851271435078E-002 4.138208222307412E-003 2.916698615769088E-004 - 6000275 - 0.321349228011334 -1.39221979031449 -3.561402108543606E-002 - 1.241045455438754E-002 4.292740946056133E-003 4.998831493500657E-004 - 6000276 - 0.324379742702741 -1.38833977818834 -3.620042042538130E-002 - 1.390900301999063E-002 6.211354386424082E-003 2.099166187150847E-004 - 6000277 - 0.321457479810322 -1.39117525342277 -3.868176372657838E-002 - 1.246398360268161E-002 4.809250290424065E-003 -1.017074033132608E-003 - 6000278 - 0.325405274076550 -1.39361725382059 -3.366648162894059E-002 - 1.441611439318668E-002 3.601714171383542E-003 1.462915030537829E-003 - 6000279 - 0.321794234123648 -1.39021314640619 -3.573859188553418E-002 - 1.263050404917571E-002 5.284999178073548E-003 4.382845760531595E-004 - 6000280 - 0.326444232064343 -1.39553980455841 -3.753707767299938E-002 - 1.492986504512957E-002 2.651038873102111E-003 -4.510422847790933E-004 - 6000281 - 0.322277249464589 -1.39203923743843 -3.998141216047151E-002 - 1.286934859267273E-002 4.382021897621130E-003 -1.659732579536102E-003 - 6000282 - 0.328312462659902 -1.39188336185765 -3.539912210963739E-002 - 1.585367976884838E-002 4.459100260935347E-003 6.061477820066648E-004 - 6000283 - 0.325347229643059 -1.39100999963996 -4.082441159349795E-002 - 1.438741220705580E-002 4.890966047611239E-003 -2.076584380468826E-003 - 6000284 - 0.325755425615411 -1.38888217640230 -3.916570950307285E-002 - 1.458925958623789E-002 5.943145816580859E-003 -1.256378664407702E-003 - 6000285 - 0.325383104362951 -1.39054381044671 -4.065574588764872E-002 - 1.440515177010779E-002 5.121490288988412E-003 -1.993181473557695E-003 - 6000286 - 0.325529431096013 -1.39548980174177 -3.555264887114687E-002 - 1.447750835756422E-002 2.675764588624088E-003 5.302308780096619E-004 - 6000287 - 0.321386839414644 -1.39364212905941 -3.740484666220886E-002 - 1.242905288386607E-002 3.589413702731343E-003 -3.856558410548179E-004 - 6000288 - 0.325609144161828 -1.39058365051225 -3.365164289696592E-002 - 1.451692538887061E-002 5.101789916224030E-003 1.470252582503900E-003 - 6000289 - 0.325746594379357 -1.39018221747378 -3.388130434928219E-002 - 1.458489265963108E-002 5.300293116209953E-003 1.356688105171851E-003 - 6000290 - 0.328670099790430 -1.39148012214160 -3.754968804313675E-002 - 1.603052648558429E-002 4.658496838509829E-003 -4.572779420004985E-004 - 6000291 - 0.327050766991314 -1.39494919091028 -3.584795596588932E-002 - 1.522978835080585E-002 2.943089322051995E-003 3.842055196892361E-004 - 6000292 - 0.324537148578145 -1.39587795189979 -3.718291882528427E-002 - 1.398683809326467E-002 2.483829593105807E-003 -2.759155317796403E-004 - 6000293 - 0.325510509540737 -1.38957080345959 -3.425440936567027E-002 - 1.446815190477895E-002 5.602629064425047E-003 1.172192728395570E-003 - 6000294 - 0.325364297568245 -1.39459990856101 -3.430333353770083E-002 - 1.439585206486989E-002 3.115804712620871E-003 1.148000388020130E-003 - 6000295 - 0.323644249841663 -1.39514928477911 -3.905298580505075E-002 - 1.354531176267529E-002 2.844145614251118E-003 -1.200638322614567E-003 - 6000296 - 0.322252155329533 -1.39173521301220 -3.994150826731383E-002 - 1.285693988279573E-002 4.532357858282674E-003 -1.640000644880718E-003 - 6000297 - 0.326793296706268 -1.39091455480311 -4.029063745626598E-002 - 1.510247278236859E-002 4.938162226599772E-003 -1.812640299750235E-003 - 6000298 - 0.328394129335298 -1.39145794911307 -3.861054959678920E-002 - 1.589406283363007E-002 4.669461100775097E-003 -9.818596105701817E-004 - 6000299 - 0.325717727002889 -1.39559209734865 -3.590486599481333E-002 - 1.457061813298568E-002 2.625180796653218E-003 3.560642812509859E-004 - 6000300 - 0.321281416206461 -1.39340867720813 -3.702359920936095E-002 - 1.237692253541057E-002 3.704852481010806E-003 -1.971341397410737E-004 - 6000301 - 0.326826923545244 -1.39251344124293 -4.043303848440993E-002 - 1.511910079875579E-002 4.147534539539541E-003 -1.883055679299622E-003 - 6000302 - 0.325221626988922 -1.39387263555342 -3.377034941755341E-002 - 1.432530339591360E-002 3.475431363727050E-003 1.411553815991447E-003 - 6000303 - 0.322406645286088 -1.39162516754770 -4.006538258520391E-002 - 1.293333307369588E-002 4.586773849880030E-003 -1.701254817159826E-003 - 6000304 - 0.327187048763822 -1.39463651865951 -3.547316576113219E-002 - 1.529717784133024E-002 3.097701514809212E-003 5.695341992875920E-004 - 6000305 - 0.327480662501029 -1.39487649003504 -3.693682090078323E-002 - 1.544236585728670E-002 2.979038920099771E-003 -1.542234415895329E-004 - 6000306 - 0.328551533470727 -1.39151193343580 -3.818397457052056E-002 - 1.597189704651028E-002 4.642766584423178E-003 -7.709240381764704E-004 - 6000307 - 0.322630404860865 -1.38945264563622 -3.538899387690294E-002 - 1.304397915252749E-002 5.661056507596596E-003 6.111560559036752E-004 - 6000308 - 0.328374974048021 -1.39213603553404 -3.876134862395392E-002 - 1.588459080353605E-002 4.334156550504728E-003 -1.056427686881741E-003 - 6000309 - 0.324324666115425 -1.38831319086554 -3.634772132746308E-002 - 1.388176839359332E-002 6.224501457414479E-003 1.370783178738140E-004 - 6000310 - 0.327780384205777 -1.39040540380995 -3.520423097607128E-002 - 1.559057418045742E-002 5.189930496106032E-003 7.025188076919263E-004 - 6000311 - 0.326421010606110 -1.39541002836368 -3.608433683151303E-002 - 1.491838234857564E-002 2.715211443533721E-003 2.673183834932795E-004 - 6000312 - 0.324795021294935 -1.39575370968382 -3.816709106533256E-002 - 1.411435265874821E-002 2.545265686000613E-003 -7.625753735535234E-004 - 6000313 - 0.325813555169143 -1.39541693890006 -3.874684061627268E-002 - 1.461800386317468E-002 2.711794276901274E-003 -1.049253673599004E-003 - 6000314 - 0.322857896534282 -1.38930726976145 -3.533330948140715E-002 - 1.315647070358410E-002 5.732942908509505E-003 6.386912352132688E-004 - 6000315 - 0.326219515200231 -1.39471810186507 -3.471690125726086E-002 - 1.481874559968870E-002 3.057359724732503E-003 9.434967526056666E-004 - 6000316 - 0.321329945274699 -1.39230542391461 -3.567221135978340E-002 - 1.240091950231233E-002 4.250396290733629E-003 4.711088468913174E-004 - 6000317 - 0.324943199595914 -1.39100652024179 -4.085233942880207E-002 - 1.418762482145983E-002 4.892686562876645E-003 -2.090394316735189E-003 - 6000318 - 0.326617044426315 -1.39248593326675 -4.055213917054404E-002 - 1.501531841732557E-002 4.161136861160018E-003 -1.941949355335786E-003 - 6000319 - 0.322850100717639 -1.38930020663682 -3.535283888796843E-002 - 1.315261577785102E-002 5.736435527964740E-003 6.290342082008193E-004 - 6000320 - 0.327167129230231 -1.39467550377465 -3.550717986735132E-002 - 1.528732790178609E-002 3.078423903439586E-003 5.527146844942592E-004 - 6000321 - 0.326175366886518 -1.39179718675643 -3.352228413895547E-002 - 1.479691485656030E-002 4.501712681218141E-003 1.534218736134025E-003 - 6000322 - 0.323968917553573 -1.39007740521288 -3.395618173788408E-002 - 1.370585554848606E-002 5.352121359507512E-003 1.319662250746563E-003 - 6000323 - 0.323157023880416 -1.38871984144043 -3.622802058959314E-002 - 1.330438512447146E-002 6.023418256348253E-003 1.962687113654486E-004 - 6000324 - 0.322467171269080 -1.39052754228481 -3.454951097363686E-002 - 1.296326235244168E-002 5.129534674689875E-003 1.026268980502423E-003 - 6000325 - 0.328300367708115 -1.39034678218645 -3.766648081609209E-002 - 1.584769897901974E-002 5.218918094875141E-003 -5.150303862311877E-004 - 6000326 - 0.327360300143949 -1.39032093899113 -3.953640998478093E-002 - 1.538284830205775E-002 5.231697204908905E-003 -1.439685031354920E-003 - 6000327 - 0.326573187554760 -1.39309481142322 -4.043854310486605E-002 - 1.499363178839726E-002 3.860054860233954E-003 -1.885777639553315E-003 - 6000328 - 0.325274808255286 -1.39252110692220 -3.334038631599733E-002 - 1.435160081177285E-002 4.143743964976811E-003 1.624164745722223E-003 - 6000329 - 0.322448036910301 -1.39211775354247 -4.012807498610159E-002 - 1.295380067120641E-002 4.343196747700902E-003 -1.732255360214964E-003 - 6000330 - 0.326810673793556 -1.38893153269665 -3.834409546944328E-002 - 1.511106551665390E-002 5.918739797571082E-003 -8.501016538046097E-004 - 6000331 - 0.326775470290585 -1.38869840010547 -3.741564841183009E-002 - 1.509365786127752E-002 6.034020706053717E-003 -3.909971599293355E-004 - 6000332 - 0.326271250871605 -1.39390875709412 -4.021126897748652E-002 - 1.484432818840653E-002 3.457569751128591E-003 -1.773393662065399E-003 - 6000333 - 0.321666944784208 -1.39307414833960 -3.528651321326542E-002 - 1.256756119499773E-002 3.870272475198349E-003 6.618313559388317E-004 - 6000334 - 0.325766832048710 -1.39507466523029 -3.493921370497112E-002 - 1.459489991300033E-002 2.881043970394314E-003 8.335662585066534E-004 - 6000335 - 0.321552673105825 -1.39151724509758 -3.527455850230447E-002 - 1.251105539788419E-002 4.640140039617423E-003 6.677427985786109E-004 - 6000336 - 0.326440517111881 -1.39496814513121 -3.518250039097470E-002 - 1.492802805145723E-002 2.933716716541827E-003 7.132642876744128E-004 - 6000337 - 0.328149349552533 -1.39379829625323 -3.817632697865712E-002 - 1.577302254667368E-002 3.512191140723280E-003 -7.671424075890959E-004 - 6000338 - 0.324135308775169 -1.38971487157048 -3.416375884586458E-002 - 1.378813375374246E-002 5.531389335037621E-003 1.217018182548996E-003 - 6000339 - 0.324286880142571 -1.38901868791716 -3.482913889326955E-002 - 1.386308374183996E-002 5.875642721572888E-003 8.879967618943014E-004 - 6000340 - 0.328695490885568 -1.39186332148561 -3.764840312220126E-002 - 1.604308203819967E-002 4.469009953454875E-003 -5.060912114703549E-004 - 6000341 - 0.326127505166542 -1.39330528092113 -3.372351078671609E-002 - 1.477324788433473E-002 3.755980544394189E-003 1.434714884496157E-003 - 6000342 - 0.323411133267291 -1.38892035601416 -3.885662321348482E-002 - 1.343003877428764E-002 5.924266515672206E-003 -1.103539680879768E-003 - 6000343 - 0.323443535356482 -1.38878773000395 -3.566309895402712E-002 - 1.344606116849591E-002 5.989848281256044E-003 4.756148081073266E-004 - 6000344 - 0.326161896812670 -1.39219123381745 -4.077210626406107E-002 - 1.479025408749908E-002 4.306861747038268E-003 -2.050720103554825E-003 - 6000345 - 0.327496529611136 -1.39347379619798 -3.470387250659136E-002 - 1.545021192830949E-002 3.672652022584027E-003 9.499392933331112E-004 - 6000346 - 0.326907660359911 -1.39442320185806 -3.939126722457996E-002 - 1.515902406000240E-002 3.203183783680173E-003 -1.367913902440976E-003 - 6000347 - 0.327627930876646 -1.39427354730877 -3.562233577430311E-002 - 1.551518807423184E-002 3.277185931186497E-003 4.957716483304529E-004 - 6000348 - 0.325119576127018 -1.39376660753008 -3.370627018966749E-002 - 1.427484062701359E-002 3.527860785085645E-003 1.443240126207252E-003 - 6000349 - 0.321582888441476 -1.39198483014723 -3.515228871706261E-002 - 1.252599647208718E-002 4.408925566155315E-003 7.282035511970817E-004 - 6000350 - 0.328649590429548 -1.39230144150209 -3.789609952169283E-002 - 1.602038488443426E-002 4.252365539779506E-003 -6.285737258914244E-004 - 6000351 - 0.325091488310059 -1.39588396719579 -3.697135848001232E-002 - 1.426095158198591E-002 2.480855110709554E-003 -1.713018066956808E-004 - 6000352 - 0.323629747250521 -1.38958719080047 -3.983511560394539E-002 - 1.353814042779786E-002 5.594525746332192E-003 -1.587390913967920E-003 - 6000353 - 0.321678639713746 -1.38999980605140 -3.649592552125010E-002 - 1.257334417924268E-002 5.390493093753963E-003 6.379335151967012E-005 - 6000354 - 0.321979789899611 -1.39044531600697 -3.911106486620910E-002 - 1.272225886697657E-002 5.170194455300030E-003 -1.229357631657783E-003 - 6000355 - 0.325389900698438 -1.39279507601704 -4.088553189135913E-002 - 1.440851246594727E-002 4.008269958578387E-003 -2.106807539867057E-003 - 6000356 - 0.325843612080240 -1.38834809342622 -3.662007773836583E-002 - 1.463286659858156E-002 6.207242613925633E-003 2.401761837715437E-006 - 6000357 - 0.321369009956186 -1.39207775902686 -3.555942305231640E-002 - 1.242023645816423E-002 4.362973493929667E-003 5.268811371797942E-004 - 6000358 - 0.325504520827021 -1.39403046328794 -4.038166123959698E-002 - 1.446519056696509E-002 3.397387686834489E-003 -1.857650327660951E-003 - 6000359 - 0.321990553923499 -1.38951059135313 -3.685720838148137E-002 - 1.272758153098724E-002 5.632403135476837E-003 -1.148561291719788E-004 - 6000360 - 0.324610041911226 -1.38980909225812 -3.401440587559276E-002 - 1.402288285910944E-002 5.484798481249997E-003 1.290871203314320E-003 - 6000361 - 0.328509070048447 -1.39256561942476 -3.832567067658864E-002 - 1.595089945937337E-002 4.121733135395790E-003 -8.409908433077421E-004 - 6000362 - 0.324576175323637 -1.39320821636194 -4.080080161764887E-002 - 1.400613629028089E-002 3.803977654144154E-003 -2.064909567216185E-003 - 6000363 - 0.322653205268223 -1.39479071554500 -3.866475003855334E-002 - 1.305525364512712E-002 3.021453243581057E-003 -1.008660994860108E-003 - 6000364 - 0.325278470241920 -1.39300006526267 -4.085198724804461E-002 - 1.435341161456094E-002 3.906905553258331E-003 -2.090220168121022E-003 - 6000365 - 0.327882444238280 -1.39058964691285 -3.907161492253900E-002 - 1.564104148409440E-002 5.098824777354270E-003 -1.209850168875113E-003 - 6000366 - 0.327925534924085 -1.39112239948916 -3.496856334495498E-002 - 1.566234924454749E-002 4.835385844669870E-003 8.190532590849669E-004 - 6000367 - 0.327291588883165 -1.38906313116244 -3.674455074075982E-002 - 1.534887151431583E-002 5.853666138781197E-003 -5.914845181920610E-005 - 6000368 - 0.326403910822977 -1.39105116007004 -3.374528293181369E-002 - 1.490992673743835E-002 4.870612772465192E-003 1.423948853656114E-003 - 6000369 - 0.328034117962957 -1.39191633393057 -3.935146673723238E-002 - 1.571604208647744E-002 4.442796017492191E-003 -1.348233100558018E-003 - 6000370 - 0.323887294249176 -1.39308506929055 -3.356970859695257E-002 - 1.366549393007587E-002 3.864872212877050E-003 1.510767984034018E-003 - 6000371 - 0.324195814984085 -1.39153924083899 -4.089966051523319E-002 - 1.381805325447577E-002 4.629263443433466E-003 -2.113793952996017E-003 - 6000372 - 0.323696388851772 -1.38910872113090 -3.494303980046445E-002 - 1.357109379693476E-002 5.831122516909043E-003 8.316743061108993E-004 - 6000373 - 0.328595123870093 -1.39262055299375 -3.630079724885421E-002 - 1.599345190855066E-002 4.094569229621872E-003 1.602816391441369E-004 - 6000374 - 0.326120765455020 -1.39220930951942 -3.349891101613327E-002 - 1.476991518827874E-002 4.297923557253797E-003 1.545776428773127E-003 - 6000375 - 0.325484317791356 -1.39317547361155 -4.077391072541323E-002 - 1.445520043948558E-002 3.820168500697788E-003 -2.051612385251454E-003 - 6000376 - 0.325938226310969 -1.39515654081679 -3.513803924942247E-002 - 1.467965205409683E-002 2.840557601902009E-003 7.352497199315036E-004 - 6000377 - 0.321076313569735 -1.39158800158611 -3.754184390774611E-002 - 1.227550205973084E-002 4.605151914460645E-003 -4.533991233011673E-004 - 6000378 - 0.322061849593275 -1.38999211007948 -3.550101842230587E-002 - 1.276283627396840E-002 5.394298647622158E-003 5.557614356104747E-004 - 6000379 - 0.328448014596534 -1.39176878090750 -3.857068065062026E-002 - 1.592070836541795E-002 4.515758988744939E-003 -9.621449567273610E-004 - 6000380 - 0.327573537859497 -1.39067587171533 -3.953481342703309E-002 - 1.548829146402245E-002 5.056187780465731E-003 -1.438895555174500E-003 - 6000381 - 0.325341975557433 -1.39322163371681 -4.078006057193613E-002 - 1.438481413288207E-002 3.797342953904623E-003 -2.054653401055379E-003 - 6000382 - 0.326945407039128 -1.39080439717213 -3.413440781683218E-002 - 1.517768928158405E-002 4.992633682997575E-003 1.231531868836375E-003 - 6000383 - 0.326864905896984 -1.38950094451344 -3.503286762493725E-002 - 1.513788255720786E-002 5.637173367032906E-003 7.872556636559166E-004 - 6000384 - 0.321872038730314 -1.39444412969432 -3.725713409567794E-002 - 1.266897737328358E-002 3.192835252123807E-003 -3.126139777195664E-004 - 6000385 - 0.325656830678744 -1.38929012479731 -3.972454209455978E-002 - 1.454050572555626E-002 5.741420861043140E-003 -1.532713811330532E-003 - 6000386 - 0.321381796697484 -1.39297273615133 -3.582742182750125E-002 - 1.242655932853529E-002 3.920419428636525E-003 3.943593729806181E-004 - 6000387 - 0.325031722246969 -1.38871352884892 -3.520767103604314E-002 - 1.423139807333841E-002 6.026539747343834E-003 7.008177446325606E-004 - 6000388 - 0.321818492658012 -1.39053648944325 -3.893028585473215E-002 - 1.264249956582932E-002 5.125110426032039E-003 -1.139964859192371E-003 - 6000389 - 0.328229706719982 -1.39063530392342 -3.842585640223736E-002 - 1.581275807751381E-002 5.076248004065306E-003 -8.905313275931080E-004 - 6000390 - 0.327031282654416 -1.39046595458131 -3.436136073991577E-002 - 1.522015361013151E-002 5.159988959845626E-003 1.119306722521987E-003 - 6000391 - 0.326576412217448 -1.39384168926042 -3.418873736070407E-002 - 1.499522634041712E-002 3.490733886441843E-003 1.204666645302896E-003 - 6000392 - 0.322057300552805 -1.39399573472489 -3.539654307306134E-002 - 1.276058683507447E-002 3.414560490852700E-003 6.074230806596391E-004 - 6000393 - 0.327117831128816 -1.39014808504543 -3.464203976347065E-002 - 1.526295065839501E-002 5.317171139694695E-003 9.805147472618755E-004 - 6000394 - 0.323831937101924 -1.38978966102672 -4.008662335125708E-002 - 1.363812057058993E-002 5.494406961976909E-003 -1.711758088260099E-003 - 6000395 - 0.323291350089045 -1.39111881770597 -4.052780949033966E-002 - 1.337080761514683E-002 4.837156987941165E-003 -1.929918658028077E-003 - 6000396 - 0.322050969058998 -1.39140096523577 -3.967628168503533E-002 - 1.275745599714884E-002 4.697638856237326E-003 -1.508849692523487E-003 - 6000397 - 0.322065436123730 -1.39461505964254 -3.660470991700977E-002 - 1.276460976469764E-002 3.108312708032919E-003 1.000094133619592E-005 - 6000398 - 0.325123972979440 -1.39448560316462 -4.010971214210824E-002 - 1.427701481097967E-002 3.172327182835760E-003 -1.723175182590891E-003 - 6000399 - 0.327666613656848 -1.39046306711613 -3.928421544112214E-002 - 1.553431618507078E-002 5.161416772263869E-003 -1.314978245571975E-003 diff --git a/examples/helio_swifter_comparison/param.swifter.in b/examples/helio_swifter_comparison/param.swifter.in new file mode 100644 index 000000000..29449bc76 --- /dev/null +++ b/examples/helio_swifter_comparison/param.swifter.in @@ -0,0 +1,26 @@ +! Swifter input file generated using init_cond.py +T0 0 +TSTOP 1.0 +DT 0.0006844626967830253251 +PL_IN pl.swifter.in +TP_IN tp.swifter.in +IN_TYPE ASCII +ISTEP_OUT 1 +ISTEP_DUMP 1 +BIN_OUT bin.swifter.dat +OUT_TYPE REAL8 +OUT_FORM XV +OUT_STAT NEW +J2 0.0 +J4 0.0 +CHK_CLOSE yes +CHK_RMIN 0.0046504672609621575315 +CHK_RMAX 1000.0 +CHK_EJECT 1000.0 +CHK_QMIN 0.0046504672609621575315 +CHK_QMIN_COORD HELIO +CHK_QMIN_RANGE 0.0046504672609621575315 1000.0 +ENC_OUT enc.swifter.dat +EXTRA_FORCE no +BIG_DISCARD no +RHILL_PRESENT yes diff --git a/examples/helio_swifter_comparison/param.swiftest.in b/examples/helio_swifter_comparison/param.swiftest.in new file mode 100644 index 000000000..c32a270f5 --- /dev/null +++ b/examples/helio_swifter_comparison/param.swiftest.in @@ -0,0 +1,29 @@ +! Swiftest input file generated using init_cond.py +T0 0 +TSTOP 1.0 +DT 0.0006844626967830253251 +CB_IN cb.swiftest.in +PL_IN pl.swiftest.in +TP_IN tp.swiftest.in +IN_TYPE REAL8 +ISTEP_OUT 1 +ISTEP_DUMP 1 +BIN_OUT bin.swiftest.dat +OUT_TYPE REAL8 +OUT_FORM XV +OUT_STAT REPLACE +CHK_CLOSE yes +CHK_RMIN 0.0046504672609621575315 +CHK_RMAX 1000.0 +CHK_EJECT 1000.0 +CHK_QMIN 0.0046504672609621575315 +CHK_QMIN_COORD HELIO +CHK_QMIN_RANGE 0.0046504672609621575315 1000.0 +ENC_OUT enc.swiftest.dat +EXTRA_FORCE no +BIG_DISCARD no +ROTATION no +GR no +MU2KG 1.988409870698050917e+30 +DU2M 149597870700.0 +TU2S 31557600.0 diff --git a/examples/helio_swifter_comparison/pl.swifter.in b/examples/helio_swifter_comparison/pl.swifter.in new file mode 100644 index 000000000..3f27a30f5 --- /dev/null +++ b/examples/helio_swifter_comparison/pl.swifter.in @@ -0,0 +1,40 @@ +10 ! Planet input file generated using init_cond.py using JPL Horizons data for the major planets (and Pluto) for epoch 2021-01-28 +1 39.476926408897625193 +0.0 0.0 0.0 +0.0 0.0 0.0 +2 6.553709809565313959502e-06 0.0014751229680878679603 +1.6306381826061645943e-05 +0.1030256871817049 0.2897796042186122 0.0142290454578165 +-11.740042086233977 3.834312447819755 1.3902497138650993 +3 9.6633133995815373809037e-05 0.0067591276497677570562 +4.0453784346544178454e-05 +0.06110217931597178 -0.7245466902000399 -0.01346904334134495 +7.311995450520371 0.5941125626853079 -0.4137913834645579 +4 0.00012002693582795244940133 0.010044756567554867971 +4.25875607065040958e-05 +-0.6061796332978544 0.7761214562175627 -3.47496925510033e-05 +-5.054824318940399 -3.891667462296022 0.0001972008358555219 +5 1.2739802010675940622175e-05 0.0072464490746761575477 +2.265740805092889601e-05 +0.2751944182282239 1.519376889861282 0.02508924669876031 +-4.835983592340031 1.3448550964716055 0.14681413009269897 +6 0.037692251088985675999687 0.35528523591470134027 +0.00046732617030490929307 +3.20013535487531 -3.953498299871184 -0.05517746960976119 +2.111393786386104 1.8660266390974023 -0.05498927104920874 +7 0.011285899820091272946487 0.43763064535027282272 +0.00038925687730393611812 +5.607382154387239 -8.258649115739544 -0.07958445350697703 +1.5748468612768933 1.1414574628814913 -0.0825033126704916 +8 0.0017236589478267731051497 0.46909694410284686372 +0.00016953449859497231466 +15.2822545079529 12.53905417292343 -0.1514152417388489 +-0.9198471609855067 1.0454391001033898 0.015745441522152032 +9 0.0020336100526728304385693 0.78071933134573728207 +0.000164587904124493665 +29.47483430798945 -5.147687601125057 -0.5733452880201296 +0.1919169794537526 1.1385109490430123 -0.027844342997168703 +10 2.9242167710294538257026e-07 0.053834666988627116535 +7.943294877391593783e-06 +14.14001068477669 -31.141412045097 -0.7565711098949569 +1.0733960936923237 0.23003153432240253 -0.3342452292632091 diff --git a/examples/helio_swifter_comparison/pl.swiftest.in b/examples/helio_swifter_comparison/pl.swiftest.in new file mode 100644 index 0000000000000000000000000000000000000000..6ee1ca38380823cc94be008e9a26b0914f75ea10 GIT binary patch literal 700 zcmd;JU|`?`Vi4c}Vih1}0%B$$W&vVWAZ7z%b|41HgVb^XF-V;U5bt;@Zu%sCm;H}j z2VS4>SZ`lcKjF%y)W`e3*-hm+Ip?DNwaxP<9U{S5LBDY21z|Sw!Ui=f*bV$fm&bFQ|a$wKroGHdC_6K0*$?0jR%c=C* zi_dpUT`{$LKj#na2sR6*{WrFn-uSm+rv00QXUi-c*6d#@CpvLy{FePW1{<-<%tkJ zpv?0oN9hTJ!xs0j`IC%(+F#_f2uRL`cB`-Y*8bKeevfZAH0`g(t=2zx>X7|6 z{>cY>)z|EwVYmC~d%3Oqzk1EsI7xnjeZV>sE34)?`?DS^O1Y(6h5Pq76C>xpn%i~@ z&s?7QAw<$%$|sudewn=eI%yBSh1*}*Jvvb(oaVFG{`qx*tNgO<_AfN=Ztk&-v2VJP zA$n>>g8f}@CgmgZC)>gNyLZlMHZ#eOb^)1YMRQGA?S;%I6f%ae*;_|!x8yza-EP+{ tvw3+7?Ckrdo$OoMWN9B0!S1-oLd`yW#(|LKlT_`au1r>HTk!yF9su;c8`b~- literal 0 HcmV?d00001 diff --git a/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb b/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb new file mode 100644 index 000000000..997defb80 --- /dev/null +++ b/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb @@ -0,0 +1,363 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "import swiftestio as swio\n", + "from astroquery.jplhorizons import Horizons" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading Swifter file param.swifter.in\n" + ] + } + ], + "source": [ + "inparfile = 'param.swifter.in'\n", + "param = swio.read_swifter_param(inparfile)\n", + "swifterdat = swio.swifter2xr(param)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading Swiftest file param.swiftest.in\n" + ] + } + ], + "source": [ + "param_file_name = 'param.swiftest.in'\n", + "config = swio.read_swiftest_config(param_file_name)\n", + "swiftestdat = swio.swiftest2xr(config)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "swiftdiff = swiftestdat - swifterdat" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "swiftdiff = swiftdiff.rename({'time' : 'time (y)'})" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "swiftdiff['dr'] = np.sqrt(swiftdiff['px']**2 + swiftdiff['py']**2 + swiftdiff['pz']**2)\n", + "swiftdiff['dv'] = np.sqrt(swiftdiff['vx']**2 + swiftdiff['vy']**2 + swiftdiff['vz']**2)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "swiftdiff['dr'].plot.line(x=\"time (y)\")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "swiftdiff['dv'].sel(id=2).plot.line(x=\"time (y)\")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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INOAIWa2ERgSW8bMcsysBCD2Ivkk4GVgPfBnd18b2/8hoBmwwMxWm9mMsDsgIlJXY8aM4aKLLmLDhg3k5eXxxBNPMGXKFBYsWEDnzp1ZsGABU6b825tST1qRvIju7hXA4DjrtwGX1VguAUritOuU1gJFRNLgmWeeibt+4cKFIVeSGvokuoiIBKIAERGRQBQgIiISiAJEREQCUYCIiEggChAREQlEASIiEpK6Tud+77330qlTJ84//3xefvnlI+vffPNNevToQadOnfjRj37E4ck4vvzyS7797W/TqVMn+vfvz+bNm4/sM2zYMJo3b84VV1yRsv4oQEREQlKX6dzXrVtHcXExa9euZf78+fzwhz/k4MGDANx4443MnDmTjRs3snHjxiPHfOKJJzj77LMpLS3lxz/+MZMnTz5ynp/+9KfMnj07pf1RgIiIhKQu07nPnTuX0aNHc/rpp9O+fXs6derEihUrKC8vZ9euXVx00UWYGWPHjj1qn8PHGjlyJAsXLjwyOhk8eDDNmjVLaX+ims5dRCQyd20s493d+1J6zO5Nm/DzznW/NdGxpnPfunUrAwYMONIuLy+PrVu30rBhQ/Ly8v5t/eF92ratnoM2KyuLr3zlK1RUVNCyZcvA/ToejUBERE5C8SYZN7Njrj/ePumiEYiIZJwgI4V0OdZ07nl5eWzZ8v/vqVdWVkZOTg55eXmUlZX92/qa++Tl5VFVVcXnn3/+b5fMUkkjEBGRCB1rOvcrr7yS4uJivvzyS95//302btxIv379yM7OplmzZixfvhx358knnzxqn8PHmjNnDoMGDUrrCAR3z5hHnz59XEQy07p166IuwUePHu1t2rTxrKwsz83N9ccff9w/+eQTHzRokHfq1MkHDRrkFRUVR9rfc8893qFDB+/SpYuXlJQcWf/GG294YWGhd+jQwW+66SY/dOiQu7vv27fPR44c6R07dvSvfvWr/t577x3Z5+KLL/aWLVt648aNPTc31+fPnx+3xng/J2Clx3lONT/2zfxOOX379vWVK1dGXYaIRGD9+vUUFBREXcZJL97PyczedPe+tdvqEpaIiASiABERkUAUICIiEogCREREAlGAiIhIIAoQEREJRAEiIhKSqKZzX716NRdddBGFhYVccMEF/OlPf0pJfxQgIiIhiWo69zPOOIMnn3zyyLFuvfVWdu7cmXR/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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "swiftdiff['pz'].plot.line(x=\"time (y)\")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ]" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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bw/AZZddxpIlS7j66qtDryVVNAIREQlBfn4+S5cuZffu3bg7CxYsoLCwaU+togAREQnBwIEDGT16NH379qV3797s37+fiROje7BVKugSlohISKZNm8a0adOiLiNlNAIREZFAFCAiIhKIAkRERAJRgIiISCAKEBERCUQBIiIigShARERCMmPGDIqLiykqKuKee+6JupykKUBEREKwevVqHnroIZYtW8aqVat47rnnWL9+fdRlJUUBIiISgrVr1zJo0CBOPvlksrKyuPDCC3n66aejLisp+ia6iGSc559/ng8++CClx+zYsSMlJSWH3V5cXMztt99OVVUVJ510EmVlZfTv3z+lNYRNASIiEoLCwkKmTJnCsGHDaNWqFeeccw5ZWU37LbhpVy8iEsCRRgrpNGHCBCZMmADAbbfdRl5eXiR1pIoCREQkJNu2baNDhw68//77PPXUU7z66qtRl5QUBYiISEguv/xyqqqqaN68Offddx+nnXZa1CUlRQEiIhKSRYsWRV1CSuljvCIiEogCREREAlGAiIhIIAoQEREJRAEiIiKBKEBERCSQSALEzNqa2XwzWx/7M+6Hoc1shJmtM7NyM5tab/3dZvYvM3vTzJ42szahFS8iEtC3v/1tOnToQHFx8cF1H3/8McOGDaN79+4MGzaMTz75JMIKGyeqEchUYIG7dwcWxJYPYWbNgPuAEqAXMNbMesU2zweK3f1s4N/AT0KpWkQkCddeey3z5s07ZN306dMZOnQo69evZ+jQoUyfPj2i6hovqgAZCcyK/TwL+EacNgOAcnff4O7VQGlsP9z9H+5eE2u3FGjaE8qISEa44IILaNu27SHr5syZw/jx4wEYP348zzzzTASVBRPVN9HPcPdKAHevNLMOcdrkApvqLVcAA+O0+zbw59SXKCLHq3//+2d8tnNtSo/ZulUhPXr8tNH7bd26lezsbACys7PZtm1bSutKp7QFiJm9CHSMs+n2RA8RZ503OMftQA3w+BHqmAhMBMjPz0/w1CIicjRpCxB3/8/DbTOzrWaWHRt9ZAPxIrcC6FRvOQ/YUu8Y44FLgKHu7hyGu88EZgL079//sO1EJHMEGSmkyxlnnEFlZSXZ2dlUVlbSoUO8CzLHpqjugcwFxsd+Hg/MidPmNaC7mXU2sxbAmNh+mNkIYApwqbvvDqFeEZG0uPTSS5k1q+6W8KxZsxg5cmTEFSUuqgCZDgwzs/XAsNgyZpZjZmUAsZvkk4EXgLXAX9x9TWz/3wOtgflmttLMHgy7AyIijTV27FjOO+881q1bR15eHo888ghTp05l/vz5dO/enfnz5zN16hc+lHrMiuQmurtXAUPjrN8CXFRvuQwoi9OuW1oLFBFJgyeeeCLu+gULFoRcSWrom+giIhKIAkRERAJRgIiISCAKEBERCUQBIiIigShAREQkEAWIiEhIGjud+1133UW3bt0466yzeOGFFw6uf/311+nduzfdunXj+9//Pgcm4/j888/55je/Sbdu3Rg4cCAbN248uM+IESNo06YNl1xyScr6owAREQlJY6Zzf/vttyktLWXNmjXMmzePG2+8kdraWgBuuOEGZs6cyfr161m/fv3BYz7yyCOcdtpplJeX84Mf/IApU6YcPM+PfvQjZs+endL+KEBERELSmOnc58yZw5gxYzjxxBPp3Lkz3bp1Y9myZVRWVrJjxw7OO+88zIxx48Ydss+BY40ePZoFCxYcHJ0MHTqU1q1bp7Q/UU3nLiISmZ+ur2D1zj0pPWZxq5P4WffGP5rocNO5b968mUGDBh1sl5eXx+bNm2nevDl5eXlfWH9gn06d6uagzcrK4ktf+hJVVVW0a9cucL+ORCMQEZFjULxJxs3ssOuPtE+6aAQiIhknyEghXQ43nXteXh6bNv3/Z+pVVFSQk5NDXl4eFRUVX1hff5+8vDxqamr49NNPv3DJLJU0AhERidDhpnO/9NJLKS0t5fPPP+fdd99l/fr1DBgwgOzsbFq3bs3SpUtxdx599NFD9jlwrCeffJIhQ4akdQSCu2fMq1+/fi4imentt9+OugQfM2aMd+zY0bOysjw3N9cffvhh/+ijj3zIkCHerVs3HzJkiFdVVR1sf+edd3qXLl28R48eXlZWdnD9a6+95kVFRd6lSxefNGmS79+/393d9+zZ46NHj/auXbv6l7/8ZX/nnXcO7nP++ed7u3btvGXLlp6bm+vz5s2LW2O8vydgucd5TzU//MP8jjv9+/f35cuXR12GiERg7dq1FBYWRl3GMS/e35OZve7u/Ru21SUsEREJRAEiIiKBKEBERCQQBYiIiASiABERkUAUICIiEogCREQkJFFN575y5UrOO+88ioqKOPvss/nzn/+ckv4oQEREQhLVdO4nn3wyjz766MFj3XzzzWzfvj3p/ihARERCEtV07j169KB79+4A5OTk0KFDBz788MOk+6PJFEUk40x7dg1vb9mR0mP2yjmVO75e1Oj9wp7OfdmyZVRXV9O1a9fGd7IBBYiIyDEo3jRTyU7nXllZyTXXXMOsWbM44YTkL0ApQEQk4wQZKaRLWNO579ixg4svvpg777zzkJFNMnQPREQkQmFM515dXc2oUaMYN24cV1xxReqKjzdF7/H60nTuIpkrk6dznz17tmdlZfk555xz8LVixYq4NWo698PQdO4imUvTuSdG07mLiEjaRRIgZtbWzOab2frYn6cdpt0IM1tnZuVmNjXO9lvNzM2sXbz9RUQkfaIagUwFFrh7d2BBbPkQZtYMuA8oAXoBY82sV73tnYBhwPuhVCwiIoeIKkBGArNiP88CvhGnzQCg3N03uHs1UBrb74DfAj8GMucmjojIMSSqADnD3SsBYn92iNMmF9hUb7kitg4zuxTY7O6rjnYiM5toZsvNbHkqvrovIiJ10vZFQjN7EegYZ9PtiR4izjo3s5NjxxieyEHcfSYwE+o+hZXguUVE5CjSNgJx9/909+I4rznAVjPLBoj9uS3OISqATvWW84AtQFegM7DKzDbG1r9hZvHCSkTkmBHVdO7vvfce/fr1o0+fPhQVFfHggw+mpD9RXcKaC4yP/TwemBOnzWtAdzPrbGYtgDHAXHd/y907uHuBuxdQFzR93f2DMAoXEQkqquncs7OzWbJkCStXruSf//wn06dPZ8uWLUn3J6oAmQ4MM7P11H2SajqAmeWYWRmAu9cAk4EXgLXAX9x9TUT1iogkLarp3Fu0aMGJJ54I1I1S9u/fn5L+RDKZortXAUPjrN8CXFRvuQwoO8qxClJdn4gc556fCh+8ldpjduwNJdMbvVtY07lv2rSJiy++mPLycu6+++6DEzAmQ99EFxE5BsWbZiqZ6dw7derEm2++SXl5ObNmzWLr1q1J16jp3EUk8wQYKaRLWNO5H5CTk0NRURGLFi1i9OjRSdWuEYiISITCmM69oqKCPXv2APDJJ5+wePFizjrrrKRr1whERCQkY8eO5eWXX+ajjz4iLy+PadOmMXXqVK688koeeeQR8vPz+etf/wpAUVERV155Jb169SIrK4v77ruPZs2aAfDAAw9w7bXXsmfPHkpKSigpKQFgwoQJXHPNNXTr1o22bdtSWloK1M2we8sttxy8BHbrrbfSu3fvpPuj6dxFJCNoOvfEaDp3ERFJOwWIiIgEogAREZFAFCAiIhKIAkRERAJRgIiISCAKEBGRkEQ1nfsBO3bsIDc3l8mTJ6ekPwoQEZGQRDWd+wE//elPufDCC1PWHwWIiEhIoprOHepGLVu3bmX48IQe5poQTWUiIhnnl8t+yb8+/ldKj9mzbU+mDJhy9IYNhDGde9u2bbnllluYPXs2CxYsCNzHhjQCERE5BqVyOvf777+fiy666GC4pIpGICKScYKMFNIljOncX331VRYtWsT999/Pzp07qa6uplWrVgfvtwSlEYiISITCmM798ccf5/3332fjxo38+te/Zty4cUmHB2gEIiISmqimc08XTecuIhlB07knRtO5i4hI2ilAREQkEAWIiGSMTLpkH0Rj/34UICKSEVq2bElVVZVC5DDcnaqqKlq2bJnwPhl1E93MPgTeC7h7O+CjFJbTFKjPmSEj+ty+ffusn//85wUFBQUnufsJJ5xwwv6oawrT/v37j9hnd2fjxo17br/99o0ffvhhTYPNZ7p7+4b7ZFSAJMPMlsf7FMLxTH3ODOpzZkhHn3UJS0REAlGAiIhIIAqQxM2MuoAIqM+ZQX3ODCnvs+6BiIhIIBqBiIhIIAoQEREJRAHSgJmNMLN1ZlZuZlPjbDczuze2/U0z6xtFnamUQJ+vivX1TTNbYmbnRFFnKh2tz/XafdnMas1sdJj1pVoi/TWzwWa20szWmNn/hF1jqiXw3/WXzOxZM1sV6/N1UdSZSmb2BzPbZmarD7M9te9f7q5X7AU0A94BugAtgFVArwZtLgKeBwwYBPwz6rpD6PNXgNNiP5dkQp/rtVsIlAGjo647zf/GbYC3gfzYcoeo6w6hz7cBv4z93B74GGgRde1J9vsCoC+w+jDbU/r+pRHIoQYA5e6+wd2rgVJgZIM2I4FHvc5SoI2ZZYddaAodtc/uvsTdP4ktLgXyaNoS+XcG+B7wN2BbmMWlQSL9/RbwlLu/D+DumdBnB1pb3fNgW1EXIA2/gd2kuPsr1PXjcFL6/qUAOVQusKneckVsXWPbNCWN7c8E6n6DacqO2mczywVGAQ+GWFe6JPJv3AM4zcxeNrPXzWxcaNWlRyJ9/j1QCGwB3gJucvfjfXqTlL5/6YmEh7I46xp+zjmRNk1Jwv0xs69RFyDnp7Wi9Eukz/cAU9y9tu4X1CYtkf5mAf2AocBJwKtmttTd/53u4tIkkT7/L2AlMAToCsw3s0XuviPNtUUppe9fCpBDVQCd6i3nUffbSWPbNCUJ9cfMzgYeBkrcvSqk2tIlkT73B0pj4dEOuMjMatz9mVAqTK1E/7v+yN13AbvM7BXgHKCpBkgifb4OmO51NwfKzexdoCewLJwSI5HS9y9dwjrUa0B3M+tsZi2AMcDcBm3mAuNin2YYBHzq7pVhF5pCR+2zmeUDTwHXNOHfSOs7ap/dvbO7F7h7AfAkcGMTDQ9I7L/rOcB/mFmWmZ0MDATWhlxnKiXS5/epG3FhZmcAZwEbQq0yfCl9/9IIpB53rzGzycAL1H2K4w/uvsbMro9tf5C6T+RcBJQDu6n7LabJSrDP/w2cDtwf+428xpvwTKYJ9vm4kUh/3X2tmc0D3gT2Aw+7e9yPgjYFCf4b/wz4k5m9Rd2lnSnu3qSntTezJ4DBQDszqwDuAJpDet6/NJWJiIgEoktYIiISiAJEREQCUYCIiEggChAREQlEASIiIoEoQEQCMrM2ZnZjveUcM3syTef6hpn991Ha/NrMhqTj/CLx6GO8IgGZWQHwnLsXh3CuJcClR/qegpmdCTzk7sPTXY8IaAQikozpQNfYMzTuNrOCA89hMLNrzeyZ2PMm3jWzyWb2QzNbYWZLzaxtrF1XM5sXm8BwkZn1bHgSM+sBfO7uH5lZ69jxmse2nWpmG82subu/B5xuZh1D/DuQDKYAEQluKvCOu/dx9x/F2V5M3TTpA4CfA7vd/VzgVeDAbLczge+5ez/gVuD+OMf5KvAGgLt/BrwMXBzbNgb4m7vviy2/EWsvknaaykQkfV6KveF/ZmafAs/G1r8FnG1mrah7WNdf6834e2Kc42QDH9Zbfhj4MfAMdVNR/Fe9bduAnFR1QORIFCAi6fN5vZ/311veT93/eycA2929z1GOswf40oEFd18cu1x2IdCswZxVLWPtRdJOl7BEgvsMaB1059hzJ941syvg4POq4z1vfi3QrcG6R4EngD82WN8DaLKTIErTogARCSj2XJTFZrbazO4OeJirgAlmtgpYQ/xH674CnGuHPtnqceA06kIEgNiN9W7A8oC1iDSKPsYr0gSY2QzgWXd/MbY8Ghjp7tfUazMK6OvuP42oTMkwugci0jT8grqHPGFmvwNKqHuuQ31ZwG9CrksymEYgIiISiO6BiIhIIAoQEREJRAEiIiKBKEBERCQQBYiIiATy/wCOFJSakoouPQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "swiftdiff['vx'].plot.line(x=\"time (y)\")" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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RxoppMsrr7xCp06daNu2LQCXXXYZixcv5uqrrw69llTRCEREJAQdO3ZkyZIl7N69G3entLSUgoLGPbWKAkREJAQDBw5k9OjR9O3bl969e7N//34mTozuwVapoEtYIiIhueuuu7jrrruiLiNlNAIREZFAFCAiIhKIAkRERAJRgIiISCAKEBERCUQBIiIigShARERCMn36dHr16kVhYSH33Xdf1OUkTQEiIhKCVatW8cgjj7B06VJWrlzJiy++yLp166IuKykKEBGREKxZs4ZBgwZx8sknk5WVxYUXXshzzz0XdVlJ0TfRRSTjvPTSS3z88ccpPWb79u0pKio67PZevXpxxx13UFlZyUknnURJSQn9+/dPaQ1hU4CIiISgoKCAKVOmMGzYMFq0aME555xDVlbjfgtu3NWLiARwpJFCOk2YMIEJEyYAcPvtt5OXlxdJHamiABERCcnWrVtp164dH330Ec8++yxvvPFG1CUlRQEiIhKSyy+/nMrKSpo2bcqDDz7IaaedFnVJSVGAiIiEZOHChVGXkFL6GK+IiASiABERkUAUICIiEogCREREAlGAiIhIIAoQEREJJJIAMbPWZjbfzNbF/oz7YWgzG2Fma82szMym1ll/r5n9w8zeMbPnzKxVaMWLiAR0/fXX065dO3r16nVw3WeffcawYcPo1q0bw4YN4/PPP4+wwoaJagQyFSh1925AaWz5EGbWBHgQKAJ6AmPNrGds83ygl7ufDfwT+M9QqhYRScK1117LvHnzDlk3bdo0hg4dyrp16xg6dCjTpk2LqLqGiypARgKzYj/PAr4Vp80AoMzd17t7FVAc2w93/5u7V8faLQEa94QyIpIRLrjgAlq3bn3Iujlz5jB+/HgAxo8fz/PPPx9BZcFE9U30M9y9AsDdK8ysXZw2ucDGOsvlwMA47a4H/pj6EkXkePXPf/6MHTvXpPSYLVsU0L37Txu835YtW8jOzgYgOzubrVu3prSudEpbgJjZK0D7OJvuSPQQcdZ5vXPcAVQDTx2hjonARICOHTsmeGoRETmatAWIu//74baZ2RYzy46NPrKBeJFbDnSos5wHbK5zjPHAJcBQd3cOw91nAjMB+vfvf9h2IpI5gowU0uWMM86goqKC7OxsKioqaNcu3gWZY1NU90DmAuNjP48H5sRp8ybQzcw6mVkzYExsP8xsBDAFuNTdd4dQr4hIWlx66aXMmlV7S3jWrFmMHDky4ooSF1WATAOGmdk6YFhsGTPLMbMSgNhN8snAy8Aa4E/uvjq2/++AlsB8M1thZjPC7oCISEONHTuW8847j7Vr15KXl8djjz3G1KlTmT9/Pt26dWP+/PlMnfovH0o9ZkVyE93dK4GhcdZvBi6qs1wClMRp1zWtBYqIpMHTTz8dd31paWnIlaSGvokuIiKBKEBERCQQBYiIiASiABERkUAUICIiEogCREREAlGAiIiEpKHTud9zzz107dqVs846i5dffvng+rfeeovevXvTtWtXfvCDH3BgMo4vv/ySb3/723Tt2pWBAweyYcOGg/uMGDGCVq1acckll6SsPwoQEZGQNGQ69/fee4/i4mJWr17NvHnzuOmmm6ipqQHgxhtvZObMmaxbt45169YdPOZjjz3GaaedRllZGT/84Q+ZMmXKwfP8+Mc/Zvbs2SntjwJERCQkDZnOfc6cOYwZM4YTTzyRTp060bVrV5YuXUpFRQXbt2/nvPPOw8wYN27cIfscONbo0aMpLS09ODoZOnQoLVu2TGl/oprOXUQkMj9dV86qnXtSesxeLU7iZ90a/miiw03nvmnTJgYNGnSwXV5eHps2baJp06bk5eX9y/oD+3ToUDsHbVZWFl/5yleorKykTZs2gft1JBqBiIgcg+JNMm5mh11/pH3SRSMQEck4QUYK6XK46dzz8vLYuPH/P1OvvLycnJwc8vLyKC8v/5f1dffJy8ujurqaL7744l8umaWSRiAiIhE63HTul156KcXFxXz55Zd88MEHrFu3jgEDBpCdnU3Lli1ZsmQJ7s4TTzxxyD4HjvXMM88wZMiQtI5AcPeMefXr189FJDO99957UZfgY8aM8fbt23tWVpbn5ub6o48+6p9++qkPGTLEu3bt6kOGDPHKysqD7e+++27v3Lmzd+/e3UtKSg6uf/PNN72wsNA7d+7skyZN8v3797u7+549e3z06NHepUsX/+pXv+rvv//+wX3OP/98b9OmjTdv3txzc3N93rx5cWuM9/cELPM476nmh3+Y33Gnf//+vmzZsqjLEJEIrFmzhoKCgqjLOObF+3sys7fcvX/9trqEJSIigShAREQkEAWIiIgEogAREZFAFCAiIhKIAkRERAJRgIiIhCSq6dxXrFjBeeedR2FhIWeffTZ//OMfU9IfBYiISEiims795JNP5oknnjh4rFtuuYVt27Yl3R8FiIhISKKazr179+5069YNgJycHNq1a8cnn3ySdH80maKIZJy7XljNe5u3p/SYPXNO5c5vFjZ4v7Cnc1+6dClVVVV06dKl4Z2sRwEiInIMijfNVLLTuVdUVHDNNdcwa9YsTjgh+QtQChARyThBRgrpEtZ07tu3b+fiiy/m7rvvPmRkkwzdAxERiVAY07lXVVUxatQoxo0bxxVXXJG64uNN0Xu8vjSdu0jmyuTp3GfPnu1ZWVl+zjnnHHwtX748bo2azv0wNJ27SObSdO6J0XTuIiKSdpEEiJm1NrP5ZrYu9udph2k3wszWmlmZmU2Ns/02M3MzaxNvfxERSZ+oRiBTgVJ37waUxpYPYWZNgAeBIqAnMNbMetbZ3gEYBnwUSsUiInKIqAJkJDAr9vMs4Ftx2gwAytx9vbtXAcWx/Q74LfATIHNu4oiIHEOiCpAz3L0CIPZnuzhtcoGNdZbLY+sws0uBTe6+8mgnMrOJZrbMzJal4qv7IiJSK21fJDSzV4D2cTbdkegh4qxzMzs5dozhiRzE3WcCM6H2U1gJnltERI4ibSMQd/93d+8V5zUH2GJm2QCxP7fGOUQ50KHOch6wGegCdAJWmtmG2Pq3zSxeWImIHDOims79ww8/pF+/fvTp04fCwkJmzJiRkv5EdQlrLjA+9vN4YE6cNm8C3cysk5k1A8YAc939XXdv5+757p5PbdD0dfePwyhcRCSoqKZzz87OZvHixaxYsYK///3vTJs2jc2bNyfdn6gCZBowzMzWUftJqmkAZpZjZiUA7l4NTAZeBtYAf3L31RHVKyKStKimc2/WrBknnngiUDtK2b9/f0r6E8lkiu5eCQyNs34zcFGd5RKg5CjHyk91fSJynHtpKnz8bmqP2b43FE1r8G5hTee+ceNGLr74YsrKyrj33nsPTsCYDH0TXUTkGBRvmqlkpnPv0KED77zzDmVlZcyaNYstW7YkXaOmcxeRzBNgpJAuYU3nfkBOTg6FhYUsXLiQ0aNHJ1W7RiAiIhEKYzr38vJy9uzZA8Dnn3/OokWLOOuss5KuXSMQEZGQjB07ltdee41PP/2UvLw87rrrLqZOncqVV17JY489RseOHfnzn/8MQGFhIVdeeSU9e/YkKyuLBx98kCZNmgDw8MMPc+2117Jnzx6KioooKioCYMKECVxzzTV07dqV1q1bU1xcDNTOsHvrrbcevAR222230bt376T7o+ncRSQjaDr3xGg6dxERSTsFiIiIBKIAERGRQBQgIiISiAJEREQCUYCIiEggChARkZBENZ37Adu3byc3N5fJkyenpD8KEBGRkEQ1nfsBP/3pT7nwwgtT1h8FiIhISKKazh1qRy1btmxh+PCEHuaaEE1lIiIZ55dLf8k/PvtHSo/Zo3UPpgyYcvSG9YQxnXvr1q259dZbmT17NqWlpYH7WJ9GICIix6BUTuf+0EMPcdFFFx0Ml1TRCEREMk6QkUK6hDGd+xtvvMHChQt56KGH2LlzJ1VVVbRo0eLg/ZagNAIREYlQGNO5P/XUU3z00Uds2LCBX//614wbNy7p8ACNQEREQhPVdO7pouncRSQjaDr3xGg6dxERSTsFiIiIBKIAEZGMkUmX7INo6N+PAkREMkLz5s2prKxUiByGu1NZWUnz5s0T3iejbqKb2SfAhwF3bwN8msJyGgP1OTNkRJ/btm2b9fOf/zw/Pz//JHc/4YQTTtgfdU1h2r9//xH77O5s2LBhzx133LHhk08+qa63+Ux3b1t/n4wKkGSY2bJ4n0I4nqnPmUF9zgzp6LMuYYmISCAKEBERCUQBkriZURcQAfU5M6jPmSHlfdY9EBERCUQjEBERCUQBIiIigShA6jGzEWa21szKzGxqnO1mZvfHtr9jZn2jqDOVEujzVbG+vmNmi83snCjqTKWj9blOu6+aWY2ZjQ6zvlRLpL9mNtjMVpjZajP7n7BrTLUE/rv+ipm9YGYrY32+Loo6U8nMfm9mW81s1WG2p/b9y931ir2AJsD7QGegGbAS6FmvzUXAS4ABg4C/R113CH3+GnBa7OeiTOhznXYLgBJgdNR1p/nfuBXwHtAxttwu6rpD6PPtwC9jP7cFPgOaRV17kv2+AOgLrDrM9pS+f2kEcqgBQJm7r3f3KqAYGFmvzUjgCa+1BGhlZtlhF5pCR+2zuy92989ji0uAPBq3RP6dAb4P/AXYGmZxaZBIf78DPOvuHwG4eyb02YGWVvs82BbUBkj9b2A3Ku7+OrX9OJyUvn8pQA6VC2yss1weW9fQNo1JQ/szgdrfYBqzo/bZzHKBUcCMEOtKl0T+jbsDp5nZa2b2lpmNC6269Eikz78DCoDNwLvAze5+vE9vktL3Lz2R8FAWZ139zzkn0qYxSbg/ZvYNagPk/LRWlH6J9Pk+YIq719T+gtqoJdLfLKAfMBQ4CXjDzJa4+z/TXVyaJNLn/wWsAIYAXYD5ZrbQ3benubYopfT9SwFyqHKgQ53lPGp/O2lom8Ykof6Y2dnAo0CRu1eGVFu6JNLn/kBxLDzaABeZWbW7Px9KhamV6H/Xn7r7LmCXmb0OnAM01gBJpM/XAdO89uZAmZl9APQAloZTYiRS+v6lS1iHehPoZmadzKwZMAaYW6/NXGBc7NMMg4Av3L0i7EJT6Kh9NrOOwLPANY34N9K6jtpnd+/k7vnung88A9zUSMMDEvvveg7wb2aWZWYnAwOBNSHXmUqJ9PkjakdcmNkZwFnA+lCrDF9K3780AqnD3avNbDLwMrWf4vi9u682sxti22dQ+4mci4AyYDe1v8U0Wgn2+b+A04GHYr+RV3sjnsk0wT4fNxLpr7uvMbN5wDvAfuBRd4/7UdDGIMF/458BfzCzd6m9tDPF3Rv1tPZm9jQwGGhjZuXAnUBTSM/7l6YyERGRQHQJS0REAlGAiIhIIAoQEREJRAEiIiKBKEBERCQQBYhIQGbWysxuqrOcY2bPpOlc3zKz/zpKm1+b2ZB0nF8kHn2MVyQgM8sHXnT3XiGcazFw6ZG+p2BmZwKPuPvwdNcjAhqBiCRjGtAl9gyNe80s/8BzGMzsWjN7Pva8iQ/MbLKZ/cjMlpvZEjNrHWvXxczmxSYwXGhmPeqfxMy6A1+6+6dm1jJ2vKaxbaea2QYza+ruHwKnm1n7EP8OJIMpQESCmwq87+593P3Hcbb3onaa9AHAz4Hd7n4u8AZwYLbbmcD33b0fcBvwUJzjfB14G8DddwCvARfHto0B/uLu+2LLb8fai6SdpjIRSZ9XY2/4O8zsC+CF2Pp3gbPNrAW1D+v6c50Zf0+Mc5xs4JM6y48CPwGep3Yqiv+os20rkJOqDogciQJEJH2+rPPz/jrL+6n9f+8EYJu79znKcfYAXzmw4O6LYpfLLgSa1JuzqnmsvUja6RKWSHA7gJZBd449d+IDM7sCDj6vOt7z5tcAXeutewJ4Gni83vruQKOdBFEaFwWISECx56IsMrNVZnZvwMNcBUwws5XAauI/Wvd14Fw79MlWTwGnURsiAMRurHcFlgWsRaRB9DFekUbAzKYDL7j7K7Hl0cBId7+mTptRQF93/2lEZUqG0T0QkcbhF9Q+5AkzewAoova5DnVlAb8JuS7JYBqBiIhIILoHIiIigShAREQkEAWIiIgEogAREZFAFCAiIhLI/wNyNJsadW0QCAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "swiftdiff['vy'].plot.line(x=\"time (y)\")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ]" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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EYiISAgKCgpYunQpu3fvxt1ZsGABRUVNe2oVBYiISAgGDhzI6NGj6du3L71792b//v1MnBjdg61SQZewRERCcuedd3LnnXdGXUbKaAQiIiKBKEBERCQQBYiIiASiABERkUAUICIiEogCREREAlGAiIiEZNq0afTq1Yvi4mLuvffeqMtJmgJERCQEq1ev5qGHHmLZsmWsWrWK5557jvXr10ddVlIUICIiIVi7di2DBg3i5JNPJisri4suuoinn3466rKSom+ii0jGef755/nggw9SeswOHTpQUlJy2O29evXi9ttvp6qqipNOOomysjL69++f0hrCpgAREQlBUVERkydPZtiwYbRq1Ypzzz2XrKym/RbctKsXEQngSCOFdJowYQITJkwA4LbbbiM/Pz+SOlJFASIiEpJt27aRnZ3N+++/z1NPPcWrr74adUlJUYCIiITkiiuuoKqqiubNm3P//fdz+umnR11SUhQgIiIhWbRoUdQlpJQ+xisiIoEoQEREJBAFiIiIBKIAERGRQBQgIiISiAJEREQCiSRAzKytmc03s/WxP+N+GNrMRpjZOjMrN7Mp9dbfY2b/MLM3zexpM2sTWvEiIgF9/etfJzs7m169eh1c9/HHHzNs2DC6devGsGHD+OSTTyKssHGiGoFMARa4ezdgQWz5EGbWDLgfKAF6AmPNrGds83ygl7ufA/wT+O9QqhYRScJ1113HvHnzDlk3depUhg4dyvr16xk6dChTp06NqLrGiypARgIzYz/PBL4Sp80AoNzdN7h7NVAa2w93/6u718TaLQWa9oQyIpIRLrzwQtq2bXvIujlz5jB+/HgAxo8fzzPPPBNBZcFE9U30M929EsDdK80sO06bPGBTveUKYGCcdl8H/pD6EkXkePXPf/6Ez3auTekxW7cqonv3HzV6v61bt5KTkwNATk4O27ZtS2ld6ZS2ADGzF4EOcTbdnugh4qzzBue4HagBnjhCHROBiQAFBQUJnlpERI4mbQHi7v9xuG1mttXMcmKjjxwgXuRWAB3rLecDW+odYzxwKTDU3Z3DcPcZwAyA/v37H7adiGSOICOFdDnzzDOprKwkJyeHyspKsrPjXZA5NkV1D2QuMD7283hgTpw2rwHdzKyTmbUAxsT2w8xGAJOBy9x9dwj1ioikxWWXXcbMmXW3hGfOnMnIkSMjrihxUQXIVGCY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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "swiftdiff['vz'].plot.line(x=\"time (y)\")" + ] + }, + { + "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/helio_swifter_comparison/tp.swifter.in b/examples/helio_swifter_comparison/tp.swifter.in new file mode 100644 index 000000000..74f1cc8cb --- /dev/null +++ b/examples/helio_swifter_comparison/tp.swifter.in @@ -0,0 +1,13 @@ +4 +100001 +2.89438049451288 0.2060633440061593 -0.5267473063848516 +-0.3678177533773833 3.511709555047983 0.17870206084842993 +100002 +2.402157085583321 -2.063650726188297 1.221462218318817 +1.9929454704322658 1.7670859767767524 -1.3920312816007854 +100003 +-1.762420789095617 -2.766072787712991 0.6998178860363623 +2.5146401571141386 -1.536845348435182 0.24681698261461876 +100004 +-2.136886752000925 1.023684503224212 0.2293900119298221 +-1.391819314123066 -3.7994616469964826 0.2829665835356411 diff --git a/examples/helio_swifter_comparison/tp.swiftest.in b/examples/helio_swifter_comparison/tp.swiftest.in new file mode 100644 index 0000000000000000000000000000000000000000..5fe4b5618a2c2358d645755a4759220addef5211 GIT binary patch literal 280 zcmd;JU|?VYVi4c}VgVpt*v81P2#6O0@e&{gi75c_`sW|MZct};_*xaLG|!ybp~pvG z<$=+k{d{L`h(t&*9ssEU;nUN$%=Jh(Wgm6;mVa~;!+|v`d5*qPU_0<4Fo%IT@q;}` z4G7QKbyQ3C_JjRfR`!3F?*43Ve0gitifPaGFLUKVo}uFl9Jvog5r`u=G(%BQ3r z|F_>Fy self%nbody, xh => self%xh, status => self%status) where (status(1:ntp) == ACTIVE) - xh(1:ntp, 1) = xh(1:ntp, 1) + pt(1) * dt - xh(1:ntp, 2) = xh(1:ntp, 2) + pt(2) * dt - xh(1:ntp, 3) = xh(1:ntp, 3) + pt(3) * dt + xh(1, 1:ntp) = xh(1, 1:ntp) + pt(1) * dt + xh(2, 1:ntp) = xh(2, 1:ntp) + pt(2) * dt + xh(3, 1:ntp) = xh(3, 1:ntp) + pt(3) * dt end where end associate diff --git a/src/main/swiftest_driver.f90 b/src/main/swiftest_driver.f90 index b2384757a..bce2fd38c 100644 --- a/src/main/swiftest_driver.f90 +++ b/src/main/swiftest_driver.f90 @@ -22,7 +22,6 @@ program swiftest_driver real(DP) :: start_wall_time !! Wall clock time at start of execution real(DP) :: finish_wall_time !! Wall clock time when execution has finished integer(I4B) :: iu !! Unit number of binary file - integer(I4B) :: ntp, npl character(*),parameter :: statusfmt = '("Time = ", ES12.5, "; fraction done = ", F6.3, "; ' // & 'Number of active pl, tp = ", I5, ", ", I5)' @@ -57,8 +56,6 @@ program swiftest_driver !$ write(*,'(a,i3,/)') ' Number of threads = ', nthreads write(*, *) " *************** Main Loop *************** " do iloop = 1, LOOPMAX - ntp = nbody_system%tp%nbody - npl = nbody_system%pl%nbody !> Step the system forward in time call nbody_system%step(param, t, dt) From 28454335829ae259833a03b41c530af3bc14286b Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 7 Jul 2021 08:34:54 -0400 Subject: [PATCH 03/28] Updated example notebook --- .../helio_swifter_comparison/Untitled.ipynb | 169 ----------------- .../swiftest_vs_swifter.ipynb | 178 +++++++++--------- 2 files changed, 91 insertions(+), 256 deletions(-) delete mode 100644 examples/helio_swifter_comparison/Untitled.ipynb diff --git a/examples/helio_swifter_comparison/Untitled.ipynb b/examples/helio_swifter_comparison/Untitled.ipynb deleted file mode 100644 index 7d5a299df..000000000 --- a/examples/helio_swifter_comparison/Untitled.ipynb +++ /dev/null @@ -1,169 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import astropy.constants as const" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "6.6743e-11\n" - ] - } - ], - "source": [ - "AU2M = np.longdouble(const.au.value)\n", - "GMSunSI = np.longdouble(const.GM_sun.value)\n", - "print(const.G.value)\n", - "Rsun = np.longdouble(const.R_sun.value)\n", - "GC = np.longdouble(const.G.value)\n", - "JD = 86400\n", - "year = np.longdouble(365.25 * JD)\n", - "c = np.longdouble(299792458.0)\n", - "MSun_over_Mpl = np.array([6023600.0,\n", - " 408523.71,\n", - " 328900.56,\n", - " 3098708.,\n", - " 1047.3486,\n", - " 3497.898,\n", - " 22902.98,\n", - " 19412.24,\n", - " 1.35e8], dtype=np.longdouble)\n", - "\n", - "MU2KG = np.longdouble(GMSunSI / GC) #Conversion from mass unit to kg\n", - "DU2M = np.longdouble(AU2M) #Conversion from radius unit to centimeters\n", - "TU2S = np.longdouble(year) #Conversion from time unit to seconds\n", - "GU = np.longdouble(GC / (DU2M**3 / (MU2KG * TU2S**2)))\n", - "\n", - "GMSun = np.longdouble(GMSunSI / (DU2M**3 / TU2S**2))" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "int" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "type(JD)" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([6.0236000000000000000e+06, 4.0852371000000002095e+05,\n", - " 3.2890055999999999767e+05, 3.0987080000000000000e+06,\n", - " 1.0473486000000000331e+03, 3.4978980000000001382e+03,\n", - " 2.2902979999999999563e+04, 1.9412240000000001601e+04,\n", - " 1.3500000000000000000e+08], dtype=float128)" - ] - }, - "execution_count": 39, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "MSun_over_Mpl" - ] - }, - { - "cell_type": "code", - "execution_count": 54, - "metadata": {}, - "outputs": [], - "source": [ - "np.set_printoptions(threshold = np.inf, precision=23)" - ] - }, - { - "cell_type": "code", - "execution_count": 59, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "39.476926408897626292\n" - ] - } - ], - "source": [ - "print(GU)" - ] - }, - { - "cell_type": "code", - "execution_count": 60, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "39.47692640889762571987376\n" - ] - } - ], - "source": [ - "print(\"{:.23f}\".format(GU))" - ] - }, - { - "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/helio_swifter_comparison/swiftest_vs_swifter.ipynb b/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb index 997defb80..dfc6392df 100644 --- a/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb +++ b/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb @@ -8,9 +8,7 @@ "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", - "import pandas as pd\n", - "import swiftestio as swio\n", - "from astroquery.jplhorizons import Horizons" + "import swiftest\n" ] }, { @@ -22,14 +20,17 @@ "name": "stdout", "output_type": "stream", "text": [ - "Reading Swifter file param.swifter.in\n" + "Reading Swifter file param.swifter.in\n", + "Reading in time 1.000e+00\n", + "Creating Dataset\n", + "Successfully converted 1462 output frames.\n", + "Swifter simulation data stored as xarray DataSet .ds\n" ] } ], "source": [ - "inparfile = 'param.swifter.in'\n", - "param = swio.read_swifter_param(inparfile)\n", - "swifterdat = swio.swifter2xr(param)" + "swiftersim = swiftest.Simulation(param_file=\"param.swifter.in\", codename=\"Swifter\")\n", + "swiftersim.bin2xr()" ] }, { @@ -41,14 +42,17 @@ "name": "stdout", "output_type": "stream", "text": [ - "Reading Swiftest file param.swiftest.in\n" + "Reading Swiftest file param.swiftest.in\n", + "Reading in time 1.001e+00\n", + "Creating Dataset\n", + "Successfully converted 1463 output frames.\n", + "Swiftest simulation data stored as xarray DataSet .ds\n" ] } ], "source": [ - "param_file_name = 'param.swiftest.in'\n", - "config = swio.read_swiftest_config(param_file_name)\n", - "swiftestdat = swio.swiftest2xr(config)" + "swiftestsim = swiftest.Simulation(param_file=\"param.swiftest.in\")\n", + "swiftestsim.bin2xr()" ] }, { @@ -57,7 +61,7 @@ "metadata": {}, "outputs": [], "source": [ - "swiftdiff = swiftestdat - swifterdat" + "swiftdiff = swiftestsim.ds - swiftersim.ds" ] }, { @@ -87,19 +91,19 @@ { "data": { "text/plain": [ - "[,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ]" + "[,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ]" ] }, "execution_count": 7, @@ -108,7 +112,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAEGCAYAAABLgMOSAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAAfVUlEQVR4nO3de5QU5bnv8e8jA6KCQQRkLuBwlWFAEQhgtlsJbDigRoKiAS+gIYfESKKJJrB1ubNZMZHE5ESMFw5qEkSXk8SooBkxCHrkgARRQEFCGBFlYAQcQe4OMzznj244w6SBnuruKob+fdbqNV1Vb1U976D9m7eq+21zd0REROrrlKgLEBGRhkkBIiIigShAREQkEAWIiIgEogAREZFAcqIuIEytWrXywsLCqMsQEWlQ3n777U/dvXXd9VkVIIWFhSxbtizqMkREGhQz+yjRel3CEhGRQBQgIiISiAJEREQCyap7ICKSvQ4cOEB5eTn79++PupQTVtOmTSkoKKBx48ZJtVeAiEhWKC8vp3nz5hQWFmJmUZdzwnF3KisrKS8vp0OHDknto0tYIpIV9u/fz9lnn63wOAoz4+yzz67XCE0BIiJZQ+FxbPX9/ShAREQkEAWIiEhIvvKVryRcf9NNN/Hss8+GXE3qFCAiIiFZvHhx1CWkld6FJSISkmbNmrF7927cne9973ssWLCADh060FC/GVYjEBGRkD3//POsXbuW9957j8cee6zBjkwUICIiIXvjjTcYM2YMjRo1Ii8vj0GDBkVdUiAKEBGRCJwMbylWgIiIhOySSy6hpKSEmpoaKioqeO2116IuKRDdRBcRCdnIkSNZsGABPXv2pGvXrlx66aVRlxSIAkREJCS7d+8GYpevHnrooYirSZ0uYYmISCAKEBERCUQBIiIigShAREQkEAWIiIgEogAREZFAFCAiIiHYuHEjX/3qVykqKqK4uJhp06ZFXVLK9DkQEZEQ5OTk8Otf/5revXuza9cu+vTpw5AhQ+jevXvUpQUW6QjEzIaZ2VozKzOzyQm2m5k9GN/+rpn1rrO9kZktN7OXwqtaRKT+cnNz6d079hLWvHlzioqK2LRpU8RVpSayEYiZNQIeBoYA5cBbZjbH3d+v1Ww40CX+6A88Gv95yG3AGuDMUIoWkZPClBdX8/7mnWk9Zve8M/nJ14qTarthwwaWL19O//79j9/4BBblCKQfUObu6929CigBRtRpMwJ40mOWAC3MLBfAzAqAy4HHwyxaRCQVu3fv5uqrr+aBBx7gzDMb9t++Ud4DyQc21lou58jRxdHa5AMVwAPAj4HmxzqJmU0AJgC0b98+pYJF5OSQ7Egh3Q4cOMDVV1/N9ddfz1VXXRVJDekU5Qgk0WT4db/XMWEbM7sC2Orubx/vJO4+w937unvf1q1bB6lTRCRl7s748eMpKirihz/8YdTlpEWUAVIOtKu1XABsTrLNvwFXmtkGYpe+BpnZU5krVUQkNYsWLWLWrFksWLCAXr160atXL0pLS6MuKyVRXsJ6C+hiZh2ATcBo4Lo6beYAE82shNjlrc/dvQL4z/gDMxsI3OnuN4RUt4hIvV188cW4173I0rBFFiDuXm1mE4FXgEbA79x9tZl9J759OlAKXAaUAXuBm6OqV0REjhTpBwndvZRYSNReN73WcwduPc4xXgdez0B5IiJyDJrKREREAlGAiIhIIAoQEREJRAEiIiKBKEBEREKwf/9++vXrxwUXXEBxcTE/+clPoi4pZZrOXUQkBKeeeioLFiygWbNmHDhwgIsvvpjhw4czYMCAqEsLTCMQEZEQmBnNmjUDYnNiHThwALNEszU1HBqBiEj2eXkyfPJeeo/ZticMn3rMJjU1NfTp04eysjJuvfVWTecuIiLJadSoEStWrKC8vJylS5eyatWqqEtKiUYgIpJ9jjNSyLQWLVowcOBA5s6dS48ePSKtJRUagYiIhGDbtm3s2LEDgH379vHqq6/SrVu3aItKkUYgIiIhqKioYNy4cdTU1HDw4EGuvfZarrjiiqjLSokCREQkBOeffz7Lly+Puoy00iUsEREJRAEiIiKBKEBERCQQBYiIiASiABERkUAUICIiEogCREQkRDU1NVx44YUN/jMgoAAREQnVtGnTKCoqirqMtFCAiIiEpLy8nL/+9a9861vfirqUtNAn0UUk6/xi6S/4x2f/SOsxu7XsxqR+k47Z5vbbb+eXv/wlu3btSuu5o6IRiIhICF566SXatGlDnz59oi4lbTQCEZGsc7yRQiYsWrSIOXPmUFpayv79+9m5cyc33HADTz31VOi1pItGICIiIbjvvvsoLy9nw4YNlJSUMGjQoAYdHqAAERGRgHQJS0QkZAMHDmTgwIFRl5EyjUBERCQQBYiIiAQSaYCY2TAzW2tmZWY2OcF2M7MH49vfNbPe8fXtzOw1M1tjZqvN7LbwqxcRyW6RBYiZNQIeBoYD3YExZta9TrPhQJf4YwLwaHx9NXCHuxcBA4BbE+wrIiIZFOUIpB9Q5u7r3b0KKAFG1GkzAnjSY5YALcws190r3P0dAHffBawB8sMsXkQk20UZIPnAxlrL5fxrCBy3jZkVAhcCf09/iSIicjRRvo3XEqzz+rQxs2bAX4Db3X1nwpOYTSB2+Yv27dsHq1REJA0KCwtp3rw5jRo1Iicnh2XLlkVdUkqiDJByoF2t5QJgc7JtzKwxsfB42t2fO9pJ3H0GMAOgb9++dQNKRCRUr732Gq1atYq6jLSI8hLWW0AXM+tgZk2A0cCcOm3mAGPj78YaAHzu7hVmZsATwBp3/1/hli0iIhDhCMTdq81sIvAK0Aj4nbuvNrPvxLdPB0qBy4AyYC9wc3z3fwNuBN4zsxXxdXe5e2mIXRCRBuqTn/+cL9akdzr3U4u60fauu47ZxswYOnQoZsa3v/1tJkyYkNYawhbpVCbxF/zSOuum13ruwK0J9vu/JL4/IiJywlq0aBF5eXls3bqVIUOG0K1bNy655JKoywpMc2GJSNY53kghU/Ly8gBo06YNI0eOZOnSpQ06QDSViYhICPbs2XP4mwj37NnD3/72N3r06BFxVanRCEREJARbtmxh5MiRAFRXV3PdddcxbNiwiKtKjQJERCQEHTt2ZOXKlVGXkVa6hCUiIoEoQEREJBAFiIiIBKIAERGRQBQgIiISiAJEREQCUYCIiIRkx44djBo1im7dulFUVMSbb74ZdUkp0edARERCcttttzFs2DCeffZZqqqq2Lt3b9QlpUQBIiISgp07d/LGG2/whz/8AYAmTZrQpEmTaItKkQJERLLOwj/9k0837k7rMVu1a8a/X9v1qNvXr19P69atufnmm1m5ciV9+vRh2rRpnHHGGWmtI0y6ByIiEoLq6mreeecdbrnlFpYvX84ZZ5zB1KlToy4rJRqBiEjWOdZIIVMKCgooKCigf//+AIwaNarBB4hGICIiIWjbti3t2rVj7dq1AMyfP5/u3btHXFVqNAIREQnJb3/7W66//nqqqqro2LEjv//976MuKSUKEBGRkPTq1Ytly5ZFXUba6BKWiIgEogAREZFAFCAiIhKIAkRERAJRgIiISCAKEBERCUQBIiISgrVr19KrV6/DjzPPPJMHHngg6rJSos+BiIiE4LzzzmPFihUA1NTUkJ+fz8iRI6MtKkUagYiIhGz+/Pl06tSJc889N+pSUqIRiIhkndf+MIOtH61P6zHbnNuRr940Iam2JSUljBkzJq3nj4JGICIiIaqqqmLOnDlcc801UZeSMo1ARCTrJDtSyISXX36Z3r17c84550RWQ7ocdwRiZo3M7AeZOLmZDTOztWZWZmaTE2w3M3swvv1dM+ud7L4iIieiZ5555qS4fAVJBIi71wAj0n1iM2sEPAwMB7oDY8ys7uT4w4Eu8ccE4NF67CsickLZu3cv8+bN46qrroq6lLRI9hLWIjN7CPgjsOfQSnd/J4Vz9wPK3H09gJmVEAuq92u1GQE86e4OLDGzFmaWCxQmsW/a3Prbr7EjpyIThxaRkHynzy9Zv9WjLoO31iyk8otNVG7dFOp5m/oZ5J2T3nd9JRsgX4n/nBL/aYADg1I4dz6wsdZyOdA/iTb5Se4bK9RsArHRC+3btw9UaLXtY3vO/kD7isiJ4SBOjUUfIFE56AfTfsxjBoiZ/TD+9CVigWG1Nqf6L2EJ1tU95tHaJLNvbKX7DGAGQN++fQPV/L8nvhpkNxE5gaxZs4YurYuiLuOkcrwRSPP4z/OALwOzib14fw14I8VzlwPtai0XAJuTbNMkiX1FRCSDjhkg7j4FwMz+BvR2913x5f8G/pziud8CuphZB2ATMBq4rk6bOcDE+D2O/sDn7l5hZtuS2FdERDIo2Xsg7YGqWstVxG5kB+bu1WY2EXgFaAT8zt1Xm9l34tunA6XAZUAZsBe4+Vj7plKPiIjUT7IBMgtYambPE7vXMBKYmerJ3b2UWEjUXje91nMHbk12XxERCU9SU5m4+8+I/fW/HdgB3Ozu92WwLhGRk85vfvMbiouL6dGjB2PGjGH//ob97s6k58Jy93fcfVr8sTyTRYmInGw2bdrEgw8+yLJly1i1ahU1NTWUlJREXVZKNJmiiEhIqqur2bdvH9XV1ezdu5e8vLyoS0qJJlMUkayz48UPqNq85/gN66FJ3hm0+Fqno27Pz8/nzjvvpH379px22mkMHTqUoUOHprWGsGkEIiISgu3btzN79mw+/PBDNm/ezJ49e3jqqaeiLislGoGISNY51kghU1599VU6dOhA69atAbjqqqtYvHgxN9xwQ+i1pItGICIiIWjfvj1Llixh7969uDvz58+nqKhhT62iABERCUH//v0ZNWoUvXv3pmfPnhw8eJAJE6L7Yqt00CUsEZGQTJkyhSlTphy/YQOhEYiIiASiABERkUAUICIiEogCREREAlGAiIhIIAoQEREJRAEiIhKSadOm0aNHD4qLi3nggQeiLidlChARkRCsWrWKxx57jKVLl7Jy5Upeeukl1q1bF3VZKVGAiIiEYM2aNQwYMIDTTz+dnJwcLr30Up5//vmoy0qJPokuIlnn5Zdf5pNPPknrMdu2bcvw4cOPur1Hjx7cfffdVFZWctppp1FaWkrfvn3TWkPYFCAiIiEoKipi0qRJDBkyhGbNmnHBBReQk9OwX4IbdvUiIgEca6SQSePHj2f8+PEA3HXXXRQUFERSR7ooQEREQrJ161batGnDxx9/zHPPPcebb74ZdUkpUYCIiITk6quvprKyksaNG/Pwww9z1llnRV1SShQgIiIhWbhwYdQlpJXexisiIoEoQEREJBAFiIiIBKIAERGRQBQgIiISiAJEREQCiSRAzKylmc0zs3XxnwnfDG1mw8xsrZmVmdnkWuvvN7N/mNm7Zva8mbUIrXgRkYC++c1v0qZNG3r06HF43WeffcaQIUPo0qULQ4YMYfv27RFWWD9RjUAmA/PdvQswP758BDNrBDwMDAe6A2PMrHt88zygh7ufD/wT+M9QqhYRScFNN93E3Llzj1g3depUBg8ezLp16xg8eDBTp06NqLr6iypARgAz489nAl9P0KYfUObu6929CiiJ74e7/83dq+PtlgANe0IZEckKl1xyCS1btjxi3ezZsxk3bhwA48aN44UXXoigsmCi+iT6Oe5eAeDuFWbWJkGbfGBjreVyoH+Cdt8E/pj+EkXkZPXPf/6UXbvXpPWYzZsV0bXrPfXeb8uWLeTm5gKQm5vL1q1b01pXJmUsQMzsVaBtgk13J3uIBOu8zjnuBqqBp49RxwRgAkD79u2TPLWIiBxPxgLE3f/jaNvMbIuZ5cZHH7lAosgtB9rVWi4ANtc6xjjgCmCwuztH4e4zgBkAffv2PWo7EckeQUYKmXLOOedQUVFBbm4uFRUVtGmT6ILMiSmqeyBzgHHx5+OA2QnavAV0MbMOZtYEGB3fDzMbBkwCrnT3vSHUKyKSEVdeeSUzZ8ZuCc+cOZMRI0ZEXFHyogqQqcAQM1sHDIkvY2Z5ZlYKEL9JPhF4BVgD/MndV8f3fwhoDswzsxVmNj3sDoiI1NeYMWO46KKLWLt2LQUFBTzxxBNMnjyZefPm0aVLF+bNm8fkyf/yptQTViQ30d29EhicYP1m4LJay6VAaYJ2nTNaoIhIBjzzzDMJ18+fPz/kStJDn0QXEZFAFCAiIhKIAkRERAJRgIiISCAKEBERCUQBIiIigShARERCUt/p3O+77z46d+7MeeedxyuvvHJ4/dtvv03Pnj3p3Lkz3//+9zk0GccXX3zBN77xDTp37kz//v3ZsGHD4X2GDRtGixYtuOKKK9LWHwWIiEhI6jOd+/vvv09JSQmrV69m7ty5fPe736WmpgaAW265hRkzZrBu3TrWrVt3+JhPPPEEZ511FmVlZfzgBz9g0qRJh8/zox/9iFmzZqW1PwoQEZGQ1Gc699mzZzN69GhOPfVUOnToQOfOnVm6dCkVFRXs3LmTiy66CDNj7NixR+xz6FijRo1i/vz5h0cngwcPpnnz5mntT1TTuYuIROaedeWs2r0vrcfs0ew0ftql/l9NdLTp3Ddt2sSAAQMOtysoKGDTpk00btyYgoKCf1l/aJ927WJz0Obk5PClL32JyspKWrVqFbhfx6IRiIjICSjRJONmdtT1x9onUzQCEZGsE2SkkClHm869oKCAjRv//3fqlZeXk5eXR0FBAeXl5f+yvvY+BQUFVFdX8/nnn//LJbN00ghERCRCR5vO/corr6SkpIQvvviCDz/8kHXr1tGvXz9yc3Np3rw5S5Yswd158sknj9jn0LGeffZZBg0alNERCO6eNY8+ffq4iGSn999/P+oSfPTo0d62bVvPycnx/Px8f/zxx/3TTz/1QYMGeefOnX3QoEFeWVl5uP29997rHTt29K5du3ppaenh9W+99ZYXFxd7x44d/dZbb/WDBw+6u/u+fft81KhR3qlTJ//yl7/sH3zwweF9Lr74Ym/VqpU3bdrU8/Pzfe7cuQlrTPR7ApZ5gtdU86N/md9Jp2/fvr5s2bKoyxCRCKxZs4aioqKoyzjhJfo9mdnb7t63bltdwhIRkUAUICIiEogCREREAlGAiIhIIAoQEREJRAEiIiKBKEBEREIS1XTuK1as4KKLLqK4uJjzzz+fP/7xj2npjwJERCQkUU3nfvrpp/Pkk08ePtbtt9/Ojh07Uu6PAkREJCRRTefetWtXunTpAkBeXh5t2rRh27ZtKfdHkymKSNaZ8uJq3t+8M63H7J53Jj/5WnG99wt7OvelS5dSVVVFp06d6t/JOhQgIiInoETTTKU6nXtFRQU33ngjM2fO5JRTUr8ApQARkawTZKSQKWFN575z504uv/xy7r333iNGNqnQPRARkQiFMZ17VVUVI0eOZOzYsVxzzTXpKz7RFL0n60PTuYtkr2yezn3WrFmek5PjF1xwweHH8uXLE9ao6dyPQtO5i2QvTeeeHE3nLiIiGRdJgJhZSzObZ2br4j/POkq7YWa21szKzGxygu13mpmbWatE+4uISOZENQKZDMx39y7A/PjyEcysEfAwMBzoDowxs+61trcDhgAfh1KxiIgcIaoAGQHMjD+fCXw9QZt+QJm7r3f3KqAkvt8hvwF+DGTPTRwRkRNIVAFyjrtXAMR/tknQJh/YWGu5PL4OM7sS2OTuK493IjObYGbLzGxZOj66LyIiMRn7IKGZvQq0TbDp7mQPkWCdm9np8WMMTeYg7j4DmAGxd2EleW4RETmOjI1A3P0/3L1HgsdsYIuZ5QLEf25NcIhyoF2t5QJgM9AJ6ACsNLMN8fXvmFmisBIROWFENZ37Rx99RJ8+fejVqxfFxcVMnz49Lf2J6hLWHGBc/Pk4YHaCNm8BXcysg5k1AUYDc9z9PXdv4+6F7l5ILGh6u/snYRQuIhJUVNO55+bmsnjxYlasWMHf//53pk6dyubNm1PuT1QBMhUYYmbriL2TaiqAmeWZWSmAu1cDE4FXgDXAn9x9dUT1ioikLKrp3Js0acKpp54KxEYpBw8eTEt/IplM0d0rgcEJ1m8GLqu1XAqUHudYhemuT0ROci9Phk/eS+8x2/aE4VPrvVtY07lv3LiRyy+/nLKyMu6///7DEzCmQp9EFxE5ASWaZiqV6dzbtWvHu+++S1lZGTNnzmTLli0p16jp3EUk+wQYKWRKWNO5H5KXl0dxcTELFy5k1KhRKdWuEYiISITCmM69vLycffv2AbB9+3YWLVrEeeedl3LtGoGIiIRkzJgxvP7663z66acUFBQwZcoUJk+ezLXXXssTTzxB+/bt+fOf/wxAcXEx1157Ld27dycnJ4eHH36YRo0aAfDoo49y0003sW/fPoYPH87w4cMBGD9+PDfeeCOdO3emZcuWlJSUALEZdu+4447Dl8DuvPNOevbsmXJ/NJ27iGQFTeeeHE3nLiIiGacAERGRQBQgIiISiAJEREQCUYCIiEggChAREQlEASIiEpKopnM/ZOfOneTn5zNx4sS09EcBIiISkqimcz/knnvu4dJLL01bfxQgIiIhiWo6d4iNWrZs2cLQoUl9mWtSNJWJiGSdXyz9Bf/47B9pPWa3lt2Y1G/S8RvWEcZ07i1btuSOO+5g1qxZzJ8/P3Af69IIRETkBJTO6dwfeeQRLrvsssPhki4agYhI1gkyUsiUMKZzf/PNN1m4cCGPPPIIu3fvpqqqimbNmh2+3xKURiAiIhEKYzr3p59+mo8//pgNGzbwq1/9irFjx6YcHqARiIhIaKKazj1TNJ27iGQFTeeeHE3nLiIiGacAERGRQBQgIpI1sumSfRD1/f0oQEQkKzRt2pTKykqFyFG4O5WVlTRt2jTpfbLqJrqZbQM+Crh7K+DTNJbTEKjP2SEr+ty6deucn/3sZ4WFhYWnufspp5xyysGoawrTwYMHj9lnd2fDhg377r777g3btm2rrrP5XHdvXXefrAqQVJjZskTvQjiZqc/ZQX3ODpnosy5hiYhIIAoQEREJRAGSvBlRFxAB9Tk7qM/ZIe191j0QEREJRCMQEREJRAEiIiKBKEDqMLNhZrbWzMrMbHKC7WZmD8a3v2tmvaOoM52S6PP18b6+a2aLzeyCKOpMp+P1uVa7L5tZjZmNCrO+dEumv2Y20MxWmNlqM/s/YdeYbkn8d/0lM3vRzFbG+3xzFHWmk5n9zsy2mtmqo2xP7+uXu+sRfwCNgA+AjkATYCXQvU6by4CXAQMGAH+Puu4Q+vwV4Kz48+HZ0Oda7RYApcCoqOvO8L9xC+B9oH18uU3UdYfQ57uAX8SftwY+A5pEXXuK/b4E6A2sOsr2tL5+aQRypH5Ambuvd/cqoAQYUafNCOBJj1kCtDCz3LALTaPj9tndF7v79vjiEqCAhi2Zf2eA7wF/AbaGWVwGJNPf64Dn3P1jAHfPhj470Nxi3wfbjFiA1P0EdoPi7m8Q68fRpPX1SwFypHxgY63l8vi6+rZpSOrbn/HE/oJpyI7bZzPLB0YC00OsK1OS+TfuCpxlZq+b2dtmNja06jIjmT4/BBQBm4H3gNvc/WSf3iStr1/6RsIjWYJ1dd/nnEybhiTp/pjZV4kFyMUZrSjzkunzA8Akd6+J/YHaoCXT3xygDzAYOA1408yWuPs/M11chiTT5/8BrAAGAZ2AeWa20N13Zri2KKX19UsBcqRyoF2t5QJif53Ut01DklR/zOx84HFguLtXhlRbpiTT575ASTw8WgGXmVm1u78QSoXplex/15+6+x5gj5m9AVwANNQASabPNwNTPXZzoMzMPgS6AUvDKTESaX390iWsI70FdDGzDmbWBBgNzKnTZg4wNv5uhgHA5+5eEXahaXTcPptZe+A54MYG/Bdpbcfts7t3cPdCdy8EngW+20DDA5L773o28O9mlmNmpwP9gTUh15lOyfT5Y2IjLszsHOA8YH2oVYYvra9fGoHU4u7VZjYReIXYuzh+5+6rzew78e3Tib0j5zKgDNhL7K+YBivJPv8XcDbwSPwv8mpvwDOZJtnnk0Yy/XX3NWY2F3gXOAg87u4J3wraECT5b/xT4A9m9h6xSzuT3L1BT2tvZs8AA4FWZlYO/ARoDJl5/dJUJiIiEoguYYmISCAKEBERCUQBIiIigShAREQkEAWIiIgEogARCcjMWpjZd2st55nZsxk619fN7L+O0+ZXZjYoE+cXSURv4xUJyMwKgZfcvUcI51oMXHmszymY2bnAY+4+NNP1iIBGICKpmAp0in+Hxv1mVnjoexjM7CYzeyH+fRMfmtlEM/uhmS03syVm1jLerpOZzY1PYLjQzLrVPYmZdQW+cPdPzax5/HiN49vONLMNZtbY3T8CzjaztiH+DiSLKUBEgpsMfODuvdz9Rwm29yA2TXo/4GfAXne/EHgTODTb7Qzge+7eB7gTeCTBcf4NeAfA3XcBrwOXx7eNBv7i7gfiy+/E24tknKYyEcmc1+Iv+LvM7HPgxfj694DzzawZsS/r+nOtGX9PTXCcXGBbreXHgR8DLxCbiuJ/1tq2FchLVwdEjkUBIpI5X9R6frDW8kFi/++dAuxw917HOc4+4EuHFtx9Ufxy2aVAozpzVjWNtxfJOF3CEgluF9A86M7x75340MyugcPfV53o++bXAJ3rrHsSeAb4fZ31XYEGOwmiNCwKEJGA4t+LssjMVpnZ/QEPcz0w3sxWAqtJ/NW6bwAX2pHfbPU0cBaxEAEgfmO9M7AsYC0i9aK38Yo0AGY2DXjR3V+NL48CRrj7jbXajAR6u/s9EZUpWUb3QEQahp8T+5InzOy3wHBi3+tQWw7w65DrkiymEYiIiASieyAiIhKIAkRERAJRgIiISCAKEBERCUQBIiIigfw/hLGPYHYEDhoAAAAASUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -131,7 +135,7 @@ { "data": { "text/plain": [ - "[]" + "[]" ] }, "execution_count": 8, @@ -140,7 +144,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -163,19 +167,19 @@ { "data": { "text/plain": [ - "[,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ]" + "[,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ]" ] }, "execution_count": 9, @@ -184,7 +188,7 @@ }, { "data": { - "image/png": "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INOAIWa2ERgSW8bMcsysBCD2Ivkk4GVgPfBnd18b2/8hoBmwwMxWm9mMsDsgIlJXY8aM4aKLLmLDhg3k5eXxxBNPMGXKFBYsWEDnzp1ZsGABU6b825tST1qRvIju7hXA4DjrtwGX1VguAUritOuU1gJFRNLgmWeeibt+4cKFIVeSGvokuoiIBKIAERGRQBQgIiISiAJEREQCUYCIiEggChAREQlEASIiEpK6Tud+77330qlTJ84//3xefvnlI+vffPNNevToQadOnfjRj37E4ck4vvzyS7797W/TqVMn+vfvz+bNm4/sM2zYMJo3b84VV1yRsv4oQEREQlKX6dzXrVtHcXExa9euZf78+fzwhz/k4MGDANx4443MnDmTjRs3snHjxiPHfOKJJzj77LMpLS3lxz/+MZMnTz5ynp/+9KfMnj07pf1RgIiIhKQu07nPnTuX0aNHc/rpp9O+fXs6derEihUrKC8vZ9euXVx00UWYGWPHjj1qn8PHGjlyJAsXLjwyOhk8eDDNmjVLaX+ims5dRCQyd20s493d+1J6zO5Nm/DzznW/NdGxpnPfunUrAwYMONIuLy+PrVu30rBhQ/Ly8v5t/eF92ratnoM2KyuLr3zlK1RUVNCyZcvA/ToejUBERE5C8SYZN7Njrj/ePumiEYiIZJwgI4V0OdZ07nl5eWzZ8v/vqVdWVkZOTg55eXmUlZX92/qa++Tl5VFVVcXnn3/+b5fMUkkjEBGRCB1rOvcrr7yS4uJivvzyS95//302btxIv379yM7OplmzZixfvhx358knnzxqn8PHmjNnDoMGDUrrCAR3z5hHnz59XEQy07p166IuwUePHu1t2rTxrKwsz83N9ccff9w/+eQTHzRokHfq1MkHDRrkFRUVR9rfc8893qFDB+/SpYuXlJQcWf/GG294YWGhd+jQwW+66SY/dOiQu7vv27fPR44c6R07dvSvfvWr/t577x3Z5+KLL/aWLVt648aNPTc31+fPnx+3xng/J2Clx3lONT/2zfxOOX379vWVK1dGXYaIRGD9+vUUFBREXcZJL97PyczedPe+tdvqEpaIiASiABERkUAUICIiEogCREREAlGAiIhIIAoQEREJRAEiIhKSqKZzX716NRdddBGFhYVccMEF/OlPf0pJfxQgIiIhiWo69zPOOIMnn3zyyLFuvfVWdu7cmXR/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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEGCAYAAAB7DNKzAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABMnUlEQVR4nO3deXzU1bn48c+ZPctk3xNC2Pd9RwVFQVAr0uJe95baqtV726q33rbX2irdfq1tte5rF7TWXcQFQVBUFgHZIUCALGRPJjOZfc7vjxkhQAIBJpkkPO/Xa8x8Z8585xxi5plzvuc8R2mtEUIIIdpiiHUFhBBCdG0SKIQQQhyXBAohhBDHJYFCCCHEcUmgEEIIcVymWFegI2RkZOiioqJYV0MIIbqNdevW1WitM1t7rkcGiqKiItauXRvragghRLehlNrX1nMxHXpSSs1WSu1QShUrpe5t5flzlVKNSqkNkdvPY1FPIYQ4k8WsR6GUMgKPADOBUmCNUupNrfXWo4qu1Fpf0ukVFEIIAcS2RzERKNZa79Fa+4BFwNwY1kcIIUQrYnmNIh840OK4FJjUSrkpSqmNQDnwY631ltZOppRaACwAKCwsjHJVhRDdgd/vp7S0FI/HE+uqdFk2m42CggLMZnO7XxPLQKFaeezoxFNfAr211k6l1EXA68CA1k6mtX4CeAJg/PjxksBKiDNQaWkpdrudoqIilGrtI+bMprWmtraW0tJS+vTp0+7XxXLoqRTo1eK4gHCv4RCttUNr7YzcXwyYlVIZnVdFIUR34vF4SE9PlyDRBqUU6enpJ93jimWgWAMMUEr1UUpZgKuAN1sWUErlqMhvXCk1kXB9azu9pkKIbkOCxPGdyr9PzIaetNYBpdTtwHuAEXhGa71FKXVr5PnHgPnA95VSAcANXKUlL7oQQhyj2d9Mc6CZjLjoD7rEdB2F1nqx1nqg1rqf1vrXkcceiwQJtNZ/1VoP01qP0lpP1lqvimV9hRCiPaZOndrq4zfeeCOvvPJKVN9La02tu5aSxhLqPfUEQ8Gonh966MpsIYSIpVWrOuc7bTAUpNxVjsPrwG6xk5+Yj9FgjPr7SKAQQogoS0xMxOl0orXmjjvu4KOPPqJPnz5Ec+TcE/BwoOkAvqCP7IRs0m0ddxFfAoUQQnSQ1157jR07drBp0yYqKysZOnQoN99882mft95TT4WrAqMyUpRcRII5IQq1bZsECiGE6CArVqzg6quvxmg0kpeXx4wZM07rfCEdosJZQYO3gQRzAvn2fMyG9i+cO1USKIQQogNFazjIG/BywHkAb8BLZnwmmXGZnTYVWDYuEkKIDjJt2jQWLVpEMBikoqKCZcuWndJ5Gr2N7GncQyAUoDCpkKz4rGODhLsBGkuhA1YQSI9CCCE6yLx58/joo48YMWIEAwcOZPr06Sf1+pAOUemqpM5TR5w5jl6JvTAbjxpq0hqaKsBZCeZ40CFQ0Z35JIFCCCGizOl0AuFhp7/+9a+ndA5f0EdpUynugJv0uHSy4rMwqKMGgYJ+qN8HviaIT4fkAji6TBRIoBBCiC6myddEWVMZGk0vey+SrEnHFvK5oG4vhAKQUhgOFB1EAoUQQnQRWmuqmquocddgM9kosBdgNVqPLeiqCV+PMJohYyBY4ju0XhIohBCiC/AH/ZQ5y3D5XaTaUslJyDl2qCkUAkcpNNeCxQ6pRWDs+I9xCRRCCBFjTp+TUmcpIR0iPzGfFFvKsYUC3vBQU8ANidlgz4VOmh4rgUIIIWKk5VCT1WSlILEAm8l2bEF3AzTsD99P6wu25E6tpwQKIYSIAX/QT6mzlGZ/c9tDTToEjnJwVYenvqYWgamVaxYdTBbcCSFEFB04cIDzzjuPIUOGMGzYMB5++OFjyjT5mtjduBtPwEO+PZ+8xLxjg0TABzXF4SCRkAkZA2ISJEB6FEIIEVUmk4k//OEPjB07lqamJsaNG8fMmTMZOnQoIR2iqrmKWnft8Wc1eRxQXwLocC8iLrWTW3EkCRRCCBFFubm55ObmAmC32xkyZAhlZWX0H9T/0AK6NFsa2QnZrQw1tVhlbbJBah8wt3LNog0hrTF0wAXumAYKpdRs4GHCW6E+pbVe2Ea5CcDnwJVa6+huDyWE6JHuf2sLW8sdUT3n0LwkfvGNYe0uX1JSwvr16xk8ejC7G3YDtL2ALugP9yJ8TohLC6+ybscmRFprmjwB6lw+fMEQA7ISo54sMGaBQillBB4BZgKlwBql1Jta662tlPsN4b21hRCiW3A6nXzrW9/i5w/9HIdyEGeMo8BegMVoObawtymciuMkVln7gyHqXb5DAcJkNJAWb0ED0e5TxLJHMREo1lrvAVBKLQLmAluPKncH8B9gQudWTwjRnZ3MN/9o8/v9zPvmPC785oVMuXBK27matIamg+A8CEYrZA4Cc1yb59Va4/IFqXV6cbgDaDSJVhO5yTbsceYOGXaC2AaKfOBAi+NSYFLLAkqpfGAeMIMTBAql1AJgAUBhYWFUKyqEEO0VCoW47sbryO2by/Xfv578xHzsFvuxBQM+aNjXrqGmUEhT7/ZR6/Th8QcxGhTpiRbSEyxYzdHfI/tosQwUrYW+oxOp/wm4R2sdPNGYm9b6CeAJgPHjx0c/IbsQQpxAMBTkjQ/f4KV/vsSgoYO4csaVKBQPPvggF1100eGC7sZwkEBDSm+IT2v1fL5AkFqnj7pmH8GQxmY2UpAaR0qcBYOhc1ZlQ2wDRSnQq8VxAVB+VJnxwKJIkMgALlJKBbTWr3dKDYUQop2a/c2UOksZNHYQVa4qMuIyjr2o3HIBnSkuPPX1qFlNWmuc3gC1Th8Ojx+FIinOREailXiLsdN2tWsploFiDTBAKdUHKAOuAq5pWUBr3efr+0qp54C3JUgIIboSrTU17hqqmqswG830Se5DvLmVbK5+T3hWU8AdXkCXlHfE3hHBkKa+OTy85A0EMRkMZNltpCdYMJtiuzY6ZoFCax1QSt1OeDaTEXhGa71FKXVr5PnHYlU3IYRoj5ZpOJKtyeQm5GJs7TpDcx00HgAUpPaFuMO5mnyBIDVOH/UuH0GtibeY6JUWT3IHXpw+WTFdR6G1XgwsPuqxVgOE1vrGzqiTEEK0h8ProNxZjkaTn5hPsjX52GGhUDC8b4S7DiwJkFIEpvD0WJc3QI3Ti8PtBxTJ8WYyEi3EW7reOuiuVyMhhOjCQjrEQddB6j31x0/D4XOFh5qCPkjMAXsOGmhs9lHj9NHsC2A0KDLtVtITrDEfXjoeCRRCCNFOnoCHA00H8AV9ZMRlkBmf2fraCOfB8PoIowXSBxA0x1Pn9FHr9OILhrCaDOSnxJESb8HYibOXTpUECiGEOAGtNXWeOiqbKzEqI72TepNoSTy2YMAbXmHtd0FcKr6EPGqag9TXNBHUmgSribyUOOw2U0xmL50qCRRCCHEc/qCfclc5Tp8Tu8VOXmIeJsNRH51ah69DNJbi8fg4Z/73cHr9+P0BLrjoUn76s1902esP7dE9ay2EEJ3A4XVQ7ionpEPkJOSQZks7ticQDIRnNHkaCJjiORjfi7/8803sdjt2i2L+RTMp3zmPwsmTY9OIKJBAIYQQRwmGghx0HaTB2xC+YJ1YgLW1TYO8TehIMr9alU6FLwmz0UD//ExS4y14PW4CAX+3GmZqjQQKIUTP9O69cHDTSb8sqIN4g15StCbTaMZsMKO+zjiUMwLmLAQdIuSoQLmq8GFmfygXbY6nINlKcpwZHQoxbuwYiouLue2225g0adLx37SL67rzsYQQohNpNL6QD0/AA4DNZMNisBwOEhEBjwt/5XYMrirqtJ1yUyHZGWkMyEokNd6CQSmMRiMbNmygtLSU1atXs3nz5lg0KWqkRyGE6JnmtLoPWqs8AQ9lzjI8AQ+ptlSy47OPWWHt9Qfw1leQWLuTIEaqzPkkJqeRbm37YzQlJYVzzz2XJUuWMHz48FNuSqxJj0IIccbSWlPrrmVP4x78IT+97L3IS8w7Ikg0+wKU19QTrNpJUqAGj8lOKHMQWVlZxLcSJKqrq2loaADA7Xbz4YcfMnjw4M5qUoeQHoUQ4ozkD/opc5bh8rtItCSSl5iH2WAGDmdwrW7yYvPVkkM9WhkIJPcmPqH1lOBfq6io4IYbbiAYDBIKhbjiiiu45JJLOqNJHUYChRDijKK1ptHXyEHnQTSa3MRcUq2pKKXCz7n9VDd5Cfq99DJUk6A8aGsShpRCMJpPeP6RI0eyfv36TmhJ55FAIYQ4YwRCASqcFTh8DuLMceQn5GM1WQlpTYPLR1WTF28gSJbRSZahFqWA5EJUXBp08ymup0MChRDijNDobaTCVUFIh8hOyCbdlo7WUOv0Ut0UzsGUaNL0tdRgDjjBYoeUwkPZXs9kEiiEED1aIBTgoOsgjd5GbCYb+Yn5mA1Wapw+apxe/MEQ8RYjveO82NwHUUHC+1fHZ5zRvYiWJFAIIXqsJl8T5c5ygjpIVnwWqdY0al1+ap0OAiFNotVEYbKR+OZyVLMTLImRXkQrq7DPYBIohBA9TssUHFaTlfz4Xjjdih31ToJaY7eZybJbSPDXQ0NFuOeQ3Avi06UX0YqYBgql1GzgYcJboT6ltV541PNzgQeAEBAA7tJaf9LpFRVCdBtOn5MyZxmBUIA0WwY6YKek2k9Ia5LjzGTZrcSpADTsAX8zWJPCQUKuRbQpZoFCKWUEHgFmAqXAGqXUm1rrrS2KLQXe1FprpdRI4GWge69cEUJ0CKfPSYO3gZAjhMVoIdGQR02jAbSflHgzmXYrNpMCZ1V4UyFlgJTeEJfaIb2IYDDI+PHjyc/P5+233476+TtTLFdmTwSKtdZ7tNY+YBEwt2UBrbVTa60jhwmARgghjrKidAWXvXEZzf5mLCoZT3MmDreBtHgzg3IS6ZUWj017oXonNFWALRmyhkB8x017ffjhhxkyZEiHnLuzxTJQ5AMHWhyXRh47glJqnlJqO/AOcHNbJ1NKLVBKrVVKra2uro56ZYUQXU+9p557V97LbUtvo6nZhA7Y8XrspCdYGZxtJz81HosBcJRBzQ4I+SG1D6T1adfiuVNVWlrKO++8w3e+850Oe4/OFMtrFK2F8WN6DFrr14DXlFLTCF+vuKC1k2mtnwCeABg/frz0PITowbTWvLfvPX656tc0+Zrw1pwPTTOxj7AxOMeOyWjgN6t/w/aaLRDwABoMpshsplPvQQxOG8w9E+85Ybm77rqL3/72tzQ1NZ3ye3UlsQwUpUCvFscFQHlbhbXWK5RS/ZRSGVrrmg6vnRCiS6p0VfKjj37BxrpPCboLsDZ8h1snncV1U3pTtrcYk9EAQT94HBBwh69FGG1wVDbYjvL222+TlZXFuHHjWL58eae8Z0eLZaBYAwxQSvUByoCrgGtaFlBK9Qd2Ry5mjwUsQG2n11QIEXPBYIgHP3mBV/Y+SlD7sTRdyg/H3MS1k4oO7UVdpjW4asBRzj39Lwd7DiRmhYNFJ/n000958803Wbx4MR6PB4fDwbe//W3+/ve/d1odoi1mgUJrHVBK3Q68R3h67DNa6y1KqVsjzz8GfAu4XinlB9zAlS0ubgshzgDBkObFtev5y1cP4TNvx+jvx62D7+G7UyZiNbXoJVRuBVcVNHrDC+eSe4HZ1un1feihh3jooYcAWL58Ob///e+7dZCAGK+j0FovBhYf9dhjLe7/BvhNZ9dLCBF7vkCIV7/cz5/WPIcz/k0MRiOX5N3O/efdgsXU4qPL74YVv4NPH4ZZL4VXVp/hSfyiTVZmCyG6FI8/yEtrDvDoquU0JS7CmFjGkKSJPHzBr8iz5x5ZeOf78O7dUL8XRl0THmqKT49NxVtx7rnncu6558a6GqdNAoUQoktwegP8/fN9PPnJdpxxb2PJ+JRUSyo/m/I7Liy6ENWyh1C/D5b8D+x4B9IHwPVvQt/psG1b7BrQg0mgEELEVEOzj+dWlfDspyU4jRtJLngbq6rn8oGXc+e4O0myJB0u7PfAqj/Dyj+AMsIF98PkH0j6jQ4mgUIIERPVTV6e+mQPf/9sH82hOnoNeJ8Q6+id0p9fTHmY0Vmjj3xBy2GmoZfBhb8OpwMXHU4ChRCiU5U1uHni490sWnMAfzDAqGFbKeNV3IS4a9RdXD/s+kN7VwPHDjNd9zr0Oy9m9T8TSaAQQnSKvTUu/ra8mFe/LAPg/FF+qq3/ZFfjVs7KO4v7Jt9HL3uLNbhHDDMZ4IL/g8m3yTBTDEigEEJ0qO0HHTyybDfvfFWO2Wjg8gnpGNLf5+2SV0glld9O+y2zi2YfvlitNWx/G97/X6gvkWGmLkAChRCiQ2w40MBfPyrmw22VJFiMfOecIgoLt/PkloU0lDRwxcAruH3M7SRbkw+/6OBmWHIvlKyEzMFw3WvQb0bsGnGKioqKsNvtGI1GTCYTa9eujXWVTosECiFE1Git+XxPHY8sK+aT4hqS48zcdcEAzh7q488bf8O/1q1nVOYoHrvgMYakt0jB7aqBjx6AL18IpwC/6Pcw7iYwdt+PqGXLlpGRkRHrakRF9/0tCCG6DK01y3dU89dlxazbV09GopX/mTOYS8em8dzWx7jlw0UkW5L55dRfMrf/XAxf514K+GD14/Dxb8HngokLYPo94X0iRJchgUIIccpCIc2SLQd5ZFkxW8od5KfE8cu5w5g/Lp8P9i/mqsX/jwZvK8NMWsPOJfDefVC3G/pfABc+CJmDola3gw8+iHfb9qidD8A6ZDA5P/3pCcsppZg1axZKKb73ve+xYMGCqNajs0mgEEKcNH8wxJsbynl0eTG7q130yUjgt/NHctnofPY6dnHr0ltYX9XGMFPlVnjvp7BnGWQMhGtfgQEzY9eYDvDpp5+Sl5dHVVUVM2fOZPDgwUybNi3W1TplEiiEEO3mDQR5ZV0pf1u+m9J6N4Nz7Pzl6jFcNCKXRl89C9f8iv/s+k/rw0yOclj2IGz4B1jtMPs3MOGWDttprj3f/DtKXl4eAFlZWcybN4/Vq1dLoBBC9GzNvgD//GI/T67cQ6XDy+heKfzfN4Zx/pAsAqEAf9/2Ao9vfBx3wM01g6/h1lG3Hh5m8jjCmV0/ewR0MJxy45wf9djrEC6Xi1AohN1ux+Vy8f777/Pzn/881tU6LRIohBBtamj28cJn+3huVQl1Lh9T+qbz/64YzdR+4QytK0pX8Pu1v6fEUcLZ+Wfzkwk/oW9y3/CLg35Y+yx8vBCaa2H4fDj/Z5BaFLsGdYLKykrmzZsHQCAQ4JprrmH27NkxrtXpkUAhhDhGRaObp1fu5Z+r99PsCzJjcBa3ndePcb3DvYDdDbv57Zrfsqp8FUVJRTx6/qOcU3BO+MVaw7Y34cP7wxeqi86Bmb+E/LExbFHn6du3Lxs3box1NaJKAoUQ4pDiKidPrNjNa+vLCGm4dFQe35vel8E54QyuDZ4GHt34KC/veJl4czz3TLiHKwdfeTg30/7P4f2fQelqyBwC1/w7fKFaNhHq1mIaKJRSs4GHCW+F+pTWeuFRz18L3BM5dALf11r3rFAtRBew8UADf1u+m/e2HsRiNHDNxEK+c05feqXFA+AP+nl558s8uuFRnH4nlw+8nNtG30aqLTV8goOb4KNfhae82nPh0r/A6GvBYDzOu4ruImaBQillBB4BZgKlwBql1Jta660tiu0Fpmut65VSc4AngEmdX1sheh6tNZ8U1/C35btZtbuWJJuJ28/rzw1Ti8hItB4q8/6+93n4y4c50HSAybmTuXvC3QxIHRA+Sc2u8EymLa+GV1Sf/3OYdCtYEmLYMhFtsexRTASKtdZ7AJRSi4C5wKFAobVe1aL854BkBRPiNAVDmiWbD/K3j4vZXOYgO8nK/148hKsmFpJoPfyRsK5yHX9Y+wc21WxiQOoA/nbB3zgr76xw8r6G/fDxb2DDP8EUB+f8GKbeAXEpsWuY6DCxDBT5wIEWx6Ucv7dwC/BuW08qpRYACwAKCwujUT8hehRvIMirX5bx+Me7Kaltpm9GAr/91kjmjsnDajo8RLSncQ9/XPdHlh9YTlZ8Fg+c9QDf6PsNjAYjNFWG036vezZceNKtcPZ/Q2JmbBolOkUsA0VrV7d0qwWVOo9woDi7rZNprZ8gPDTF+PHjWz2PEGeiJo+ff36xn6c/2UtVk5eRBck89u2xzByag9Fw+M+wxl3Doxse5dVdrxJniuPOsXdy7ZBriTPFQXNdeG+ILx6HgBfGfBum3y2pv88QsQwUpUCLXUooAMqPLqSUGgk8BczRWtd2Ut2E6PYqGt0892kJ//xiP03eAOcMyOBPV45mSr/0w3s/AC6/i+e3PM9zW57DH/Rz1eCrWDByAWm2tHCA+Pj34QDhc8KI+XDu/0B6vxi2rOtraGjgO9/5Dps3b0YpxTPPPMOUKVNiXa1TFstAsQYYoJTqA5QBVwHXtCyglCoEXgWu01rv7PwqCtH9bC138NTKPby5sRwNXDQilwXn9GVEQfIR5TwBDy/teImnNz1NvbeeWb1ncefYOylMKgRXbXgdxOonwgFi6FyYdjfkDI9No7qZO++8k9mzZ/PKK6/g8/lobm6OdZVOS8wChdY6oJS6HXiP8PTYZ7TWW5RSt0aefwz4OZAOPBr5BhTQWo+PVZ2F6Kq01qzcVcOTK/ewclcN8RYj108p4qazig5Ncf2aP+jnteLXeHzj41S5q5iSO4U7xtzBiMwR4X0hPvgFrH4S/M0w7LJwgMgeGpuGdUMOh4MVK1bw3HPPAWCxWLBYuvf2rTFdR6G1XgwsPuqxx1rc/w7wnc6ulxDdhS8Q4q2N5Ty5cg/bDzaRZbdyz+zBXDOxkOT4I5PtBUNBFu9dzCMbHqHMWcaYrDEsnLaQCTkTwFkdXii35ulwgBj+TZj2E8ga0sY7d30rX95JzQFnVM+Z0SuRc64YeNwye/bsITMzk5tuuomNGzcybtw4Hn74YRISuu+UYVmZLUQ31Oj286/V+3n2071UOrwMyrbz+8tHcemoPCwmwxFltdZ8uP9DHln/CLsbdzMkbQj3nX8fZ+efjXJWhveEWPsMBDww/FvhABHFfSHONIFAgC+//JK//OUvTJo0iTvvvJOFCxfywAMPxLpqp0wChRDdSFmDm2c/2cuiNQdwegOc3T+D384fxbQBGUdcoIbIgrqyT/jrhr+ytXYrfZL78Ifpf+CC3hdgqNsLb/9XeB1EyA8jLg8HiIwBMWpZ9J3om39HKSgooKCggEmTwrP958+fz8KFC0/wqq5NAoUQ3cD6/fU8+2kJ72yqQAHfGJXHd87pw7C85GPKaq1ZUbqCxzY+xubazeQn5vOrs37FJX0vwVi5BV65Bba+DgZTOM3G1DtkFlMU5eTk0KtXL3bs2MGgQYNYunQpQ4d272s8EiiE6KL8wRBLNh/kmU/3sn5/A3ariZvPKuKms/qQlxJ3THmtNcsOLOOxjY+xrW4b+Yn53D/1fr7R5xLMpavhn1dA8YdgsYeDw+QfgD0nBi3r+f7yl79w7bXX4vP56Nu3L88++2ysq3RaJFAI0cXUu3z8a81+Xli1j4MOD30yErj/0mF8a1zBESk2vhbSIT7a/xGPbXyMHfU76GXvxQNnPcDFRXMwFy+F5y4OZ3NNyAznYhp/i6Ta6GCjR49m7dq1sa5G1EigEKKL2FnZxLOf7uW19WV4/CHO7p/Bg98czrkDszAYjk1kENIhPtj3AY9/9Ti76ndRlFTEg2c/yJyC8zBt/g88Pg2qt0NKb7j4D+FhJvOxPREhTkQChRAxFApplu+s4tlPS1i5qwarycA3x+Zz49Q+DMqxt/oaf9DPO3vf4dnNz7KncQ99kvuw8JyFzM4ci3Htc/Cfu6C5BnJGwDefhGHfBKP8qYtTJ//3CBEDLm+AV9aV8tyqEvbWuMhOsvKTCwdx9cRC0hJaX5zV7G/mlZ2v8MLWF6hsrmRg6kB+O+23zIrrhfGLv8FXN0LQBwPnwJTboOhs2TBIRIUECiE6UXFVEy9+to//fFmG0xtgVK8UHr5qNBeNyMVsNLT6mjpPHf/c9k/+tf1fOHwOxmeP5/+m/IKzmj2olY/AnmXhVN9jr4dJ34eM/p3cKtHTSaAQooMFgiE+2FrJi5/vY9XuWixGAxeNyOH6qUWMLUxt83VlzjKe3/I8r+16DU/Qw4xeM7h50NWMqtgKb/w4fP0hMSd8gXrcTRCf1omtEmcSCRRCdJCqJg+LVh/gn1/s56DDQ35KHD+5cBBXTuh1aAe51myp2cILW1/gvZL3UEpxSd9LuClvBn23L4EXLgevA3JGwrzHw9cfTN07j5Do+iRQCBFFWmvWlNTzwmclLNl8kEBIc86ADB64bDgzBmcdsf9DS8FQkGUHlvHi1hf5supL4k3xXDP4aq639iJn48vwwZ/BYA4n6ZvwXeg1Ua4/dFE7duzgyiuvPHS8Z88efvnLX3LXXXfFrlKnSQKFEFHg8gZ4fUMZL362j+0Hm0iymbhhahHXTiqkb2Zim69z+py8Vvwa/9j2D8qcZeQn5vOTkT9gnqMB+6cvQuMBSMqHGf8LY2+AxKxObJU4FYMGDWLDhg0ABINB8vPzmTdvXmwrdZokUAhxGjaVNvLP1ft5c0MZLl+QoblJLPzmCC4dnUe8pe0/r9KmUv6x7R+8VvwaLr+LMZlj+FHvSzhv31eY3v55ePZSn2lw4YMw6CKZ3tpNLV26lH79+tG7d+9YV+W0yP99QpykJo+fNzaU86/V+9lS7sBmNnDJyDyunljI2MKUY5LzfS2kQ3xR8QUv7XiJZQeWYcDArILpXIed4VuXwOo3wJoE426ECd+RDK6nadlzT1C1b09Uz5nVuy/n3big3eUXLVrE1VdfHdU6xIIECiHaQWvN+gMNLFq9n7c2VuD2BxmSm8QDc4dx6eh8kuPMbb620dvIG8Vv8O+d/6bEUUKqNZWb8mdwdc1Bsj/5ezh7a69JMPfR8DUIS/fdt0Ac5vP5ePPNN3nooYdiXZXTJoFCiONobPbz2vpSFq05wPaDTcRbjMwdHe49jCxIbrP3ALCldgsvbX+Jd/e+iyfoYXTaUB7MOJtZuz7Buv0ZiEuDiQtg7HXdeoOgrupkvvl3hHfffZexY8eSnZ0d03pEQ0wDhVJqNvAw4a1Qn9JaLzzq+cHAs8BY4D6t9e87v5biTBMKaT7fU8u/15WyeFMF3kCIkQXJPDgvfO2htcR8X/MEPLxX8h4v7XiJTTWbiDPauCR1GFfW1zL4y/dBh6DPdDj/FzDkG2Bqe5qs6N7+9a9/9YhhJ2hnoFBKBYHfAf+jtdaRx77UWo891TdWShmBR4CZQCmwRin1ptZ6a4tidcAPgctO9X2EaK99tS7+s66U/3xZRlmDG7vNxPxxBVw9sZDh+cfu+9DSttptvLrrVd7Z+w5Nvib6xOdwb9wALt2zFnvxzvDMpbPuCvce0vp2ToNEzDQ3N/PBBx/w+OOPx7oqUdHeHsUWwAC8r5S6UmtdB5zuJO6JQLHWeg+AUmoRMBc4FCi01lVAlVLq4tN8LyFa5fQGWPxVBa+sK2V1SR1KwTkDMrlnzmBmDc3GZja2+dpGbyOL9y7mtV2vsa1uGxaDmQts+XyrzsmEvatR5gQYeimMuhqKzgFD6yk6RM8THx9PbW1trKsRNe0NFAGt9d1KqSuAlUqp6wF9mu+dDxxocVwKTDrVkymlFgALAAoLC0+vZqJHC4U0n++t5ZW1pby7+SBuf5C+mQncPXsQ88bkk5vcdirukA6x5uAaXt31Kh/u+xBfyMcQWxY/DaVw0b5NJIf2hKe1nv1TGHwJWNteQyFEd9HeQKEAtNYvK6U2A4uA0/00bq1HcsrBR2v9BPAEwPjx4083iIkeaFdlE29sKOe19YeHluaNzWf+uALG9Gp7WivAfsd+3tnzDm/sfoMyZxl2o41v6gS+WV7KEO9+yBgI5/0MRl4JyQWd2CohOl57A8UPlVL/DZxN+MP8FWDvab53KdCrxXEBUH6a5xTiCOUNbt7aWM7rG8rZVuHAoOCs/hncPXsQFw7LOe7QUr2nniUlS3h7z9t8Vf0VCsVEQwJ31DZyftMBbEkFMP57MPxb4dxLklJD9FDtDRR3AE3AXyLHVwMjgBdP473XAAOUUn2AMuAq4JrTOJ8QADQ0+1i86SBvbChjdUkdWsPoXin84htDuWRkHpn2tmcaeQIelpcu553d7/BJ2UoCOshAQzz/3djMRY31ZMdlwLCrw8Ehf7xcdxBnhPYGikFa61EtjpcppTaezhtrrQNKqduB9whPj31Ga71FKXVr5PnHlFI5wFogCQgppe4ChmqtHafz3qLncfuCLN1eyevry/l4ZxX+oKZvZgL/dcFA5o7Oo3d624vY/CE/qytWs6RkCR+UvI8r0EyWMnOdw8XFjfUMMiXCkEvDwaHobDC03QsRoidqb6BYr5SarLX+HEApNQn49HTfXGu9GFh81GOPtbh/kPCQlBDHaPYFWLa9msWbK1i2vYpmX5DsJCs3Ti1i7uh8huUltXnd4evg8P6+91m670MafQ4SMDDT6eKSJgfjDXaMgy8Or3XoM11SeYszWnsDxSTgeqXU/shxIbBNKbUJ0FrrkR1SOyGO4vIG+Gh7FYs3VbBsRxUef4iMRAvzxuRz8chcJvVJbzOV9xHBoeQDGv1NJKA4z+lilsvFVFM61iHzw8GhcLL0HMQp++Mf/8hTTz2FUooRI0bw7LPPYrPZYl2tU9beQDG7Q2shxHE0efx8tL2Kd76q4OOd1XgDITLtVq4Y34s5w3OZ2CetzeDgDrj5vPxzlu3/iI/2fUBjwEWChnNdLi50NTM1Lh/r0BvCwSF3tFyQFqetrKyMP//5z2zdupW4uDiuuOIKFi1axI033hjrqp2ydgUKrfW+jq6IEC1VOTx8uK2KD7dV8klxDb5AiOwkK1dPLGTO8BzGF7UdHGrdtawoXcFHJe/zecUXeLSfxJBmenMzs1wezsochXX0bBg4WzK0ig4RCARwu92YzWaam5vJy8uLdZVOiyQFFF2C1pqdlU4+3FbJ+1sr2XigAYCC1DiunVTIxSNyGVuYiqGN4LCncQ/L9i9j+Z7FbGzYiQZyAgHmudycGzQyode5mMfPgf7nQ1zb+1SLnqPhrd34yl1RPaclL4GUb/Q7bpn8/Hx+/OMfU1hYSFxcHLNmzWLWrFlRrUdnk0AhYiYQDLGmpJ4Ptlby4bZK9tc1AzCqIJkfzxrIBUOzGZRtb/WCdLO/mbWVa/lk7/t8WrqC/b56AIZ4fXy/uZnzbHkM6jcbNWgOFEyQ6w2i09TX1/PGG2+wd+9eUlJSuPzyy/n73//Ot7/97VhX7ZRJoBCdqtLh4eOd1Xy8s5pPdtXQ6PZjMRqY2j+d703vywVDsslOOvain9aa4oZiVu1fxid732NdYzF+QthCISZ6vHw7YOS87AnkjJwDfc+F5PzOb5zoUk70zb+jfPjhh/Tp04fMzEwAvvnNb7Jq1SoJFEK0xRcIsW5f/aHgsK0ivAQm025l5tBszh+cxbSBmSS0krq7xl3DmtJP+Hz3O3xSs5GqoBuA/j4f13j8nJXUj7H9LsQ6YBZkD5fFb6JLKCws5PPPP6e5uZm4uDiWLl3K+PHjY12t0yKBQkSV1pr9dc18UlzDxzuqWbW7Fqc3gMmgGF+Uyj2zBzN9YCZDco8dUmrwNLCmdAWrd7/LmpqN7A40AWAPhpjs8XKWJZOz8qeSM/BiKJwC5raT9wkRK5MmTWL+/PmMHTsWk8nEmDFjWLAgtpsonS4JFOK0VTS6+Wx3Lat21/LZ7lrKGsLf/PNT4rh0dB7TB2YytV86dtuR24U2eBpYv+8jVu99jzW1m9kRCPc24kIhxnp9XGrJYGLOBAb3vxhT76lgtXd624Q4Fffffz/3339/rKsRNRIoxEmrdXr5fE8dq3bX8NnuWvbUhGeWpMSbmdI3nVun92VKvwz6ZSYc6jVordlbt5MNxe+wvnwVGxwl7NUeAKyhEKN9fm63ZDApewLDBlyCufdU2TtaiC5CAoU4Lq01+2qbWVNSx7p99azdV09xlROARKuJiX3SuGZSIVP6pTMkJ+nQ9NVmr5N1u95i476P2FC7hQ2eKhpUCIDkYJDRQQOXJuQzOnsCI/pfjDV/rGwLKkQXJYFCHMEXCLGlvJF1++oPBYcapw+AJJuJcb1TmTcmn6n90hmRn4zJaMDtc7Fj3zL+texjttZsZou7kj340JHeRJE/wLnGRMYkD2J0r+kUDZiDQfZsEKLbkEBxBguFNHtqXHxV2sBXpY18VdrAlnIH3kD4m39hWjzTBmQyriiVCUVp9M9MxOWqZNe+j9ixfTWvfbaDLe5KduMjGAkK6cEgw7FxYWI/hmaOYmTfWaTmT5SkekJ0YxIozhChkKa03s2mska+KmvgqwONbC5rpMkbACDObGR4fhLfntybcb1TGZMfR3PDWnaWvsHOsi38eUcpO4NNVLSYgZoSDDFM2Zie0JfhWaMZVnQ+WQVTUBIUhOhRJFD0QA6Pnx0Hm9he4WBb5OeOg024fEEAzEbFkNwk5o7OZWRGM+mGbTR7trOvYTcl9Qd5usrB3nUh/JFegklrikIGRltSucJexMCskQzodQ45ueNRRlnxLERPJ4GiG6tz+dhT7WRPtYvd1U52VzvZVtF0aHoqQLLNwPgsJ9cNPECSpZwQFdQFqtjnreWzei9vOA53EQxak68NFJkTOSs+lwFpgxmYP5k+hdOx2JJi0UQhuqWHH36YJ598Eq013/3ud7nrrrtiXaXTIoGiC9Na09Dsp7TeTWl9MyW1zeyJBIQ9NS4amv1Y8ZJhqiDLUkGevY7pqTXozHocqpFq7aZMhVhtNLA6CETihz2k6aOsTI7Lp4+9kKL0IfTJHUevvElYZBGbEKdl8+bNPPnkk6xevRqLxcLs2bO5+OKLGTBgQKyrdspiGiiUUrOBhwlvhfqU1nrhUc+ryPMXAc3AjVrrLzu9oh3E7QtS1eShqslLlcNLRaOb0no3ZXVOamsrcDn3YdaVxJvqiTM1YDLVY7I4SbV4GJzro94QpNqocCiFAyiOnNeiNXnaRL45iZG2dPIT88lP7Ud+xjDyc8aQnJDd5s5vQojTs23bNiZPnkx8fDwA06dP57XXXuPuu++Occ1OXcwChVLKCDwCzARKgTVKqTe11ltbFJsDDIjcJgF/i/zscgLBEC5vkAa3jwaXj3qng3pHDY2OCpqcVbiaa3B6amn2NuIJNOILOgniBoMXbfTgM/rxGAM4jRqHEVwZBsg49n3itCZbG8k0xlNkSSLLlkZ2Qi6ZSb3ISulHXvYIMpKLMCjJeyTObO+++y4HDx6M6jlzcnKYM2fOccsMHz6c++67j9raWuLi4li8eLHkejoNE4FirfUeAKXUImAu0DJQzAVe0Fpr4HOlVIpSKldrXdERFbrpkbMIqSCaEKDRkf9qpcM/AdCE0ISUJqBCBJTGrzQBBT4FPgN4lSLQ2jd2c+TWQnwoRGIIkkKaJA15QUgIGkhAEaeMxGHCYjBjMViwGW1YlAH19Z4MPsDXBI4mXBU72ctS9nbEP0xPo3SsayA6SOHge6ivDX+seT0NBALuE7zi5Hg9DdTX7jxumZwsI7ffdgMzzptGQkI8gwf1I+BvOuHrokIbSM3oH/XTxjJQ5AMHWhyXcmxvobUy+cAxgUIptQBYAOHsjaeizNqIX2kMGgyAAYXSoCL3DZHPl/B9A0bMWEIGDBhRmMI3ZUIrC9pgJmiwETQl4Dcl4TEl4TUl4TYm4zclEjDHYTCYMCgfIe3BgweFm6Buxo+TgA7fNE6UdmLFhVnXY8WNgSh/0GkZhjoTnAnhURkDGEzhBaLnzRjZQe/iP2GJG268jBtuvAyAX/7yT+Tl5WAwnfh1p0uHOmYkIZaBorVPp6P/X25PmfCDWj8BPAEwfvz4U/qbeP87m9tdNqQ13pDGGwrhDWk8kZ9HH/tCIVzBEM5gCGcgGLkfxBkM0fT1cSD8WHUwiCMQxBFZ8NYaA5BiNpJqMpFpMZFpMZNpMZFlMZEVuZ9pMZNlMZFhMWGR1NsixrTWaB3+m9FEfmrCNw4/ZzQoDEod+mlQnPS1tG3btpGcPKRjGnISqqqqyMrKYv/+/bzzzko+++wzkpOPv7NieOAkcr/FnZaP6shjSimUCn9Adsb1xlgGilKgV4vjAqD8FMrEhEEp4oyKOGP0P4gDIU1DIEi9P3DoZ73/8HFd5LjG72eby82K+gCNgWCr50ozG8m0mMmzmsm1msmzWsizmcm3WsizmsmzmUmQtRCiA339oWZo9Xtfz/Stb32L2tpazGYzjzzyCKmpJ95+t+UHvjrmzjEHnSqWgWINMEAp1QcoA64CrjmqzJvA7ZHrF5OAxo66PtGVmAyKjEiPoL08wRDV/gDVXj/V/gBVPj9V3shPX4Byr4/NTjfVvsAxr00xGQ8FkXybmUKbhd5xVnrHWehts5BsllnUQpyMlStXxroKURWzTwCtdUApdTvwHuHpsc9orbcopW6NPP8YsJjw1NhiwtNjb4pVfbs6m9FAL6OFXrbjp8/whkIc9Pop9/op9/go9/op8/qp8Poo9/hZ3+Sizn9k7yTFZKQwzkJvWyR4xFkoslkpjLNQYLNglKm2QvRoMf2qqLVeTDgYtHzssRb3NXBbZ9erJ7MaDJHeQtspvZsCQfZ7fOxze9nn9rEvcn+L082Smkb8LcZSLUpRFGdlQIKVfnFW+sXb6B9vpV+8lRTpiQjRI8hfsjiG3WRkWGIcwxKPXaUd1JoKr/9QENnt9lLc7GGHy8N7NY0EWkwjSDeb6B9vjQQOGwMTbAxOsJFvNcuCPyG6EQkU4qQYlaLAFh5yOuuo63P+kGa/x8vuZi/FzeEAsrvZy5IaB7X+ukPl7EYDgxJsDEmMY1AkeAxOiDupazJCiM4jf5kiaswGRb94G/3ibcw66rl6f4CdLg/bD93cvF3VwIstZmtlmE0MSQwHjiEJcQyzxzE4wYZVpvgKEVMSKESnSDWbmJSSyKSUxEOPaa2p8gUOBY7tLg/bnB7+Xl6HOxReS2JSMCjBxvDEeEbY4xieGL4lmmRKrxCdRQKFiBmlFNlWM9lWM9PT7IceD2nNPrePTU43m5ua2eR0s7TWwUsHDw9f9Y2zMtwex4hI4Bhpjyddhq5EF3DzzTfz9ttvk5WVxebN4UW8dXV1XHnllZSUlFBUVMTLL7/crrUVXYVquRqwpxg/frxeu3ZtrKshokhrTaUvwFdNzWx2utnc5GaT080Bj+9Qmd42C2OS4sM3ezwj7PEdsiBSdF3btm1jyJDYrsxesWIFiYmJXH/99YcCxd13301aWhr33nsvCxcupL6+nt/85jcxq2Nr/05KqXVa61azF8pXMNEtKKXIsZrJsSYzKyP50OP1/gBbnG42OJpZ39TMmkYXr1c1AGBUMDQhjjFJ8YyOBI+BCTZZ9yE61LRp0ygpKTnisTfeeIPly5cDcMMNN3DuuefGNFCcLAkUoltLNZs4O9XO2amHh64qvX42NDXzpaOZ9Q4Xr1fV80J5LQAJRgOj7PGMTYpnYnIC45MTSJP1Hj3Szp0P0OTcFtVz2hOHMHDgz076dZWVleTm5gKQm5tLVVVVVOvV0eQvRPQ42VYzF1qTuTDS8whpzR63l/WOZtY7wgHksQNV/HV/uPyAeCsTkhOYkJzAxOQE+sZZZZ2HEC1IoBA9nkEp+sfb6B9v4/KcNACagyE2OJpZ63CxutHF4upG/lkRvliebjYxITme8UnhwDEqKV6m6HZDp/LNv6NkZ2dTUVFBbm4uFRUVZGVlxbpKJ0UChTgjxRsNTE1NZGpqeLpuSGt2NXtZ0+hidaOTNY0ultQ4gHCakjFJ8UxNSWRKSiLjkxOIl4vk4iRceumlPP/889x77708//zzzJ07N9ZVOikSKIQg3OsYlGBjUIKNb+elA1Dt87O20cUXjS6+aHDx5/2V/HFfJWalGG2PDwealETGJ8dLqnZxyNVXX83y5cupqamhoKCA+++/n3vvvZcrrriCp59+msLCQv7973/HuponRabHCtFOTYEgqxtdfNbgZFWDk41NzQR1eFHgaPvhHsfE5AQSZEFgTHSF6bHdgUyPFaKD2E1Gzk9P4vz0JACcgSBrGl2sanDyWYOTRw9U8ef9VRgjgeOcVDvnpIaHquQah+jOJFAIcYoSTUbOS0/ivEjgcAWCrHU0s6rBySf1TfxlfyV/2ldJnMHA5JQEpqXamZ5mZ3CCDYPMqhLdiAQKIaIkwWRkepo9ko4kF0cgyGcNTj6ua2JlfRP37y6H3eHkh+ekJjItzc60VDv5J9hsSohYk0AhRAdJMhm5MOPweo5yj4+V9U5W1Dexor6J1yIryPvFWTknzc701ETOTrVjl+sboouJSaBQSqUBLwFFQAlwhda6vpVyzwCXAFVa6+GdWUchoi3PZuHK3DSuzE1Da812l4eV9U18XOfk5YN1PFdWg0nBhOQEZqSFr4UMSbDJ4j8Rc7HqUdwLLNVaL1RK3Rs5vqeVcs8BfwVe6MS6CdHhlFIMSYxjSGIcC3pl4QuFWNvYzLI6Bx/VOfj1ngp+vaeCHIuZ89LtzEhLYlpqIsmSbkTEQKymYswFno/cfx64rLVCWusVQF1rzwnRk1gM4QWA9/XLY+mEwWyYOow/Du7FhOQE3qlu4LtbShj66WbmfrmLh0sq2dTUTE+c2t4T3HzzzWRlZTF8+OFBkLq6OmbOnMmAAQOYOXMm9fWHB1Aeeugh+vfvz6BBg3jvvfcOPb5u3TpGjBhB//79+eEPf3jo9+31ernyyivp378/kyZNOiIB4ezZs0lJSeGSSy6JaptiFSiytdYVAJGfp72eXSm1QCm1Vim1trq6+rQrKEQs5VjNXJ2bzpPDi9h61gjeHNOfOwqzcQdDPLS3gplrdzJq1RZ+uG0fb1Y10NRip0ARWzfeeCNLliw54rGFCxdy/vnns2vXLs4//3wWLlwIwNatW1m0aBFbtmxhyZIl/OAHPyAYDP8uv//97/PEE0+wa9cudu3adeicTz/9NKmpqRQXF/Nf//Vf3HPP4cGYn/zkJ7z44otRb1OHBQql1IdKqc2t3Dpk7brW+gmt9Xit9fjMzMyOeAshYsJkUExMSeTevrm8P2EQm84axp+HFDI1JZEPahws2FLC0E82c8WGYp4qrWaf2xvrKp/Rpk2bRlpa2hGPvfHGG9xwww1AOM3466+/fujxq666CqvVSp8+fejfvz+rV6+moqICh8PBlClTUEpx/fXXH/Gar881f/58li5deqi3cf7552O324m2Dhvw1Fpf0NZzSqlKpVSu1rpCKZULdK+cu0LEUKbFzBU5aVyRk0YgpFnrcPF+jYMPahv5311l/O+uMgYl2JiVnsSsjGTGJsWfkXtw/GxXKZud7qiec3hiHA8MKDjp17WVZrysrIzJkycfKldQUEBZWRlms5mCgoJjHv/6Nb169QLAZDKRnJxMbW0tGRkZp9yuE4nVlbE3gRuAhZGfb8SoHkJ0ayaDYnJKIpNTEvl5/zz2Nnt5v7aR92sc/O1AFX/ZX0Wa2cgF6UnMSk/m3DS77DfehbR2nUkp1ebjx3tNR4pVoFgIvKyUugXYD1wOoJTKA57SWl8UOf4XcC6QoZQqBX6htX46NlUWouvrE2/le/FZfK9XFo3+AMvqmni/1sH7NQ5ePliPRSmmpiQyMyOJCzOSKejBi/1O5Zt/R2krzXhBQQEHDhw4VK60tJS8vDwKCgooLS095vGWrykoKCAQCNDY2HjMUFe0xeRitta6Vmt9vtZ6QORnXeTx8q+DROT4aq11rtbarLUukCAhRPslm01clp3Ko0N7s/ms4bw6uj83F2RwwOPjvl1ljP9sK7PW7uBPJQfZ6fLEuro92tdpxoEj0oxfeumlLFq0CK/Xy969e9m1axcTJ04kNzcXu93O559/jtaaF1544YjXfH2uV155hRkzZnT8WhutdY+7jRs3Tgsh2rbL5dZ/Ljmo56zdobM/Wq+zP1qvz/p8q/5VcZle1+jUwVAo1lU8JVu3bo11FfRVV12lc3JytMlk0vn5+fqpp57SNTU1esaMGbp///56xowZura29lD5X/3qV7pv37564MCBevHixYceX7NmjR42bJju27evvu2223Qo8jtxu916/vz5ul+/fnrChAl69+7dh15z9tln64yMDG2z2XR+fr5esmRJq3Vs7d8JWKvb+EyVNONCnOEqvD6W1Dh4t7qBVQ1OAhpyrWZmZyRzUUYyk1MSMRu6x8VwSTPePpJmXAhxUnKtFm7Kz+Cm/Awa/AE+qHXwbnUjiypqebashhSTkZkZSVyUkcz0tCTZ3e8MJIFCCHFIitnE5TlpXJ6TRnMwxMd1Dt6pDs+i+vfBeuIMihnpSVySmcLM9CSZQXWGkEAhhGhVvNHAnMwU5mSm4A9pPmtwsrimkXerG3inuhGbQXFeWhLfyEphlgSNHk0ChRDihMwGFd4/I83OgwPyWd3o4q2qcMB4t6YRq0FxXpqdb2SmMCsjWVKl9zASKIQQJ8WgDi/ye2BAPmsbXbxV3cDb1Y0sqXFgNSjObRE0kiRodHsSKIQQp8ygwnmoJqYkcn//fNY5mnmrqoG3qxt4r8aBRUWCRmR4StKkd08yfUEIERUGpZiQnMAvB+SzdspQ3h47gJvyM9jidHPHtv0M/3QL3/5qD/8+WNejs93GKs34hg0bmDJlCsOGDWPkyJG89NJLUWuTBAohRNQZlGJ8cgL3R4LG4rEDuKUgg22RoDHi083csnkvb1U14A6GYl3dqIpVmvH4+HheeOGFQ+e66667aGhoiEqbJFAIITqUUoqxyQn8X//DPY1rc9NZ3ejiu1tKGP7pZm7fuo8Pax34Q91/AXCs0owPHDiQAQMGAJCXl0dWVhbR2ptHBgyFEJ1GRXoa4yNDVKvqnbxeVc871Y28UllPqsnIJVkpzM1KYUpK4mmlR7//rS1sLXdEsfYwNC+JX3xj2Em/rrPTjK9evRqfz0e/fv1OvpGtkEAhhIgJo1Kck2bnnDQ7Dw0MsbyuiderGvhPZT0vlteSbTFxaVYK87JSGZMU3/GJ72KgtRRKp5tmvKKiguuuu47nn38egyE6g0YSKIQQMWcxGJiVkcysjGSagyE+rHXwemU9L5TX8mRpDYU2C5dlpXBZdipDEmztChqn8s2/o3RWmnGHw8HFF1/Mr371qyN6KqdLrlEIIbqUeKOBS7NSeGZEHzadNZyHBxfSL97KIweqmLFmB9NWb+ePJQe71ZavnZFm3OfzMW/ePK6//nouv/zy6DagrbSy3fkmacaF6HmqvX79XGm1nrtu56HU6Jes3amfLa3WtT6/1vrMTjP+4osvapPJpEeNGnXotn79+lbrKGnGkTTjQvR0pR4fr1XW80plPTtcHkwKZqQlcafBzZhhQzH0wOsZ0XSyacZjMvSklEpTSn2glNoV+ZnaSpleSqllSqltSqktSqk7Y1FXIUTXU2CzcEfvbJZPGMTSCYP4bkEmXzW5qfUH2OJ0s9/tpSkQbPXCrzh5sbpGcS+wVGs9AFgaOT5aAPiR1noIMBm4TSk1tBPrKITo4pRSDEuM4xf981k3dSiZFhPJJiONgSB7mr1sdXko9/hwByVonI5YzXqaC5wbuf88sBy4p2UBrXUFUBG536SU2gbkA1s7rZZCiG7DqBQ2g4HCOCshrXEEgtT7g1T7A1T7AliNilSTiVSzEUuUpo2eKWIVKLIjgQCtdYVSKut4hZVSRcAY4IvjlFkALAAoLCyMXk2FEN2OQSlSzCZSzCYCIU1DIEC9P8hBr5+DXj8JRgOp5nDvw9RNtnmNpQ4LFEqpD4GcVp667yTPkwj8B7hLa93mMkut9RPAExC+mH0y7yGE6LlMBkWGxUyGxYw3FKLBH6TeH6DU46NMQZLRSKrZiN1klIvgbeiwQKG1vqCt55RSlUqp3EhvIheoaqOcmXCQ+IfW+tUOqqoQ4gxhNRjIthrIsphwh0LU+4M0BII0uoMYVXgr2DSzkTiDoUeuBD9VsRqoexO4IXL/BuCNowuo8G/paWCb1vr/dWLdhBA9nFKKeKORfJuFoQk2+sRbsZuM1PkD7HJ52eHyUOn14wudfGbbWKUZ37dvH+PGjWP06NEMGzaMxx577BT/dY4Vq0CxEJiplNoFzIwco5TKU0otjpQ5C7gOmKGU2hC5XRSb6goheiqlFEkmI73jrAxNiKPAZsGkFAe9frY5Pexu9lDnDxBs56ypWKUZz83NZdWqVWzYsIEvvviChQsXUl5eHpV/o5gECq11rdb6fK31gMjPusjj5VrriyL3P9FaK631SK316Mht8fHPLIQQp85kUKRbTPRPsDE40Ua21YwvpDng9rG1neszYpVm3GKxYLVagXCvI3QKvaE2/12idiYhhOhK3r0XDm465ZdbCc/GyUYT0uDXGmfmUPac+wBmgyLVZCTVbMJmPPH37c5KM37gwAEuvvhiiouL+d3vfncokeDpksnEQghxHAp1aI1GutlEYZwFm8FAlT/ADpeHnS4PNT4/gVPYdKm1nsnppBnv1asXX331FcXFxTz//PNUVlaedJ1aIz0KIUTPNGdh1E+pgFQg1WzCH5k1VR8IUObxU6782I1G0sxGQkd9mHdWmvGv5eXlMWzYMFauXMn8+fNPu93SoxBCiFNgNhjIspoZlBDHwAQb6WYTzaEQJW4fu1we/FrTHEkd0hlpxktLS3G73QDU19fz6aefMmjQoKi0VXoUQghxmuKMBvKNFvK05vKrr2bF8o+pr62hT2Ehd/z0f7n5v37ED667lqeffprCwkL+/e9/AzBs2DCuuOIKhg4dislk4pFHHsFoNALwt7/9jRtvvBG3282cOXOYM2cOALfccgvXXXcd/fv3Jy0tjUWLFgHhjLA/+tGPDg1d/fjHP2bEiBFRaZ+kGRdC9Bitpc+OlUBI0xgIrwJ3BcMzkBJNBtIiqUNiuQr8ZNOMS49CCCE6wNdTbdMtJrzBEHWRfFP73T4MClJM4VXg8cauvwpcAoUQQnQwq9FArtFCjkXjDIao9weoDwSo8wewGBRp5q6d1VYChRBCdBKlFHZTOAFhvtY0+oPUBQKHstommg5ntTV2oV6GBAohhIgBo1KkWUykWUx4v55q6w9wwB3OapsSWdCX0AWGpiRQCCFEjFkNBnKsBrItJlzBEHX+AA2BIHX+IBaDIjUyNGWN0dCUBAohhOgilFIkmowkmowE9eFZU5VeP5VePwkmA2kmE8nmzh2a6ppXToQQopuKVprxDV9+yfSxY7hw5HCeuO8esi0m/CHN7sYmLp5/OUX9+jFh4kT27t17xPs7HA7y8/O5/fbbo9YmCRRCCBFFHZFmfE9xMeuXLWVwgo1PFv2DjNRU3tqwifm33sYPfvwTDnp9eCPZYn/2s58xffr0qLZJAoUQQkRRR6YZV0qx5O23uO2WmxmaGMfNV1/JFx8v56DHz3anh9c/WcXBykpmzZoV1TbJNQohRI/0m9W/YXvd9qiec3DaYO6ZeM9Jv64j0owblSIzzkZqcjJZXhfKnsytP72Xl//xD5YuXXo6zTyG9CiEECJGopVm3Go08p+nn2TeJZcc2qsimmLSo1BKpQEvAUVACXCF1rr+qDI2YAXh/UNMwCta6190bk2FEN3VqXzz7yidkWb8s88+Y+XKlTz66KM4nU58Ph+JiYmHroecjlj1KO4FlmqtBwBLI8dH8wIztNajgNHAbKXU5FbKCSFEl9YZacb/8Y9/sH//fkpKSvj973/P9ddfH5UgAbG7RjEXODdy/3lgOXBE+Nfh/pUzcmiO3HpeqlshRI9y9dVXs3z5cmpqaigoKOD+++/n3nvv5YorrujQNOMdKSZpxpVSDVrrlBbH9Vrr1FbKGYF1QH/gEa11m31JpdQCYAFAYWHhuH379kW93kKIrq0rpRnvyrpMmnGl1IeE9yY/2n3tPYfWOgiMVkqlAK8ppYZrrTe3UfYJ4AkI70dx8jUWQgjRmg4LFFrrC9p6TilVqZTK1VpXKKVygaoTnKtBKbUcmA20GiiEEEJ0jFhdzH4TuCFy/wbgjaMLKKUyIz0JlFJxwAVAdCdFCyF6nJ64a2c0ncq/T6wCxUJgplJqFzAzcoxSKk8ptThSJhdYppT6ClgDfKC1fjsmtRVCdAs2m43a2loJFm3QWlNbW4vNZjup1/XIPbOVUtXAqV7NzgBqolid7kDa3POdEe3NzMw0/frXvy4qKiqK01obDAZDKNZ16kyhUOi4bdZaU1JS4r7vvvtKqqurA0c93Vtrndna63pkoDgdSqm1bV3576mkzT3fmdZekDZHk6TwEEIIcVwSKIQQQhyXBIpjPRHrCsSAtLnnO9PaC9LmqJFrFEIIIY5LehRCCCGOSwKFEEKI4zojA4VSarZSaodSqlgpdUyKcxX258jzXymlxsaintHUjjZfG2nrV0qpVUqpUbGoZzSdqM0tyk1QSgWVUvM7s34doT1tVkqdq5TaoJTaopT6uLPrGG3t+H87WSn1llJqY6TNN8WintGilHpGKVWllGo1nVGHfH5prc+oG2AEdgN9AQuwERh6VJmLgHcBBUwGvoh1vTuhzVOB1Mj9OWdCm1uU+whYDMyPdb074fecAmwFCiPHWbGudye0+afAbyL3M4E6wBLrup9Gm6cBY4HNbTwf9c+vM7FHMREo1lrv0Vr7gEWE98doaS7wgg77HEiJJC/srk7YZq31Kn14l8HPgQK6t/b8ngHuAP7DCRJTdhPtafM1wKta6/0AWuvu3u72tFkDdhXeSzSRcKA4elVyt6G1XkG4DW2J+ufXmRgo8oEDLY5LI4+dbJnu5GTbcwvhbyTd2QnbrJTKB+YBj3VivTpSe37PA4FUpdRypdQ6pdT1nVa7jtGeNv8VGAKUA5uAO7XWPTm1R9Q/v2K1w10sqVYeO3qOcHvKdCftbo9S6jzCgeLsDq1Rx2tPm/8E3KO1Dn69cX031542m4BxwPlAHPCZUupzrfXOjq5cB2lPmy8ENgAzgH7AB0qplVprRwfXLVai/vl1JgaKUqBXi+MCwt80TrZMd9Ku9iilRgJPAXO01rWdVLeO0p42jwcWRYJEBnCRUiqgtX69U2oYfe39f7tGa+0CXEqpFcAooLsGiva0+SZgoQ4P4BcrpfYCg4HVnVPFThf1z68zcehpDTBAKdVHKWUBriK8P0ZLbwLXR2YPTAYatdYVnV3RKDphm5VShcCrwHXd+NtlSydss9a6j9a6SGtdBLwC/KAbBwlo3//bbwDnKKVMSql4YBKwrZPrGU3tafN+wj0olFLZwCBgT6fWsnNF/fPrjOtRaK0DSqnbgfcIz5h4Rmu9RSl1a+T5xwjPgLkIKAaaCX8j6bba2eafA+nAo5Fv2AHdjTNvtrPNPUp72qy13qaUWgJ8BYSAp3Qb2wt3B+38PT8APKeU2kR4WOYerXW3TbmulPoXcC6QoZQqBX4BmKHjPr8khYcQQojjOhOHnoQQQpwECRRCCCGOSwKFEEKI45JAIYQQ4rgkUAghhDguCRRCHIdSKkUp9YMWx3lKqVc66L0uU0r9/ARlfq+UmtER7y9EW2R6rBDHoZQqAt7WWg/vhPdaBVx6vDn+SqnewJNa61kdXR8hviY9CiGObyHQL7J/w++UUkVf7wOglLpRKfV6ZK+DvUqp25VS/62UWq+U+lwplRYp108ptSSShG+lUmrw0W+ilBoIeLXWNUope+R85shzSUqpEqWUWWu9D0hXSuV04r+BOMNJoBDi+O4FdmutR2utf9LK88MJp+6eCPwaaNZajwE+A77OzPoEcIfWehzwY+DRVs5zFvAlgNa6CVgOXBx57irgP1prf+T4y0h5ITrFGZfCQ4goWxb5YG9SSjUCb0Ue3wSMVEolEt4U6t8tMtRaWzlPLlDd4vgp4G7gdcIpGL7b4rkqIC9aDRDiRCRQCHF6vC3uh1ochwj/fRmABq316BOcxw0kf32gtf40Msw1HTAelY/JFikvRKeQoSchjq8JsJ/qiyN7HuxVSl0Oh/Yzbm0/8m1A/6MeewH4F/DsUY8PBLptIj/R/UigEOI4IvtyfKqU2qyU+t0pnuZa4Bal1EZgC61vyboCGKOO3EHpH0Aq4WABQOQCd39g7SnWRYiTJtNjhegilFIPA29prT+MHM8H5mqtr2tRZh4wVmv9sxhVU5yB5BqFEF3Hg4Q3EkIp9RdgDuF9BVoyAX/o5HqJM5z0KIQQQhyXXKMQQghxXBIohBBCHJcECiGEEMclgUIIIcRxSaAQQghxXP8f/M901wJmgucAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] @@ -207,19 +211,19 @@ { "data": { "text/plain": [ - "[,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ]" + "[,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ]" ] }, "execution_count": 10, @@ -228,7 +232,7 @@ }, { "data": { - "image/png": "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bw/AZZddxpIlS7j66qtDryVVNAIREQlBfn4+S5cuZffu3bg7CxYsoLCwaU+togAREQnBwIEDGT16NH379qV3797s37+fiROje7BVKugSlohISKZNm8a0adOiLiNlNAIREZFAFCAiIhKIAkRERAJRgIiISCAKEBERCUQBIiIigShARERCMmPGDIqLiykqKuKee+6JupykKUBEREKwevVqHnroIZYtW8aqVat47rnnWL9+fdRlJUUBIiISgrVr1zJo0CBOPvlksrKyuPDCC3n66aejLisp+ia6iGSc559/ng8++CClx+zYsSMlJSWH3V5cXMztt99OVVUVJ510EmVlZfTv3z+lNYRNASIiEoLCwkKmTJnCsGHDaNWqFeeccw5ZWU37LbhpVy8iEsCRRgrpNGHCBCZMmADAbbfdRl5eXiR1pIoCREQkJNu2baNDhw68//77PPXUU7z66qtRl5QUBYiISEguv/xyqqqqaN68Offddx+nnXZa1CUlRQEiIhKSRYsWRV1CSuljvCIiEogCREREAlGAiIhIIAoQEREJRAEiIiKBKEBERCSQSALEzNqa2XwzWx/7M+6Hoc1shJmtM7NyM5tab/3dZvYvM3vTzJ42szahFS8iEtC3v/1tOnToQHFx8cF1H3/8McOGDaN79+4MGzaMTz75JMIKGyeqEchUYIG7dwcWxJYPYWbNgPuAEqAXMNbMesU2zweK3f1s4N/AT0KpWkQkCddeey3z5s07ZN306dMZOnQo69evZ+jQoUyfPj2i6hovqgAZCcyK/TwL+EacNgOAcnff4O7VQGlsP9z9H+5eE2u3FGjaE8qISEa44IILaNu27SHr5syZw/jx4wEYP348zzzzTASVBRPVN9HPcPdKAHevNLMOcdrkApvqLVcAA+O0+zbw59SXKCLHq3//+2d8tnNtSo/ZulUhPXr8tNH7bd26lezsbACys7PZtm1bSutKp7QFiJm9CHSMs+n2RA8RZ503OMftQA3w+BHqmAhMBMjPz0/w1CIicjRpCxB3/8/DbTOzrWaWHRt9ZAPxIrcC6FRvOQ/YUu8Y44FLgKHu7hyGu88EZgL079//sO1EJHMEGSmkyxlnnEFlZSXZ2dlUVlbSoUO8CzLHpqjugcwFxsd+Hg/MidPmNaC7mXU2sxbAmNh+mNkIYApwqbvvDqFeEZG0uPTSS5k1q+6W8KxZsxg5cmTEFSUuqgCZDgwzs/XAsNgyZpZjZmUAsZvkk4EXgLXAX9x9TWz/3wOtgflmttLMHgy7AyIijTV27FjOO+881q1bR15eHo888ghTp05l/vz5dO/enfnz5zN16hc+lHrMiuQmurtXAUPjrN8CXFRvuQwoi9OuW1oLFBFJgyeeeCLu+gULFoRcSWrom+giIhKIAkRERAJRgIiISCAKEBERCUQBIiIigShAREQkEAWIiEhIGjud+1133UW3bt0466yzeOGFFw6uf/311+nduzfdunXj+9//Pgcm4/j888/55je/Sbdu3Rg4cCAbN248uM+IESNo06YNl1xyScr6owAREQlJY6Zzf/vttyktLWXNmjXMmzePG2+8kdraWgBuuOEGZs6cyfr161m/fv3BYz7yyCOcdtpplJeX84Mf/IApU6YcPM+PfvQjZs+endL+KEBERELSmOnc58yZw5gxYzjxxBPp3Lkz3bp1Y9myZVRWVrJjxw7OO+88zIxx48Ydss+BY40ePZoFCxYcHJ0MHTqU1q1bp7Q/UU3nLiISmZ+ur2D1zj0pPWZxq5P4WffGP5rocNO5b968mUGDBh1sl5eXx+bNm2nevDl5eXlfWH9gn06d6uagzcrK4ktf+hJVVVW0a9cucL+ORCMQEZFjULxJxs3ssOuPtE+6aAQiIhknyEghXQ43nXteXh6bNv3/Z+pVVFSQk5NDXl4eFRUVX1hff5+8vDxqamr49NNPv3DJLJU0AhERidDhpnO/9NJLKS0t5fPPP+fdd99l/fr1DBgwgOzsbFq3bs3SpUtxdx599NFD9jlwrCeffJIhQ4akdQSCu2fMq1+/fi4imentt9+OugQfM2aMd+zY0bOysjw3N9cffvhh/+ijj3zIkCHerVs3HzJkiFdVVR1sf+edd3qXLl28R48eXlZWdnD9a6+95kVFRd6lSxefNGmS79+/393d9+zZ46NHj/auXbv6l7/8ZX/nnXcO7nP++ed7u3btvGXLlp6bm+vz5s2LW2O8vydgucd5TzU//MP8jjv9+/f35cuXR12GiERg7dq1FBYWRl3GMS/e35OZve7u/Ru21SUsEREJRAEiIiKBKEBERCQQBYiIiASiABERkUAUICIiEogCREQkJFFN575y5UrOO+88ioqKOPvss/nzn/+ckv4oQEREQhLVdO4nn3wyjz766MFj3XzzzWzfvj3p/ihARERCEtV07j169KB79+4A5OTk0KFDBz788MOk+6PJFEUk40x7dg1vb9mR0mP2yjmVO75e1Oj9wp7OfdmyZVRXV9O1a9fGd7IBBYiIyDEo3jRTyU7nXllZyTXXXMOsWbM44YTkL0ApQEQk4wQZKaRLWNO579ixg4svvpg777zzkJFNMnQPREQkQmFM515dXc2oUaMYN24cV1xxReqKjzdF7/H60nTuIpkrk6dznz17tmdlZfk555xz8LVixYq4NWo698PQdO4imUvTuSdG07mLiEjaRRIgZtbWzOab2frYn6cdpt0IM1tnZuVmNjXO9lvNzM2sXbz9RUQkfaIagUwFFrh7d2BBbPkQZtYMuA8oAXoBY82sV73tnYBhwPuhVCwiIoeIKkBGArNiP88CvhGnzQCg3N03uHs1UBrb74DfAj8GMucmjojIMSSqADnD3SsBYn92iNMmF9hUb7kitg4zuxTY7O6rjnYiM5toZsvNbHkqvrovIiJ10vZFQjN7EegYZ9PtiR4izjo3s5NjxxieyEHcfSYwE+o+hZXguUVE5CjSNgJx9/909+I4rznAVjPLBoj9uS3OISqATvWW84AtQFegM7DKzDbG1r9hZvHCSkTkmBHVdO7vvfce/fr1o0+fPhQVFfHggw+mpD9RXcKaC4yP/TwemBOnzWtAdzPrbGYtgDHAXHd/y907uHuBuxdQFzR93f2DMAoXEQkqquncs7OzWbJkCStXruSf//wn06dPZ8uWLUn3J6oAmQ4MM7P11H2SajqAmeWYWRmAu9cAk4EXgLXAX9x9TUT1iogkLarp3Fu0aMGJJ54I1I1S9u/fn5L+RDKZortXAUPjrN8CXFRvuQwoO8qxClJdn4gc556fCh+8ldpjduwNJdMbvVtY07lv2rSJiy++mPLycu6+++6DEzAmQ99EFxE5BsWbZiqZ6dw7derEm2++SXl5ObNmzWLr1q1J16jp3EUk8wQYKaRLWNO5H5CTk0NRURGLFi1i9OjRSdWuEYiISITCmM69oqKCPXv2APDJJ5+wePFizjrrrKRr1whERCQkY8eO5eWXX+ajjz4iLy+PadOmMXXqVK688koeeeQR8vPz+etf/wpAUVERV155Jb169SIrK4v77ruPZs2aAfDAAw9w7bXXsmfPHkpKSigpKQFgwoQJXHPNNXTr1o22bdtSWloK1M2we8sttxy8BHbrrbfSu3fvpPuj6dxFJCNoOvfEaDp3ERFJOwWIiIgEogAREZFAFCAiIhKIAkRERAJRgIiISCAKEBGRkEQ1nfsBO3bsIDc3l8mTJ6ekPwoQEZGQRDWd+wE//elPufDCC1PWHwWIiEhIoprOHepGLVu3bmX48IQe5poQTWUiIhnnl8t+yb8+/ldKj9mzbU+mDJhy9IYNhDGde9u2bbnllluYPXs2CxYsCNzHhjQCERE5BqVyOvf777+fiy666GC4pIpGICKScYKMFNIljOncX331VRYtWsT999/Pzp07qa6uplWrVgfvtwSlEYiISITCmM798ccf5/3332fjxo38+te/Zty4cUmHB2gEIiISmqimc08XTecuIhlB07knRtO5i4hI2ilAREQkEAWIiGSMTLpkH0Rj/34UICKSEVq2bElVVZVC5DDcnaqqKlq2bJnwPhl1E93MPgTeC7h7O+CjFJbTFKjPmSEj+ty+ffusn//85wUFBQUnufsJJ5xwwv6oawrT/v37j9hnd2fjxo17br/99o0ffvhhTYPNZ7p7+4b7ZFSAJMPMlsf7FMLxTH3ODOpzZkhHn3UJS0REAlGAiIhIIAqQxM2MuoAIqM+ZQX3ODCnvs+6BiIhIIBqBiIhIIAoQEREJRAHSgJmNMLN1ZlZuZlPjbDczuze2/U0z6xtFnamUQJ+vivX1TTNbYmbnRFFnKh2tz/XafdnMas1sdJj1pVoi/TWzwWa20szWmNn/hF1jqiXw3/WXzOxZM1sV6/N1UdSZSmb2BzPbZmarD7M9te9f7q5X7AU0A94BugAtgFVArwZtLgKeBwwYBPwz6rpD6PNXgNNiP5dkQp/rtVsIlAGjo647zf/GbYC3gfzYcoeo6w6hz7cBv4z93B74GGgRde1J9vsCoC+w+jDbU/r+pRHIoQYA5e6+wd2rgVJgZIM2I4FHvc5SoI2ZZYddaAodtc/uvsTdP4ktLgXyaNoS+XcG+B7wN2BbmMWlQSL9/RbwlLu/D+DumdBnB1pb3fNgW1EXIA2/gd2kuPsr1PXjcFL6/qUAOVQusKneckVsXWPbNCWN7c8E6n6DacqO2mczywVGAQ+GWFe6JPJv3AM4zcxeNrPXzWxcaNWlRyJ9/j1QCGwB3gJucvfjfXqTlL5/6YmEh7I46xp+zjmRNk1Jwv0xs69RFyDnp7Wi9Eukz/cAU9y9tu4X1CYtkf5mAf2AocBJwKtmttTd/53u4tIkkT7/L2AlMAToCsw3s0XuviPNtUUppe9fCpBDVQCd6i3nUffbSWPbNCUJ9cfMzgYeBkrcvSqk2tIlkT73B0pj4dEOuMjMatz9mVAqTK1E/7v+yN13AbvM7BXgHKCpBkgifb4OmO51NwfKzexdoCewLJwSI5HS9y9dwjrUa0B3M+tsZi2AMcDcBm3mAuNin2YYBHzq7pVhF5pCR+2zmeUDTwHXNOHfSOs7ap/dvbO7F7h7AfAkcGMTDQ9I7L/rOcB/mFmWmZ0MDATWhlxnKiXS5/epG3FhZmcAZwEbQq0yfCl9/9IIpB53rzGzycAL1H2K4w/uvsbMro9tf5C6T+RcBJQDu6n7LabJSrDP/w2cDtwf+428xpvwTKYJ9vm4kUh/3X2tmc0D3gT2Aw+7e9yPgjYFCf4b/wz4k5m9Rd2lnSnu3qSntTezJ4DBQDszqwDuAJpDet6/NJWJiIgEoktYIiISiAJEREQCUYCIiEggChAREQlEASIiIoEoQEQCMrM2ZnZjveUcM3syTef6hpn991Ha/NrMhqTj/CLx6GO8IgGZWQHwnLsXh3CuJcClR/qegpmdCTzk7sPTXY8IaAQikozpQNfYMzTuNrOCA89hMLNrzeyZ2PMm3jWzyWb2QzNbYWZLzaxtrF1XM5sXm8BwkZn1bHgSM+sBfO7uH5lZ69jxmse2nWpmG82subu/B5xuZh1D/DuQDKYAEQluKvCOu/dx9x/F2V5M3TTpA4CfA7vd/VzgVeDAbLczge+5ez/gVuD+OMf5KvAGgLt/BrwMXBzbNgb4m7vviy2/EWsvknaaykQkfV6KveF/ZmafAs/G1r8FnG1mrah7WNdf6834e2Kc42QDH9Zbfhj4MfAMdVNR/Fe9bduAnFR1QORIFCAi6fN5vZ/311veT93/eycA2929z1GOswf40oEFd18cu1x2IdCswZxVLWPtRdJOl7BEgvsMaB1059hzJ941syvg4POq4z1vfi3QrcG6R4EngD82WN8DaLKTIErTogARCSj2XJTFZrbazO4OeJirgAlmtgpYQ/xH674CnGuHPtnqceA06kIEgNiN9W7A8oC1iDSKPsYr0gSY2QzgWXd/MbY8Ghjp7tfUazMK6OvuP42oTMkwugci0jT8grqHPGFmvwNKqHuuQ31ZwG9CrksymEYgIiISiO6BiIhIIAoQEREJRAEiIiKBKEBERCQQBYiIiATy/wCOFJSakoouPQAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -251,19 +255,19 @@ { "data": { "text/plain": [ - "[,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ]" + "[,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ]" ] }, "execution_count": 11, @@ -272,7 +276,7 @@ }, { "data": { - "image/png": "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RxoppMsrr7xCp06daNu2LQCXXXYZixcv5uqrrw69llTRCEREJAQdO3ZkyZIl7N69G3entLSUgoLGPbWKAkREJAQDBw5k9OjR9O3bl969e7N//34mTozuwVapoEtYIiIhueuuu7jrrruiLiNlNAIREZFAFCAiIhKIAkRERAJRgIiISCAKEBERCUQBIiIigShARERCMn36dHr16kVhYSH33Xdf1OUkTQEiIhKCVatW8cgjj7B06VJWrlzJiy++yLp166IuKykKEBGREKxZs4ZBgwZx8sknk5WVxYUXXshzzz0XdVlJ0TfRRSTjvPTSS3z88ccpPWb79u0pKio67PZevXpxxx13UFlZyUknnURJSQn9+/dPaQ1hU4CIiISgoKCAKVOmMGzYMFq0aME555xDVlbjfgtu3NWLiARwpJFCOk2YMIEJEyYAcPvtt5OXlxdJHamiABERCcnWrVtp164dH330Ec8++yxvvPFG1CUlRQEiIhKSyy+/nMrKSpo2bcqDDz7IaaedFnVJSVGAiIiEZOHChVGXkFL6GK+IiASiABERkUAUICIiEogCREREAlGAiIhIIAoQEREJJJIAMbPWZjbfzNbF/oz7YWgzG2Fma82szMym1ll/r5n9w8zeMbPnzKxVaMWLiAR0/fXX065dO3r16nVw3WeffcawYcPo1q0bw4YN4/PPP4+wwoaJagQyFSh1925AaWz5EGbWBHgQKAJ6AmPNrGds83ygl7ufDfwT+M9QqhYRScK1117LvHnzDlk3bdo0hg4dyrp16xg6dCjTpk2LqLqGiypARgKzYj/PAr4Vp80AoMzd17t7FVAc2w93/5u7V8faLQEa94QyIpIRLrjgAlq3bn3Iujlz5jB+/HgAxo8fz/PPPx9BZcFE9U30M9y9AsDdK8ysXZw2ucDGOsvlwMA47a4H/pj6EkXkePXPf/6MHTvXpPSYLVsU0L37Txu835YtW8jOzgYgOzubrVu3prSudEpbgJjZK0D7OJvuSPQQcdZ5vXPcAVQDTx2hjonARICOHTsmeGoRETmatAWIu//74baZ2RYzy46NPrKBeJFbDnSos5wHbK5zjPHAJcBQd3cOw91nAjMB+vfvf9h2IpI5gowU0uWMM86goqKC7OxsKioqaNcu3gWZY1NU90DmAuNjP48H5sRp8ybQzcw6mVkzYExsP8xsBDAFuNTdd4dQr4hIWlx66aXMmlV7S3jWrFmMHDky4ooSF1WATAOGmdk6YFhsGTPLMbMSgNhN8snAy8Aa4E/uvjq2/++AlsB8M1thZjPC7oCISEONHTuW8847j7Vr15KXl8djjz3G1KlTmT9/Pt26dWP+/PlMnfovH0o9ZkVyE93dK4GhcdZvBi6qs1wClMRp1zWtBYqIpMHTTz8dd31paWnIlaSGvokuIiKBKEBERCQQBYiIiASiABERkUAUICIiEogCREREAlGAiIiEpKHTud9zzz107dqVs846i5dffvng+rfeeovevXvTtWtXfvCDH3BgMo4vv/ySb3/723Tt2pWBAweyYcOGg/uMGDGCVq1acckll6SsPwoQEZGQNGQ69/fee4/i4mJWr17NvHnzuOmmm6ipqQHgxhtvZObMmaxbt45169YdPOZjjz3GaaedRllZGT/84Q+ZMmXKwfP8+Mc/Zvbs2SntjwJERCQkDZnOfc6cOYwZM4YTTzyRTp060bVrV5YuXUpFRQXbt2/nvPPOw8wYN27cIfscONbo0aMpLS09ODoZOnQoLVu2TGl/oprOXUQkMj9dV86qnXtSesxeLU7iZ90a/miiw03nvmnTJgYNGnSwXV5eHps2baJp06bk5eX9y/oD+3ToUDsHbVZWFl/5yleorKykTZs2gft1JBqBiIgcg+JNMm5mh11/pH3SRSMQEck4QUYK6XK46dzz8vLYuPH/P1OvvLycnJwc8vLyKC8v/5f1dffJy8ujurqaL7744l8umaWSRiAiIhE63HTul156KcXFxXz55Zd88MEHrFu3jgEDBpCdnU3Lli1ZsmQJ7s4TTzxxyD4HjvXMM88wZMiQtI5AcPeMefXr189FJDO99957UZfgY8aM8fbt23tWVpbn5ub6o48+6p9++qkPGTLEu3bt6kOGDPHKysqD7e+++27v3Lmzd+/e3UtKSg6uf/PNN72wsNA7d+7skyZN8v3797u7+549e3z06NHepUsX/+pXv+rvv//+wX3OP/98b9OmjTdv3txzc3N93rx5cWuM9/cELPM476nmh3+Y33Gnf//+vmzZsqjLEJEIrFmzhoKCgqjLOObF+3sys7fcvX/9trqEJSIigShAREQkEAWIiIgEogAREZFAFCAiIhKIAkRERAJRgIiIhCSq6dxXrFjBeeedR2FhIWeffTZ//OMfU9If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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -295,19 +299,19 @@ { "data": { "text/plain": [ - "[,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ]" + "[,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ]" ] }, "execution_count": 12, @@ -316,7 +320,7 @@ }, { "data": { - "image/png": "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EYiISAgKCgpYunQpu3fvxt1ZsGABRUVNe2oVBYiISAgGDhzI6NGj6du3L71792b//v1MnBjdg61SQZewRERCcuedd3LnnXdGXUbKaAQiIiKBKEBERCQQBYiIiASiABERkUAUICIiEogCREREAlGAiIiEZNq0afTq1Yvi4mLuvffeqMtJmgJERCQEq1ev5qGHHmLZsmWsWrWK5557jvXr10ddVlIUICIiIVi7di2DBg3i5JNPJisri4suuoinn3466rKSom+ii0jGef755/nggw9SeswOHTpQUlJy2O29evXi9ttvp6qqipNOOomysjL69++f0hrCpgAREQlBUVERkydPZtiwYbRq1Ypzzz2XrKym/RbctKsXEQngSCOFdJowYQITJkwA4LbbbiM/Pz+SOlJFASIiEpJt27aRnZ3N+++/z1NPPcWrr74adUlJUYCIiITkiiuuoKqqiubNm3P//fdz+umnR11SUhQgIiIhWbRoUdQlpJQ+xisiIoEoQEREJBAFiIiIBKIAERGRQBQgIiISiAJEREQCiSRAzKytmc03s/WxP+N+GNrMRpjZOjMrN7Mp9dbfY2b/MLM3zexpM2sTWvEiIgF9/etfJzs7m169eh1c9/HHHzNs2DC6devGsGHD+OSTTyKssHGiGoFMARa4ezdgQWz5EGbWDLgfKAF6AmPNrGds83ygl7ufA/wT+O9QqhYRScJ1113HvHnzDlk3depUhg4dyvr16xk6dChTp06NqLrGiypARgIzYz/PBL4Sp80AoNzdN7h7NVAa2w93/6u718TaLQWa9oQyIpIRLrzwQtq2bXvIujlz5jB+/HgAxo8fzzPPPBNBZcFE9U30M929EsDdK80sO06bPGBTveUKYGCcdl8H/pD6EkXkePXPf/6Ez3auTekxW7cqonv3HzV6v61bt5KTkwNATk4O27ZtS2ld6ZS2ADGzF4EOcTbdnugh4qzzBue4HagBnjhCHROBiQAFBQUJnlpERI4mbQHi7v9xuG1mttXMcmKjjxwgXuRWAB3rLecDW+odYzxwKTDU3Z3DcPcZwAyA/v37H7adiGSOICOFdDnzzDOprKwkJyeHyspKsrPjXZA5NkV1D2QuMD7283hgTpw2rwHdzKyTmbUAxsT2w8xGAJOBy9x9dwj1ioikxWWXXcbMmXW3hGfOnMnIkSMjrihxUQXIVGCY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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -341,9 +345,9 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "swiftestOOF", "language": "python", - "name": "python3" + "name": "swiftestoof" }, "language_info": { "codemirror_mode": { @@ -355,7 +359,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.6" + "version": "3.7.10" } }, "nbformat": 4, From b782c6c5db9b61604c30f2f6a93b44f24eabe3fd Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 7 Jul 2021 10:29:04 -0400 Subject: [PATCH 04/28] Updated class definitions to to make set_beg_end a method for the swiftest_nbody_system class --- .../helio_swifter_comparison/param.swifter.in | 2 +- .../swiftest_vs_swifter.ipynb | 136 +++++++++--------- src/helio/helio_step.f90 | 9 +- src/modules/swiftest_classes.f90 | 8 ++ 4 files changed, 80 insertions(+), 75 deletions(-) diff --git a/examples/helio_swifter_comparison/param.swifter.in b/examples/helio_swifter_comparison/param.swifter.in index 29449bc76..5156bfbc0 100644 --- a/examples/helio_swifter_comparison/param.swifter.in +++ b/examples/helio_swifter_comparison/param.swifter.in @@ -10,7 +10,7 @@ ISTEP_DUMP 1 BIN_OUT bin.swifter.dat OUT_TYPE REAL8 OUT_FORM XV -OUT_STAT NEW +OUT_STAT UNKNOWN J2 0.0 J4 0.0 CHK_CLOSE yes diff --git a/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb b/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb index dfc6392df..6ad396b99 100644 --- a/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb +++ b/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb @@ -8,7 +8,7 @@ "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", - "import swiftest\n" + "import swiftest" ] }, { @@ -91,19 +91,19 @@ { "data": { "text/plain": [ - "[,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ]" + "[,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ]" ] }, "execution_count": 7, @@ -112,7 +112,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -135,7 +135,7 @@ { "data": { "text/plain": [ - "[]" + "[]" ] }, "execution_count": 8, @@ -167,19 +167,19 @@ { "data": { "text/plain": [ - "[,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ]" + "[,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ]" ] }, "execution_count": 9, @@ -211,19 +211,19 @@ { "data": { "text/plain": [ - "[,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ]" + "[,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ]" ] }, "execution_count": 10, @@ -255,19 +255,19 @@ { "data": { "text/plain": [ - "[,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ]" + "[,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ]" ] }, "execution_count": 11, @@ -299,19 +299,19 @@ { "data": { "text/plain": [ - "[,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ]" + "[,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ]" ] }, "execution_count": 12, diff --git a/src/helio/helio_step.f90 b/src/helio/helio_step.f90 index be1b2b71c..c639b4bee 100644 --- a/src/helio/helio_step.f90 +++ b/src/helio/helio_step.f90 @@ -24,12 +24,8 @@ module subroutine helio_step_system(self, param, t, dt) select type(tp => self%tp) class is (helio_tp) call pl%set_rhill(cb) - call system%set_beg_end(xbeg = pl%xh) call pl%step(system, param, t, dt) - if (tp%nbody > 0) then - call system%set_beg_end(xend = pl%xh) - call tp%step(system, param, t, dt) - end if + call tp%step(system, param, t, dt) end select end select end select @@ -66,8 +62,9 @@ module subroutine helio_step_pl(self, system, param, t, dt) call pl%lindrift(cb, dth, ptbeg) call pl%get_accel(system, param, t) call pl%kick(dth) - + call system%set_beg_end(xbeg = pl%xh) call pl%drift(system, param, dt) + call system%set_beg_end(xend = pl%xh) call pl%get_accel(system, param, t + dt) call pl%kick(dth) call pl%lindrift(cb, dth, ptend) diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index be9c83038..7e08ce703 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -262,6 +262,7 @@ module swiftest_classes private !> Each integrator will have its own version of the step procedure(abstract_step_system), public, deferred :: step + procedure(abstract_setup_set_beg_end), public, deferred :: set_beg_end !! Sets the beginning and ending positions of planets. ! Concrete classes that are common to the basic integrator (only test particles considered for discard) procedure, public :: discard => discard_system !! Perform a discard step on the system @@ -310,6 +311,13 @@ subroutine abstract_set_mu(self, cb) class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object end subroutine abstract_set_mu + subroutine abstract_setup_set_beg_end(self, xbeg, xend, vbeg) + import swiftest_nbody_system, DP + class(swiftest_nbody_system), intent(inout) :: self !! WHM nbody system object + real(DP), dimension(:,:), intent(in), optional :: xbeg, xend + real(DP), dimension(:,:), intent(in), optional :: vbeg ! vbeg is an unused variable to keep this method forward compatible with RMVS + end subroutine abstract_setup_set_beg_end + subroutine abstract_step_body(self, system, param, t, dt) import DP, swiftest_body, swiftest_nbody_system, swiftest_parameters implicit none From 886b63b28bbad8514fa32166127cc0d737bde775 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 7 Jul 2021 10:59:51 -0400 Subject: [PATCH 05/28] Modified linear drift interfaces to match and now save the ptb and pte values inside the helio_nbody_system object --- src/helio/helio_drift.f90 | 43 ++++++++++++++--------------- src/helio/helio_step.f90 | 51 ++++++++++++++++++----------------- src/modules/helio_classes.f90 | 22 ++++++++------- 3 files changed, 61 insertions(+), 55 deletions(-) diff --git a/src/helio/helio_drift.f90 b/src/helio/helio_drift.f90 index 34255f38c..5ce7438ba 100644 --- a/src/helio/helio_drift.f90 +++ b/src/helio/helio_drift.f90 @@ -56,7 +56,7 @@ module subroutine helio_drift_pl(self, system, param, dt) return end subroutine helio_drift_pl - module subroutine helio_drift_linear_pl(self, cb, dt, pt) + module subroutine helio_drift_linear_pl(self, system, dt, pt) !! author: David A. Minton !! !! Perform linear drift of massive bodies due to barycentric momentum of Sun @@ -65,23 +65,23 @@ module subroutine helio_drift_linear_pl(self, cb, dt, pt) !! Adapted from Hal Levison's Swift routine helio_lindrift.f implicit none ! Arguments - class(helio_pl), intent(inout) :: self !! Helio massive body object - class(swiftest_cb), intent(in) :: cb !! Helio central body object - real(DP), intent(in) :: dt !! Stepsize - real(DP), dimension(:), intent(out) :: pt !! negative barycentric velocity of the central body + class(helio_pl), intent(inout) :: self !! Helio massive body object + class(helio_nbody_system), intent(in) :: system !! Swiftest nbody system object + real(DP), intent(in) :: dt !! Stepsize + real(DP), dimension(:), intent(out) :: pt !! negative barycentric velocity of the central body ! Internals integer(I4B) :: i real(DP),dimension(NDIM) :: pttmp !intent(out) variables don't play nicely !with openmp's reduction for some reason - associate(npl => self%nbody, xh => self%xh, vb => self%vb, GMpl => self%Gmass, GMcb => cb%Gmass) + associate(pl => self, npl => self%nbody, cb => system%cb) pttmp(:) = 0.0_DP do i = 2, npl - pttmp(:) = pttmp(:) + GMpl(i) * vb(:,i) + pttmp(:) = pttmp(:) + pl%Gmass(i) * pl%vb(:,i) end do - pttmp(:) = pttmp(:) / GMcb + pttmp(:) = pttmp(:) / cb%Gmass do i = 2, npl - xh(:,i) = xh(:,i) + pttmp(:) * dt + pl%xh(:,i) = pl%xh(:,i) + pttmp(:) * dt end do pt(:) = pttmp(:) end associate @@ -100,13 +100,13 @@ module subroutine helio_drift_tp(self, system, param, dt) implicit none ! Arguments class(helio_tp), intent(inout) :: self !! Helio test particle object - class(swiftest_nbody_system), intent(inout) :: system !! WHM nbody system object + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters of - real(DP), intent(in) :: dt !! Stepsiz + real(DP), intent(in) :: dt !! Stepsize ! Internals integer(I4B) :: i !! Loop counter real(DP) :: rmag, vmag2, energy - real(DP), dimension(:), allocatable :: dtp + real(DP), dimension(:), allocatable :: dtp integer(I4B), dimension(:),allocatable :: iflag !! Vectorized error code flag associate(tp => self, ntp => self%nbody) @@ -139,7 +139,7 @@ module subroutine helio_drift_tp(self, system, param, dt) return end subroutine helio_drift_tp - module subroutine helio_drift_linear_tp(self, dt, pt) + module subroutine helio_drift_linear_tp(self, system, dt, pt) !! author: David A. Minton !! !! Perform linear drift of test particles due to barycentric momentum of Sun @@ -149,15 +149,16 @@ module subroutine helio_drift_linear_tp(self, dt, pt) !! Adapted from Hal Levison's Swift routine helio_lindrift_tp.f implicit none ! Arguments - class(helio_tp), intent(inout) :: self !! Helio test particle data structure - real(DP), intent(in) :: dt !! Stepsize - real(DP), dimension(:), intent(in) :: pt !! negative barycentric velocity of the Sun + class(helio_tp), intent(inout) :: self !! Helio test particleb object + class(helio_nbody_system), intent(in) :: system !! Swiftest nbody system object + real(DP), intent(in) :: dt !! Stepsize + real(DP), dimension(:), intent(in) :: pt !! negative barycentric velocity of the central body - associate(ntp => self%nbody, xh => self%xh, status => self%status) - where (status(1:ntp) == ACTIVE) - xh(1, 1:ntp) = xh(1, 1:ntp) + pt(1) * dt - xh(2, 1:ntp) = xh(2, 1:ntp) + pt(2) * dt - xh(3, 1:ntp) = xh(3, 1:ntp) + pt(3) * dt + associate(tp => self, ntp => self%nbody) + where (tp%status(1:ntp) == ACTIVE) + tp%xh(1, 1:ntp) = tp%xh(1, 1:ntp) + pt(1) * dt + tp%xh(2, 1:ntp) = tp%xh(2, 1:ntp) + pt(2) * dt + tp%xh(3, 1:ntp) = tp%xh(3, 1:ntp) + pt(3) * dt end where end associate diff --git a/src/helio/helio_step.f90 b/src/helio/helio_step.f90 index c639b4bee..9882be084 100644 --- a/src/helio/helio_step.f90 +++ b/src/helio/helio_step.f90 @@ -50,26 +50,29 @@ module subroutine helio_step_pl(self, system, param, t, dt) ! Internals integer(I4B) :: i real(DP) :: dth, msys - real(DP), dimension(NDIM) :: ptbeg, ptend !! TODO: Incorporate these into the tp structure + !real(DP), dimension(NDIM) :: ptbeg, ptend !! TODO: Incorporate these into the tp structure logical, save :: lfirst = .true. - - associate(pl => self, cb => system%cb) - dth = 0.5_DP * dt - if (lfirst) then - call pl%vh2vb(cb) - lfirst = .false. - end if - call pl%lindrift(cb, dth, ptbeg) - call pl%get_accel(system, param, t) - call pl%kick(dth) - call system%set_beg_end(xbeg = pl%xh) - call pl%drift(system, param, dt) - call system%set_beg_end(xend = pl%xh) - call pl%get_accel(system, param, t + dt) - call pl%kick(dth) - call pl%lindrift(cb, dth, ptend) - call pl%vb2vh(cb) - end associate + + select type(system) + class is (helio_nbody_system) + associate(pl => self, cb => system%cb, ptb => system%ptb, pte => system%pte) + dth = 0.5_DP * dt + if (lfirst) then + call pl%vh2vb(cb) + lfirst = .false. + end if + call pl%lindrift(system, dth, ptb) + call pl%get_accel(system, param, t) + call pl%kick(dth) + call system%set_beg_end(xbeg = pl%xh) + call pl%drift(system, param, dt) + call system%set_beg_end(xend = pl%xh) + call pl%get_accel(system, param, t + dt) + call pl%kick(dth) + call pl%lindrift(system, dth, pte) + call pl%vb2vh(cb) + end associate + end select return @@ -96,20 +99,20 @@ module subroutine helio_step_tp(self, system, param, t, dt) select type(system) class is (helio_nbody_system) - associate(tp => self, cb => system%cb, pl => system%pl, xbeg => system%xbeg, xend => system%xend) + associate(tp => self, cb => system%cb, pl => system%pl, xbeg => system%xbeg, xend => system%xend, ptb => system%ptb, pte => system%pte) dth = 0.5_DP * dt if (lfirst) then - call tp%vh2vb(vbcb = -tp%ptbeg) + call tp%vh2vb(vbcb = -ptb) lfirst = .false. end if - call tp%lindrift(dth, tp%ptbeg) + call tp%lindrift(system, dth, ptb) call tp%get_accel(system, param, t, xbeg) call tp%kick(dth) call tp%drift(system, param, dt) call tp%get_accel(system, param, t + dt, xend) call tp%kick(dth) - call tp%lindrift(dth, tp%ptend) - call tp%vb2vh(vbcb = -tp%ptend) + call tp%lindrift(system, dth, pte) + call tp%vb2vh(vbcb = -pte) end associate end select diff --git a/src/modules/helio_classes.f90 b/src/modules/helio_classes.f90 index 65320346c..7fc1749c8 100644 --- a/src/modules/helio_classes.f90 +++ b/src/modules/helio_classes.f90 @@ -13,6 +13,8 @@ module helio_classes ! helio_nbody_system class definitions and method interfaces !******************************************************************************************************************************** type, public, extends(whm_nbody_system) :: helio_nbody_system + real(DP), dimension(NDIM) :: ptb !! negative barycentric velocity of the central body at the beginning of time step + real(DP), dimension(NDIM) :: pte !! negative barycentric velocity of the central body at the end of time step contains private procedure, public :: initialize => helio_setup_system !! Performs Helio-specific initilization steps, @@ -110,20 +112,20 @@ module subroutine helio_drift_tp(self, system, param, dt) real(DP), intent(in) :: dt !! Stepsize end subroutine helio_drift_tp - module subroutine helio_drift_linear_pl(self, cb, dt, pt) - use swiftest_classes, only : swiftest_cb + module subroutine helio_drift_linear_pl(self, system, dt, pt) implicit none - class(helio_pl), intent(inout) :: self !! Helio test particle object - class(swiftest_cb), intent(in) :: cb !! Helio central body object - real(DP), intent(in) :: dt !! Stepsize - real(DP), dimension(:), intent(out) :: pt !! negative barycentric velocity of the central body + class(helio_pl), intent(inout) :: self !! Helio massive body object + class(helio_nbody_system), intent(in) :: system !! Helio nbody system object + real(DP), intent(in) :: dt !! Stepsize + real(DP), dimension(:), intent(out) :: pt !! negative barycentric velocity of the central body end subroutine helio_drift_linear_pl - module subroutine helio_drift_linear_tp(self, dt, pt) + module subroutine helio_drift_linear_tp(self, system, dt, pt) implicit none - class(helio_tp), intent(inout) :: self !! Helio test particle object - real(DP), intent(in) :: dt !! Stepsize - real(DP), dimension(:), intent(in) :: pt !! negative barycentric velocity of the Sun + class(helio_tp), intent(inout) :: self !! Helio test particle object + class(helio_nbody_system), intent(in) :: system !! Helio nbody system object + real(DP), intent(in) :: dt !! Stepsize + real(DP), dimension(:), intent(in) :: pt !! negative barycentric velocity of the Sun end subroutine helio_drift_linear_tp module subroutine helio_getacch_pl(self, system, param, t) From ae446c96b0dcd38fe3f932c01857b6964b82597b Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 7 Jul 2021 12:33:56 -0400 Subject: [PATCH 06/28] Updated array bounds and initial conditions generator --- .../helio_swifter_comparison/init_cond.py | 20 +++++++++--------- src/helio/helio_drift.f90 | 21 +++++++------------ src/helio/helio_getacch.f90 | 4 ++-- 3 files changed, 19 insertions(+), 26 deletions(-) diff --git a/examples/helio_swifter_comparison/init_cond.py b/examples/helio_swifter_comparison/init_cond.py index 289f14f75..80b36c1c4 100644 --- a/examples/helio_swifter_comparison/init_cond.py +++ b/examples/helio_swifter_comparison/init_cond.py @@ -201,17 +201,17 @@ sys.stdout = sys.__stdout__ #Now make Swiftest files - #cbfile = open(swiftest_cb, 'w') - cbfile = FortranFile(swiftest_cb, 'w') - #print(1.0,file=cbfile) - #print(rmin,file=cbfile) - #print(J2,file=cbfile) - #print(J4,file=cbfile) + cbfile = open(swiftest_cb, 'w') + #cbfile = FortranFile(swiftest_cb, 'w') + print(1.0,file=cbfile) + print(rmin,file=cbfile) + print(J2,file=cbfile) + print(J4,file=cbfile) Msun = np.double(1.0) - cbfile.write_record(np.double(GMSun)) - cbfile.write_record(np.double(rmin)) - cbfile.write_record(np.double(J2)) - cbfile.write_record(np.double(J4)) + #cbfile.write_record(np.double(GMSun)) + #cbfile.write_record(np.double(rmin)) + #cbfile.write_record(np.double(J2)) + #cbfile.write_record(np.double(J4)) cbfile.close() #plfile = open(swiftest_pl, 'w') diff --git a/src/helio/helio_drift.f90 b/src/helio/helio_drift.f90 index 5ce7438ba..63f53aa57 100644 --- a/src/helio/helio_drift.f90 +++ b/src/helio/helio_drift.f90 @@ -69,25 +69,18 @@ module subroutine helio_drift_linear_pl(self, system, dt, pt) class(helio_nbody_system), intent(in) :: system !! Swiftest nbody system object real(DP), intent(in) :: dt !! Stepsize real(DP), dimension(:), intent(out) :: pt !! negative barycentric velocity of the central body - ! Internals - integer(I4B) :: i - real(DP),dimension(NDIM) :: pttmp !intent(out) variables don't play nicely - !with openmp's reduction for some reason associate(pl => self, npl => self%nbody, cb => system%cb) - pttmp(:) = 0.0_DP - do i = 2, npl - pttmp(:) = pttmp(:) + pl%Gmass(i) * pl%vb(:,i) - end do - pttmp(:) = pttmp(:) / cb%Gmass - do i = 2, npl - pl%xh(:,i) = pl%xh(:,i) + pttmp(:) * dt - end do - pt(:) = pttmp(:) + pt(1) = sum(pl%Gmass(1:npl) * pl%vb(1,1:npl)) + pt(2) = sum(pl%Gmass(1:npl) * pl%vb(2,1:npl)) + pt(3) = sum(pl%Gmass(1:npl) * pl%vb(3,1:npl)) + pt(:) = pt(:) / cb%Gmass + pl%xh(1,1:npl) = pl%xh(1,1:npl) + pt(1) * dt + pl%xh(2,1:npl) = pl%xh(2,1:npl) + pt(2) * dt + pl%xh(3,1:npl) = pl%xh(3,1:npl) + pt(3) * dt end associate return - end subroutine helio_drift_linear_pl module subroutine helio_drift_tp(self, system, param, dt) diff --git a/src/helio/helio_getacch.f90 b/src/helio/helio_getacch.f90 index dd63ec392..2daad2756 100644 --- a/src/helio/helio_getacch.f90 +++ b/src/helio/helio_getacch.f90 @@ -22,7 +22,7 @@ module subroutine helio_getacch_pl(self, system, param, t) real(DP), dimension(:, :), allocatable, save :: xh_loc, aobl associate(cb => system%cb, pl => self, npl => self%nbody) - pl%ahi(:,2:npl) = 0.0_DP + pl%ahi(:,:) = 0.0_DP call helio_getacch_int_pl(pl, t) pl%ah(:,:) = pl%ahi(:,:) if (param%loblatecb) call pl%obl_acc(cb) @@ -84,7 +84,7 @@ subroutine helio_getacch_int_pl(pl, t) real(DP), dimension(NDIM) :: dx associate(npl => pl%nbody) - do i = 2, npl - 1 + do i = 1, npl - 1 do j = i + 1, npl dx(:) = pl%xh(:,j) - pl%xh(:,i) rji2 = dot_product(dx(:), dx(:)) From 3afb39fb3899a5882a2a1f2db8e94fad0888054b Mon Sep 17 00:00:00 2001 From: David Minton Date: Wed, 7 Jul 2021 13:51:25 -0400 Subject: [PATCH 07/28] Updated swiftest package to include new methods to save swifter files from a swiftest run --- .../helio_swifter_comparison/.idea/.gitignore | 3 + .../helio_swifter_comparison/cb.swiftest.in | Bin 64 -> 87 bytes .../helio_swifter_comparison/init_cond.py | 355 +++--------------- .../helio_swifter_comparison/param.swifter.in | 62 +-- .../param.swiftest.in | 64 ++-- .../helio_swifter_comparison/pl.swifter.in | 56 ++- .../helio_swifter_comparison/pl.swiftest.in | Bin 700 -> 1525 bytes .../helio_swifter_comparison/tp.swifter.in | 24 +- .../helio_swifter_comparison/tp.swiftest.in | Bin 280 -> 565 bytes python/swiftest/swiftest/init_cond.py | 65 +++- python/swiftest/swiftest/io.py | 89 ++++- python/swiftest/swiftest/simulation_class.py | 36 +- 12 files changed, 317 insertions(+), 437 deletions(-) create mode 100644 examples/helio_swifter_comparison/.idea/.gitignore diff --git a/examples/helio_swifter_comparison/.idea/.gitignore b/examples/helio_swifter_comparison/.idea/.gitignore new file mode 100644 index 000000000..26d33521a --- /dev/null +++ b/examples/helio_swifter_comparison/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/examples/helio_swifter_comparison/cb.swiftest.in b/examples/helio_swifter_comparison/cb.swiftest.in index 7e13534c0bc881a8cc6e551b3a47dbfdd785d49e..058975b813b2ede68061d83c64275e30fd103ddb 100644 GIT binary patch literal 87 zcmWN`u@L|<2m`^KUd&(t5)}0Px9|=w*~|437p$0B5w!4#V!s5&61QdL>g)+_&4sf2 RI~R7~DCJW7wlL81u^;=Z5pDng literal 64 ncmd;JU|=xH*zksXud@ROkPX6j{SWxW@f6#`_&^~rz{UpvSndZF diff --git a/examples/helio_swifter_comparison/init_cond.py b/examples/helio_swifter_comparison/init_cond.py index 80b36c1c4..ed46b12cf 100644 --- a/examples/helio_swifter_comparison/init_cond.py +++ b/examples/helio_swifter_comparison/init_cond.py @@ -1,323 +1,54 @@ +import swiftest import numpy as np import sys from astroquery.jplhorizons import Horizons import astropy.constants as const from scipy.io import FortranFile -#Values from JPL Horizons -AU2M = np.longdouble(const.au.value) -GMSunSI = np.longdouble(const.GM_sun.value) -Rsun = np.longdouble(const.R_sun.value) -GC = np.longdouble(const.G.value) -JD = 86400 -year = np.longdouble(365.25 * JD) -c = np.longdouble(299792458.0) -MSun_over_Mpl = np.array([6023600.0, - 408523.71, - 328900.56, - 3098708., - 1047.3486, - 3497.898, - 22902.98, - 19412.24, - 1.35e8], dtype=np.longdouble) - -MU2KG = np.longdouble(GMSunSI / GC) #Conversion from mass unit to kg -DU2M = np.longdouble(AU2M) #Conversion from radius unit to centimeters -TU2S = np.longdouble(year) #Conversion from time unit to seconds -GU = np.longdouble(GC / (DU2M**3 / (MU2KG * TU2S**2))) - -GMSun = np.longdouble(GMSunSI / (DU2M**3 / TU2S**2)) - -# Simulation start, stop, and output cadence times -t_0 = 0 # simulation start time -deltaT = 0.25 * JD / TU2S # simulation step size -end_sim = 1 * year / TU2S # simulation end time -t_print = deltaT #year / TU2S #output interval to print results - - -# Solar oblatenes values: From Mecheri et al. (2004), using Corbard (b) 2002 values (Table II) -J2 = 0.0 #np.longdouble(2.198e-7) * (Rsun / DU2M)**2 -J4 = 0.0 #np.longdouble(-4.805e-9) * (Rsun / DU2M)**4 - -tstart = '2021-01-28' -tend = '2021-01-29' -tstep = '1d' -planetid = { - 'mercury' : '1', - 'venus' : '2', - 'earthmoon' : '3', - 'mars' : '4', - 'jupiter' : '5', - 'saturn' : '6', - 'uranus' : '7', - 'neptune' : '8', - 'plutocharon' : '9' -} -npl = 9 - -#Planet Msun/M ratio -MSun_over_Mpl = { - 'mercury' : np.longdouble(6023600.0), - 'venus' : np.longdouble(408523.71), - 'earthmoon' : np.longdouble(328900.56), - 'mars' : np.longdouble(3098708.), - 'jupiter' : np.longdouble(1047.3486), - 'saturn' : np.longdouble(3497.898), - 'uranus' : np.longdouble(22902.98), - 'neptune' : np.longdouble(19412.24), - 'plutocharon' : np.longdouble(1.35e8) -} - -#Planet radii in meters -Rpl = { - 'mercury' : np.longdouble(2439.4e3), - 'venus' : np.longdouble(6051.8e3), - 'earthmoon' : np.longdouble(6371.0084e3), # Earth only for radius - 'mars' : np.longdouble(3389.50e3), - 'jupiter' : np.longdouble(69911e3), - 'saturn' : np.longdouble(58232.0e3), - 'uranus' : np.longdouble(25362.e3), - 'neptune' : np.longdouble(24622.e3), - 'plutocharon' : np.longdouble(1188.3e3) -} - -pdata = {} -plvec = {} -Rhill = {} -THIRDLONG = np.longdouble(1.0) / np.longdouble(3.0) - -for key,val in planetid.items(): - pdata[key] = Horizons(id=val, id_type='majorbody',location='@sun', - epochs={'start': tstart, 'stop': tend, - 'step': tstep}) - plvec[key] = np.array([pdata[key].vectors()['x'][0], - pdata[key].vectors()['y'][0], - pdata[key].vectors()['z'][0], - pdata[key].vectors()['vx'][0], - pdata[key].vectors()['vy'][0], - pdata[key].vectors()['vz'][0] - ]) - - Rhill[key] = np.longdouble(pdata[key].elements()['a'][0]) * (3 * MSun_over_Mpl[key])**(-THIRDLONG) - -asteroidid = { - '100001' : 'Ceres', - '100002' : 'Pallas', - '100003' : 'Juno', - '100004' : 'Vesta' +sim = swiftest.Simulation() + +sim.param['MU2KG'] = swiftest.MSun +sim.param['TU2S'] = swiftest.YR2S +sim.param['DU2M'] = swiftest.AU2M +sim.param['T0'] = 0.0 +sim.param['TSTOP'] = 1.0 +sim.param['DT'] = 0.25 * swiftest.JD2S / swiftest.YR2S +sim.param['CHK_QMIN_COORD'] = "HELIO" +sim.param['CHK_QMIN'] = swiftest.RSun / swiftest.AU2M +sim.param['CHK_QMIN_RANGE'] = f"{swiftest.RSun / swiftest.AU2M} 1000.0" +sim.param['CHK_RMIN'] = swiftest.RSun / swiftest.AU2M +sim.param['CHK_RMAX'] = 1000.0 +sim.param['CHK_EJECT'] = 1000.0 +sim.param['ISTEP_OUT'] = 1 +sim.param['ISTEP_DUMP'] = 1 + +sim.param['GR'] = 'NO' + +bodyid = { + "Sun": 0, + "Mercury": 1, + "Venus": 2, + "Earth": 3, + "Mars": 4, + "Jupiter": 5, + "Saturn": 6, + "Uranus": 7, + "Neptune": 8, + "Ceres": 101, + "Pallas": 102, + "Juno": 103, + "Vesta": 104 } -ntp = 4 -tdata = {} -tpvec = {} -for key,val in asteroidid.items(): - tdata[key] = Horizons(id=val, id_type='smallbody', location='@sun', - epochs={'start': tstart, 'stop': tend, - 'step': tstep}) - tpvec[key] = np.array([tdata[key].vectors()['x'][0], - tdata[key].vectors()['y'][0], - tdata[key].vectors()['z'][0], - tdata[key].vectors()['vx'][0], - tdata[key].vectors()['vy'][0], - tdata[key].vectors()['vz'][0] - ]) - - -if __name__ == '__main__': - # Convert from AU-day to AU-year just because I find it easier to keep track of the sim progress - for plid in plvec: - plvec[plid][3:] *= year / JD - - for tpid in tpvec: - tpvec[tpid][3:] *= year / JD - - # Names of all output files - swifter_input = "param.swifter.in" - swifter_pl = "pl.swifter.in" - swifter_tp = "tp.swifter.in" - swifter_bin = "bin.swifter.dat" - swifter_enc = "enc.swifter.dat" - - swiftest_input = "param.swiftest.in" - swiftest_pl = "pl.swiftest.in" - swiftest_tp = "tp.swiftest.in" - swiftest_cb = "cb.swiftest.in" - swiftest_bin = "bin.swiftest.dat" - swiftest_enc = "enc.swiftest.dat" - - iout = int(np.ceil(t_print / deltaT)) - rmin = Rsun / DU2M - rmax = np.longdouble(1000.0) - #Make Swifter files +for name, id in bodyid.items(): + sim.add(name, idval=id) - plfile = open(swifter_pl, 'w') - print(npl+1, f'! Planet input file generated using init_cond.py using JPL Horizons data for the major planets (and Pluto) for epoch {tstart}' ,file=plfile) - print(1,GMSun,file=plfile) - print('0.0 0.0 0.0',file=plfile) - print('0.0 0.0 0.0',file=plfile) - for i, plid in enumerate(plvec): - print(i + 2,"{:.23g}".format(GMSun * MSun_over_Mpl[plid]**-1),Rhill[plid], file=plfile) - print(Rpl[plid] / DU2M, file=plfile) - print(plvec[plid][0],plvec[plid][1],plvec[plid][2], file=plfile) - print(plvec[plid][3],plvec[plid][4],plvec[plid][5], file=plfile) - plfile.close() - - tpfile = open(swifter_tp, 'w') - print(ntp,file=tpfile) - for tpid, tp in tpvec.items(): - print(tpid, file=tpfile) - print(tp[0],tp[1],tp[2], file=tpfile) - print(tp[3],tp[4],tp[5], file=tpfile) - tpfile.close() - - sys.stdout = open(swifter_input, "w") - print('! Swifter input file generated using init_cond.py') - print('T0 ',t_0) - print('TSTOP ',end_sim) - print('DT ',deltaT) - print('PL_IN ',swifter_pl) - print('TP_IN ',swifter_tp) - print('IN_TYPE ASCII') - print('ISTEP_OUT ',iout) - print('ISTEP_DUMP ',iout) - print('BIN_OUT ',swifter_bin) - print('OUT_TYPE REAL8') - print('OUT_FORM XV') - print('OUT_STAT NEW') - print('J2 ',J2) - print('J4 ',J4) - print('CHK_CLOSE yes') - print('CHK_RMIN ',rmin) - print('CHK_RMAX ',rmax) - print('CHK_EJECT ',rmax) - print('CHK_QMIN ',rmin) - print('CHK_QMIN_COORD HELIO') - print('CHK_QMIN_RANGE ',rmin,rmax) - print('ENC_OUT ',swifter_enc) - print('EXTRA_FORCE no') - print('BIG_DISCARD no') - print('RHILL_PRESENT yes') - - sys.stdout = sys.__stdout__ - #Now make Swiftest files - cbfile = open(swiftest_cb, 'w') - #cbfile = FortranFile(swiftest_cb, 'w') - print(1.0,file=cbfile) - print(rmin,file=cbfile) - print(J2,file=cbfile) - print(J4,file=cbfile) - Msun = np.double(1.0) - #cbfile.write_record(np.double(GMSun)) - #cbfile.write_record(np.double(rmin)) - #cbfile.write_record(np.double(J2)) - #cbfile.write_record(np.double(J4)) - cbfile.close() - - #plfile = open(swiftest_pl, 'w') - plfile = FortranFile(swiftest_pl, 'w') - #print(npl,file=plfile) - plfile.write_record(npl) - - name = np.empty(npl, dtype=np.int32) - px = np.empty(npl, dtype=np.double) - py = np.empty(npl, dtype=np.double) - pz = np.empty(npl, dtype=np.double) - vx = np.empty(npl, dtype=np.double) - vy = np.empty(npl, dtype=np.double) - vz = np.empty(npl, dtype=np.double) - mass = np.empty(npl, dtype=np.double) - Gmass = np.empty(npl, dtype=np.double) - radius = np.empty(npl, dtype=np.double) - for i, plid in enumerate(plvec): - name[i] = i + 2 - px[i] = plvec[plid][0] - py[i] = plvec[plid][1] - pz[i] = plvec[plid][2] - vx[i] = plvec[plid][3] - vy[i] = plvec[plid][4] - vz[i] = plvec[plid][5] - Gmass[i] = GMSun * MSun_over_Mpl[plid]**-1 - radius[i] = Rpl[plid] / DU2M - plfile.write_record(name.T) - plfile.write_record(px.T) - plfile.write_record(py.T) - plfile.write_record(pz.T) - plfile.write_record(vx.T) - plfile.write_record(vy.T) - plfile.write_record(vz.T) - plfile.write_record(Gmass.T) - plfile.write_record(radius.T) - #for i, plid in enumerate(plvec): - # print(i + 2,"{:.23g}".format(np.longdouble(MSun_over_Mpl[plid]**-1)), file=plfile) - # print(Rpl[plid] / DU2M, file=plfile) - # print(plvec[plid][0], plvec[plid][1], plvec[plid][2], file=plfile) - # print(plvec[plid][3], plvec[plid][4], plvec[plid][5], file=plfile) - plfile.close() - #tpfile = open(swiftest_tp, 'w') - tpfile = FortranFile(swiftest_tp, 'w') - #print(ntp,file=tpfile) - tpfile.write_record(ntp) - #for tpid, tp in tpvec.items(): - # print(tpid, file=tpfile) - # print(tp[0],tp[1],tp[2], file=tpfile) - # print(tp[3],tp[4],tp[5], file=tpfile) - - name = np.empty(ntp, dtype=np.int32) - px = np.empty(ntp, dtype=np.double) - py = np.empty(ntp, dtype=np.double) - pz = np.empty(ntp, dtype=np.double) - vx = np.empty(ntp, dtype=np.double) - vy = np.empty(ntp, dtype=np.double) - vz = np.empty(ntp, dtype=np.double) - for i, tpid in enumerate(tpvec): - name[i] = int(tpid) - px[i] = tpvec[tpid][0] - py[i] = tpvec[tpid][1] - pz[i] = tpvec[tpid][2] - vx[i] = tpvec[tpid][3] - vy[i] = tpvec[tpid][4] - vz[i] = tpvec[tpid][5] - tpfile.write_record(name.T) - tpfile.write_record(px.T) - tpfile.write_record(py.T) - tpfile.write_record(pz.T) - tpfile.write_record(vx.T) - tpfile.write_record(vy.T) - tpfile.write_record(vz.T) - - tpfile.close() - - sys.stdout = open(swiftest_input, "w") - print('! Swiftest input file generated using init_cond.py') - print('T0 ',t_0) - print('TSTOP ',end_sim) - print('DT ',deltaT) - print('CB_IN ',swiftest_cb) - print('PL_IN ',swiftest_pl) - print('TP_IN ',swiftest_tp) - print('IN_TYPE REAL8') - print('ISTEP_OUT ',iout) - print('ISTEP_DUMP ',iout) - print('BIN_OUT ',swiftest_bin) - print('OUT_TYPE REAL8') - print('OUT_FORM XV') - print('OUT_STAT REPLACE') - print('CHK_CLOSE yes') - print('CHK_RMIN ',rmin) - print('CHK_RMAX ',rmax) - print('CHK_EJECT ',rmax) - print('CHK_QMIN ',rmin) - print('CHK_QMIN_COORD HELIO') - print('CHK_QMIN_RANGE ',rmin,rmax) - print('ENC_OUT ',swiftest_enc) - print('EXTRA_FORCE no') - print('BIG_DISCARD no') - print('ROTATION no') - print('GR no') - print('MU2KG ',MU2KG) - print('DU2M ',DU2M) - print('TU2S ',TU2S) +sim.param['PL_IN'] = "pl.swiftest.in" +sim.param['TP_IN'] = "tp.swiftest.in" +sim.param['CB_IN'] = "cb.swiftest.in" +sim.save("param.swiftest.in") +sim.param['PL_IN'] = "pl.swifter.in" +sim.param['TP_IN'] = "tp.swifter.in" +sim.save("param.swifter.in", codename="Swifter") - sys.stdout = sys.__stdout__ diff --git a/examples/helio_swifter_comparison/param.swifter.in b/examples/helio_swifter_comparison/param.swifter.in index 5156bfbc0..b51b04137 100644 --- a/examples/helio_swifter_comparison/param.swifter.in +++ b/examples/helio_swifter_comparison/param.swifter.in @@ -1,26 +1,36 @@ -! Swifter input file generated using init_cond.py -T0 0 -TSTOP 1.0 -DT 0.0006844626967830253251 -PL_IN pl.swifter.in -TP_IN tp.swifter.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 0.0046504672609621575315 -CHK_RMAX 1000.0 -CHK_EJECT 1000.0 -CHK_QMIN 0.0046504672609621575315 -CHK_QMIN_COORD HELIO -CHK_QMIN_RANGE 0.0046504672609621575315 1000.0 -ENC_OUT enc.swifter.dat -EXTRA_FORCE no -BIG_DISCARD no -RHILL_PRESENT yes +! VERSION Swifter parameter file converted from Swiftest +T0 0.0 +TSTOP 1.0 +DT 0.0006844626967830253 +ISTEP_OUT 1 +ISTEP_DUMP 1 +OUT_FORM EL +OUT_TYPE REAL8 +OUT_STAT REPLACE +IN_TYPE ASCII +PL_IN pl.swifter.in +TP_IN tp.swifter.in +CB_IN None +BIN_OUT bin.dat +ENC_OUT enc.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 None +TU2S None +DU2M None +EXTRA_FORCE NO +BIG_DISCARD NO +CHK_CLOSE YES +FRAGMENTATION NO +ROTATION NO +TIDES NO +ENERGY NO +YARKOVSKY NO +YORP NO +J2 4.7535806948127355e-12 +J4 -2.2473967953572827e-18 +RHILL_PRESENT YES diff --git a/examples/helio_swifter_comparison/param.swiftest.in b/examples/helio_swifter_comparison/param.swiftest.in index c32a270f5..43e19d180 100644 --- a/examples/helio_swifter_comparison/param.swiftest.in +++ b/examples/helio_swifter_comparison/param.swiftest.in @@ -1,29 +1,35 @@ -! Swiftest input file generated using init_cond.py -T0 0 -TSTOP 1.0 -DT 0.0006844626967830253251 -CB_IN cb.swiftest.in -PL_IN pl.swiftest.in -TP_IN tp.swiftest.in -IN_TYPE REAL8 -ISTEP_OUT 1 -ISTEP_DUMP 1 -BIN_OUT bin.swiftest.dat -OUT_TYPE REAL8 -OUT_FORM XV -OUT_STAT REPLACE -CHK_CLOSE yes -CHK_RMIN 0.0046504672609621575315 -CHK_RMAX 1000.0 -CHK_EJECT 1000.0 -CHK_QMIN 0.0046504672609621575315 -CHK_QMIN_COORD HELIO -CHK_QMIN_RANGE 0.0046504672609621575315 1000.0 -ENC_OUT enc.swiftest.dat -EXTRA_FORCE no -BIG_DISCARD no -ROTATION no -GR no -MU2KG 1.988409870698050917e+30 -DU2M 149597870700.0 -TU2S 31557600.0 +! VERSION Swiftest parameter input +T0 0.0 +TSTOP 1.0 +DT 0.0006844626967830253 +ISTEP_OUT 1 +ISTEP_DUMP 1 +OUT_FORM EL +OUT_TYPE REAL8 +OUT_STAT REPLACE +IN_TYPE ASCII +PL_IN pl.swiftest.in +TP_IN tp.swiftest.in +CB_IN cb.swiftest.in +BIN_OUT bin.dat +ENC_OUT enc.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 31557600.0 +DU2M 149597870700.0 +EXTRA_FORCE NO +BIG_DISCARD NO +CHK_CLOSE YES +FRAGMENTATION NO +ROTATION NO +TIDES NO +ENERGY NO +GR NO +YARKOVSKY NO +YORP NO +MTINY 0.0 diff --git a/examples/helio_swifter_comparison/pl.swifter.in b/examples/helio_swifter_comparison/pl.swifter.in index 3f27a30f5..86255d0e2 100644 --- a/examples/helio_swifter_comparison/pl.swifter.in +++ b/examples/helio_swifter_comparison/pl.swifter.in @@ -1,40 +1,36 @@ -10 ! Planet input file generated using init_cond.py using JPL Horizons data for the major planets (and Pluto) for epoch 2021-01-28 -1 39.476926408897625193 +9 +0 39.47692640889762629 0.0 0.0 0.0 0.0 0.0 0.0 -2 6.553709809565313959502e-06 0.0014751229680878679603 +1 6.553709809565314146e-06 0.0014751254963649629896 1.6306381826061645943e-05 -0.1030256871817049 0.2897796042186122 0.0142290454578165 --11.740042086233977 3.834312447819755 1.3902497138650993 -3 9.6633133995815373809037e-05 0.0067591276497677570562 +0.359124056979876094 -0.1001978128323056938 -0.041130148620746292965 +0.7664364270424182397 10.3592906410849091145 0.7762248217818495593 +2 9.6633133995815381836e-05 0.00675911390647655787 4.0453784346544178454e-05 -0.06110217931597178 -0.7245466902000399 -0.01346904334134495 -7.311995450520371 0.5941125626853079 -0.4137913834645579 -4 0.00012002693582795244940133 0.010044756567554867971 +-0.709853246614207567 0.109615461427968005625 0.042466530791895232277 +-1.166834223638398553 -7.334297883841826485 -0.033323414543104576783 +3 0.000120026935827952456416 0.010044751446422201634 4.25875607065040958e-05 --0.6061796332978544 0.7761214562175627 -3.47496925510033e-05 --5.054824318940399 -3.891667462296022 0.0001972008358555219 -5 1.2739802010675940622175e-05 0.0072464490746761575477 +0.26014404284638581455 -0.9828537227999029069 4.5807148740206238052e-05 +5.9724418390973225248 1.5843954077771575533 -9.4205748659356694786e-05 +4 1.2739802010675941808e-05 0.0072467561525263854473 2.265740805092889601e-05 -0.2751944182282239 1.519376889861282 0.02508924669876031 --4.835983592340031 1.3448550964716055 0.14681413009269897 -6 0.037692251088985675999687 0.35528523591470134027 +-1.4908630412685239808 0.7412277078494349247 0.052104480532706012874 +-2.084278892390818102 -4.1405652065758745757 -0.035644761583621103612 +5 0.03769225108898567778 0.35527141892920680066 0.00046732617030490929307 -3.20013535487531 -3.953498299871184 -0.05517746960976119 -2.111393786386104 1.8660266390974023 -0.05498927104920874 -7 0.011285899820091272946487 0.43763064535027282272 +4.0233930071159198505 -3.029555621945668964 -0.077433472926114965684 +1.626590141045528945 2.3340622087669935288 -0.046085347207395002237 +6 0.01128589982009127331 0.43765136932522133578 0.00038925687730393611812 -5.607382154387239 -8.258649115739544 -0.07958445350697703 -1.5748468612768933 1.1414574628814913 -0.0825033126704916 -8 0.0017236589478267731051497 0.46909694410284686372 +6.274810893232299236 -7.7275164380757708216 -0.115372736553069593635 +1.4703000143673246375 1.2821134193800077011 -0.08078666716402813097 +7 0.001723658947826773068 0.46952007057521305831 0.00016953449859497231466 -15.2822545079529 12.53905417292343 -0.1514152417388489 --0.9198471609855067 1.0454391001033898 0.015745441522152032 -9 0.0020336100526728304385693 0.78071933134573728207 +14.871766666738729157 12.9908875920566391216 -0.14444232402201501175 +-0.9541590491729433116 1.0172543087941671172 0.016087073469786578863 +8 0.0020336100526728302882 0.78126715446178642547 0.000164587904124493665 -29.47483430798945 -5.147687601125057 -0.5733452880201296 -0.1919169794537526 1.1385109490430123 -0.027844342997168703 -10 2.9242167710294538257026e-07 0.053834666988627116535 -7.943294877391593783e-06 -14.14001068477669 -31.141412045097 -0.7565711098949569 -1.0733960936923237 0.23003153432240253 -0.3342452292632091 +29.554624389819270647 -4.648140925388063671 -0.5854586034520335991 +0.1723572655485145611 1.1421549698170996955 -0.027459964210413734165 diff --git a/examples/helio_swifter_comparison/pl.swiftest.in b/examples/helio_swifter_comparison/pl.swiftest.in index 6ee1ca38380823cc94be008e9a26b0914f75ea10..c1f0be29eec4f9cd2343b9b942ef8f00390f7b88 100644 GIT binary patch literal 1525 zcmXYx$&uqg3^^I*S6)F=es~UOpa+g_*De*baT)*tzr^;R3cXKpPv3{!0D@aRU6CRZjT#JnN z2^F1o(=Dnrs41(-pt7YI=cu<^CL*`43(}F5DJt zaipPSpao$Zw-Cf==la=$MGV%N$Xhg;&rYc@)*DJAi zEda3GAY{?`U{Iuqf=p=(m4e9@8ys&LmU98DG6`G}1aOWqCbrQk7f(HI<{@=WX7=vv|1Q6ju{Guibr1906QUmc~W~EA~=@; z1`syvJU-x>;&KL`hlEjmiznz*Rg*w$SO(kItE*^}pX#xbft?(G;FV+^0oo0G%3dl~ zQasZNnG?(hq8Rj6d$9X3D~m^22vGQ|KKRfkSutl)PUl5e*c;tYl=RrlmDd%LZHy=A zu`tE*_vH(D49Om0tg+N!+v|805yaujrl59~9=(ly?9aL+&apR5IQ!$WWz(|$V7#My zjEuRlD?0+mqLt6EaLIh20WJaDqJaQDc1cx7XpWU(;!s7mFmEH>8`aanEre)~X> PntQBRET&EiN*(_Jhiomc literal 700 zcmd;JU|`?`Vi4c}Vih1}0%B$$W&vVWAZ7z%b|41HgVb^XF-V;U5bt;@Zu%sCm;H}j z2VS4>SZ`lcKjF%y)W`e3*-hm+Ip?DNwaxP<9U{S5LBDY21z|Sw!Ui=f*bV$fm&bFQ|a$wKroGHdC_6K0*$?0jR%c=C* zi_dpUT`{$LKj#na2sR6*{WrFn-uSm+rv00QXUi-c*6d#@CpvLy{FePW1{<-<%tkJ zpv?0oN9hTJ!xs0j`IC%(+F#_f2uRL`cB`-Y*8bKeevfZAH0`g(t=2zx>X7|6 z{>cY>)z|EwVYmC~d%3Oqzk1EsI7xnjeZV>sE34)?`?DS^O1Y(6h5Pq76C>xpn%i~@ z&s?7QAw<$%$|sudewn=eI%yBSh1*}*Jvvb(oaVFG{`qx*tNgO<_AfN=Ztk&-v2VJP zA$n>>g8f}@CgmgZC)>gNyLZlMHZ#eOb^)1YMRQGA?S;%I6f%ae*;_|!x8yza-EP+{ tvw3+7?Ckrdo$OoMWN9B0!S1-oLd`yW#(|LKlT_`au1r>HTk!yF9su;c8`b~- diff --git a/examples/helio_swifter_comparison/tp.swifter.in b/examples/helio_swifter_comparison/tp.swifter.in index 74f1cc8cb..62acd79fc 100644 --- a/examples/helio_swifter_comparison/tp.swifter.in +++ b/examples/helio_swifter_comparison/tp.swifter.in @@ -1,13 +1,13 @@ 4 -100001 -2.89438049451288 0.2060633440061593 -0.5267473063848516 --0.3678177533773833 3.511709555047983 0.17870206084842993 -100002 -2.402157085583321 -2.063650726188297 1.221462218318817 -1.9929454704322658 1.7670859767767524 -1.3920312816007854 -100003 --1.762420789095617 -2.766072787712991 0.6998178860363623 -2.5146401571141386 -1.536845348435182 0.24681698261461876 -100004 --2.136886752000925 1.023684503224212 0.2293900119298221 --1.391819314123066 -3.7994616469964826 0.2829665835356411 +101 +2.3133253483335658451 1.6360857008750779862 -0.37450983998533471375 +-2.2458876465769251093 2.8378699270656317882 0.50346273267874514076 +102 +3.009555158239280992 -1.1130165423439479788 0.51172110509120705135 +0.70453633545041942506 2.5148434686651768256 -1.80152331908826862 +103 +-0.5218824163555056961 -3.1396467647675119217 0.7342355813480357929 +3.0582031698647593751 -0.12050283730110719834 -0.096945705299882042706 +104 +-2.075368356279947868 -0.76569201199778380573 0.27541025252901979448 +1.7615515330387480359 -3.9484151677488075983 -0.096278788580453326945 diff --git a/examples/helio_swifter_comparison/tp.swiftest.in b/examples/helio_swifter_comparison/tp.swiftest.in index 5fe4b5618a2c2358d645755a4759220addef5211..62acd79fc49307ef00eac51b85a99ee95f19be06 100644 GIT binary patch literal 565 zcmXYu%Z&vw2n6qrViI^3&@`X?6Wg}5nj2%Fy2#_^CoUWaA_oAAll0GTp={V@)3olL zitlF^owOb74uNb(^ZepQa;7VbT^n>;d~pXowHs~4g7-{(c4^3pMpTc+d0LlP;^3Ms zN#_JM#?<=#{JO)un1RG*ujafl?j7zX9uI4ygU4=L5~U~tP2UV!2}NrrwRfuMT@$P~ zddwMsuZc}RLm)T`%5YWE3j#9MmVZB7$10?PcC`RDyoJ&b8#ykE2KL6jFp6RDlDllK zOlgE&!O}u%6w0k#HuKeOYg5J>q+JuwOueCyr?i0OIFg35GrFBDNcDn~-YzQZs tDWBB0=G&V&$MxEuTfiXi4|HFol^Ca2t2Wvro`0OseP%e%sIDct^9P%YZ!iD= literal 280 zcmd;JU|?VYVi4c}VgVpt*v81P2#6O0@e&{gi75c_`sW|MZct};_*xaLG|!ybp~pvG z<$=+k{d{L`h(t&*9ssEU;nUN$%=Jh(Wgm6;mVa~;!+|v`d5*qPU_0<4Fo%IT@q;}` z4G7QKbyQ3C_JjRfR`!3F?*43Ve0gitifPaGFLUKVo}uFl9Jvog5r`u=G(%BQ3r z|F_>Fy 0, drop=True) + pl = pl.where(np.invert(np.isnan(pl['Mass'])), drop=True).drop_vars(['J_2', 'J_4']) + tp = frame.where(np.isnan(frame['Mass']), drop=True).drop_vars(['Mass', 'Radius', 'J_2', 'J_4']) + + GMSun = np.double(cb['Mass']) + RSun = np.double(cb['Radius']) + param['J2'] = np.double(cb['J_2']) + param['J4'] = np.double(cb['J_4']) + param['RHILL_PRESENT'] = "YES" + + if param['IN_TYPE'] == 'ASCII': + # Swiftest Central body file + plfile = open(param['PL_IN'], 'w') + print(pl.id.count().values + 1, file=plfile) + print(cb.id.values[0], cb['Mass'].values[0], 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: + pli = pl.sel(id=i) + if param['RHILL_PRESENT'] == "YES": + print(i.values, pli['Mass'].values, pli['Rhill'].values, file=plfile) + else: + print(i.values, pli['Mass'].values, file=plfile) + if param['CHK_CLOSE'] == "YES": + 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) + plfile.close() + + # TP file + tpfile = open(param['TP_IN'], 'w') + print(tp.id.count().values, file=tpfile) + 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) + tpfile.close() + else: + # Now make Swiftest files + print(f"{param['IN_TYPE']} is an unknown input file type") + + def swift2swifter(swift_param, plname="", tpname="", conversion_questions={}): swifter_param = {} intxt = conversion_questions.get('RHILL', None) @@ -989,6 +1052,7 @@ def swifter2swiftest(swifter_param, plname="", tpname="", cbname="", conversion_ tpnew = open(swiftest_param['TP_IN'], 'w') except IOError: print(f"Cannot write to file {swiftest_param['TP_IN']}") + return swifter_param print(f"Converting TP file: {swifter_param['TP_IN']} -> {swiftest_param['TP_IN']}") try: @@ -1110,6 +1174,7 @@ def swifter2swiftest(swifter_param, plname="", tpname="", cbname="", conversion_ cbnew.close() except IOError: print(f"Cannot write to file {swiftest_param['CB_IN']}") + return swifter_param MTINY = conversion_questions.get('MTINY', None) if not MTINY: @@ -1151,4 +1216,22 @@ def swift2swiftest(swift_param, plname="", tpname="", cbname="", conversion_ques swiftest_param = swifter2swiftest(swifter_param, plname, tpname, cbname, conversion_questions) swiftest_param['! VERSION'] = "Swiftest parameter file converted from Swift" return swiftest_param - \ No newline at end of file + +def swiftest2swifter_param(swiftest_param, J2=0.0, J4=0.0): + swifter_param = swiftest_param.copy() + CBIN = swifter_param.pop("CB_IN", None) + MTINY = swifter_param.pop("MTINY", None) + MU2KG = swifter_param.pop("MU2KG", 1.0) + DU2M = swifter_param.pop("DU2M", 1.0) + TU2S = swifter_param.pop("TU2S", 1.0) + GR = swifter_param.pop("GR", None) + if GR is not None: + if GR == 'YES': + swifter_param['C'] = swiftest.einsteinC * np.longdouble(TU2S) / np.longdouble(DU2M) + swifter_param['J2'] = J2 + swifter_param['J4'] = J4 + swifter_param['RHILL_PRESENT'] = "YES" + swifter_param['CHK_CLOSE'] = "YES" + swifter_param['! VERSION'] = "Swifter parameter file converted from Swiftest" + + return swifter_param \ No newline at end of file diff --git a/python/swiftest/swiftest/simulation_class.py b/python/swiftest/swiftest/simulation_class.py index 41d6c345f..e20ef05f7 100644 --- a/python/swiftest/swiftest/simulation_class.py +++ b/python/swiftest/swiftest/simulation_class.py @@ -48,11 +48,12 @@ def __init__(self, codename="Swiftest", param_file=""): 'YORP': "NO", 'MTINY' : "0.0" } + self.codename = codename if param_file != "" : self.read_param(param_file, codename) return - def add(self, plname, date=date.today().isoformat()): + def add(self, plname, date=date.today().isoformat(), idval=None): """ Adds a solar system body to an existing simulation DataSet. @@ -66,7 +67,7 @@ def add(self, plname, date=date.today().isoformat()): ------- self.ds : xarray dataset """ - self.ds = init_cond.solar_system_horizons(plname, self.param, date, self.ds) + self.ds = init_cond.solar_system_horizons(plname, idval, self.param, date, self.ds) return def read_param(self, param_file, codename="Swiftest"): @@ -84,13 +85,15 @@ def read_param(self, param_file, codename="Swiftest"): self.codename = "Unknown" return - def write_param(self, param_file): + def write_param(self, param_file, param=None): + if param is None: + param = self.param # Check to see if the parameter type matches the output type. If not, we need to convert - codename = self.param['! VERSION'].split()[0] + codename = param['! VERSION'].split()[0] if codename == "Swifter" or codename == "Swiftest": - io.write_labeled_param(self.param, param_file) + io.write_labeled_param(param, param_file) elif codename == "Swift": - io.write_swift_param(self.param, param_file) + io.write_swift_param(param, param_file) else: print('Cannot process unknown code type. Call the read_param method with a valid code name. Valid options are "Swiftest", "Swifter", or "Swift".') return @@ -119,7 +122,9 @@ def convert(self, param_file, newcodename="Swiftest", plname="pl.swiftest.in", t self.param = io.swift2swiftest(self.param, plname, tpname, cbname, conversion_questions) else: goodconversion = False - + else: + goodconversion = False + if goodconversion: self.write_param(param_file) else: @@ -163,7 +168,18 @@ def follow(self, codestyle="Swifter"): print('follow.out written') return fol - def save(self, param_file, framenum=-1): - io.swiftest_xr2infile(self.ds, self.param, framenum) - self.write_param(param_file) + def save(self, param_file, framenum=-1, codename="Swiftest"): + if codename == "Swiftest": + io.swiftest_xr2infile(self.ds, self.param, framenum) + self.write_param(param_file) + elif codename == "Swifter": + if self.codename == "Swiftest": + swifter_param = io.swiftest2swifter_param(self.param) + else: + swifter_param = self.param + io.swifter_xr2infile(self.ds, swifter_param, framenum) + self.write_param(param_file, param=swifter_param) + else: + print(f'Saving to {codename} not supported') + return \ No newline at end of file From 006401bfe39ff0767d4f0b5e540bc3038b3196a2 Mon Sep 17 00:00:00 2001 From: David Minton Date: Wed, 7 Jul 2021 14:06:22 -0400 Subject: [PATCH 08/28] Fixed bugs in swifter output file generator --- examples/helio_swifter_comparison/param.swifter.in | 12 +----------- python/swiftest/swiftest/io.py | 14 ++++++++++---- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/examples/helio_swifter_comparison/param.swifter.in b/examples/helio_swifter_comparison/param.swifter.in index b51b04137..9fb70811d 100644 --- a/examples/helio_swifter_comparison/param.swifter.in +++ b/examples/helio_swifter_comparison/param.swifter.in @@ -6,11 +6,10 @@ ISTEP_OUT 1 ISTEP_DUMP 1 OUT_FORM EL OUT_TYPE REAL8 -OUT_STAT REPLACE +OUT_STAT UNKNOWN IN_TYPE ASCII PL_IN pl.swifter.in TP_IN tp.swifter.in -CB_IN None BIN_OUT bin.dat ENC_OUT enc.dat CHK_QMIN 0.004650467260962157 @@ -19,18 +18,9 @@ CHK_RMAX 1000.0 CHK_EJECT 1000.0 CHK_QMIN_COORD HELIO CHK_QMIN_RANGE 0.004650467260962157 1000.0 -MU2KG None -TU2S None -DU2M None EXTRA_FORCE NO BIG_DISCARD NO CHK_CLOSE YES -FRAGMENTATION NO -ROTATION NO -TIDES NO -ENERGY NO -YARKOVSKY NO -YORP NO J2 4.7535806948127355e-12 J4 -2.2473967953572827e-18 RHILL_PRESENT YES diff --git a/python/swiftest/swiftest/io.py b/python/swiftest/swiftest/io.py index a9200c996..a2eef84fd 100644 --- a/python/swiftest/swiftest/io.py +++ b/python/swiftest/swiftest/io.py @@ -5,6 +5,8 @@ import sys import tempfile +newfeaturelist = ("FRAGMENTATION", "ROTATION", "TIDES", "ENERGY", "GR", "YARKOVSKY", "YORP" ) + def real2float(realstr): """ Converts a Fortran-generated ASCII string of a real value into a numpy float type. Handles cases where double precision @@ -289,7 +291,7 @@ def write_labeled_param(param, param_file_name): # Print the list of key/value pairs in the preferred order for key in keylist: val = ptmp.pop(key, None) - print(f"{key:<16} {val}", file=outfile) + 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) @@ -984,8 +986,8 @@ def swift2swifter(swift_param, plname="", tpname="", conversion_questions={}): def swifter2swiftest(swifter_param, plname="", tpname="", cbname="", conversion_questions={}): swiftest_param = swifter_param.copy() # Pull additional feature status from the conversion_questions dictionary - featurelist = ("FRAGMENTATION", "ROTATION", "TIDES", "ENERGY", "GR", "YARKOVSKY", "YORP" ) - for key in featurelist: + + for key in newfeaturelist: swiftest_param[key] = conversion_questions.get(key, "NO") # Convert the PL file if plname == '': @@ -1218,7 +1220,7 @@ def swift2swiftest(swift_param, plname="", tpname="", cbname="", conversion_ques return swiftest_param def swiftest2swifter_param(swiftest_param, J2=0.0, J4=0.0): - swifter_param = swiftest_param.copy() + swifter_param = swiftest_param CBIN = swifter_param.pop("CB_IN", None) MTINY = swifter_param.pop("MTINY", None) MU2KG = swifter_param.pop("MU2KG", 1.0) @@ -1228,10 +1230,14 @@ def swiftest2swifter_param(swiftest_param, J2=0.0, J4=0.0): if GR is not None: if GR == 'YES': swifter_param['C'] = swiftest.einsteinC * np.longdouble(TU2S) / np.longdouble(DU2M) + for key in newfeaturelist: + tmp = swifter_param.pop(key, None) swifter_param['J2'] = J2 swifter_param['J4'] = J4 swifter_param['RHILL_PRESENT'] = "YES" swifter_param['CHK_CLOSE'] = "YES" + if swifter_param['OUT_STAT'] == "REPLACE": + swifter_param['OUT_STAT'] = "UNKNOWN" swifter_param['! VERSION'] = "Swifter parameter file converted from Swiftest" return swifter_param \ No newline at end of file From ac3f372765932213363510d05fec7b06b2fd1698 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 7 Jul 2021 14:08:14 -0400 Subject: [PATCH 09/28] Fixed some io messages and fail conditions --- src/io/io.f90 | 14 +++++--------- src/setup/setup.f90 | 1 - 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 326b4950c..c1440bf2d 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -264,20 +264,17 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) end if else if (self%lfragmentation) then - write(iomsg,*) 'This integrator does not support fragmentation.' - iostat = -1 - return + write(iomsg,*) 'This integrator does not support fragmentation. This parameter will be ignored.' end if if (mtiny_set) then - write(iomsg,*) 'This integrator does not support MTINY' - iostat = -1 + write(iomsg,*) 'This integrator does not support MTINY. This parameter will be ignored.' return end if end if if ((integrator == SYMBA) .or. (integrator == RINGMOONS) .or. (integrator == RMVS)) then if (.not.self%lclose) then - write(iomsg,*) 'This integrator requires CHK_CLOSE to be enabled' + write(iomsg,*) 'This integrator requires CHK_CLOSE to be enabled.' iostat = -1 return end if @@ -295,11 +292,10 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) ! Determine if the GR flag is set correctly for this integrator select case(integrator) - case(WHM) + case(WHM, RMVS) write(*,*) "GR = ", self%lgr case default - write(iomsg, *) 'GR is implemented compatible with this integrator' - iostat = -1 + write(iomsg, *) 'GR is implemented compatible with this integrator. This parameter will be ignored.' end select iostat = 0 diff --git a/src/setup/setup.f90 b/src/setup/setup.f90 index 03fd6f0f0..e1603b966 100644 --- a/src/setup/setup.f90 +++ b/src/setup/setup.f90 @@ -15,7 +15,6 @@ module subroutine setup_construct_system(system, param) case (BS) write(*,*) 'Bulirsch-Stoer integrator not yet enabled' case (HELIO) - write(*,*) 'Democratic Heliocentric integrator not yet enabled' allocate(helio_nbody_system :: system) select type(system) class is (helio_nbody_system) From 0a32742f63bef11a6602a21eb262c50266f9caca Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 7 Jul 2021 14:16:36 -0400 Subject: [PATCH 10/28] Added system first step flag --- src/modules/swiftest_classes.f90 | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 7e08ce703..f55b1b016 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -249,15 +249,16 @@ module swiftest_classes !> An abstract class for a basic Swiftest nbody system type, abstract, public, extends(swiftest_base) :: 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 - real(DP) :: msys = 0.0_DP !! Total system mass - used for barycentric coordinate conversion - real(DP) :: ke = 0.0_DP !! System kinetic energy - real(DP) :: pe = 0.0_DP !! System potential energy - real(DP) :: te = 0.0_DP !! System total energy - real(DP), dimension(NDIM) :: htot = 0.0_DP !! System angular momentum vector + 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 + real(DP) :: msys = 0.0_DP !! Total system mass - used for barycentric coordinate conversion + real(DP) :: ke = 0.0_DP !! System kinetic energy + real(DP) :: pe = 0.0_DP !! System potential energy + real(DP) :: te = 0.0_DP !! System total energy + real(DP), dimension(NDIM) :: htot = 0.0_DP !! System angular momentum vector + logical :: lfirst = .true. !! Run the current step as a first contains private !> Each integrator will have its own version of the step From 6826eb34fb22e0a40549cf4218a08c15d10161fc Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 7 Jul 2021 14:19:53 -0400 Subject: [PATCH 11/28] Changed lfirst flag to be part of the body class not the system class --- src/modules/swiftest_classes.f90 | 2 +- src/modules/whm_classes.f90 | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index f55b1b016..a1d4d4f78 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -135,6 +135,7 @@ module swiftest_classes !> An abstract class for a generic collection of Swiftest bodies type, abstract, public, 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 integer(I4B), dimension(:), allocatable :: name !! External identifier integer(I4B), dimension(:), allocatable :: status !! An integrator-specific status indicator @@ -258,7 +259,6 @@ module swiftest_classes real(DP) :: pe = 0.0_DP !! System potential energy real(DP) :: te = 0.0_DP !! System total energy real(DP), dimension(NDIM) :: htot = 0.0_DP !! System angular momentum vector - logical :: lfirst = .true. !! Run the current step as a first contains private !> Each integrator will have its own version of the step diff --git a/src/modules/whm_classes.f90 b/src/modules/whm_classes.f90 index 52f87249b..502fa9be3 100644 --- a/src/modules/whm_classes.f90 +++ b/src/modules/whm_classes.f90 @@ -29,7 +29,6 @@ module whm_classes real(DP), dimension(:), allocatable :: ir3j !! Third term of heliocentric acceleration !! Note to developers: If you add componenets to this class, be sure to update methods and subroutines that traverse the !! component list, such as whm_setup_pl and whm_spill_pl - logical :: lfirst = .true. contains procedure, public :: h2j => whm_coord_h2j_pl !! Convert position and velcoity vectors from heliocentric to Jacobi coordinates procedure, public :: j2h => whm_coord_j2h_pl !! Convert position and velcoity vectors from Jacobi to helliocentric coordinates @@ -56,7 +55,6 @@ module whm_classes type, public, extends(swiftest_tp) :: whm_tp !! Note to developers: If you add componenets to this class, be sure to update methods and subroutines that traverse the !! component list, such as whm_setup_tp and whm_spill_tp - logical :: lfirst = .true. contains private procedure, public :: drift => whm_drift_tp !! Loop through test particles and call Danby drift routine From 986cfafb49ef954fa6b122d35f55f98584d8ec41 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 7 Jul 2021 14:42:35 -0400 Subject: [PATCH 12/28] Cleaned up the system step method for Helio and corrected the first flag assignments --- src/helio/helio_step.f90 | 32 ++++++++++---------------------- src/main/swiftest_driver.f90 | 2 -- src/setup/setup.f90 | 1 + 3 files changed, 11 insertions(+), 24 deletions(-) diff --git a/src/helio/helio_step.f90 b/src/helio/helio_step.f90 index 9882be084..6c8da9d54 100644 --- a/src/helio/helio_step.f90 +++ b/src/helio/helio_step.f90 @@ -15,21 +15,12 @@ module subroutine helio_step_system(self, param, t, dt) real(DP), intent(in) :: t !! Simulation time real(DP), intent(in) :: dt !! Current stepsize - select type(system => self) - class is (helio_nbody_system) - select type(cb => self%cb) - class is (helio_cb) - select type(pl => self%pl) - class is (helio_pl) - select type(tp => self%tp) - class is (helio_tp) - call pl%set_rhill(cb) - call pl%step(system, param, t, dt) - call tp%step(system, param, t, dt) - end select - end select - end select - end select + associate(system => self, cb => self%cb, pl => self%pl, tp => self%tp) + call pl%set_rhill(cb) + tp%lfirst = pl%lfirst + call pl%step(system, param, t, dt) + call tp%step(system, param, t, dt) + end associate return end subroutine helio_step_system @@ -50,16 +41,14 @@ module subroutine helio_step_pl(self, system, param, t, dt) ! Internals integer(I4B) :: i real(DP) :: dth, msys - !real(DP), dimension(NDIM) :: ptbeg, ptend !! TODO: Incorporate these into the tp structure - logical, save :: lfirst = .true. select type(system) class is (helio_nbody_system) associate(pl => self, cb => system%cb, ptb => system%ptb, pte => system%pte) dth = 0.5_DP * dt - if (lfirst) then + if (pl%lfirst) then call pl%vh2vb(cb) - lfirst = .false. + pl%lfirst = .false. end if call pl%lindrift(system, dth, ptb) call pl%get_accel(system, param, t) @@ -94,16 +83,15 @@ module subroutine helio_step_tp(self, system, param, t, dt) real(DP), intent(in) :: t !! Current simulation time real(DP), intent(in) :: dt !! Stepsiz ! Internals - logical, save :: lfirst = .true. !! Flag to indicate that this is the first call real(DP) :: dth !! Half step size select type(system) class is (helio_nbody_system) associate(tp => self, cb => system%cb, pl => system%pl, xbeg => system%xbeg, xend => system%xend, ptb => system%ptb, pte => system%pte) dth = 0.5_DP * dt - if (lfirst) then + if (tp%lfirst) then call tp%vh2vb(vbcb = -ptb) - lfirst = .false. + tp%lfirst = .false. end if call tp%lindrift(system, dth, ptb) call tp%get_accel(system, param, t, xbeg) diff --git a/src/main/swiftest_driver.f90 b/src/main/swiftest_driver.f90 index bce2fd38c..4ed7cf3fe 100644 --- a/src/main/swiftest_driver.f90 +++ b/src/main/swiftest_driver.f90 @@ -14,7 +14,6 @@ program swiftest_driver integer(I4B) :: integrator !! Integrator type code (see swiftest_globals for symbolic names) character(len=:),allocatable :: param_file_name !! Name of the file containing user-defined parameters integer(I4B) :: ierr !! I/O error code - logical :: lfirst !! Flag indicating that this is the first time through the main loop integer(I8B) :: iloop !! Loop counter integer(I8B) :: idump !! Dump cadence counter integer(I8B) :: iout !! Output cadence counter @@ -42,7 +41,6 @@ program swiftest_driver istep_out => param%istep_out, & istep_dump => param%istep_dump) call nbody_system%initialize(param) - lfirst = .true. t = t0 iloop = 0 iout = istep_out diff --git a/src/setup/setup.f90 b/src/setup/setup.f90 index e1603b966..a50f57254 100644 --- a/src/setup/setup.f90 +++ b/src/setup/setup.f90 @@ -69,6 +69,7 @@ module subroutine setup_body(self,n) self%nbody = n if (n <= 0) return + self%lfirst = .true. !write(*,*) 'Allocating the basic Swiftest particle' allocate(self%name(n)) From 20dac504e78d5dbe41209e3ad6aeaacae8a4c4f6 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 7 Jul 2021 14:47:49 -0400 Subject: [PATCH 13/28] Cleaned up code a bit. --- src/helio/helio_getacch.f90 | 13 ++++--------- src/whm/whm_step.f90 | 2 +- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/helio/helio_getacch.f90 b/src/helio/helio_getacch.f90 index 2daad2756..638583df1 100644 --- a/src/helio/helio_getacch.f90 +++ b/src/helio/helio_getacch.f90 @@ -15,14 +15,8 @@ module subroutine helio_getacch_pl(self, system, param, t) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters of real(DP), intent(in) :: t !! Current simulation time ! Internals - logical, save :: lmalloc = .true. - integer(I4B) :: i - real(DP) :: r2 - real(DP), dimension(:), allocatable, save :: irh - real(DP), dimension(:, :), allocatable, save :: xh_loc, aobl associate(cb => system%cb, pl => self, npl => self%nbody) - pl%ahi(:,:) = 0.0_DP call helio_getacch_int_pl(pl, t) pl%ah(:,:) = pl%ahi(:,:) if (param%loblatecb) call pl%obl_acc(cb) @@ -53,10 +47,9 @@ module subroutine helio_getacch_tp(self, system, param, t, xhp) real(DP) :: r2, mu real(DP), dimension(:), allocatable, save :: irh, irht - associate(tp => self, ntp => self%nbody, cb => system%cb, pl => system%pl, npl => system%pl%nbody) + associate(tp => self, ntp => self%nbody, cb => system%cb, npl => system%pl%nbody) select type(pl => system%pl) class is (helio_pl) - self%ahi(:,:) = 0.0_DP call helio_getacch_int_tp(tp, pl, t, xhp) tp%ah(:,:) = tp%ahi(:,:) if (param%loblatecb) call tp%obl_acc(cb) @@ -84,6 +77,7 @@ subroutine helio_getacch_int_pl(pl, t) real(DP), dimension(NDIM) :: dx associate(npl => pl%nbody) + pl%ahi(:,:) = 0.0_DP do i = 1, npl - 1 do j = i + 1, npl dx(:) = pl%xh(:,j) - pl%xh(:,i) @@ -119,9 +113,10 @@ subroutine helio_getacch_int_tp(tp, pl, t, xhp) real(DP), dimension(NDIM) :: dx associate(ntp => tp%nbody, npl => pl%nbody) + tp%ahi(:,:) = 0.0_DP do i = 1, ntp if (tp%status(i) == ACTIVE) then - do j = 2, npl + do j = 1, npl dx(:) = tp%xh(:,i) - xhp(:,j) r2 = dot_product(dx(:), dx(:)) fac = pl%Gmass(j) / (r2 * sqrt(r2)) diff --git a/src/whm/whm_step.f90 b/src/whm/whm_step.f90 index 411e8b59c..2a9de28b8 100644 --- a/src/whm/whm_step.f90 +++ b/src/whm/whm_step.f90 @@ -16,7 +16,7 @@ module subroutine whm_step_system(self, param, t, dt) real(DP), intent(in) :: t !! Current simulation time real(DP), intent(in) :: dt !! Current stepsize - associate(system => self, cb => self%cb, pl => self%pl, tp => self%tp, ntp => self%tp%nbody, npl => self%pl%nbody) + associate(system => self, cb => self%cb, pl => self%pl, tp => self%tp, ntp => self%tp%nbody) call pl%set_rhill(cb) call self%set_beg_end(xbeg = pl%xh) call pl%step(system, param, t, dt) From 693bf2e9d17953ed255242769e1c2aaff9ac1c9d Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 7 Jul 2021 14:56:47 -0400 Subject: [PATCH 14/28] Fixed incorrect index bug --- src/helio/helio_getacch.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helio/helio_getacch.f90 b/src/helio/helio_getacch.f90 index 638583df1..42b1fc918 100644 --- a/src/helio/helio_getacch.f90 +++ b/src/helio/helio_getacch.f90 @@ -86,7 +86,7 @@ subroutine helio_getacch_int_pl(pl, t) faci = pl%Gmass(i) * irij3 facj = pl%Gmass(j) * irij3 pl%ahi(:,i) = pl%ahi(:,i) + facj * dx(:) - pl%ahi(:,i) = pl%ahi(:,j) - faci * dx(:) + pl%ahi(:,j) = pl%ahi(:,j) - faci * dx(:) end do end do end associate From 304bfebcd4c843d6c070c1a10c8f1734472bfc9c Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 7 Jul 2021 18:24:40 -0400 Subject: [PATCH 15/28] Fixed mu in helio drift step to be central body GMass --- src/helio/helio_drift.f90 | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/helio/helio_drift.f90 b/src/helio/helio_drift.f90 index 63f53aa57..aa0e44fd6 100644 --- a/src/helio/helio_drift.f90 +++ b/src/helio/helio_drift.f90 @@ -20,14 +20,16 @@ module subroutine helio_drift_pl(self, system, param, dt) integer(I4B) :: i !! Loop counter real(DP) :: rmag, vmag2, energy integer(I4B), dimension(:),allocatable :: iflag !! Vectorized error code flag - real(DP), dimension(:), allocatable :: dtp + real(DP), dimension(:), allocatable :: dtp, mu - associate(pl => self, npl => self%nbody) + associate(pl => self, npl => self%nbody, cb => system%cb) if (npl == 0) return allocate(iflag(npl)) iflag(:) = 0 allocate(dtp(npl)) + allocate(mu(npl)) + mu = cb%Gmass if (param%lgr) then do i = 1,npl @@ -40,7 +42,7 @@ module subroutine helio_drift_pl(self, system, param, dt) dtp(:) = dt end if - call drift_one(pl%mu(1:npl), pl%xh(1,1:npl), pl%xh(2,1:npl), pl%xh(3,1:npl), & + call drift_one(mu(1:npl), pl%xh(1,1:npl), pl%xh(2,1:npl), pl%xh(3,1:npl), & pl%vb(1,1:npl), pl%vb(2,1:npl), pl%vb(3,1:npl), & dtp(1:npl), iflag(1:npl)) if (any(iflag(1:npl) /= 0)) then @@ -99,14 +101,16 @@ module subroutine helio_drift_tp(self, system, param, dt) ! Internals integer(I4B) :: i !! Loop counter real(DP) :: rmag, vmag2, energy - real(DP), dimension(:), allocatable :: dtp + real(DP), dimension(:), allocatable :: dtp, mu integer(I4B), dimension(:),allocatable :: iflag !! Vectorized error code flag - associate(tp => self, ntp => self%nbody) + associate(tp => self, ntp => self%nbody, cb => system%cb) if (ntp == 0) return allocate(iflag(ntp)) allocate(dtp(ntp)) iflag(:) = 0 + allocate(mu(ntp)) + mu = cb%Gmass if (param%lgr) then do i = 1,ntp @@ -118,7 +122,7 @@ module subroutine helio_drift_tp(self, system, param, dt) else dtp(:) = dt end if - call drift_one(tp%mu(1:ntp), tp%xh(1,1:ntp), tp%xh(2,1:ntp), tp%xh(3,1:ntp), & + call drift_one(mu(1:ntp), tp%xh(1,1:ntp), tp%xh(2,1:ntp), tp%xh(3,1:ntp), & tp%vh(1,1:ntp), tp%vh(2,1:ntp), tp%vh(3,1:ntp), & dtp(1:ntp), iflag(1:ntp)) if (any(iflag(1:ntp) /= 0)) then From ac2b49d64ff73314e010b9017d68029de760d8f7 Mon Sep 17 00:00:00 2001 From: David Minton Date: Wed, 7 Jul 2021 18:30:15 -0400 Subject: [PATCH 16/28] Fixed initial conditions generator in helio example to do binary output files properly --- examples/helio_swifter_comparison/init_cond.py | 4 ++++ examples/helio_swifter_comparison/param.swifter.in | 4 ++-- examples/helio_swifter_comparison/param.swiftest.in | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/examples/helio_swifter_comparison/init_cond.py b/examples/helio_swifter_comparison/init_cond.py index ed46b12cf..c59e7667a 100644 --- a/examples/helio_swifter_comparison/init_cond.py +++ b/examples/helio_swifter_comparison/init_cond.py @@ -46,9 +46,13 @@ 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.save("param.swiftest.in") sim.param['PL_IN'] = "pl.swifter.in" sim.param['TP_IN'] = "tp.swifter.in" sim.save("param.swifter.in", codename="Swifter") +sim.param['BIN_OUT'] = "bin.swifter.dat" +sim.param['ENC_OUT'] = "enc.swifter.dat" diff --git a/examples/helio_swifter_comparison/param.swifter.in b/examples/helio_swifter_comparison/param.swifter.in index 9fb70811d..111baa0b2 100644 --- a/examples/helio_swifter_comparison/param.swifter.in +++ b/examples/helio_swifter_comparison/param.swifter.in @@ -10,8 +10,8 @@ OUT_STAT UNKNOWN IN_TYPE ASCII PL_IN pl.swifter.in TP_IN tp.swifter.in -BIN_OUT bin.dat -ENC_OUT enc.dat +BIN_OUT bin.swiftest.dat +ENC_OUT enc.swiftest.dat CHK_QMIN 0.004650467260962157 CHK_RMIN 0.004650467260962157 CHK_RMAX 1000.0 diff --git a/examples/helio_swifter_comparison/param.swiftest.in b/examples/helio_swifter_comparison/param.swiftest.in index 43e19d180..92f519a27 100644 --- a/examples/helio_swifter_comparison/param.swiftest.in +++ b/examples/helio_swifter_comparison/param.swiftest.in @@ -11,8 +11,8 @@ IN_TYPE ASCII PL_IN pl.swiftest.in TP_IN tp.swiftest.in CB_IN cb.swiftest.in -BIN_OUT bin.dat -ENC_OUT enc.dat +BIN_OUT bin.swiftest.dat +ENC_OUT enc.swiftest.dat CHK_QMIN 0.004650467260962157 CHK_RMIN 0.004650467260962157 CHK_RMAX 1000.0 From 28f7ec2c1c7eaacd374436ad8cd7811ab9f583b8 Mon Sep 17 00:00:00 2001 From: David Minton Date: Wed, 7 Jul 2021 18:31:33 -0400 Subject: [PATCH 17/28] Fixed minor bug --- examples/helio_swifter_comparison/init_cond.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/helio_swifter_comparison/init_cond.py b/examples/helio_swifter_comparison/init_cond.py index c59e7667a..db66e9e9f 100644 --- a/examples/helio_swifter_comparison/init_cond.py +++ b/examples/helio_swifter_comparison/init_cond.py @@ -51,8 +51,8 @@ sim.save("param.swiftest.in") sim.param['PL_IN'] = "pl.swifter.in" sim.param['TP_IN'] = "tp.swifter.in" -sim.save("param.swifter.in", codename="Swifter") sim.param['BIN_OUT'] = "bin.swifter.dat" sim.param['ENC_OUT'] = "enc.swifter.dat" +sim.save("param.swifter.in", codename="Swifter") From 36c3b94ceb39b55abae9e4aa75a8ef37e06b9dcd Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 7 Jul 2021 18:33:23 -0400 Subject: [PATCH 18/28] Fixed initial conditions --- .../helio_swifter_comparison/param.swifter.in | 4 +- .../helio_swifter_comparison/pl.swifter.in | 18 +- .../helio_swifter_comparison/pl.swiftest.in | 16 +- .../swiftest_vs_swifter.ipynb | 269 +++--------------- 4 files changed, 56 insertions(+), 251 deletions(-) diff --git a/examples/helio_swifter_comparison/param.swifter.in b/examples/helio_swifter_comparison/param.swifter.in index 111baa0b2..db893fb78 100644 --- a/examples/helio_swifter_comparison/param.swifter.in +++ b/examples/helio_swifter_comparison/param.swifter.in @@ -10,8 +10,8 @@ OUT_STAT UNKNOWN IN_TYPE ASCII PL_IN pl.swifter.in TP_IN tp.swifter.in -BIN_OUT bin.swiftest.dat -ENC_OUT enc.swiftest.dat +BIN_OUT bin.swifter.dat +ENC_OUT enc.swifter.dat CHK_QMIN 0.004650467260962157 CHK_RMIN 0.004650467260962157 CHK_RMAX 1000.0 diff --git a/examples/helio_swifter_comparison/pl.swifter.in b/examples/helio_swifter_comparison/pl.swifter.in index 86255d0e2..aba56d467 100644 --- a/examples/helio_swifter_comparison/pl.swifter.in +++ b/examples/helio_swifter_comparison/pl.swifter.in @@ -1,36 +1,36 @@ 9 -0 39.47692640889762629 +0 39.476926408897625196 0.0 0.0 0.0 0.0 0.0 0.0 -1 6.553709809565314146e-06 0.0014751254963649629896 +1 6.5537098095653139645e-06 0.0014751254963649625977 1.6306381826061645943e-05 0.359124056979876094 -0.1001978128323056938 -0.041130148620746292965 0.7664364270424182397 10.3592906410849091145 0.7762248217818495593 -2 9.6633133995815381836e-05 0.00675911390647655787 +2 9.663313399581537916e-05 0.0067591139064765566703 4.0453784346544178454e-05 -0.709853246614207567 0.109615461427968005625 0.042466530791895232277 -1.166834223638398553 -7.334297883841826485 -0.033323414543104576783 -3 0.000120026935827952456416 0.010044751446422201634 +3 0.000120026935827952453094 0.010044751446422198828 4.25875607065040958e-05 0.26014404284638581455 -0.9828537227999029069 4.5807148740206238052e-05 5.9724418390973225248 1.5843954077771575533 -9.4205748659356694786e-05 -4 1.2739802010675941808e-05 0.0072467561525263854473 +4 1.2739802010675941456e-05 0.0072467561525263839036 2.265740805092889601e-05 -1.4908630412685239808 0.7412277078494349247 0.052104480532706012874 -2.084278892390818102 -4.1405652065758745757 -0.035644761583621103612 -5 0.03769225108898567778 0.35527141892920680066 +5 0.037692251088985676735 0.35527141892920671874 0.00046732617030490929307 4.0233930071159198505 -3.029555621945668964 -0.077433472926114965684 1.626590141045528945 2.3340622087669935288 -0.046085347207395002237 -6 0.01128589982009127331 0.43765136932522133578 +6 0.011285899820091272997 0.43765136932522125042 0.00038925687730393611812 6.274810893232299236 -7.7275164380757708216 -0.115372736553069593635 1.4703000143673246375 1.2821134193800077011 -0.08078666716402813097 -7 0.001723658947826773068 0.46952007057521305831 +7 0.0017236589478267730203 0.469520070575212966 0.00016953449859497231466 14.871766666738729157 12.9908875920566391216 -0.14444232402201501175 -0.9541590491729433116 1.0172543087941671172 0.016087073469786578863 -8 0.0020336100526728302882 0.78126715446178642547 +8 0.0020336100526728302319 0.78126715446178621345 0.000164587904124493665 29.554624389819270647 -4.648140925388063671 -0.5854586034520335991 0.1723572655485145611 1.1421549698170996955 -0.027459964210413734165 diff --git a/examples/helio_swifter_comparison/pl.swiftest.in b/examples/helio_swifter_comparison/pl.swiftest.in index c1f0be29e..27814f389 100644 --- a/examples/helio_swifter_comparison/pl.swiftest.in +++ b/examples/helio_swifter_comparison/pl.swiftest.in @@ -1,33 +1,33 @@ 8 -1 6.553709809565314146e-06 +1 6.5537098095653139645e-06 1.6306381826061645943e-05 0.359124056979876094 -0.1001978128323056938 -0.041130148620746292965 0.7664364270424182397 10.3592906410849091145 0.7762248217818495593 -2 9.6633133995815381836e-05 +2 9.663313399581537916e-05 4.0453784346544178454e-05 -0.709853246614207567 0.109615461427968005625 0.042466530791895232277 -1.166834223638398553 -7.334297883841826485 -0.033323414543104576783 -3 0.000120026935827952456416 +3 0.000120026935827952453094 4.25875607065040958e-05 0.26014404284638581455 -0.9828537227999029069 4.5807148740206238052e-05 5.9724418390973225248 1.5843954077771575533 -9.4205748659356694786e-05 -4 1.2739802010675941808e-05 +4 1.2739802010675941456e-05 2.265740805092889601e-05 -1.4908630412685239808 0.7412277078494349247 0.052104480532706012874 -2.084278892390818102 -4.1405652065758745757 -0.035644761583621103612 -5 0.03769225108898567778 +5 0.037692251088985676735 0.00046732617030490929307 4.0233930071159198505 -3.029555621945668964 -0.077433472926114965684 1.626590141045528945 2.3340622087669935288 -0.046085347207395002237 -6 0.01128589982009127331 +6 0.011285899820091272997 0.00038925687730393611812 6.274810893232299236 -7.7275164380757708216 -0.115372736553069593635 1.4703000143673246375 1.2821134193800077011 -0.08078666716402813097 -7 0.001723658947826773068 +7 0.0017236589478267730203 0.00016953449859497231466 14.871766666738729157 12.9908875920566391216 -0.14444232402201501175 -0.9541590491729433116 1.0172543087941671172 0.016087073469786578863 -8 0.0020336100526728302882 +8 0.0020336100526728302319 0.000164587904124493665 29.554624389819270647 -4.648140925388063671 -0.5854586034520335991 0.1723572655485145611 1.1421549698170996955 -0.027459964210413734165 diff --git a/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb b/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb index 6ad396b99..6e6f73783 100644 --- a/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb +++ b/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb @@ -20,11 +20,26 @@ "name": "stdout", "output_type": "stream", "text": [ - "Reading Swifter file param.swifter.in\n", - "Reading in time 1.000e+00\n", - "Creating Dataset\n", - "Successfully converted 1462 output frames.\n", - "Swifter simulation data stored as xarray DataSet .ds\n" + "Reading Swifter file param.swifter.in\n" + ] + }, + { + "ename": "ValueError", + "evalue": "must supply at least one object to concatenate", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mStopIteration\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/xarray/core/concat.py\u001b[0m in \u001b[0;36mconcat\u001b[0;34m(objs, dim, data_vars, coords, compat, positions, fill_value, join, combine_attrs)\u001b[0m\n\u001b[1;32m 219\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--> 220\u001b[0;31m \u001b[0mfirst_obj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mobjs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mutils\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpeek_at\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobjs\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 221\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mStopIteration\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/utils.py\u001b[0m in \u001b[0;36mpeek_at\u001b[0;34m(iterable)\u001b[0m\n\u001b[1;32m 192\u001b[0m \u001b[0mgen\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0miter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0miterable\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 193\u001b[0;31m \u001b[0mpeek\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnext\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgen\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 194\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mpeek\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mitertools\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mchain\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mpeek\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgen\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mStopIteration\u001b[0m: ", + "\nDuring handling of the above exception, another exception occurred:\n", + "\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[0mswiftersim\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.swifter.in\"\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----> 2\u001b[0;31m \u001b[0mswiftersim\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 137\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 138\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--> 139\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[0mswifter2xr\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 140\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Swifter 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 141\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\"Swift\"\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;36mswifter2xr\u001b[0;34m(param)\u001b[0m\n\u001b[1;32m 568\u001b[0m \u001b[0msys\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstdout\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mflush\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 569\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 570\u001b[0;31m \u001b[0mplda\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mxr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdim\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'time'\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 571\u001b[0m \u001b[0mtpda\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mxr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtp\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdim\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'time'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 572\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/concat.py\u001b[0m in \u001b[0;36mconcat\u001b[0;34m(objs, dim, data_vars, coords, compat, positions, fill_value, join, combine_attrs)\u001b[0m\n\u001b[1;32m 220\u001b[0m \u001b[0mfirst_obj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mobjs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mutils\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpeek_at\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobjs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 221\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 222\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"must supply at least one object to concatenate\"\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 223\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 224\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcompat\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32min\u001b[0m \u001b[0m_VALID_COMPAT\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: must supply at least one object to concatenate" ] } ], @@ -35,21 +50,9 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reading Swiftest file param.swiftest.in\n", - "Reading in time 1.001e+00\n", - "Creating Dataset\n", - "Successfully converted 1463 output frames.\n", - "Swiftest simulation data stored as xarray DataSet .ds\n" - ] - } - ], + "outputs": [], "source": [ "swiftestsim = swiftest.Simulation(param_file=\"param.swiftest.in\")\n", "swiftestsim.bin2xr()" @@ -57,7 +60,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -66,7 +69,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -75,7 +78,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -85,252 +88,54 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ]" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "swiftdiff['dr'].plot.line(x=\"time (y)\")" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "swiftdiff['dv'].sel(id=2).plot.line(x=\"time (y)\")" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ]" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "swiftdiff['pz'].plot.line(x=\"time (y)\")" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ]" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "swiftdiff['vx'].plot.line(x=\"time (y)\")" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ]" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "swiftdiff['vy'].plot.line(x=\"time (y)\")" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ]" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "swiftdiff['vz'].plot.line(x=\"time (y)\")" ] From 652f920379f27d25f9e692afc41278258370469f Mon Sep 17 00:00:00 2001 From: David Minton Date: Wed, 7 Jul 2021 19:39:33 -0400 Subject: [PATCH 19/28] Updated initial conditions generator for helio comparison --- examples/helio_swifter_comparison/init_cond.py | 3 ++- examples/helio_swifter_comparison/param.swifter.in | 6 +++--- examples/helio_swifter_comparison/param.swiftest.in | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/examples/helio_swifter_comparison/init_cond.py b/examples/helio_swifter_comparison/init_cond.py index db66e9e9f..7e45bb4bb 100644 --- a/examples/helio_swifter_comparison/init_cond.py +++ b/examples/helio_swifter_comparison/init_cond.py @@ -21,7 +21,8 @@ sim.param['CHK_EJECT'] = 1000.0 sim.param['ISTEP_OUT'] = 1 sim.param['ISTEP_DUMP'] = 1 - +sim.param['OUT_FORM'] = "XV" +sim.param['OUT_STAT'] = "UNKNOWN" sim.param['GR'] = 'NO' bodyid = { diff --git a/examples/helio_swifter_comparison/param.swifter.in b/examples/helio_swifter_comparison/param.swifter.in index 111baa0b2..5cf0cb8b9 100644 --- a/examples/helio_swifter_comparison/param.swifter.in +++ b/examples/helio_swifter_comparison/param.swifter.in @@ -4,14 +4,14 @@ TSTOP 1.0 DT 0.0006844626967830253 ISTEP_OUT 1 ISTEP_DUMP 1 -OUT_FORM EL +OUT_FORM XV OUT_TYPE REAL8 OUT_STAT UNKNOWN IN_TYPE ASCII PL_IN pl.swifter.in TP_IN tp.swifter.in -BIN_OUT bin.swiftest.dat -ENC_OUT enc.swiftest.dat +BIN_OUT bin.swifter.dat +ENC_OUT enc.swifter.dat CHK_QMIN 0.004650467260962157 CHK_RMIN 0.004650467260962157 CHK_RMAX 1000.0 diff --git a/examples/helio_swifter_comparison/param.swiftest.in b/examples/helio_swifter_comparison/param.swiftest.in index 92f519a27..73818e198 100644 --- a/examples/helio_swifter_comparison/param.swiftest.in +++ b/examples/helio_swifter_comparison/param.swiftest.in @@ -4,9 +4,9 @@ TSTOP 1.0 DT 0.0006844626967830253 ISTEP_OUT 1 ISTEP_DUMP 1 -OUT_FORM EL +OUT_FORM XV OUT_TYPE REAL8 -OUT_STAT REPLACE +OUT_STAT UNKNOWN IN_TYPE ASCII PL_IN pl.swiftest.in TP_IN tp.swiftest.in From 7d421937ca76a63d7b49ac85b0b4f0e648e47a4f Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 8 Jul 2021 07:50:00 -0400 Subject: [PATCH 20/28] Moved set_beg_end method to swiftest_pl structure for better readability. Fixed h2b method. --- .../swiftest_vs_swifter.ipynb | 169 +++++++++++++----- src/helio/helio_step.f90 | 10 +- src/modules/rmvs_classes.f90 | 7 - src/modules/swiftest_classes.f90 | 49 ++--- src/modules/whm_classes.f90 | 10 -- src/rmvs/rmvs_encounter_check.f90 | 6 +- src/rmvs/rmvs_setup.f90 | 28 --- src/rmvs/rmvs_step.f90 | 12 +- src/util/util_coord.f90 | 24 ++- src/util/util_set_beg_end.f90 | 30 ++++ src/whm/whm_setup.f90 | 23 --- src/whm/whm_step.f90 | 11 +- 12 files changed, 211 insertions(+), 168 deletions(-) create mode 100644 src/util/util_set_beg_end.f90 diff --git a/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb b/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb index 6e6f73783..5538aa1c6 100644 --- a/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb +++ b/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb @@ -20,26 +20,11 @@ "name": "stdout", "output_type": "stream", "text": [ - "Reading Swifter file param.swifter.in\n" - ] - }, - { - "ename": "ValueError", - "evalue": "must supply at least one object to concatenate", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mStopIteration\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/xarray/core/concat.py\u001b[0m in \u001b[0;36mconcat\u001b[0;34m(objs, dim, data_vars, coords, compat, positions, fill_value, join, combine_attrs)\u001b[0m\n\u001b[1;32m 219\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--> 220\u001b[0;31m \u001b[0mfirst_obj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mobjs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mutils\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpeek_at\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobjs\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 221\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mStopIteration\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/utils.py\u001b[0m in \u001b[0;36mpeek_at\u001b[0;34m(iterable)\u001b[0m\n\u001b[1;32m 192\u001b[0m \u001b[0mgen\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0miter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0miterable\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 193\u001b[0;31m \u001b[0mpeek\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnext\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgen\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 194\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mpeek\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mitertools\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mchain\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mpeek\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgen\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mStopIteration\u001b[0m: ", - "\nDuring handling of the above exception, another exception occurred:\n", - "\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[0mswiftersim\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.swifter.in\"\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----> 2\u001b[0;31m \u001b[0mswiftersim\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 137\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 138\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--> 139\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[0mswifter2xr\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 140\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Swifter 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 141\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\"Swift\"\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;36mswifter2xr\u001b[0;34m(param)\u001b[0m\n\u001b[1;32m 568\u001b[0m \u001b[0msys\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstdout\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mflush\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 569\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 570\u001b[0;31m \u001b[0mplda\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mxr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdim\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'time'\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 571\u001b[0m \u001b[0mtpda\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mxr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtp\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdim\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'time'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 572\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/concat.py\u001b[0m in \u001b[0;36mconcat\u001b[0;34m(objs, dim, data_vars, coords, compat, positions, fill_value, join, combine_attrs)\u001b[0m\n\u001b[1;32m 220\u001b[0m \u001b[0mfirst_obj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mobjs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mutils\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpeek_at\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobjs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 221\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 222\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"must supply at least one object to concatenate\"\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 223\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 224\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcompat\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32min\u001b[0m \u001b[0m_VALID_COMPAT\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: must supply at least one object to concatenate" + "Reading Swifter file param.swifter.in\n", + "Reading in time 1.000e+00\n", + "Creating Dataset\n", + "Successfully converted 1462 output frames.\n", + "Swifter simulation data stored as xarray DataSet .ds\n" ] } ], @@ -50,9 +35,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading Swiftest file param.swiftest.in\n", + "Reading in time 1.001e+00\n", + "Creating Dataset\n", + "Successfully converted 1463 output frames.\n", + "Swiftest simulation data stored as xarray DataSet .ds\n" + ] + } + ], "source": [ "swiftestsim = swiftest.Simulation(param_file=\"param.swiftest.in\")\n", "swiftestsim.bin2xr()" @@ -60,7 +57,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -69,7 +66,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -78,7 +75,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -88,56 +85,132 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ - "swiftdiff['dr'].plot.line(x=\"time (y)\")" + "pldiff = swiftdiff.where(np.invert(np.isnan(swiftdiff['Mass'])), drop=True)\n", + "tpdiff = swiftdiff.where(np.isnan(swiftdiff['Mass']), drop=True)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ - "swiftdiff['dv'].sel(id=2).plot.line(x=\"time (y)\")" + "pldiff['dr'].plot.line(x=\"time (y)\")\n", + "print()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, - "outputs": [], - "source": [ - "swiftdiff['pz'].plot.line(x=\"time (y)\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ - "swiftdiff['vx'].plot.line(x=\"time (y)\")" + "tpdiff['dr'].plot.line(x=\"time (y)\")\n", + "print()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ - "swiftdiff['vy'].plot.line(x=\"time (y)\")" + "pldiff['dv'].plot.line(x=\"time (y)\")\n", + "print()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAEGCAYAAABvtY4XAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABHXklEQVR4nO3dd3hVxdbA4d+k90Z6QgghhN4RpCuoiKCCUhXFiv3aEXsvKLarolIFpQnSRQRFOtJBkCKkkk56Lydnvj9O9EMvaMDsc1LW+zw+ctqeNUlY7Mxee43SWiOEEKLhsbN1AEIIIYwhCV4IIRooSfBCCNFASYIXQogGShK8EEI0UA62DuBs/v7+OjIy0tZhCCFEvbFv374srXXAuV6rUwk+MjKSvXv32joMIYSoN5RSied7TZZohBCigZIEL4QQDZQkeCGEaKDq1Br8uVRWVpKcnExZWZmtQ6lVLi4uhIeH4+joaOtQhBANlGEJXinVClh81lNRwAta6w8u5DjJycl4enoSGRmJUqo2Q7QZrTXZ2dkkJyfTvHlzW4cjhGigDEvwWusTQGcApZQ9kAIsv9DjlJWVNajkDqCUokmTJpw5c8bWoQghGjBrrcEPAmK11uct5/k7DSm5/64hzkkIUbdYK8GPBRae6wWl1ESl1F6l1F45oxVCNCbaZKJw40ayZsww5PiGJ3illBNwHbDkXK9rradrrbtrrbsHBJzzZixD9e7d+5zP33bbbSxdutTK0QghGoOK5BQyP/yQUwMHkXz/A+QtXIS5oqLWx7FGFc0QYL/WOsMKY12wHTt22DoEIUQjoCsrKfzpJ/K+XkLx9u0AuPfvR/CLL+AxYADKofbTsTUS/DjOszxTF3h4eFBUVITWmoceeoiNGzfSvHlzZKcrIURtqExJIXfx1+QtW0ZVVhYOQUH4338/PjfegGNoqKFjG5rglVJuwJXAPUaOUxuWL1/OiRMnOHz4MBkZGbRt25Y77rjD1mEJIeohbTZTvH0HuQsWULR5MwAeAwbgM3oUHv36GXK2fi6GjqK1LgGaGDlGbdmyZQvjxo3D3t6e0NBQBg4caOuQhBD1TFV+PnnLl5O3cBEViYnY+/nR5O678R0z2vCz9XOp83eyWpOULgohLkbZsWPkLlhA/uo16LIyXLt0IfTBB/AcPBg7JyebxSW9aKr179+fRYsWUVVVRVpaGj/99JOtQxJC1GG6ooL81WtIGHcT8SNuIH/1GryvHUbzZd8QuXAB3tdea9PkDnIG/4cRI0awceNGOnToQExMDAMGDLB1SEKIOsiUm0ve4q/JnT8f05kzODaLIHDyU/iMGIG9t7etw/uTRp/gi4qKAMvyzMcff2zjaIQQdVV5XBw5c+eRv3IluqwM9969CXn9Ndz79kXZ1c3FkEaf4IUQ4ny01hTv2EHO3LkUb9mKcnLC67pr8bv1VlxiYmwd3j+SBC+EEH9hLi+nYPVqcubOo/zkSez9/fF/6EF8x47FoUm9KAwEJMELIcQfTLm55M5fQO6CBVTl5ODcqhUhb7yB17ChNr9gejEkwQshGr3KlBSyv5hL3tKl6NJSPAYMwO/223Dr2bNel09LghdCNFplJ34je9ZMCr5dC0rhPWwYTe68A+eWLW0dWq2QBC+EaFS01pTu3UvWzJkUb96CcnPDb/x4/G6bgGNIiK3Dq1V1s7anjrnjjjsIDAykffv2fzyXk5PDlVdeScuWLbnyyivJzc0FIDs7m8svvxwPDw8efPBBW4UshPgLbTZT+MMPJI4dR+Itt1L2y2H8//MQLTf+SNDTkxtccgdJ8DVy2223sW7duj8999ZbbzFo0CBOnjzJoEGDeOuttwDLZtqvvvoqU6dOtUWoQoi/0CYT+StXEjfsWpIffAhTVhZBzz9H9MYfCbj/fux9fGwdomEkwddA//798fPz+9NzK1euZMKECQBMmDCBFStWAODu7k7fvn1xcXGxdphCiLPoigryli4l9pqhpD41GeXgQOjUqbT4fh1+N9+MnaurrUM0XL1ag3959a8cTS2o1WO2DfXixWvbXfDnMjIyCKn+lS4kJITMzMxajUsIcXHMFRXkf/MNWTNmYEpNw6VtW4I+/giPgQPr7B2nRqlXCV4IIc7HXFZG3tdLyJ41C1NGBq6dOhHy4ou49+9fr0sd/416leAv5kzbKEFBQaSlpRESEkJaWhqBgYG2DkmIRslcXEzuosVkz5lDVVYWrt27EfrmG7j16tVoE/vvGtfvK7XouuuuY+7cuQDMnTuX66+/3sYRCdG4mEtKyJoxg1ODriDznXdwbhlNxLy5RH71Fe69ezf65A717AzeVsaNG8emTZvIysoiPDycl19+mcmTJzN69GhmzZpFREQES5Ys+eP9kZGRFBQUUFFRwYoVK1i/fj1t27a14QyEaDjMZWXkLlpE9oyZVGVn496vH/7334dbly62Dq3OkQRfAwsXnnvP8B9//PGczyckJBgYjRCNk7migrwlS8j+fDqmzEzcLr2UgI8+wq2rJPbzMXrTbR9gJtAe0MAdWuudRo4phGhYdGUleStWkPXpp5hS03Dt1o3Qd97BvWcPW4dW5xl9Bv8hsE5rPVIp5QS4GTyeEKKB0FVV5K9eTda0T6lMSsKlY0dCXnkV9z6yvl5ThiV4pZQX0B+4DUBrXQFUGDWeEKJh0GYzhevWcebjT6iIi8O5TRvCp03D4/LLJLFfICPP4KOAM8AcpVQnYB/wsNa6+Ow3KaUmAhMBIiIiDAxHCFGXaa0p3r6DzPfepfzoMZxbRhP24Yd4XnlFo7tBqbYY+VVzALoCn2qtuwDFwOS/vklrPV1r3V1r3T0gIMDAcIQQdVXp4cMk3X4Hp++6C3N+AaFvT6H5ihV4Db5Kkvu/YOQZfDKQrLXeVf14KedI8EKIxqs8Pp4zH3xI4fffY+/rS9Azz+Azdky93D2pLjLsn0atdTpwWinVqvqpQcBRo8Yz0oW0C96wYQPdunWjQ4cOdOvWjY0bN9oqbCHqrMrMTNJefIm4YddStHUr/vffT4sN6/G79RZJ7rXI6N99HgLmK6V+AToDbxg8niEupF2wv78/q1ev5vDhw8ydO5dbbrnFFiELUSdVFRSQ+d77xF41mLxly/AdO5bo9d8T8J+HsPfwsHV4DY6hZZJa64NAdyPHsIb+/fv/z81LK1euZNOmTYClXfBll13GlClT6HLW3XTt2rWjrKyM8vJynJ2drRixEHWLuaKC3PkLyP7sM6ry8/EaNoyAh/+DU9Omtg6tQatfd7J+NxnSD9fuMYM7wJC3LvhjNWkX/M0339ClSxdJ7qLR0lpT+P33ZE59l8rkZNz79CHw8cdwkdYdVlG/Enw98uuvv/LUU0+xfv16W4cihE2UHjxIxpS3KT1wAOeYGJrOmolHnz62DqtRqV8J/iLOtI3yd+2Ck5OTGTFiBPPmzaNFixY2jFII66tITubMe+9RsPY77AP8CXntVbxHjEDZ29s6tEZHCkwv0vnaBefl5TF06FDefPNN+sjZimhEqgoLyZw6lbgh11C48Sf877+P6HXr8Bk5UpK7jUiCr4Fx48bRq1cvTpw4QXh4OLNmzWLy5Mls2LCBli1bsmHDBiZPtpT4f/zxx5w6dYpXX32Vzp0707lzZ9nOTzRourKSnPnzib1qMNmzZuM1dCgt1n1HwH/+g527u63Da9SU1trWMfyhe/fueu/evX967tixY7Rp08ZGERmrIc9NNHxaa4o2bSLz7XeoiI/HrWdPgp6aJBdQrUwptU9rfc5qxfq1Bi+EqBPKY2PJeONNirdvxykykvBpn+Bx+eXSDKyOkQQvhKixqoICsj6ZRs78+di5uhL09GR8b7oJ5eho69DEOUiCF0L8I11VRd6yZZx5/wOqcnPxGTmSgEcfwcHPz9ahib8hCV4I8bdK9u8n47XXKTt6FNeuXQmaMR3Xdu1sHZaoAUnwQohzqszIIPOdqRSsWYNDUBChU6fiNfQaWWevRyTBCyH+xFxeTs6cOWR9Ph2qqmhy37343303dm6y42Z9I3XwNXAh7YJ37979R/17p06dWL58ua3CFuKCFW78ibhh13Lmgw/x6NuXqLXfEvjww5Lc6ylJ8DVwIe2C27dvz969ezl48CDr1q3jnnvuwWQy2SJsIWqsIjmZ0/fdT/L996OcnYiYM5vwj/6LU3i4rUMT/4Ik+Bro378/fn+pFli5ciUTJkwALO2CV6xYAYCbmxsODpaVr7KyMlmvFHWauaKCrE8/JW7oMIp37SLwySeIWr4c9169bB2aqAX1ag1+yu4pHM85XqvHbO3Xmqd6PHXBn/u7dsG7du3ijjvuIDExkS+//PKPhC9EXVK0bTsZr75KRWIinoMHE/T0ZByDg20dlqhFknkM0LNnT3799VeOHTvGhAkTGDJkCC4uLrYOSwgAKtPTyXjzLQq//x6nZs1oOnMmHn2lMV5DVK8S/MWcaRvl79oF/65Nmza4u7tz5MgRunev9xtbiXpOV1aSM28eZz6ZBlVVBDz8H/zuvFP2QG3AZA3+Ip2vXXB8fPwfF1UTExM5ceIEkZGRtgpTCACKd+0mbsQIMt+ZinvPnkR9uwb/++6T5N7A1aszeFsZN24cmzZtIisri/DwcF5++WUmT57M6NGjmTVrFhERESxZsgSAbdu28dZbb+Ho6IidnR3Tpk3D39/fxjMQjZUpO5uMKVMoWLUax7AwwqdNw3Pg5bYOS1iJoe2ClVIJQCFQBZjO19Lyd9IuWIjaoc1m8pctI+OdqZhLSmhy5x3433MPdq6utg5N1DJbtwu+XGudZYVxhBBYWvmmvfgipXv34dq9GyEvv4yzbB3ZKMkSjRANhLm8nOzPp5M1YwZ2bm6WvVBvuAFlJ5faGiujE7wG1iulNPC51nr6X9+glJoITASIiIgwOBwhGqbiXbtJf/FFKhIS8Bo2jKDJT+Eg137qjSqzxt6u9m+KNDrB99FapyqlAoENSqnjWustZ7+hOulPB8savMHxCNGgmHJzyXxnKvnLluHYtKnUtNcjWmsOnM5j3o4EEnNKWHZf71q/893QBK+1Tq3+f6ZSajnQA9jy958SQvwTrTUFq1aR8dYUqgoLaXL33fjff59cRK0Hyiqr+PaXNObuTOCX5Hw8nR0Y2T2ciiozzg72tTqWYQleKeUO2GmtC6v/fBXwilHjCdFYVCQmkv7yyxTv2Ilrp04Ev/IKLq1ibB2W+AepeaXM35XIwt2nySmuIDrQg1evb8eIruF4OBuTio08gw8Cllf/yuEALNBar/v7j9RNd9xxB2vWrCEwMJAjR44AlnbBY8aMISEhgcjISL7++mt8fX3/+ExSUhJt27blpZde4oknnrBV6KIB0SYTOXPncua/H6EcHQl+8QV8xoyRi6h1mNaaXfE5zN2RwPqjGWitGdQmiNt6R9K7RRPDmxEa9pOhtY7TWneq/q+d1vp1o8Yy2oW0C/7do48+ypAhQ6wZpmjAyo4fJ2HMWMudqP36EvXtt/iOGyfJvY4qqTCxYFcSQz7cytjpP7MzLpu7+jVn85OXM+PW7vSJ9rdKp1kpk6yB/v37k5CQ8KfnVq5cyaZNmwBLu+DLLruMKVOmALBixQqioqJwd3e3cqSiofm9nW/2jJnYe3sT9sEHeA6+StpQ11FJ2SXM25nA13tPU1Bmok2IF1Nu7MB1ncJwdard9fWaqFcJPv2NNyg/Vrvtgp3btCb4mWcu+HPnaxdcXFzMlClT2LBhA1OnTq3VWEXjUnLgAGnPPU9FbCze119P4OSncDhrGVDUDWazZtupLObuSGDjiUzslOLq9sHc1juS7s18bfqPcb1K8PXBiy++yKOPPoqHh4etQxH1lLmkhMwPPiD3y69wCAmm6YzpePTrZ+uwxF8UllXyzb5k5u1MJC6rGH8PJx66PJqbejYj2LtutAevVwn+Ys60jXK+dsG7du1i6dKlTJo0iby8POzs7HBxceHBBx+0ccSiPijesYO051+gMiUF35tuIuCxx7D3kKW+uiQpu4QvdliWYYrKTXRu6sP7YzpxTYeQWi9z/LfqVYKvS35vFzx58uQ/tQveunXrH+956aWX8PDwkOQu/lFVQQEZU6aQ/80ynCIjafbVl7jJHgJ1htaan+NymL09nh+OZWCvFEM7hnB7n+Z0bupj6/DOSxJ8DVxIu2AhLlThDz+Q/vIrmHJyLDcsPfgAds7Otg5LYLkpadWhVGZvi+d4eiG+bo48cFk0t/RqRpBX3ViG+TuS4Gtg4cKF53z+xx9//NvPvfTSSwZEIxoKU24uGa++SsHa73Bu04bwzz7FtV07W4clgMzCMr76OYn5PyeSXVxBqyBP3rqhA8O7hOHiWLeWYf6OJHghbKBgwwbSX3qZqoICAh7+D03uugvl6GjrsBq9w8n5zNkez+pfUjGZNYNaB3J7n+bG3pRkKoes3yC4Q60fWhK8EFZkys0l4/U3KFizBue2bYiYPVvaDNiYqcrMhqMZzN4ez56EXNyc7Lm5ZzMm9I6kub+BF7grSmD/XNj+IZhN8MhhcKzdXkL1IsFrrRvcjR1G7qQl6qbCjRtJe/FFqnLz8H/oQfwnTpSzdhvKL63k6z2n+WJHAil5pYT7uvLc0DaM6t4Ub1cDvy/lhbBnJuz4GEqyqGzWh/huNxPjUPtr+nU+wbu4uJCdnU2TJsb3bbAWrTXZ2dm4uNT9izTi36vKzyfjjTfIX7kK59atiZg+HRfZqtFm4s4U8cWOBJbuS6akoooezf14flhbrmwbZEhP9j+U5sKu6bDrUyjNpTzqMpZF92B26iYqj81gXdsbcanlJF/nE3x4eDjJycmcOXPG1qHUKhcXF8LDw20dhjBY4aZNpD//AqacHPzvvx//e+9BOTnZOqxGR2vL3aazt8Xz04kzONnbcW2nUG7vE0n7MG9jBy86Az9/ArtnQkUhpS0H803zLsxO3sCZk4voEtiFezvdi7N97VdO1fkE7+joSPPmzW0dhhAXpKqggIw33yJ/+XKcW7aUChkbKTdVsfJgKrO2xnMioxB/DyceuaIlN/dsRoCnwaWo+Smw47+wby6Yyihpex1fN23LnKTvyDm5gEuCL+Gtfm9xSfAlhq1O1PkEL0R9U7R1K2nPPY8pK4sm996D//33Yydn7VaVW1zBVz8nMndnIllF5bQO9uTtkR25vnOo8Xeb5sTBtg/g4AJAU9ThRhaFRDEvYS25vx2gV0gv7ul0D92CuhkbB5Lghag1VYWFlrtRl36DU3QLIj/+CNcOtV/6Js4v7kwRs7fHs3RfMmWVZvrHBHB3v+b0tUZ73szjsO09OLwE7Bwp6DyOBYFhfBm/moITO+kX1o97Ot1Dp4BOxsZxFknwQtSC4l27SX16Mqb0DJrcfRf+Dz4od6Naidaa3fE5zNgaz4/HM3C0s2N4l1Du7BtFq2BP4wNIPQhbp8KxNeDoSn6Pu/jStwnz41ZSlLuJy5tezj0d76Gdv/WX6CTBC/EvmMvLOfPe++TMnYtTs2ZELpiPa+fOtg6rUaisMrP2cBqztsXzS3I+vm6OPHR5NON7NSPQ0woVakk/w5apcGoDOHuT1edBvvR0Y1HsSkoyS7iy2ZVM7DiR1n6tjY/lPCTBC3GRyo4eJWXSJCpOxeJ70zgCn3gCOzc3W4fV4BWUVbJodxJfbE8gNb+MKH93Xhvenhu7hhu/qYbWELcJtr4LCVvBrQnp/R/jCxdYGreayrRKBjcbzN0d76alb0tjY6kBSfBCXCBtMpE9cyZnPv4EB19f6dduJadzSpizPYHFe5Iorqji0ig/Xrm+PQNbB2JnZP06WBL7b+tgyzuQsg88Qzh9+VPMsi9mZfwK0HBti2u5s8OdNPNqZmwsF8DwBK+Usgf2Aila62FGjyeEkSoSE0md9BSlhw7hOeRqgl94QXZZMtjB03nM2BrHd4fTUEoxrGMId/WNokO4wfXrAOYqOLoCtr4HGUfAJ4JTVzzLzKosvktcjINyYGTLkdze/nZCPUKNj+cCWeMM/mHgGOBlhbGEMITWmrzFi8mY8jbK0ZHQqVPxHjbU1mE1WFVmzYajGczcGsfexFw8XRy4u18UE3pHEupTu/1azh1AJfzytaUqJvsU+Mdw9KqXmFGWwA+xX+Lq4MqtbW/l1ra3EuAWYHw8F8nQBK+UCgeGAq8Djxk5lhBGqczIJO255yjeuhX33r0JeeN1HIODbR1Wg1RSYWLJ3mRmb48nMbuEcF9XXhjWltGXNMXD2Qrno5VlcPAr2PYh5CdBUAcOXP0ynxceZ/vJ2Xg6enJPx3sY32Y8Pi4+xsfzLxn9FfsAmASct1ZJKTURmAgQERFhcDhCXJiCdetIf/ElzOXlBD33HL43jUPZ2dk6rAYns7CML7YnMH9XEvmllXRu6sOkwa0Z3C4IB3srfL3Li2DfHEsDsKJ0dHh3fu4zkek5+9l7Yha+zr483PVhxrQag6eTFUova4lhCV4pNQzI1FrvU0pddr73aa2nA9MBunfvLi0WRZ1QlZ9P+muvU7B6NS4dOhA6ZQrOUdIyo7adyixi5tY4lu1PodJsZnDbYO7u35xuzfysE0BprqVHzM/ToDQH3bwfmwc8xPTM7Rw+Np1A10AmXTKJG1veiJtj/auQMvIMvg9wnVLqGsAF8FJKfaW1Hm/gmEL8a8U7dpD69DOYsrLwf/BB/O+Rtr61bW9CDp9tjuOHYxk4O9gxqns4d/WLMrb/+tkK02HnJ7B3DlQUUhV9JRtaX8aM1J/47ejnhHmE8UKvF7i+xfU42dffNhOGJXit9dPA0wDVZ/BPSHIXdZm5osJy09IXX+DUvDmRixZKq4Fa9PuF0+lbYtmflIePmyP/GdSSW3s1w9/DSnf95sTB9v9a+sSYK6lsez3fRnVnVtL3JPz6Oc29m/NG3zcY0nwIDnb1v4q8/s9AiFpQfuoUKU88Sfnx4/iMG0vQpEnYuVqhWqMRKKusYtn+FGZsjSM+q5imfq68fF07RnUPx83JSiko/Qhsex9+XQZ2DpR2GsOKsFZ8Eb+G1COf08q3Fe8OeJdBEYOwt6s/e67+E6t8dbXWm4BN1hhLiAuhtSZ3wQIy334HO3d3wqdNw3Pg5bYOq0HIK6ngy52JzN2ZQFZRBR3CvPloXBeGtA+2zoVTsLQT2PoenPwenDwo6DmRRU0CmR+3ipwjm+kU0IlnL32WfmH9GsyGQmeTM3jRaJmyskh99lmKN2/BvV8/Qt94HYeAulvTXF+czilh1rZ4vt57mpKKKgbEBHDPgCh6RVlpVzat4dQPlsSetANc/TjT71G+dHfi67hVFGcU0zesL3d1uIuugV0bZGL/nSR40SgVbd5M6jPPYi4sJOjZZ/Edf3OD/otuDUdS8vl8SxxrD6ehgOs6hzKxfxStg610j+Pvd51uex/SD4NXOEkDn2aOXTEr41dRpasY3Gwwd3a4k1Z+rawTk41JgheNirmsjMy33yF3wQKcY2IInTMbl5gYW4dVb2mt2XIyi+lbYtl+KhsPZwfu6BPJ7X2aW+eOUwBTueWi6fYPITce/GM4dtULzK5IZX3CQuyVPcOjh3N7u9tp6tXUOjHVEZLgRaNRdvw4KU88QcWpWPwmTCDgsUelZ/tFqqwys+aXVKZviedYWgGBns5MHtKacT0i8Ha1UklpeaGlzHHnJ5abk0I7s7fnK8wqPMb2k1/g7ujObe1uY3yb8XW6nYCRJMGLBk+bzeTMnceZ997DzsebpjNn4tG3j63DqpeKyk0s2p3E7G3xpOaX0TLQw3pb4f2uOBt2fQa7p0NZHubm/djc/wFmntnFLydm4ufix8NdH2Z0q9F4OTXuFliS4EWDVpmRSdrTkynesROPQYMIee1V6f54ETILypizI4Gvfk6ksMxEj+Z+vDq8PZe3skKr3t/lJ1taCeyfC5UlVLYayrroS5md+hOnjs0gzCOMZ3s+y/Do4bg4WGHDj3qgRgleKXUIWAws1lrHGhuSELWjYMMG0p97HnNFBcGvvIzPqFFyIfUCncosYsaWOJYfsLQSuLpdMBP7R9Elwor/SGadtGxi/cti0GZKO9zIsvC2zE36jrSjM4j2iebNfm9ydeTVDeLmpNpU06/GdcAY4GullBlLsv9aa51kWGRCXCRzSQkZb75F3pIluLRrR+g770gfmQt0ICmXTzfFsv6opZXA6EvCuatvFJHWaiUAcHq35cLp8W/BwZn8rjezKCCM+fFryD32M50DOvNsz2fpH95f/uE+jxoleK11IvA28LZSqiXwPDAFaDi3fIkGoez4cVIee5yK+Hia3H0XAQ89hHKqv71ErElrzdaTWXy6KZadcdl4uTjw0MBoJvSOtF4rAbMZTq6H7R9A0k5w8SG19/186e7INwnfUZpdSr+wfpYa9qCu1ompHqvx7zNKqUhgNJYz+SosbYCFqBO01uR+NZ/Mt9/G3seHiNmzcO/Vy9Zh1QtVZs26I+l8uvkUR1IKCPJy5tlr2jCuZ4R1erADmCrg8BLY8V84cxy8m3L8sieYQx7fJ61FoRjSfAgT2k1oNDXstaGma/C7AEfga2CU1jrO0KiEuACm3FzSnnmWop9+wmPAAELefAMHPyu1m63Hyk1VLN+fwudbLD1imvu789YNHRjRNcx6FTFlBZaLpjunQWEqOqgdO6+YzJziWH5O/Bo3BzfGtxnP+LbjCXaXTVYu1N8meKXU77swrQZKqv88/Pf1Lq31e8aFJsQ/K/55F6mTJlGVm0vQM8/ge8t4WY/9B0XlJhbuSmLmtjgyCsppH+bFtJu7MrhdMPbWqogpTLeUOu6ZDeX5VEb25ftet/FF1h5OxC7A39WfR7o+wqhWoxp9qeO/8U9n8L9vXdIKuARYCSjgWmCLgXEJ8be0ycSZTz4h+7PPcWrWjKaffYpL27a2DqtOyy4qZ+6OBObuTCS/tJJeUU2YOqoTfaP9rfePYtZJyzLMoUVgNlHceijfNG3LV6mbSDv5FVHeUbzS+xWGRg2t133Y64q/TfBa65cBlFLrga5a68Lqxy8BSwyPTohzqEhOIfWJJyg9eBDvG28g+JlnsHO3YnVHPZOSV8qMLXEs2pNEWaWZq9oGcd9lLaxb6nh6j+XC6fFvwd6JrE6jmN8kkMVJ6yk8eYiugV15tuez9Avvh52SLRFrS02voEQAFWc9rgAiaz0aIf5Bwbp1pD3/AmhN6NSpeA8bauuQ6qyTGYV8ujmWVQdTAbi+cxj3XRZFdKCV9hQ1m+HUBkupY+J2cPEhrtdE5rkoViVtwJRr4opmV3Bbu9voGNDROjE1MjVN8F8Cu5VSywENjADmGhaVEH9hLi0l4403LbXtnToSNnUqTk0bV+OomjqQlMu0TbFsOJqBi6Md4y9txt39owizWvOvCjiy1LJz0plj4BXOgf7/YbY5m00p3+Fs78yI6BHc2u5Wmnk1s05MjVRN6+BfV0p9B/Srfup2rfUB48IS4v+VnThhqW2Pi6PJ3XcT8J+HZI/Uv/i9hn3aplP8HJeDt6sj/xkYzW19muPnbqW17PJC2DfXsoF1QQpVgW3YdPmjzCk6yaHTK/Bx9uHeTvcyttVYmrg2sU5MjVyNi1y11vuB/QbGIsSf/LHb0pS3sfP2ImLWTNx797Z1WHXKuWrYnxvahrE9rFjDXpBqqYjZ+wWU51MS2YeV3UfxVdZekhK+IcwjjKd7PM3w6OG4ObpZJyYBSLMxUUeZcnNJe/Y5ijZuxH1Af0LffFNq289SbrLsc/r55lgSskto7u/OlBs7MLyLFWvY0w9bmn8dWQraTEbrq1kY1IwlaVspiF9GR/+OPNT1Ia6IuEJ6xNiIYV91pZQLllJK5+pxlmqtXzRqPNFwFO/eTeqTkzDl5BD09GR8b71VaturFZWbWLArkZlb48kstEENu9Zw6kfY+RHEbQJHd451HsWX7k58l7IVc9JRBkUM4ta2t9I5sLPx8Yi/ZeQ/q+XAQK11kVLKEdimlPpOa/2zgWOKekxXVZH16WdkTZuGU9OmRC5aiGu7drYOq07ILirnix0JzN2RQEGZid4tmvDuaCvWsJvKLa0Edn4CmUcxewSz9dI7mKez2Z25HbdCN8a2HstNbW6iqadc/K4rDEvwWmsNFFU/dKz+Txs1nqjfKjMySZ00iZJdu/C+/jqCX3hBatuB5NwSZm6N/6OGfXC7IO4dYMUa9pIc2DvbsrlGUQalgW1Z3XciXxYcIyHjB4Lcgni82+PcEHOD3HFaBxm6MKaUsgf2AdHAJ1rrXUaOJ+qnom3bSZ00CXNpKSFvvIHPDSNsHZLN/ZZRyGdn1bAP7xLGvQOsWMOeEwc/fwoHvoLKErKi+rOw67V8nbmbvJR1tGvSjrf7v80Vza7A0U4qmuoqQxO81roK6KyU8gGWK6Xaa62PnP0epdREYCJARESEkeGIOkabTJz570dkT5+Oc8towt5/H+foaFuHZVP7q/uwbziagaujPbf0asZd/axYw356t6WVwLE1YOfAibbX8KW3F2vTd2A6ncjAiIHc0vYWugZ2lesi9YBVLm1rrfOUUpuAq4Ejf3ltOjAdoHv37rKE00hUpqWR8vgTlO7fj8+okQQ98wx2rlZKYnWM1potJ7P49Owa9kEtua13pHVq2M1VlhYCOz6C5N2YXbzZ3n0s8+xK+PnMAVzLXRkZM5LxbcYT4SUnYfWJkVU0AUBldXJ3Ba7AskmIaOQKN20i7anJ6MpKQt95B+9rh9k6JJuoMmu+O5LGp5ti+TX1/2vYx/WIwN0aNewVxXBwgeXCaW48ZT4RfNtrAvNK4onL3k6gayCPdH2EkTEj8Xb2Nj4eUeuM/CkKAeZWr8PbYdnib42B44k6TldUkPn+B+TMmYNzmzaEvfcuzs0b31Z6f61hj7J2DXthOuyeAXtnQWku6WFd+Lr1eJbk/kJe+k+08WvDm/3eZHCzwTjay/p6fWZkFc0vQBejji/ql4rkFFIef4yyQ7/ge9M4Ap96CjtnK20DV0f8tYa9Q5i3dWvYUw9aLpwe+QbMJg7FXMZXvn78cOYA5oxtXN70cm5uczPdg7rL+noDIbeXCcMVrF9P2rPPgdaEffABXlcPtnVIVpVdVM6c7QnM2/n/Nezvje5Mn+gmxidScxWcWGtJ7InbqXR0Z337q5lvX8LhvJN45mZyc5ubGdt6LOGe4cbGIqxOErwwjLmigswpb5M7fz4u7dsT9v57jaoDZHJuCTO2xLF47+k/atjvuyyazk19jB+8rMBS4rjrM8hLJNunKUu738Di4njOFB4i0iuSZ3s+y3UtrpP+MA2YJHhhiIrERFIefYyyo0fxm3ArgY8/jnJqHDv0/JZRyGebYll5KBWFlWvYcxNg1+ew/0uoKORE0258Fd2FtblHqMjeS5/QPrzSdjy9Q3vLxhqNgCR4UesK1q61bMrh4ED4tE/wHDjQ1iFZxf6kXKb9FMsPxyw17BN6RXJXv+aEGl3DrjUk7bRUw5xYS5WyY1NMf75ytWdv3glc84sY0XIEN7W5iSjvKGNjEXWKJHhRa8xlZZZNOb7+GtfOnQl7710cQ0NtHZahtNZs/u0Mn26KZVe8pYb94UEtmWCNGnZTBfy63NJ/Pe0gBa4+LO84hIWmTFJKThHqEMrj3R5nRMsRUubYSEmCF7WiPC6OlEcepfy332hy910E/Oc/DXpTjiqzZu1hSw370bQCgr1crFfDXpwN+2bD7plQlE58QAvmdx3GqsKTlBYcpltQN57oMZnLml4mbXobOfnui38tb8UK0l9+BTsXF5rOmI5Hv37//KF6qtxUxTf7Uvh8SyyJ1TXsb9/Ykeu7hBpfw555zFIN88tizKYytkf1ZH7LjmzPO45j/jGuaX4NN7e5mTZN2hgbh6g3JMGLi2YuLSX91dfIX7YMt+7dCX13Ko5BQbYOyxCFZZUs2JXErG3/X8P+6c1ducroGnazGWI3ws+fQOxG8h1dWRnTm0WqkNMlafiXV/JA5wcYFTNKtsET/0MSvLgo5XFxpDz8COWnTtHkvnsJeOABlEPD+3HKKirni7Nq2PtEW6mGvbwQDi2yVMRkn+SEdwiLOg7i25LTlJaeoktgFx7q/jhXRFwhd5uK82p4fyOF4fLXfEvaCy9g5+xM0xkz8Ojbx9Yh1brTOSXM3GqpYS83mRncNph7L2thfA17dqyljcDB+VSWF7AxvC0L2/dlX3ESziVJDI0aythWY2UZRtSIJHhRY+bycjLefJO8RYtx7drVUiUTHGzrsGrVX2vYR3QJ454BLYgO9DBuULMZ4jZaztZPrifLwYmlLbqzhCIyK/IIU95SDSMuiiR4USMVSUkkP/II5UeP0eSuOwl4+OEGVSWzL9HSh92qNezlhXBwIez+HJ19ikPeQSxs14/1pSmYKpLpE9qHF1qPo29YX+ztrLSRtmhQJMGLf1Swfj1pzzwL9vaET5uG58DLbR1Srfi9hn3aplh2x+fg42apYb+tdyS+RtawZ8datsA7MJ+yyiK+C2vDwrY9OFaajkdlNmNbj2VMqzFEekcaF4NoFCTBi/PSFRVkvvsuOXPn4dKhA2Hvv49TeJitw/rXbFLD/ns1zK7P4NQGUhxdWNy8E8t0AfmmIqKdg3m+0/MMixomvWFErZEEL86pMjWVlEcfo/TQIXzHjydw0pPY1fNeMmWV1X3Y/1LDPrxLGE4OBvVlKSuAQwth1+eYc2L52SeYhW17s7k0BTtTJgMjBjKu9Thp0SsMIQle/I+izZtJnfQU2mQi7IP38br6aluH9K/8XsM+c1s8Z6xVw551yrIMc3AB+aYiVoW14evALiSUZ+OnS7irw12MbjWaYPeGdZFa1C2S4MUftMnEmQ//S/aMGTi3bk34B+/jFBlp67Au2rlq2D8Y05neLQyqYTebIfbH6mWYHzji4sbiZm1YZ86nzFxER88o3rjkcQZHDsbJvn7/NiTqB0nwAoDKjExSH3+ckr178Rk9mqBnnsbOxcXWYV2U0zklzNgax+I9p6moMnN1u2DuHdCCTkbVsJfmWvY23TOL0tw4vmsSzOJWnTlakYMrRQyLvo7RMaOldl1YnSR4QfGOHaQ88STm0lJC356C93XX2Tqki3IivZDPNsey6lAqdspSwz6xv4E17GmHLDclHV5KnKrk65BoVvlFU1hVTgtXX57pci/Doobh6WSFPvBCnIMk+EZMV1WR9dlnZH38CU5RUTSbNxfn6Ghbh3XB9iXmVNewZ+LqaM9tvSO5s69BNeymcvh1BeyZSWXybjZ6erO4eUv2mPJwsKvgyogrGdNqDF0Du8pFU2FzhiV4pVRTYB4QDJiB6VrrD40aT1wYU3Y2qU9OonjHDryvv47gF1/Ezq3+lOdprdlU3Yf99xr2R65oyYReBtWw5yXB3jmwfx7p5bksCWzKsujWZFWVEObizsMxExgRPUIafok6xcgzeBPwuNZ6v1LKE9inlNqgtT5q4JiiBkr27iXlscepys8n+NVX8Bk5st6cbZqqzKw9ks6nm2I5llZAiLcLzw9ry9hLmtZ+DbvZDHE/wZ6ZmH9bxw5XZxYHR7FFu6PR9A+5hNGtRtMntI/caSrqJMMSvNY6DUir/nOhUuoYEAZIgrcRbTaTM3s2me9/gFN4OE2nf45L69a2DqtGyiqr+GZ/MtO3xFlq2APceXtkR4Z3NqCG/ayLprl58Sz3C2RJi1YkVxXj5+zInS3vYmTMSEI9GvZuVaL+s8oavFIqEugC7DrHaxOBiQARERHWCKdRqsrLI3Xy0xRt2oTn1VcT8tqr2HsY2ECrlhSWVTK/ug/7mcJyOoZ789n4rlzZ1oAa9uqLpvrwUg7aV7E4OJL1Ps2o1FV092/Dw63GMChikLTnFfWG4QleKeUBfAM8orUu+OvrWuvpwHSA7t27a6PjaYxKDx0i+dFHMZ3JIui55/C9+aY6vySTVVTOnO3xzNuZSGGZib7R/sbUsJ910TQ/dQ9rvHxY2iySU+ZiPBwdGNXiBka3Gk0Lnxa1N6YQVmJogldKOWJJ7vO11suMHEv8L601uV9+RcY77+AYEEDkgvm4duhg67D+ltVq2Ksvmur98zhUVcAS/xC+j4ykXFfR3rc5L8WMZEjzIdIXRtRrRlbRKGAWcExr/Z5R44hzqyosJO3Z5yhcvx6Pyy8n9K03sfeuu73ET6QX8ummU6z+Je2PGvZ7BrSgRUAtLiOZq+DUD7B3Dvmx61nj7s7S4CBOaTfcHd0YHjWMG1veKDckiQbDyDP4PsAtwGGl1MHq557RWq81cEwBlB09SvIjj1KZkkLgk0/id8ftdXZJZl9iDtN+iuXH45m4OVlq2O/q15wQ71qsYS9MhwNfovfN5UBZJkt9/Vkf0ZRyzHRoEsPLMSO5OvJqOVsXDY6RVTTbgLqZVRoorTV5Xy8h4/XXsff1pdmX83Dr2tXWYf2PP2rYf4pld4JBNexmM8Rvhn1zyP9tLavcXFjaJJA4gvBwdGd41DBGxoyktV/9qCIS4mLInawNhLm4mLSXXqZg9Wrc+/Qh9J23cfDzs3VYf3KuGvYXhrVlbI+muDnV0o9icTYcnI/eN5v9xaks9fVjfdMwKjDT0b8Nr8SMZHDkYDlbF42CJPgGoPzkSZIffoSKhAQCHv4PTe65B2VnUH/zi/DXGvYWAe68M7Ij19dWDbvWkPQz7J1N3vGVrHJ1YqlfAPHelrP1G6KuZWTMSFr5tfr3YwlRj0iCr+fyVqwg/aWXsfPwIGL2LNwvvdTWIf2hoKyS+T9batizisrpFO7N0+O7cVXbIOxqo4a9NA9+WYzeO5u9hfEs9fZlQ3gwlWg6BrTllZZyti4aN0nw9ZS5rIz0114jf+k3uF1yCaHvTsUxMNDWYQGQWVjGnO0JfLUzkcJyE/1a+nPfgM70qo0adq0hdT/snU3Or8tY7WLPUl9/EjyC8HT0YGSLa7mx5Y1yti4EkuDrpfL4eFIeeZTyEydocu89BDz4IMrB9t/KxOxipm+JY8m+ZCqrzFzTPoR7B7SgQ3gtlGeWF8HhJVTtm83OvN9Y5uXNT2EBmNB0CmjPazGjuCryKlwdDOggKUQ9ZfusIC5Iwdq1pD33PMrJiabTP8ejf39bh8TR1AI+2xzLml9ScbCz48Zulj7szf3d//3B04/A3tmk/LqUFc6wwtuH9OBAfJy8GdviWm5oeQMtfVv++3GEaIAkwdcT5ooKMt+aQu6CBbh27kzY++/hGBJis3i01uyOz+HTzbFsOnEGdyd77u4XxR19mxPk9S93giovgiPfULH/CzbmHWeZlxc/B3sDil4hvXg8ZgQDmw6Ube+E+AeS4OuBiuRkUh5+hLJff8Xv9tsJfOxRlKNtGl6ZzZofj2fy6aZT7E/Ko4m7E08ObsX4ns3wdvsXMf2+tr5vLr8dX8FyF8UaLy/yAv0JcQvi3pY3MDx6uHRwFOICSIKv4wp//JHUp58BrQn/+CM8r7jCJnFUVplZdTCVzzbHcjKziHBfV169vh2jujfFxfFf9EIvzYPDSyja9wXflcSz3MuLw0HeOCh7BkYM4saWN9IzpKf0WxfiIkiCr6N0ZSWZ771Pzpw5uLRrR9gH7+PUtKnV4yitqGLRniRmbo0nJa+UVkGefDCmM8M6huBgf5E17FpD0k703i84ELuWZW6OrPfwoNStCdFezZnUahTDoobh6+Jbu5MRopGRBF8HVaank/LoY5QeOIDvTTcROPkp7Jysu96cV1LBvJ2JfLEjgZziCi6J9OXV4e24vFXgxZc6FmfBoYVkHZjL6op0lnl6kRDki5u9C9dEDeWGljfQwb9Dne2bI0R9Iwm+jinaupXUJyehKyoIe+9dvK65xqrjp+WXMmtrPAt2J1FSUcWg1oHce1kLLom8yLYH1T1hTPu+YEfiDyxzd2GzuxsmD186+3fglZhRcjOSEAaRBF9H6Koqznz8MdmffY5zy5aEffgBzs2bW2382DNFfL45luUHUjBruK5TKPcMiKJ1sNfFHbAwHQ58RdKheaww57HS05PMQD/8nLwY3/IGRkSPIMonqnYnIYT4E0nwdYDpzBlSnniSkl278B55I8HPPoudq3Vu2Dl0Oo9PN8Xy/dF0nOztGNcjgrv7RdHU7yLOqKv7rRfvnc36tO2s8HBlv5cLdvjQO6QXT7caxYDwAbLlnRBWIgnexop37Sbl8ccxFxUR8uab+IwYbviYWmu2n8pm2qZT7IjNxsvFgQcui+a2PpH4ezhf+AFzEzEf+Ip9R+azwq6UDe7ulPr7EukeysOtRnFt1LUEuQfV/kSEEH9LEryNaLOZ7OkzOPPf/+LUrBkRs2fhEhNj6JhVZs33v1ra9R5OySfQ05lnrmnNuB4ReLpc4Fl1ZSkc/5bU/bNYmXuElR4epHg74G7XhGuaD2F4zI10CugkF0yFsCFJ8DZgys0lddJTFG/ditfQoYS88jJ27rVwW/95lJuqWL4/hc+3xBGfVUxzf3feuqEDI7qG4exwAfXlWkPaQUr3z+WH2NWsdLZjt4sL2teHnv6deKD1GK5odoX0gxGijpAEb2Ul+w+Q8thjVGVnE/zSi/iMGWPYWW5RuYkFuxKZuTWezMJy2od5Me3mrgxuF4z9hbTrLclBH1rMoV/msqIig+893CjycSPMpQn3tRrN9XKHqRB1kiR4K9Fak/PFXDLffRfHkBCaLVqIa7t2hoyVXVTOFzsSmLsjgYIyE32im/De6M70ib6Adr3mKoj7icx9s1iVvpOVbi4kuDji6urDlRGDGN56DN2CumGn6s7GIkKIPzMswSulZgPDgEytdXujxqkPqgoKSH3mGYp++BHPK68g5PXXsfe6yPLDv3E6p4SZW+NYvPc05SYzg9sGc99lLejU1KfmB8mJp/zAPH469jUr7cvZ4eqC2ceTrj6tuKPtzVwVeRXujsYtJwkhao+RZ/BfAB8D8wwco84rPfIrKY88QmV6OkFPT8b31ltrfUnmeHoBn2+OY9WhVOwUjOhiadcbHehRswNUlKCPruLowVmsKDzJWnc3CjztCXIM4s6YkQyPuZEIr4hajVkIYTzDErzWeotSKtKo49d1WmvyFi0i4403sW/ShGZfzsOtS5daPf6u+Bw+q27X6+Zkz+29I7mzX3NCvGtwkbO6e2PWvll8m7CeFa72nHJywsnbm0Fh/Rneepw0+RKinrP5GrxSaiIwESAiomGcJVYVFZP+4osUfPst7v37ETplCg6+tdM4q8qs2XA0nU83x3HotKVd7xNXxTD+0mb4uNWgX01xFmUH5/PTkS9ZZc6zLMF4u9LBM5Ln297M1VHX4OVU+8tHQgjrs3mC11pPB6YDdO/eXds4nH+t7MRvpDzyCBWJiQQ8+ihN7r4LZffvL0SWVVax/EAKM7bEEZdVTLMmbrw2vD0ju4X/c7veKhPmk+s5cGAGq7N/4Xt3F4pc7Ah2DOTO6OEMazWSKG9pGyBEQ2PzBN+Q5C1bTvorr2Dn6UHEnDm49+zxr4+ZX1rJ/F2JzNmewJnCcjqEefPJTV25un0NSh0zfiVp73RWJ65ntROkODrg6uXJlSF9ua79LVwSfIlUwQjRgEmCrwXm0lLSX32N/GXLcLv0UsKmvoODv/+/OmZ6fhmzt8ezYFcSReUm+scE8OGYKHq1+IdSx+Js8g9+yfpjC1lVlctBF2eUuwOXerXkgfa3MijyKuncKEQjYWSZ5ELgMsBfKZUMvKi1nmXUeLZSHhdPyiOPUH7yJP7334f/Aw+g7C/+wuTJjEI+3xLHyoOWro7DOoYwsX8U7UK9z/+hqkoqT3zHjgMzWJV/jE2uLlQ4KqLcg3kkZhRDW48i2D34omMSQtRPRlbRjDPq2HVFwdq1pD33PMrZmabTp+PRr+9FH2tvgqUi5odjmbg42nFTjwju+oeujjr1EMf3fsaq5J9Y62JHjr09vh7ejIoYyLUdbqOtX1vpBSNEIyZLNBfBXFFB5ltvkbtgIa5duxL23rs4Bl/4GfLvG1h/tjmWfYm5+Lo58vCglkzoHYmf+3kqYorOkHlgDt8eX8IqCjjl5ISjuxOX+bXn2g530DdiAI520o5XCCEJ/oJVJCeT8vAjlP36K3533EHgo4+gHC8soVaYzKw4mML0LXGcyiwizMeVl65ty+hLmuLmdI5viamC0mOr2HhoJquLYtnp4ozZSdHJNYLn29zE4Jgb8Hb+myUcIUSjJAn+AhT++COpk58GpQj/5GM8Bw26sM+XVbJwdxKztsWTUVBOmxAvPhzbmaEdzrGBtdaYU/ezb88nrErbwXoXe0rs7Aj18OOuyCFc1/F2mnk1q8XZCSEaGknwNaArK8l8731y5szBpX17wj54H6fw8Bp/PrOwjDnbE/jq50QKy0z0btGEt0d2on9L//9dIy9M57c9n7EmdhVr7UrJcHDA3c2ZwYHdubbT3XQL6SGljUKIGpEE/w8q09JIefQxSg8exPfmmwl8ahJ2TjW4YxSIO1PEjK1xfLMvBZPZzJD2loqY/2n+VVFC+uFFfHf0K9aUpfKbkyMOjtDbsyWPt7+Vy1oMlR7rQogLJgn+bxRt3Ubqk0+iKyoIe+9dvK65pkafO3g6j8+q9zl1tLdjVPdw7u4XRaT/WV0YzWYKYzfww4HprMn7lT1ODmil6OgexDMxNzK4/Xj8XPwMmpkQojGQBH8O2mTizH8/Inv6dJxjYgj78AOcmzf/+89ozaYTZ/hscyy74nP+2Od0Qu9IAjz/f5/TyvTDbNvzEWvSdrDJESrsFBGuntzXdCBDO99HhE+kwbMTQjQWkuD/ojI9nZTHn6B03z58Ro0i6NlnsHNxOf/7q8ysPpTK55vjOJFRSIi3C88NbcPYHhF4OFu+vLowg4N7PmZN/Fq+V6Xk29vj5+zAyIBuDOtyL+2Du0u9uhCi1kmCP0vRli2kTnoKXVFB6Dvv4H3tsPO/t9zEot1JzN4WT2p+GTFBHrw7qhPXdQ7F0d4OKkqI2zOTb48t4tuKDFIcHXCxh8u9WjGswx30anG11KsLIQwlCZ7qJZkP/0v2jBk4t2pF2Pvv4xx17iWZjAJLRcz8XZaKmB7N/XhtRHsubxWI0pqs377lu0MzWVPwG0edHLDTmks9Qnmg1WgGth8vuyEJIaym0Sf4yrQ0y5LM/v34jBlD0NOTz7kk81tGIdOre8RUmTVD2odwd/8oOjf1oST1AGtWTebbzD3sdASzUrRx8eHJyMEM6XIfAR5BNpiZEKKxa9QJvmjzZlKfmmxZkpk6Fe9hQ//0utaanXHZTN8Sx6YTZ3B1tOemHhHc2TeKUIc8du55k6fWb+Anu3JK7ewIdXLkzuBeDOv6AFEBxmyoLYQQNdUoE7yurOTMhx+SPXMWzq1bE/b+e3+qkjFVmVl7JJ0ZW+I4nJKPv4cTj18Zw81d/Uk6/gVffbuM703Z5Njb42WvGObTnmGdJ9K52eVyE5IQos5odAm+Mi2NlMcep/TAAXzGjiHo6aexc7aUMRaXm1i85zSztsWTkldKlL87bw1vQ0fnbWw4/h43LUskxcEeJ60Z4B7B0LY30a/tWJzsa3bjkxBCWFOjSvCFP/1E2uSn0SbTn25cyiwo44sdllYCBWUmLmnmw+QeGaTnzGbxr8d53cEOe6251MWf+1tcy8DO9+DhIvuWCiHqtkaR4HVlJZkffEDOrNk4t2lD+Pvv4RQZyalMy4XTFQdSqTSbGd0yl0j3tWwvOswzpy2f7eLowTNNB3FV9wdp4hlq24kIIcQFaPAJvjI11bIkc/AgvjeNI2DSJPakFjPjiz38eDyTMKcMxjffRJI6zDq7SsxlihgHRx4J7s2Qbg8S6t/a1lMQQoiL0qATfOHGn0h9+mkwmQh+9122N+3MjJl7iUtJoqff9wxu8St7HctYohThZjvu9OvKNV3vIzq8l61DF0KIf61BJviz2/s6tW7DnglPMP1ILv4HXsHfdz8ZMcXssrOjiRlGebbimo630yF6qLQLEEI0KA0uwVempFiWZA4dIqHv1XwVaY9j0pOYAvI4Zm+Hp1lzlVsEQ9qMpUe7m7G3b3BfAiGEAAxO8Eqpq4EPAXtgptb6LSPHK/zxR5InP0NFRRlrr/Thx07ryXC0w9msGeAUwDXR19Ovyz04OZ1/I2shhGgoDEvwSil74BPgSiAZ2KOUWqW1PlrbY5nLy9n31MN4rNvM6UB4+2Z7snwK6YEnD0dexcDuD+HuHlDbwwohRJ1m5Bl8D+CU1joOQCm1CLgeqNUEn5ZwnMO33UDTdM133RT7+jlxS0Q/ru31KH6+UbU5lBBC1CtGJvgw4PRZj5OBnn99k1JqIjARICIi4oIHCY6IYaePIzv7hDLinpd5LKLHRYYrhBANi5EJ/lwlKfp/ntB6OjAdoHv37v/z+j8OYmfHDSsOXXh0QgjRwBnZGSsZaHrW43Ag1cDxhBBCnMXIBL8HaKmUaq6UcgLGAqsMHE8IIcRZDFui0VqblFIPAt9jKZOcrbX+1ajxhBBC/JmhdfBa67XAWiPHEEIIcW6yO4UQQjRQkuCFEKKBkgQvhBANlCR4IYRooJTWF3xvkWGUUmeAxIv8uD+QVYvh1Acy54avsc0XZM4XqpnW+pzNtupUgv83lFJ7tdbdbR2HNcmcG77GNl+QOdcmWaIRQogGShK8EEI0UA0pwU+3dQA2IHNu+BrbfEHmXGsazBq8EEKIP2tIZ/BCCCHOIgleCCEaqHqV4JVSVyulTiilTimlJp/jdaWU+m/1678opbraIs7aVIM531w911+UUjuUUp1sEWdt+qc5n/W+S5RSVUqpkdaMzwg1mbNS6jKl1EGl1K9Kqc3WjrG21eBn21sptVopdah6zrfbIs7aopSarZTKVEodOc/rtZ+/tNb14j8sLYdjgSjACTgEtP3Le64BvsOym9SlwC5bx22FOfcGfKv/PKQxzPms923E0q10pK3jtsL32QfLfsYR1Y8DbR23Feb8DDCl+s8BQA7gZOvY/8Wc+wNdgSPneb3W81d9OoP/YxNvrXUF8Psm3me7HpinLX4GfJRSIdYOtBb945y11ju01rnVD3/GsnNWfVaT7zPAQ8A3QKY1gzNITeZ8E7BMa50EoLWu7/OuyZw14KmUUoAHlgRvsm6YtUdrvQXLHM6n1vNXfUrw59rEO+wi3lOfXOh87sRyBlCf/eOclVJhwAjgMyvGZaSafJ9jAF+l1Cal1D6l1K1Wi84YNZnzx0AbLFt9HgYe1lqbrROeTdR6/jJ0w49aVpNNvGu00Xc9UuP5KKUux5Lg+xoakfFqMucPgKe01lWWk7t6ryZzdgC6AYMAV2CnUupnrfVvRgdnkJrMeTBwEBgItAA2KKW2aq0LDI7NVmo9f9WnBF+TTbwb2kbfNZqPUqojMBMYorXOtlJsRqnJnLsDi6qTuz9wjVLKpLVeYZUIa19Nf7aztNbFQLFSagvQCaivCb4mc74deEtbFqhPKaXigdbAbuuEaHW1nr/q0xJNTTbxXgXcWn01+lIgX2udZu1Aa9E/zlkpFQEsA26px2dzZ/vHOWutm2utI7XWkcBS4P56nNyhZj/bK4F+SikHpZQb0BM4ZuU4a1NN5pyE5TcWlFJBQCsgzqpRWlet5696cwavz7OJt1Lq3urXP8NSUXENcAoowXIGUG/VcM4vAE2AadVntCZdjzvx1XDODUpN5qy1PqaUWgf8ApiBmVrrc5bb1Qc1/D6/CnyhlDqMZfniKa11vW0jrJRaCFwG+CulkoEXAUcwLn9JqwIhhGig6tMSjRBCiAsgCV4IIRooSfBCCNFASYIXQogGShK8EEI0UJLgRYOklPJRSt1/1uNQpdRSg8YarpR64R/eM1UpNdCI8YU4HymTFA2SUioSWKO1bm+FsXYA1/1djbZSqhkwQ2t9ldHxCPE7OYMXDdVbQIvq/unvKKUif+/DrZS6TSm1orrXeLxS6kGl1GNKqQNKqZ+VUn7V72uhlFpX3dxrq1Kq9V8HUUrFAOVa6yyllGf18RyrX/NSSiUopRy11olAE6VUsBW/BqKRkwQvGqrJQKzWurPW+slzvN4eSwveHsDrQInWuguwE/i9U+N04CGtdTfgCWDaOY7TB9gPoLUuBDYBQ6tfGwt8o7WurH68v/r9QlhFvWlVIEQt+6k6IRcqpfKB1dXPHwY6KqU8sGymsuSsjpXO5zhOCHDmrMczgUnACiy3mt991muZQGhtTUCIfyIJXjRW5Wf92XzWYzOWvxd2QJ7WuvM/HKcU8P79gdZ6e/Vy0ADA/i/9Ylyq3y+EVcgSjWioCgHPi/1wdc/xeKXUKPhjv8xz7Xd7DIj+y3PzgIXAnL88HwPU2wZhov6RBC8apOq++NuVUkeUUu9c5GFuBu5USh0CfuXcWwduAbqoP+88Mh/wxZLkAai+8BoN7L3IWIS4YFImKcS/pJT6EFittf6h+vFI4Hqt9S1nvWcE0FVr/byNwhSNkKzBC/HvvYFlAw6UUh8BQ7D09T6bA/CuleMSjZycwQshRAMla/BCCNFASYIXQogGShK8EEI0UJLghRCigZIEL4QQDdT/AXAywZ3u+fZeAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ - "swiftdiff['vz'].plot.line(x=\"time (y)\")" + "tpdiff['dv'].plot.line(x=\"time (y)\")\n", + "print()" ] }, { diff --git a/src/helio/helio_step.f90 b/src/helio/helio_step.f90 index 6c8da9d54..59997afeb 100644 --- a/src/helio/helio_step.f90 +++ b/src/helio/helio_step.f90 @@ -53,9 +53,9 @@ module subroutine helio_step_pl(self, system, param, t, dt) call pl%lindrift(system, dth, ptb) call pl%get_accel(system, param, t) call pl%kick(dth) - call system%set_beg_end(xbeg = pl%xh) + call pl%set_beg_end(xbeg = pl%xh) call pl%drift(system, param, dt) - call system%set_beg_end(xend = pl%xh) + call pl%set_beg_end(xend = pl%xh) call pl%get_accel(system, param, t + dt) call pl%kick(dth) call pl%lindrift(system, dth, pte) @@ -87,17 +87,17 @@ module subroutine helio_step_tp(self, system, param, t, dt) select type(system) class is (helio_nbody_system) - associate(tp => self, cb => system%cb, pl => system%pl, xbeg => system%xbeg, xend => system%xend, ptb => system%ptb, pte => system%pte) + associate(tp => self, cb => system%cb, pl => system%pl, ptb => system%ptb, pte => system%pte) dth = 0.5_DP * dt if (tp%lfirst) then call tp%vh2vb(vbcb = -ptb) tp%lfirst = .false. end if call tp%lindrift(system, dth, ptb) - call tp%get_accel(system, param, t, xbeg) + call tp%get_accel(system, param, t, pl%xbeg) call tp%kick(dth) call tp%drift(system, param, dt) - call tp%get_accel(system, param, t + dt, xend) + call tp%get_accel(system, param, t + dt, pl%xend) call tp%kick(dth) call tp%lindrift(system, dth, pte) call tp%vb2vh(vbcb = -pte) diff --git a/src/modules/rmvs_classes.f90 b/src/modules/rmvs_classes.f90 index 136bd3f37..905092892 100644 --- a/src/modules/rmvs_classes.f90 +++ b/src/modules/rmvs_classes.f90 @@ -29,7 +29,6 @@ module rmvs_classes !> Replace the abstract procedures with concrete ones procedure, public :: initialize => rmvs_setup_system !! Performs RMVS-specific initilization steps, including generating the close encounter planetocentric structures procedure, public :: step => rmvs_step_system !! Advance the RMVS nbody system forward in time by one step - procedure, public :: set_beg_end => rmvs_setup_set_beg_end !! Sets the beginning and ending values of planet positions. Also adds the end velocity for RMVS. end type rmvs_nbody_system type, private :: rmvs_interp @@ -145,12 +144,6 @@ module subroutine rmvs_setup_pl(self,n) integer, intent(in) :: n !! Number of test particles to allocate end subroutine rmvs_setup_pl - module subroutine rmvs_setup_set_beg_end(self, xbeg, xend, vbeg) - implicit none - class(rmvs_nbody_system), intent(inout) :: self !! RMVS nbody system object - real(DP), dimension(:,:), intent(in), optional :: xbeg, xend, vbeg - end subroutine rmvs_setup_set_beg_end - module subroutine rmvs_setup_system(self, param) use swiftest_classes, only : swiftest_parameters implicit none diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index a1d4d4f78..0094782fd 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -19,8 +19,8 @@ module swiftest_classes setup_set_rhill, setup_tp public :: user_getacch_body public :: util_coord_b2h_pl, util_coord_b2h_tp, util_coord_h2b_pl, util_coord_h2b_tp, util_copy_body, util_copy_cb, util_copy_pl, & - util_copy_tp, util_copy_system, util_fill_body, util_fill_pl, util_fill_tp, util_reverse_status, util_spill_body, & - util_spill_pl, util_spill_tp + util_copy_tp, util_copy_system, util_fill_body, util_fill_pl, util_fill_tp, util_reverse_status, util_set_beg_end, & + util_spill_body, util_spill_pl, util_spill_tp !******************************************************************************************************************************** ! swiftest_parameters class definitions @@ -198,23 +198,27 @@ module swiftest_classes integer(I4B), dimension(:,:), allocatable :: k_eucl !! Index array that converts i, j array indices into k index for use in !! the Euclidean distance matrix real(DP), dimension(:), allocatable :: irij3 !! 1.0_DP / (rji2 * sqrt(rji2)) where rji2 is the square of the Euclidean distance + real(DP), dimension(:,:), allocatable :: xbeg !! Position at beginning of step + real(DP), dimension(:,:), allocatable :: xend !! Position at end of step + real(DP), dimension(:,:), allocatable :: vbeg !! Velocity at beginning of step !! 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_pl and util_spill_pl contains private ! Massive body-specific concrete methods ! These are concrete because they are the same implemenation for all integrators - procedure, public :: discard => discard_pl !! Placeholder method for discarding massive bodies - procedure, public :: eucl_index => eucl_dist_index_plpl !! Sets up the (i, j) -> k indexing used for the single-loop blocking Euclidean distance matrix - procedure, public :: eucl_irij3 => eucl_irij3_plpl !! Parallelized single loop blocking for Euclidean distance matrix calcualtion - procedure, public :: setup => setup_pl !! A base constructor that sets the number of bodies and allocates and initializes all arrays - procedure, public :: set_mu => setup_set_mu_pl !! Method used to construct the vectorized form of the central body mass - procedure, public :: set_rhill => setup_set_rhill !! Calculates the Hill's radii for each body - procedure, public :: h2b => util_coord_h2b_pl !! Convert massive bodies from heliocentric to barycentric coordinates (position and velocity) - procedure, public :: b2h => util_coord_b2h_pl !! Convert massive bodies from barycentric to heliocentric coordinates (position and velocity) - procedure, public :: copy => util_copy_pl !! Copies elements of one object to another. - procedure, public :: fill => util_fill_pl !! "Fills" bodies from one object into another depending on the results of a mask (uses the MERGE intrinsic) - procedure, public :: spill => util_spill_pl !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) + procedure, public :: discard => discard_pl !! Placeholder method for discarding massive bodies + procedure, public :: eucl_index => eucl_dist_index_plpl !! Sets up the (i, j) -> k indexing used for the single-loop blocking Euclidean distance matrix + procedure, public :: eucl_irij3 => eucl_irij3_plpl !! Parallelized single loop blocking for Euclidean distance matrix calcualtion + procedure, public :: setup => setup_pl !! A base constructor that sets the number of bodies and allocates and initializes all arrays + procedure, public :: set_mu => setup_set_mu_pl !! Method used to construct the vectorized form of the central body mass + procedure, public :: set_rhill => setup_set_rhill !! Calculates the Hill's radii for each body + procedure, public :: h2b => util_coord_h2b_pl !! Convert massive bodies from heliocentric to barycentric coordinates (position and velocity) + procedure, public :: b2h => util_coord_b2h_pl !! Convert massive bodies from barycentric to heliocentric coordinates (position and velocity) + procedure, public :: copy => util_copy_pl !! Copies elements of one object to another. + procedure, public :: fill => util_fill_pl !! "Fills" bodies from one object into another depending on the results of a mask (uses the MERGE intrinsic) + procedure, public :: set_beg_end => util_set_beg_end !! Sets the beginning and ending positions of planets. + procedure, public :: spill => util_spill_pl !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) end type swiftest_pl !******************************************************************************************************************************** @@ -263,7 +267,6 @@ module swiftest_classes private !> Each integrator will have its own version of the step procedure(abstract_step_system), public, deferred :: step - procedure(abstract_setup_set_beg_end), public, deferred :: set_beg_end !! Sets the beginning and ending positions of planets. ! Concrete classes that are common to the basic integrator (only test particles considered for discard) procedure, public :: discard => discard_system !! Perform a discard step on the system @@ -312,20 +315,13 @@ subroutine abstract_set_mu(self, cb) class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object end subroutine abstract_set_mu - subroutine abstract_setup_set_beg_end(self, xbeg, xend, vbeg) - import swiftest_nbody_system, DP - class(swiftest_nbody_system), intent(inout) :: self !! WHM nbody system object - real(DP), dimension(:,:), intent(in), optional :: xbeg, xend - real(DP), dimension(:,:), intent(in), optional :: vbeg ! vbeg is an unused variable to keep this method forward compatible with RMVS - end subroutine abstract_setup_set_beg_end - subroutine abstract_step_body(self, system, param, t, dt) import DP, swiftest_body, swiftest_nbody_system, swiftest_parameters implicit none class(swiftest_body), intent(inout) :: self !! Swiftest particle 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) :: t !! Simulation time real(DP), intent(in) :: dt !! Current stepsize end subroutine abstract_step_body @@ -700,7 +696,7 @@ end subroutine util_fill_body module subroutine util_fill_pl(self, inserts, lfill_list) implicit none - class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object class(swiftest_body), intent(inout) :: inserts !! Inserted object logical, dimension(:), intent(in) :: lfill_list !! Logical array of bodies to merge into the keeps end subroutine util_fill_pl @@ -717,6 +713,13 @@ module subroutine util_reverse_status(self) class(swiftest_body), intent(inout) :: self end subroutine util_reverse_status + module subroutine util_set_beg_end(self, xbeg, xend, vbeg) + implicit none + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + real(DP), dimension(:,:), intent(in), optional :: xbeg, xend !! Positions at beginning and end of step + real(DP), dimension(:,:), intent(in), optional :: vbeg !! vbeg is an unused variable to keep this method forward compatible with RMVS + end subroutine util_set_beg_end + module subroutine util_spill_body(self, discards, lspill_list) implicit none class(swiftest_body), intent(inout) :: self !! Swiftest generic body object diff --git a/src/modules/whm_classes.f90 b/src/modules/whm_classes.f90 index 502fa9be3..e15e6d9c7 100644 --- a/src/modules/whm_classes.f90 +++ b/src/modules/whm_classes.f90 @@ -72,14 +72,11 @@ module whm_classes !******************************************************************************************************************************** !> An abstract class for the WHM integrator nbody system type, public, extends(swiftest_nbody_system) :: whm_nbody_system - !> In the WHM integrator, only test particles are discarded - real(DP), dimension(:,:), allocatable :: xbeg, xend !! Positions of massive bodies at beginning and end of a step. Required in order to separate the test particle step from the massive body step contains private !> Replace the abstract procedures with concrete ones procedure, public :: initialize => whm_setup_system !! Performs WHM-specific initilization steps, like calculating the Jacobi masses procedure, public :: step => whm_step_system !! Advance the WHM nbody system forward in time by one step - procedure, public :: set_beg_end => whm_setup_set_beg_end !! Sets the beginning and ending positions of planets. end type whm_nbody_system interface @@ -216,13 +213,6 @@ module subroutine whm_setup_pl(self,n) integer(I4B), intent(in) :: n !! Number of test particles to allocate end subroutine whm_setup_pl - module subroutine whm_setup_set_beg_end(self, xbeg, xend, vbeg) - implicit none - class(whm_nbody_system), intent(inout) :: self !! WHM nbody system object - real(DP), dimension(:,:), intent(in), optional :: xbeg, xend - real(DP), dimension(:,:), intent(in), optional :: vbeg ! vbeg is an unused variable to keep this method forward compatible with RMVS - end subroutine whm_setup_set_beg_end - module subroutine whm_setup_set_ir3j(self) implicit none class(whm_pl), intent(inout) :: self !! WHM massive body object diff --git a/src/rmvs/rmvs_encounter_check.f90 b/src/rmvs/rmvs_encounter_check.f90 index 9719567a9..bead4c21b 100644 --- a/src/rmvs/rmvs_encounter_check.f90 +++ b/src/rmvs/rmvs_encounter_check.f90 @@ -24,14 +24,14 @@ module function rmvs_encounter_check_tp(self, system, dt) result(lencounter) select type(pl => system%pl) class is (rmvs_pl) - associate(tp => self, ntp => self%nbody, npl => pl%nbody, xbeg => system%xbeg, vbeg => system%vbeg, rts => system%rts) + associate(tp => self, ntp => self%nbody, npl => pl%nbody, rts => system%rts) r2crit(:) = (rts * pl%rhill(:))**2 tp%plencP(:) = 0 do j = 1, npl do i = 1, ntp if ((tp%status(i) /= ACTIVE).or.(tp%plencP(i) /= 0)) cycle - xr(:) = tp%xh(:, i) - xbeg(:, j) - vr(:) = tp%vh(:, i) - vbeg(:, j) + xr(:) = tp%xh(:, i) - pl%xbeg(:, j) + vr(:) = tp%vh(:, i) - pl%vbeg(:, j) r2 = dot_product(xr(:), xr(:)) v2 = dot_product(vr(:), vr(:)) vdotr = dot_product(vr(:), xr(:)) diff --git a/src/rmvs/rmvs_setup.f90 b/src/rmvs/rmvs_setup.f90 index c5e126a74..4c0c27ff1 100644 --- a/src/rmvs/rmvs_setup.f90 +++ b/src/rmvs/rmvs_setup.f90 @@ -145,32 +145,4 @@ module subroutine rmvs_setup_tp(self,n) return end subroutine rmvs_setup_tp - - - module subroutine rmvs_setup_set_beg_end(self, xbeg, xend, vbeg) - !! author: David A. Minton - !! - !! Sets one or more of the values of xbeg, xend, and vbeg - implicit none - ! Arguments - class(rmvs_nbody_system), intent(inout) :: self !! RMVS test particle object - real(DP), dimension(:,:), intent(in), optional :: xbeg, xend, vbeg - - if (present(xbeg)) then - if (allocated(self%xbeg)) deallocate(self%xbeg) - allocate(self%xbeg, source=xbeg) - end if - if (present(xend)) then - if (allocated(self%xend)) deallocate(self%xend) - allocate(self%xend, source=xend) - end if - if (present(vbeg)) then - if (allocated(self%vbeg)) deallocate(self%vbeg) - allocate(self%vbeg, source=vbeg) - end if - - return - - end subroutine rmvs_setup_set_beg_end - end submodule s_rmvs_setup diff --git a/src/rmvs/rmvs_step.f90 b/src/rmvs/rmvs_step.f90 index bad3c1b1f..c4535d884 100644 --- a/src/rmvs/rmvs_step.f90 +++ b/src/rmvs/rmvs_step.f90 @@ -30,7 +30,7 @@ module subroutine rmvs_step_system(self, param, t, dt) allocate(xbeg, source=pl%xh) allocate(vbeg, source=pl%vh) call pl%set_rhill(cb) - call system%set_beg_end(xbeg = xbeg, vbeg = vbeg) + call pl%set_beg_end(xbeg = xbeg, vbeg = vbeg) ! ****** Check for close encounters ***** ! system%rts = RHSCALE lencounter = tp%encounter_check(system, dt) @@ -42,11 +42,11 @@ module subroutine rmvs_step_system(self, param, t, dt) call pl%step(system, param, t, dt) pl%outer(NTENC)%x(:,:) = pl%xh(:,:) pl%outer(NTENC)%v(:,:) = pl%vh(:,:) - call system%set_beg_end(xend = pl%xh) + call pl%set_beg_end(xend = pl%xh) call rmvs_interp_out(system, param, dt) call rmvs_step_out(system, param, t, dt) call tp%reverse_status() - call system%set_beg_end(xbeg = xbeg, xend = xend) + call pl%set_beg_end(xbeg = xbeg, xend = xend) tp%lfirst = .true. call tp%step(system, param, t, dt) where (tp%status(:) == INACTIVE) tp%status(:) = ACTIVE @@ -95,7 +95,7 @@ subroutine rmvs_step_out(system, param, t, dt) end where do outer_index = 1, NTENC outer_time = t + (outer_index - 1) * dto - call system%set_beg_end(xbeg = pl%outer(outer_index - 1)%x(:, :), & + 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(:, :)) system%rts = RHPSCALE @@ -167,8 +167,8 @@ subroutine rmvs_step_in(system, param, outer_time, dto) 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(:,:) - call planetocen_system%set_beg_end(xbeg = plenci%inner(inner_index - 1)%x, & - xend = plenci%inner(inner_index)%x) + call plenci%set_beg_end(xbeg = plenci%inner(inner_index - 1)%x, & + xend = plenci%inner(inner_index)%x) call tpenci%step(planetocen_system, param, inner_time, dti) do j = 1, pl%nenc(i) tpenci%xheliocentric(:, j) = tpenci%xh(:, j) + pl%inner(inner_index)%x(:,i) diff --git a/src/util/util_coord.f90 b/src/util/util_coord.f90 index f1c39b203..387fc8f6b 100644 --- a/src/util/util_coord.f90 +++ b/src/util/util_coord.f90 @@ -15,16 +15,22 @@ module subroutine util_coord_h2b_pl(self, cb) ! Internals integer(I4B) :: i real(DP) :: msys + real(DP), dimension(NDIM) :: xtmp, vtmp - associate(npl => self%nbody, xbcb => cb%xb, vbcb => cb%vb, Mcb => cb%Gmass, & - xb => self%xb, xh => self%xh, vb => self%vb, vh => self%vh, Mpl => self%Gmass) - - msys = Mcb + sum(Mpl(1:npl)) - do i = 1, NDIM - xbcb(i) = -sum(Mpl(1:npl) * xh(i, 1:npl)) / Mcb - vbcb(i) = -sum(Mpl(1:npl) * vh(i, 1:npl)) / Mcb - xb(i, 1:npl) = xh(i, 1:npl) + xbcb(i) - vb(i, 1:npl) = vh(i, 1:npl) + vbcb(i) + associate(pl => self, npl => self%nbody) + msys = cb%Gmass + xtmp(:) = 0.0_DP + vtmp(:) = 0.0_DP + do i = 1, npl + msys = msys + pl%Gmass(i) + xtmp(:) = xtmp(:) + pl%Gmass(i) * pl%xh(:,i) + vtmp(:) = vtmp(:) + pl%Gmass(i) * pl%vh(:,i) + end do + cb%xb(:) = -xtmp(:) / msys + cb%vb(:) = -vtmp(:) / msys + do i = 1, npl + pl%xb(:,i) = pl%xh(:,i) + cb%xb(:) + pl%vb(:,i) = pl%vh(:,i) + cb%vb(:) end do end associate diff --git a/src/util/util_set_beg_end.f90 b/src/util/util_set_beg_end.f90 new file mode 100644 index 000000000..67edfb549 --- /dev/null +++ b/src/util/util_set_beg_end.f90 @@ -0,0 +1,30 @@ +submodule(swiftest_classes) s_util_set_beg_end + use swiftest +contains + + module subroutine util_set_beg_end(self, xbeg, xend, vbeg) + !! author: David A. Minton + !! + !! Sets one or more of the values of xbeg, xend, and vbeg + implicit none + ! Arguments + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + real(DP), dimension(:,:), intent(in), optional :: xbeg, xend, vbeg + + if (present(xbeg)) then + if (allocated(self%xbeg)) deallocate(self%xbeg) + allocate(self%xbeg, source=xbeg) + end if + if (present(xend)) then + if (allocated(self%xend)) deallocate(self%xend) + allocate(self%xend, source=xend) + end if + if (present(vbeg)) then + if (allocated(self%vbeg)) deallocate(self%vbeg) + allocate(self%vbeg, source=vbeg) + end if + + return + + end subroutine util_set_beg_end +end submodule s_util_set_beg_end \ No newline at end of file diff --git a/src/whm/whm_setup.f90 b/src/whm/whm_setup.f90 index 80c0e81c9..feba7cc51 100644 --- a/src/whm/whm_setup.f90 +++ b/src/whm/whm_setup.f90 @@ -127,27 +127,4 @@ module subroutine whm_setup_set_ir3j(self) end if end subroutine whm_setup_set_ir3j - module subroutine whm_setup_set_beg_end(self, xbeg, xend, vbeg) - !! author: David A. Minton - !! - !! Sets one or more of the values of xbeg and xend - implicit none - ! Arguments - class(whm_nbody_system), intent(inout) :: self !! WHM nbody system object - real(DP), dimension(:,:), intent(in), optional :: xbeg, xend - real(DP), dimension(:,:), intent(in), optional :: vbeg ! vbeg is an unused variable to keep this method forward compatible with RMVS - - if (present(xbeg)) then - if (allocated(self%xbeg)) deallocate(self%xbeg) - allocate(self%xbeg, source=xbeg) - end if - if (present(xend)) then - if (allocated(self%xend)) deallocate(self%xend) - allocate(self%xend, source=xend) - end if - - return - - end subroutine whm_setup_set_beg_end - end submodule s_whm_setup \ No newline at end of file diff --git a/src/whm/whm_step.f90 b/src/whm/whm_step.f90 index 2a9de28b8..74c0a9290 100644 --- a/src/whm/whm_step.f90 +++ b/src/whm/whm_step.f90 @@ -18,10 +18,10 @@ module subroutine whm_step_system(self, param, t, dt) associate(system => self, cb => self%cb, pl => self%pl, tp => self%tp, ntp => self%tp%nbody) call pl%set_rhill(cb) - call self%set_beg_end(xbeg = pl%xh) + call pl%set_beg_end(xbeg = pl%xh) call pl%step(system, param, t, dt) if (ntp > 0) then - call self%set_beg_end(xend = pl%xh) + call pl%set_beg_end(xend = pl%xh) call tp%step(system, param, t, dt) end if end associate @@ -85,18 +85,17 @@ module subroutine whm_step_tp(self, system, param, t, dt) select type(system) class is (whm_nbody_system) - associate(tp => self, cb => system%cb, pl => system%pl, xbeg => system%xbeg, xend => system%xend) + associate(tp => self, cb => system%cb, pl => system%pl) dth = 0.5_DP * dt if (tp%lfirst) then - call tp%get_accel(system, param, t, xbeg) + call tp%get_accel(system, param, t, pl%xbeg) tp%lfirst = .false. end if call tp%kick(dth) - !If GR enabled, calculate the p4 term before and after each drift if (param%lgr) call tp%gr_p4(param, dth) call tp%drift(system, param, dt) if (param%lgr) call tp%gr_p4(param, dth) - call tp%get_accel(system, param, t + dt, xend) + call tp%get_accel(system, param, t + dt, pl%xend) call tp%kick(dth) end associate end select From 2dc254c372220bfc4cb8a566ae199f3bd2ac141a Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 8 Jul 2021 08:54:22 -0400 Subject: [PATCH 21/28] Fixed bad index in planetocentric to heliocentric conversion --- src/rmvs/rmvs_step.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rmvs/rmvs_step.f90 b/src/rmvs/rmvs_step.f90 index c4535d884..6fe920863 100644 --- a/src/rmvs/rmvs_step.f90 +++ b/src/rmvs/rmvs_step.f90 @@ -592,8 +592,8 @@ subroutine rmvs_end_planetocentric(system) 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(tpind(1:pl%nenc(i))) - tp%plperP(tpind(1:pl%nenc(i))) = tpenci%plperP(tpind(1:pl%nenc(i))) + 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 From ae70ca1a98d02ff8c1454c8c4856382e50aac8e6 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 8 Jul 2021 10:10:27 -0400 Subject: [PATCH 22/28] Fixed formatting and interfaces --- src/modules/swiftest_classes.f90 | 207 ++++++++++++++++--------------- 1 file changed, 104 insertions(+), 103 deletions(-) diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 0094782fd..6bd9a442b 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -17,7 +17,6 @@ module swiftest_classes public :: orbel_el2xv_vec, orbel_xv2el_vec, orbel_scget, orbel_xv2aeq, orbel_xv2aqt public :: setup_body, setup_construct_system, setup_pl, setup_set_ir3h, setup_set_msys, setup_set_mu_pl, setup_set_mu_tp, & setup_set_rhill, setup_tp - public :: user_getacch_body public :: util_coord_b2h_pl, util_coord_b2h_tp, util_coord_h2b_pl, util_coord_h2b_tp, util_copy_body, util_copy_cb, util_copy_pl, & util_copy_tp, util_copy_system, util_fill_body, util_fill_pl, util_fill_tp, util_reverse_status, util_set_beg_end, & util_spill_body, util_spill_pl, util_spill_tp @@ -161,6 +160,7 @@ module swiftest_classes procedure(abstract_discard_body), public, deferred :: discard procedure(abstract_set_mu), public, deferred :: set_mu procedure(abstract_step_body), public, deferred :: step + procedure(abstract_get_accel), public, deferred :: get_accel ! These are concrete because the implementation is the same for all types of particles procedure, public :: initialize => io_read_body_in !! Read in body initial conditions from a file procedure, public :: read_frame => io_read_frame_body !! I/O routine for writing out a single frame of time-series data for the central body @@ -171,7 +171,6 @@ module swiftest_classes procedure, public :: xv2el => orbel_xv2el_vec !! Convert position and velocity vectors to orbital elements procedure, public :: set_ir3 => setup_set_ir3h !! Sets the inverse heliocentric radius term (1/rh**3) procedure, public :: setup => setup_body !! A constructor that sets the number of bodies and allocates all allocatable arrays - procedure, public :: user_getacch => user_getacch_body !! Base user-defined acceleration subroutine procedure, public :: copy => util_copy_body !! Copies elements of one object to another. procedure, public :: fill => util_fill_body !! "Fills" bodies from one object into another depending on the results of a mask (uses the MERGE intrinsic) procedure, public :: spill => util_spill_body !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) @@ -289,36 +288,45 @@ end subroutine abstract_copy subroutine abstract_discard_body(self, system, param) import swiftest_body, swiftest_nbody_system, swiftest_parameters - class(swiftest_body), intent(inout) :: self !! Swiftest particle object + class(swiftest_body), intent(inout) :: self !! Swiftest body object class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine abstract_discard_body + subroutine abstract_get_accel(self, system, param, t) + use swiftest_classes, only : swiftest_body, swifest_nbody_system, swiftest_parameters + implicit none + class(swiftest_body), intent(inout) :: self !! Swiftest body data structure + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters of + real(DP), intent(in) :: t !! Current simulation time + end subroutine abstract_get_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 + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters end subroutine abstract_initialize subroutine abstract_read_frame(self, iu, param, form, 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 - character(*), intent(in) :: form !! Input format code ("XV" or "EL") - integer(I4B), intent(out) :: ierr !! Error code + 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) import swiftest_body, swiftest_cb - class(swiftest_body), intent(inout) :: self !! Swiftest particle object + class(swiftest_body), intent(inout) :: self !! Swiftest body object class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object end subroutine abstract_set_mu subroutine abstract_step_body(self, system, param, t, dt) import DP, swiftest_body, swiftest_nbody_system, swiftest_parameters implicit none - class(swiftest_body), intent(inout) :: self !! Swiftest particle object + class(swiftest_body), 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 @@ -438,7 +446,7 @@ end subroutine io_param_writer module subroutine io_read_body_in(self, param) implicit none - class(swiftest_body), intent(inout) :: self !! Swiftest particle object + 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 @@ -450,48 +458,47 @@ end subroutine io_read_cb_in module subroutine io_read_param_in(self, param_file_name) implicit none - class(swiftest_parameters), intent(out) :: self !! Current run configuration parameters + class(swiftest_parameters), intent(out) :: 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 module subroutine io_read_frame_body(self, iu, param, form, ierr) implicit none - 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_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 + 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) 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_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 + 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) 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_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 + 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_read_initialize_system(self, param) implicit none - class(swiftest_nbody_system), intent(inout) :: self !! Swiftest system object - class(swiftest_parameters), intent(inout) :: 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_read_initialize_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_body), intent(inout) :: discards !! Swiftest discard object + class(swiftest_nbody_system), intent(inout) :: self !! Swiftest system object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine io_write_discard module subroutine io_write_encounter(t, name1, name2, mass1, mass2, radius1, radius2, & @@ -505,40 +512,42 @@ end subroutine io_write_encounter module subroutine io_write_frame_body(self, iu, param) implicit none - 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_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_write_frame_body module subroutine io_write_frame_cb(self, iu, param) implicit none - 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_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 end subroutine io_write_frame_cb module subroutine io_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_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 kickvh_body(self, dt) implicit none - class(swiftest_body), intent(inout) :: self !! Swiftest generic body object + class(swiftest_body), intent(inout) :: self !! Swiftest body object real(DP), intent(in) :: dt !! Stepsize end subroutine kickvh_body - module subroutine obl_acc_body(self, cb) + module subroutine obl_acc_body(self, system, param, t) implicit none - class(swiftest_body), intent(inout) :: self !! Swiftest generic body object - class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object + class(swiftest_body), intent(inout) :: self !! Swiftest massive body data structure + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters of + real(DP), intent(in) :: t !! Current simulation time end subroutine obl_acc_body module subroutine orbel_el2xv_vec(self, cb) implicit none - class(swiftest_body), intent(inout) :: self !! Swiftest generic body object + class(swiftest_body), intent(inout) :: self !! Swiftest body object class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object end subroutine orbel_el2xv_vec @@ -564,181 +573,173 @@ end subroutine orbel_xv2aqt module subroutine orbel_xv2el_vec(self, cb) implicit none - class(swiftest_body), intent(inout) :: self !! Swiftest generic body object - class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object + class(swiftest_body), intent(inout) :: self !! Swiftest body object + class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object end subroutine orbel_xv2el_vec module subroutine setup_body(self,n) implicit none - class(swiftest_body), intent(inout) :: self !! Swiftest generic body object - integer, intent(in) :: n !! Number of particles to allocate space for + class(swiftest_body), intent(inout) :: self !! Swiftest body object + integer, intent(in) :: n !! Number of particles to allocate space for end subroutine setup_body module subroutine setup_construct_system(system, param) implicit none - class(swiftest_nbody_system), allocatable, intent(inout) :: system !! Swiftest system object - type(swiftest_parameters), intent(in) :: param !! Swiftest parameters + class(swiftest_nbody_system), allocatable, intent(inout) :: system !! Swiftest system object + type(swiftest_parameters), intent(in) :: param !! Swiftest parameters end subroutine setup_construct_system module subroutine setup_pl(self,n) implicit none - class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object - integer, intent(in) :: n !! Number of massive bodies to allocate space for + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + integer, intent(in) :: n !! Number of massive bodies to allocate space for end subroutine setup_pl module subroutine setup_set_ir3h(self) implicit none - class(swiftest_body), intent(inout) :: self !! Swiftest generic body object + class(swiftest_body), intent(inout) :: self !! Swiftest body object end subroutine setup_set_ir3h module subroutine setup_set_msys(self) implicit none - class(swiftest_nbody_system), intent(inout) :: self !! Swiftest system object + class(swiftest_nbody_system), intent(inout) :: self !! Swiftest system object end subroutine setup_set_msys module subroutine setup_set_mu_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 + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object end subroutine setup_set_mu_pl module subroutine setup_set_mu_tp(self, cb) implicit none - class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object - class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object + class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object + class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object end subroutine setup_set_mu_tp module subroutine setup_set_rhill(self,cb) implicit none - class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object - class(swiftest_cb), intent(inout) :: cb !! Swiftest massive body object + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + class(swiftest_cb), intent(inout) :: cb !! Swiftest massive body object end subroutine setup_set_rhill module subroutine setup_tp(self, n) implicit none - class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object - integer, intent(in) :: n !! Number of bodies to allocate space for + class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object + integer, intent(in) :: n !! Number of bodies to allocate space for end subroutine setup_tp - module subroutine user_getacch_body(self, system, param, t) - implicit none - class(swiftest_body), intent(inout) :: self !! Swiftest massive body particle data structure - class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nobody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters of - real(DP), intent(in) :: t !! Current time - end subroutine user_getacch_body - module subroutine util_coord_b2h_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 + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object end subroutine util_coord_b2h_pl module subroutine util_coord_b2h_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 + class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object + class(swiftest_cb), intent(in) :: cb !! Swiftest central body object end subroutine util_coord_b2h_tp module subroutine util_coord_h2b_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 + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object end subroutine util_coord_h2b_pl module subroutine util_coord_h2b_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 + class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object + class(swiftest_cb), intent(in) :: cb !! Swiftest central body object end subroutine util_coord_h2b_tp module subroutine util_copy_body(self, src, mask) implicit none - class(swiftest_body), intent(inout) :: self - class(swiftest_base), intent(in) :: src - logical, dimension(:), intent(in) :: mask + class(swiftest_body), intent(inout) :: self !! Swiftest body object to copy into + class(swiftest_base), intent(in) :: src !! Swiftest base object to copy from + logical, dimension(:), intent(in) :: mask !! Mask of elements in src object to copy into self end subroutine util_copy_body module subroutine util_copy_cb(self, src, mask) implicit none - class(swiftest_cb), intent(inout) :: self - class(swiftest_base), intent(in) :: src - logical, dimension(:), intent(in) :: mask + class(swiftest_cb), intent(inout) :: self !! Swiftest central body object to copy into + class(swiftest_base), intent(in) :: src !! Swiftest base object to copy from + logical, dimension(:), intent(in) :: mask !! Mask of elements in src object to copy into selfk end subroutine util_copy_cb module subroutine util_copy_pl(self, src, mask) implicit none - class(swiftest_pl), intent(inout) :: self - class(swiftest_base), intent(in) :: src - logical, dimension(:), intent(in) :: mask + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object to copy into + class(swiftest_base), intent(in) :: src !! Swiftest base object to copy from + logical, dimension(:), intent(in) :: mask !! Mask of elements in src object to copy into self end subroutine util_copy_pl module subroutine util_copy_tp(self, src, mask) implicit none - class(swiftest_tp), intent(inout) :: self - class(swiftest_base), intent(in) :: src - logical, dimension(:), intent(in) :: mask + class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object to copy into + class(swiftest_base), intent(in) :: src !! Swiftest base object to copy from + logical, dimension(:), intent(in) :: mask !! Mask of elements in src object to copy into self end subroutine util_copy_tp module subroutine util_copy_system(self, src, mask) implicit none - class(swiftest_nbody_system), intent(inout) :: self - class(swiftest_base), intent(in) :: src - logical, dimension(:), intent(in) :: mask + class(swiftest_nbody_system), intent(inout) :: self !! Swiftest nbody system object to copy into + class(swiftest_base), intent(in) :: src !! Swiftest base object to copy from + logical, dimension(:), intent(in) :: mask !! Mask of elements in src object to copy into self end subroutine util_copy_system module subroutine util_fill_body(self, inserts, lfill_list) implicit none - class(swiftest_body), intent(inout) :: self !! Swiftest generic body object - class(swiftest_body), intent(inout) :: inserts !! Insertted object - logical, dimension(:), intent(in) :: lfill_list !! Logical array of bodies to merge into the keeps + class(swiftest_body), intent(inout) :: self !! Swiftest body object + class(swiftest_body), intent(inout) :: inserts !! Swiftest body object to be inserted + logical, dimension(:), intent(in) :: lfill_list !! Logical array of bodies to merge into the keeps end subroutine util_fill_body module subroutine util_fill_pl(self, inserts, lfill_list) implicit none class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object - class(swiftest_body), intent(inout) :: inserts !! Inserted object + class(swiftest_body), intent(inout) :: inserts !! Swiftest body object to be inserted logical, dimension(:), intent(in) :: lfill_list !! Logical array of bodies to merge into the keeps end subroutine util_fill_pl module subroutine util_fill_tp(self, inserts, lfill_list) implicit none - class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object - class(swiftest_body), intent(inout) :: inserts !! Inserted object + class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object + class(swiftest_body), intent(inout) :: inserts !! Swiftest body object to be inserted logical, dimension(:), intent(in) :: lfill_list !! Logical array of bodies to merge into the keeps end subroutine util_fill_tp module subroutine util_reverse_status(self) implicit none - class(swiftest_body), intent(inout) :: self + class(swiftest_body), intent(inout) :: self !! Swiftest body object end subroutine util_reverse_status module subroutine util_set_beg_end(self, xbeg, xend, vbeg) implicit none - class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object real(DP), dimension(:,:), intent(in), optional :: xbeg, xend !! Positions at beginning and end of step real(DP), dimension(:,:), intent(in), optional :: vbeg !! vbeg is an unused variable to keep this method forward compatible with RMVS end subroutine util_set_beg_end module subroutine util_spill_body(self, discards, lspill_list) implicit none - class(swiftest_body), intent(inout) :: self !! Swiftest generic body object + class(swiftest_body), intent(inout) :: self !! Swiftest body object class(swiftest_body), intent(inout) :: discards !! Discarded object logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discards end subroutine util_spill_body module subroutine util_spill_pl(self, discards, lspill_list) implicit none - class(swiftest_pl), intent(inout) :: self !! Swiftest massive body body object + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object class(swiftest_body), intent(inout) :: discards !! Discarded object logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discards end subroutine util_spill_pl module subroutine util_spill_tp(self, discards, lspill_list) implicit none - class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object - class(swiftest_body), intent(inout) :: discards !! Discarded object - logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discards + class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object + class(swiftest_body), intent(inout) :: discards !! Discarded object + logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discards end subroutine util_spill_tp end interface From 3b0041f13a15f2ac685f2de00b1e189e4433f542 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 8 Jul 2021 13:19:39 -0400 Subject: [PATCH 23/28] Completed a major restructuring to streamline the beginning/ending position and acceleration saving and retreival system for test particle accelerations --- .../swiftest_rmvs_vs_swifter_rmvs.ipynb | 10 +- src/helio/helio_getacch.f90 | 73 +- src/helio/helio_setup.f90 | 8 +- src/helio/helio_step.f90 | 15 +- src/io/io.f90 | 8 +- src/modules/helio_classes.f90 | 40 +- src/modules/rmvs_classes.f90 | 27 +- src/modules/swiftest_classes.f90 | 149 ++-- src/modules/whm_classes.f90 | 57 +- src/obl/obl.f90 | 78 +- src/rmvs/rmvs_getacch.f90 | 87 +- src/rmvs/rmvs_step.f90 | 766 +++++++++--------- src/setup/setup.f90 | 75 -- src/symba/symba_helio_getacch.f90 | 6 +- src/symba/symba_helio_getacch_int.f90 | 4 +- src/user/user_getacch.f90 | 5 +- ...t_energy_and_momentum.f90 => util_get.f90} | 0 src/util/util_set.f90 | 123 +++ src/util/util_set_beg_end.f90 | 30 - src/whm/whm_getacch.f90 | 31 +- src/whm/whm_setup.f90 | 10 +- src/whm/whm_step.f90 | 28 +- 22 files changed, 867 insertions(+), 763 deletions(-) rename src/util/{util_get_energy_and_momentum.f90 => util_get.f90} (100%) create mode 100644 src/util/util_set.f90 delete mode 100644 src/util/util_set_beg_end.f90 diff --git a/examples/rmvs_swifter_comparison/9pl_18tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb b/examples/rmvs_swifter_comparison/9pl_18tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb index 0a95cb75e..5e13697d5 100644 --- a/examples/rmvs_swifter_comparison/9pl_18tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb +++ b/examples/rmvs_swifter_comparison/9pl_18tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb @@ -482,7 +482,7 @@ " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])\n", "Coordinates:\n", " id int64 4\n", - " * time (d) (time (d)) float64 0.0 1.0 2.0 3.0 4.0 ... 363.0 364.0 365.0 366.0
    • id
      ()
      int64
      4
      array(4)
    • time (d)
      (time (d))
      float64
      0.0 1.0 2.0 ... 364.0 365.0 366.0
      array([  0.,   1.,   2., ..., 364., 365., 366.])
  • " ], "text/plain": [ "\n", @@ -550,7 +550,7 @@ "outputs": [ { "data": { - "image/png": "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28LyI4HB6WMi8NsaxGRmGWtsQqr3pqQ8qVliiIhHgXdaWGUccF0kngR6S9q5NtGZWVbqvcaQR3nqfN4FWFDwvCGd9yGSJkqaIWnGkiVLahKcmbUPdz7nT54SQ6nztEp+UiLiyogYExFj+vTp085hmVl72tiU5BpDbuQpMTQA/Que9wMWZhSLmVndylNimAqcosQBwN8jYlHWQZlZ+3JTUv7ULDFIugl4AthTUoOkCZLOkHRGuso04FVgHnAV8K1axWZm2XFTUmW+9rWvscMOOzBixIeuAihbza5jiIjxm1gewLdrFI6Z5UTjGElODOU59dRTOfPMMznllFOqVmaempLMrI7V+yB65TrooIPYdtttq1qmh8Qws0xtrCl08ArDBXfM5sWFy6ta5rC+W/Ojzw+vapmt4RqDmWXKfQz54xqDmWWqs1z5nMUv+/biGoOZZcqnq+aPE4OZZcpNSZUZP348H//4x5k7dy79+vXj97//fcVluinJzKwDu+mmm6pepmsMZpYpD7udP04MZpapztL53Jk4MZhZptz5nD9ODGaWKXc+548Tg5llyk1J+ePEYGaZ2tiE5LyQG04MZpapxprCBjyIXlstWLCAQw89lKFDhzJ8+HAmT55clXJ9HYOZZcqnq5ava9eu/OpXv2LUqFGsWLGC0aNHc/jhhzNs2LCKynWNwcwy5T6G8u28886MGjUKgF69ejF06FDeeOONist1jcHMcqHDJ4a7z4U3X6humTvtBUde1KpVX3vtNZ577jn233//infrGoOZZcqdz5VbuXIlxx13HJdccglbb711xeW5xmBmmeo0TUmt/GVfbWvXruW4447jpJNO4thjj61Kma4xmFmmfOVz+SKCCRMmMHToUH7wgx9UrVwnBjPLlK98Lt/06dO5/vrreeihhxg5ciQjR45k2rRpFZfrpiQzy1SnaUrKwIEHHtguNS3XGMwsF9yUlB9ODGaWqQ3hK57zxonBzDLlPob8cWIws0z5rKT8cWIws0xtHETPTUq54cRgZtlyRSF3apoYJI2VNFfSPEnnlli+jaQ7JD0vabak02oZn5nVnk9XLd/q1avZb7/92GeffRg+fDg/+tGPqlJuza5jkNQFuAw4HGgAnpY0NSJeLFjt28CLEfF5SX2AuZJujIg1tYrTzGrLfQzl23zzzXnooYfo2bMna9eu5cADD+TI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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZQAAAElCAYAAADDUxRwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAmP0lEQVR4nO3dfbxUZb338c83HkQFRQWUR0FCeUoRSCxNzYIDHgsF7YhaahTZ0bJTHiU9d2HdpdUrE4+WR8vnbqnj0UTFR9CjoaaooBCi+JBsQUGUAJF48Hf/sRY6bGf2nj2z9p4Z9/f9es1rr1nrWtf6zTV7z29f15p1LUUEZmZm5fpYpQMwM7OPBicUMzPLhBOKmZllwgnFzMwy4YRiZmaZcEIxM7NMOKFY5iRNk3RjutxH0npJbSodV0MkfUbSkkrHAY3H0pJtKulBSV9Ll0+SdG/OtkMkvZDGcoykPSU9JGmdpF82d2xWfZxQ7EMkvSLp8/XWnSrpz02tKyJejYiOEbE1uwibRlJI+nhDZSLi4YjYr6Viakj9WOq/H5Vq04j4fUSMyVn1I+CyNJY/AVOAN4FdIuJ7LRmbVQcnFGv1JLWtdAw1am9gUb3nf40Srpb2e/DR4IRiJZHUQ9L/SFol6WVJ3y5Qrm/aQ2ibs99MSW9JWirp6zll20g6T9KL6bDJk5J6p9sGSrov3W+JpC/l7HetpMsl3Znu9xdJ/dNtD6XFFqRDM/8i6QhJdZLOlfQ6cM22dTl19pZ0S/r6Vku6rMDrmybpZkl/SI/9lKQDcrYPSoeN1khaJOmLOduOkvTXdL/XJJ2drn8/Fkk3AH2A29P4z2lim06T9EdJ16fHWSRpZAPv62hJz0n6e/qalbPt/V6qpBeBfXLiugk4BTgnff55SR+TNDV9P1encexe7/disqRXgTnp+q9KWizpbUn3SNo75/gh6fR0mO3t9D3Pje/r6b7r0nYdntM+eX9XJR0kaZ6ktZLekHRxobaxIkSEH35s9wBeAT5fb92pwJ/T5Y8BTwI/ANqTfLC8BPxTun0acGO63BcIoG36/H+BXwMdgGHAKuBz6bZ/B54F9iP5IDsA2APYGVgGnAa0BYaTDK0MSfe7FngLOCjd/ntgRk7sAXw85/kRwBbgZ8AOwI7purp0extgAfCr9NgdgEMLtNU0YDNwHNAOOBt4OV1uBywFzkvb6UhgHbBfuu8K4DPp8m7A8Jz46gq9H01s02nARuCo9HVdCDxW4LV0AdbmvJZ/S9vpa/V/BwrEdS3wf3Oefwd4DOiVtvN/ATfVew3Xp228I3BM2l6D0vfxP4BH6r2PdwCdSZLsKmBsuu144DXgkyS/Ox8n6TE19rv6KPDldLkjcHCl//5q+VHxAPyovkf6QbEeWJPz2MAHCWUU8Gq9fb4PXJMuTyNPQgF6A1uBTjn7XQhcmy4vAcbniedfgIfrrfsv4Ifp8rXAb3O2HQU8l/M8X0LZBHSot25bQvlU+mHVtoi2mkbOB3T6AbYC+Ez6eB34WM72m4Bp6fKrwDdIzjmQL5ac9yNvQimiTacB9+dsGwy8W+C1fKXeaxFQR+kJZTFpYkufdydJvm1zXsM+OdvvAibXa8sNwN457+OhOdv/CExNl+8Bzsrzmhr7XX0IuADoUum/u4/Cw0NeVsgxEdF52wP415xtewM90mGcNZLWkPwXvmcjdfYA3oqIdTnr/gb0TJd7Ay/m2W9vYFS9450E7JVT5vWc5Q0k/202ZFVEbCywrTfwt4jY0kgd2yzbthAR75F8CPdIH8vSddvkvt6JJMnvb5L+V9KnijxersbaFD7cNh2U/5xFj3qvJXKfl2Bv4Nac92wxSfLL/T1ZVq/89Jzyb5EktYZey7b3uaHfnYZ+VycD+wLPSXpC0tFNfpX2Pp8Is1IsA16OiAFN3G85sLukTjkfgH1Ihiq21dsfWJjneP8bEaNLDTiPhk4cLwP6SGpbZFLpvW1B0sdIhniWb9sm6WM5SaUP8DxARDwBjJfUDjiT5D/u9+sqMtbG2rQpVtR7LSoQT7GWAV+NiLn1N0jqmy5GvfI/iYjfl3is/gXWF/xdjYgXgEnp+zYBuFnSHhHxTgkxtHruoVgpHgfWpie1d1RyMn2opE82tFNELAMeAS6U1EHS/iT/IW77APkt8GNJA5TYX9IeJOPm+0r6sqR26eOTkgYVGe8bJGPnTXl9K4CLJO2cxnpIA+VHSJqQ/tf/HeAfJOcO/gK8Q3Kiup2kI4AvADMktVdyXceuEbGZ5NxFoa8BF4y/iDZtijuBITmv5dts3wtsqiuAn2w7sS6pq6TxjZT/vqQhafldJR1f5LF+C5wtaUT6u/Px9LgN/q5KOllS1zThr0nrqthX3GudE4o1WSTXP3yB5ATwyyQnyH8L7FrE7pNIxs+XA7eSnAe5L912Mcl/6feSfMD+Dtgx/c97DHBCut/rfHBCvRjTgOvSIY8vNVY45/V9nOQ8Rx3JeZxCbku3vw18GZgQEZsjYhPwRWAcSRv9GvhKRDyX7vdl4BVJa4HTgZML1H8h8B9p/Gfn2d5QmxYtIt4kObl9EbAaGAB8qHfRBNOBmcC9ktaRJNlRDRz/VpL3dUbaJgtJ2q6Y2P8b+Anw/0i++PAnYPciflfHAoskrU/jPaGBoVBrhNITU2ZWAknTSE74F0oGZq2GeyhmZpYJJxQzM8uEh7zMzCwT7qGYmVkmnFDMmkB5ZmL+qFC9OcLMmsoJxaye9EP1HSWTHL4m6WK18P1cVMSU+2bVxgnFLL8DIqIj8DngRODrjZQ3a/WcUMwakF6E+DAwtP62dOrzR9MLDldIukxS+5ztjU23nneqduWfcr+LpDvSY70l6eF0upAPkfTpdF6qv6c/P52z7UFJP5Y0V8k07/dK6pKnjuMlPVlv3fck/alpLWitiROKWQMkDSaZNfjpPJu3kkzx3oVkhuLPsf0kmgBHk0ypfgDwJeCf0nqPIZmkcALQlSRp3QQQEYel+x4Qyd0Q/wB8j+SK/a4kExueR545vpTcb+RO4FKSqf8vBu5Mp7DZ5kSSWwF0I5nSPd/V9zOBfvWmtzkZuCFPWTPACcWskKckvQ3cTjJVxzX1C0TEkxHxWERsiYhXSKbUP7xesYsiYk1EvAo8QDIFCCTT1l8YEYvTCSh/CgxTzg2l6tlMMv373um0Lg9H/u/8/zPwQkTckMZ1E/AcyfQj21wTEc9HxLskU90Mq19JRPwD+APpdDDp/Fp9SeZVM8vLCcUsv+ERsVtE9I+I/6g3BT0AkvZNh6FeT+ee+ilJbyVXoenWi5mqPdcvSG4+da+klyRNLVCuB8n09bkam86+0FT/1wEnpsN0Xwb+mCYas7ycUMxK9xuS//4HRMQuJMNQaniX9y0DvpF7z5mI2DEiHslXOCLWRcT3ImIfkt7GdyV9Lk/R5STJKldJ09lHxGMkNyL7DMkwmYe7rEFOKGal60QyK/J6SQOBbzZh38amat9uynpJR6dTsosPprrPN836LJKp/k+U1FbSv5DcpbHUoarrgcuALRHx5xLrsFbCCcWsdGeT/Oe+DriK5JxDUYqYqn0a20+5PwC4n+TWzI8Cv46IB/PUu5rkiwDfI5mC/hzg6HRq+lLcQPINN/dOrFGey8vMCpK0I7CS5JzSC5WOx6qbeyhm1pBvAk84mVgxPGePmeUl6RWSLxkcU9lIrFZ4yMvMzDLhIS8zM8tEqx7y6tKlS/Tt27fSYZiZ1ZQnn3zyzYjoWn99q04offv2Zd68eZUOw8yspkiqPxsD4CEvMzPLiBOKmZllwgnFzMwy0arPoZiZVcLmzZupq6tj48aNlQ6lQR06dKBXr160a9euqPJOKGZmLayuro5OnTrRt29fcm7iWVUigtWrV1NXV0e/fv2K2sdDXmZmLWzjxo3sscceVZtMACSxxx57NKkX5YRiZlYB1ZxMtmlqjE4oZmaWCScUM7Ma9elPfzrv+lNPPZWbb765haNxQjEzq1mPPJL3jtEV4295mZnVqI4dO7J+/Xoigm9961vMmTOHfv36UalZ5N1DMTOrcbfeeitLlizh2Wef5aqrrqpYz8UJxcysxj300ENMmjSJNm3a0KNHD4488siKxOGEYmb2EVANX0N2QjEzq3GHHXYYM2bMYOvWraxYsYIHHnigInH4pLyZWY079thjmTNnDp/4xCfYd999OfzwwysShxOKmVmNWr9+PZAMd1122WUVjsZDXmZmlhEnFDMzy4QTipmZZcIJxczMMuGEYmZmmXBCMTOzTDihmJm1Ul/96lfp1q0bQ4cOzaQ+JxQzs1bq1FNP5e67786svqpKKJLGSloiaamkqXm2S9Kl6fZnJA2vt72NpKcl3dFyUZuZ1abDDjuM3XffPbP6quZKeUltgMuB0UAd8ISkmRHx15xi44AB6WMU8Jv05zZnAYuBXVokaDOzMl1w+yL+unxtpnUO7rELP/zCkEzrLEY19VAOApZGxEsRsQmYAYyvV2Y8cH0kHgM6S+oOIKkX8M/Ab1syaDMzS1RNDwXoCSzLeV7H9r2PQmV6AiuAS4BzgE4NHUTSFGAKQJ8+fcoK2MysXJXoSTSXauqh5JvMv/59LPOWkXQ0sDIinmzsIBFxZUSMjIiRXbt2LSVOMzPLo5oSSh3QO+d5L2B5kWUOAb4o6RWSobIjJd3YfKGamdW+SZMm8alPfYolS5bQq1cvfve735VVXzUNeT0BDJDUD3gNOAE4sV6ZmcCZkmaQDIf9PSJWAN9PH0g6Ajg7Ik5uobjNzGrSTTfdlGl9VZNQImKLpDOBe4A2wNURsUjS6en2K4BZwFHAUmADcFql4jUzs+1VTUIBiIhZJEkjd90VOcsBnNFIHQ8CDzZDeGZm1oBqOodiZmY1zAnFzMwy4YRiZmaZcEIxM7NMOKGYmbVCy5Yt47Of/SyDBg1iyJAhTJ8+vew6q+pbXmZm1jLatm3LL3/5S4YPH866desYMWIEo0ePZvDgwSXX6R6KmVkr1L17d4YPT+4A0qlTJwYNGsRrr71WVp3uoZiZVdJdU+H1Z7Otc69PwLiLii7+yiuv8PTTTzNqVP35eJvGPRQzs1Zs/fr1TJw4kUsuuYRddinvVlLuoZiZVVITehJZ27x5MxMnTuSkk05iwoQJZdfnHoqZWSsUEUyePJlBgwbx3e9+N5M6nVDMzFqhuXPncsMNNzBnzhyGDRvGsGHDmDVrVuM7NsBDXmZmrdChhx5KMt9udtxDMTOzTDihmJlZJpxQzMwsE04oZmaWCScUMzPLhBOKmZllwgnFzKwV2rhxIwcddBAHHHAAQ4YM4Yc//GHZdfo6FDOzVmiHHXZgzpw5dOzYkc2bN3PooYcybtw4Dj744JLrdA/FzKwVkkTHjh2BZE6vzZs3I6msOt1DMTOroJ89/jOee+u5TOscuPtAzj3o3EbLbd26lREjRrB06VLOOOMMT19vZmaladOmDfPnz6euro7HH3+chQsXllWfeyhmZhVUTE+iuXXu3JkjjjiCu+++m6FDh5Zcj3soZmat0KpVq1izZg0A7777Lvfffz8DBw4sq073UMzMWqEVK1ZwyimnsHXrVt577z2+9KUvcfTRR5dVpxOKmVkrtP/++/P0009nWqeHvMzMLBNOKGZmlomqSiiSxkpaImmppKl5tkvSpen2ZyQNT9f3lvSApMWSFkk6q+WjNzNr3aomoUhqA1wOjAMGA5MkDa5XbBwwIH1MAX6Trt8CfC8iBgEHA2fk2dfMzJpR1SQU4CBgaUS8FBGbgBnA+HplxgPXR+IxoLOk7hGxIiKeAoiIdcBioGdLBm9m1tpVU0LpCSzLeV7Hh5NCo2Uk9QUOBP6SfYhmZlZINSWUfLOSRVPKSOoI/A/wnYhYm/cg0hRJ8yTNW7VqVcnBmpl9FGzdupUDDzyw7GtQoIjrUCT1KbKuNYU+xItUB/TOed4LWF5sGUntSJLJ7yPilkIHiYgrgSsBRo4cWT9hmZm1KtOnT2fQoEGsXVvOx3eimAsbryPpBTQ0r3EA1wLXlxHLE8AASf2A14ATgBPrlZkJnClpBjAK+HtErFAy5/LvgMURcXEZMZiZtRp1dXXceeednH/++Vx8cfkfnY0mlIj4bP11kvaKiNfLPvr2x9ki6UzgHqANcHVELJJ0err9CmAWcBSwFNgAnJbufgjwZeBZSfPTdedFxKwsYzQzy9rrP/0p/1ic7fT1OwwayF7nnddoue985zv8/Oc/Z926dZkct9SpV74C/DyTCHKkCWBWvXVX5CwHcEae/f5Mwz0oMzPLcccdd9CtWzdGjBjBgw8+mEmdpSaU8ZI2APdFxJJMIjEza4WK6Uk0h7lz5zJz5kxmzZrFxo0bWbt2LSeffDI33nhjyXWW+i2vCSTDTsdK+m3JRzczs4q48MILqaur45VXXmHGjBkceeSRZSUTKLGHEhFvAHenDzMzs9J6KJIul3Rtujwm04jMzKxFHXHEEdxxxx1l11PqkNcm4KV0+ciyozAzs5pXakLZAOyaXkxY7IWPZmb2EVbqt7zeAt4lmR14bnbhmJlZrWpSD0VSZ0nXABPTVdcDIzOPyszMak6TeigRsUbSRUBf4E1gf6DgvFlmZtZ6lDLkNRl4OSLuAZ7MOB4zM6tRpSSUt4HTJe0HLADmR8TT2YZlZmbNrW/fvnTq1Ik2bdrQtm1b5s2bV1Z9TU4oEXGhpNnA88Aw4DDACcXMrAY98MADdOnSJZO6mpxQJP2IZDbg+SS9kwczicTMzGpaKT2UH0jak+Q2uxMl9Y+Ir2cfmpnZR9/Df3yeN5etz7TOLr078pkv7dtoOUmMGTMGSXzjG99gypQpZR231OtQvgH8V0R4Li8zsxo1d+5cevTowcqVKxk9ejQDBw7ksMMOK7m+UhPK1cA3Je1Mcsvd+SVHYGbWihXTk2guPXr0AKBbt24ce+yxPP7442UllFKnXvk2STJqC1xa8tHNzKwi3nnnnffv1PjOO+9w7733MnTo0LLqLLWH8iIwALgtIv6trAjMzKzFvfHGGxx77LEAbNmyhRNPPJGxY8eWVWepCWURsAyYLOkXEfHJsqIwM7MWtc8++7BgwYJM6yw1oewLrAKuJLnQ0czMWrlSz6EMJLmY8WygvO+ZmZnZR0KpCaUzcC5wDrAxs2jMzKxmlTrk9SNgYEQskfRelgGZmVltKqqHIqmNpBWSvgYQEXURcX+6PLU5AzQzs9pQVEKJiK3AQqB/84ZjZma1qinnUHYCzpE0T9LM9HFbcwVmZmbNa82aNRx33HEMHDiQQYMG8eijj5ZVX1POoXwq/Tk8fQBEWUc3M7OKOeussxg7diw333wzmzZtYsOGDWXV15SE0q+sI5mZWdVYu3YtDz30ENdeey0A7du3p3379mXVWXRCiYi/lXUkMzP7kAeuvZKVf3sp0zq77b0Pnz214UsEX3rpJbp27cppp53GggULGDFiBNOnT2fnnXcu+bilXodiZmY1bMuWLTz11FN885vf5Omnn2bnnXfmoosuKqvOUq9DMTOzDDTWk2guvXr1olevXowaNQqA4447ruyE0uQeiqQvlHXEhuseK2mJpKWSPnR9ixKXptufkTS82H3NzOwDe+21F71792bJkiUAzJ49m8GDB5dVZyk9lJ8At5d11DwktQEuB0YDdcATkmZGxF9zio0jmTZ/ADAK+A0wqsh9zcwsx3/+539y0kknsWnTJvbZZx+uueaasuorJaGorCMWdhCwNCJeApA0AxgP5CaF8cD1ERHAY5I6S+oO9C1i38zccvV42u66ujmqNrNWoGffH7Pm7eb6KC1ObG3LsGHDmDdvXmZ1lnJSvrmuPelJco+VberSdcWUKWZfACRNSS/OnLdq1aqygzYzs0Q1nZTPl67rJ69CZYrZN1kZcSXJfVwYOXJkSclxwlc9QYCZlW7x4sV03m1gpcPIXDUllDqgd87zXsDyIsu0L2JfMzNrRqUMeb2ReRSJJ4ABkvpJag+cAMysV2Ym8JX0214HA3+PiBVF7mtmZs2oyT2UiBjdHIFExBZJZwL3AG2AqyNikaTT0+1XALOAo4ClwAbgtIb2bY44zcwsv2oa8iIiZpEkjdx1V+QsB3BGsfuamVnL8dQrZmat0JIlSxg2bNj7j1122YVLLrmkrDpL6qFI+m5EXJwu7xcRS8qKwszMWtR+++3H/PnzAdi6dSs9e/bk2GOPLavOJiUUSZ2BXwEDJW0EngEmk57LMDOz2jN79mz69+/P3nvvXVY9TUooEbEGOE3SPwOvA2OAW8qKwMysFVtz+4tsWv5OpnW277Eznb9Q/B3bZ8yYwaRJk8o+bqnnUA4n+frwwSTzZ5mZWQ3atGkTM2fO5Pjjjy+7rlK/5dUZOBc4h2TIy8zMStCUnkRzuOuuuxg+fDh77rln2XWVmlB+BAyMiCWS3is7CjMzq4ibbropk+EuKHHIKyLqIuL+dNn3HjEzq0EbNmzgvvvuY8KECZnUV1JCkXS5pGvT5TGZRGJmZi1qp512YvXq1ey6666Z1FfqSflNwEvp8pGZRGJmZjWt1ISyAdhVUjugT4bxmJlZjSr1pPxbwLskt92dm104ZmZWq5rUQ0lvuXsNMDFddT0wMvOozMys5jT5SnlJF5Hcw/1NYH98pbyZmVHakNdk4OWIuAd4MuN4zMysRpVyUv5t4HRJl0g6TdKBWQdlZmbN71e/+hVDhgxh6NChTJo0iY0bN5ZVX5MTSkRcCHwdmAa8DBxWVgRmZtbiXnvtNS699FLmzZvHwoUL2bp1KzNmzCirziYPeUn6EcltducD8yPiwbIiMDOzitiyZQvvvvsu7dq1Y8OGDfTo0aOs+kq5p/wPJP2ApHczUVL/iPh6WVGYmbVSd911F6+//nqmde61116MGzeuwTI9e/bk7LPPpk+fPuy4446MGTOGMWPKm/ik1AsbrwYGAXsAvy4rAjMza3Fvv/02t912Gy+//DLLly/nnXfe4cYbbyyrzlIvbPw2yfQrbYHp+DyKmVlJGutJNJf777+ffv360bVrVwAmTJjAI488wsknn1xynaX2UF4EOgC3RYSTiZlZjenTpw+PPfYYGzZsICKYPXs2gwYNKqvOUhPKImAOMFnSE2VFYGZmLW7UqFEcd9xxDB8+nE984hO89957TJkypaw6Sx3y6k9yPcqV6U8zM6sxF1xwARdccEFm9ZWaUJZFxBxJ3YGVmUVjZmY1q9Qhr7GSegFXAL/KMB4zM6tRpSaUzsC5wDnAPzKLxszMalapQ14/AgZGxBJJW7MMyMzMalNRPRRJbSStkPQ1gIioi4j70+WpzRmgmZnVhqISSkRsBRaSfLvLzMzsQ5pyDmUn4BxJ8yTNTB+3ZRGEpN0l3SfphfTnbgXKjZW0RNJSSVNz1v9C0nOSnpF0q6TOWcRlZvZRNn36dIYOHcqQIUO45JJLyq6vKQnlU4CA4cDROY8sTAVmR8QAYHb6fDuS2pDcw34cMBiYJGlwuvk+YGhE7A88D3w/o7jMzD6SFi5cyFVXXcXjjz/OggULuOOOO3jhhRfKqrMpCaVfnsc+ZR39A+OB69Ll64Bj8pQ5CFgaES9FxCZgRrofEXFvRGxJyz0G9MooLjOzj6TFixdz8MEHs9NOO9G2bVsOP/xwbr311rLqbPRbXpL6pIvRyPY1EbG2xDj2jIgVABGxQlK3PGV6AstyntcBo/KU+yrwhxLjMDNrUc8//2PWrV+caZ2dOg5i333/T4Nlhg4dyvnnn8/q1avZcccdmTVrFiNHjizruMV8bfg6kmSiBsoEcC1wfaECku4H9sqz6fwiYqDA8bdLcpLOB7YAv28gjinAFEgmRzMza40GDRrEueeey+jRo+nYsSMHHHAAbduWeiVJotG9I+KzZR3hg3o+X2ibpDckdU97J4Wmc6kDeuc87wUsz6njFJJzOp+LiLy9qTSOK0nmIGPkyJEFy5mZtYTGehLNafLkyUyePBmA8847j169yjtbUOqV8lmbCZySLp8C5Pv22BPAAEn9JLUHTkj3Q9JYkiv3vxgRG1ogXjOzmrdyZfK/+6uvvsott9zCpEmTyqqvvP5Ndi4C/ihpMvAqcDyApB7AbyPiqIjYIulM4B6Se9pfHRGL0v0vA3YA7pME8FhEnN7SL8LMrJZMnDiR1atX065dOy6//HJ22y3vFRtFq4qEEhGrgc/lWb8cOCrn+SxgVp5yH2/WAM3MPoIefvjhTOurliEvMzOrcU4oZmaWCScUM7MKaODLqFWjqTE6oZiZtbAOHTqwevXqqk4qEcHq1avp0KFD0ftUxUl5M7PWpFevXtTV1bFq1apKh9KgDh06NOnaFCcUM7MW1q5dO/r161fpMDLnIS8zM8uEE4qZmWXCCcXMzDLhhGJmZplwQjEzs0w4oZiZWSacUMzMLBNOKGZmlgknFDMzy4QTipmZZcIJxczMMuGEYmZmmXBCMTOzTDihmJlZJpxQzMwsE04oZmaWCScUMzPLhBOKmZllwgnFzMwy4YRiZmaZcEIxM7NMOKGYmVkmnFDMzCwTTihmZpYJJxQzM8tEVSQUSbtLuk/SC+nP3QqUGytpiaSlkqbm2X62pJDUpfmjNjOzXFWRUICpwOyIGADMTp9vR1Ib4HJgHDAYmCRpcM723sBo4NUWidjMzLZTLQllPHBdunwdcEyeMgcBSyPipYjYBMxI99vmV8A5QDRjnGZmVkC1JJQ9I2IFQPqzW54yPYFlOc/r0nVI+iLwWkQsaOxAkqZImidp3qpVq8qP3MzMAGjbUgeSdD+wV55N5xdbRZ51IWmntI4xxVQSEVcCVwKMHDnSvRkzs4y0WEKJiM8X2ibpDUndI2KFpO7AyjzF6oDeOc97AcuB/kA/YIGkbeufknRQRLye2QswM7MGVcuQ10zglHT5FOC2PGWeAAZI6iepPXACMDMino2IbhHRNyL6kiSe4U4mZmYtq1oSykXAaEkvkHxT6yIAST0kzQKIiC3AmcA9wGLgjxGxqELxmplZPS025NWQiFgNfC7P+uXAUTnPZwGzGqmrb9bxmZlZ46qlh2JmZjXOCcXMzDLhhGJmZplwQjEzs0w4oZiZWSacUMzMLBNOKGZmlgknFDMzy4QTipmZZcIJxczMMuGEYmZmmXBCMTOzTDihmJlZJpxQzMwsE04oZmaWCScUMzPLhBOKmZllwgnFzMwy4YRiZmaZcEIxM7NMOKGYmVkmnFDMzCwTTihmZpYJJxQzM8uEIqLSMVSMpFXA30rcvQvwZobhNJdaiLMWYoTaiLMWYgTHmaVKxLh3RHStv7JVJ5RySJoXESMrHUdjaiHOWogRaiPOWogRHGeWqilGD3mZmVkmnFDMzCwTTiilu7LSARSpFuKshRihNuKshRjBcWapamL0ORQzM8uEeyhmZpYJJxQzM8uEE0oJJI2VtETSUklTKx3PNpJekfSspPmS5qXrdpd0n6QX0p+7VSCuqyWtlLQwZ13BuCR9P23bJZL+qYIxTpP0Wtqe8yUdVckY0+P2lvSApMWSFkk6K11fNe3ZQIxV1Z6SOkh6XNKCNM4L0vXV1JaFYqyqtnxfRPjRhAfQBngR2AdoDywABlc6rjS2V4Au9db9HJiaLk8FflaBuA4DhgMLG4sLGJy26Q5Av7St21QoxmnA2XnKViTG9NjdgeHpcifg+TSeqmnPBmKsqvYEBHRMl9sBfwEOrrK2LBRjVbXltod7KE13ELA0Il6KiE3ADGB8hWNqyHjgunT5OuCYlg4gIh4C3qq3ulBc44EZEfGPiHgZWErS5pWIsZCKxAgQESsi4ql0eR2wGOhJFbVnAzEWUqn3PCJiffq0XfoIqqstC8VYSMV+N8FDXqXoCSzLeV5Hw38sLSmAeyU9KWlKum7PiFgByR860K1i0W2vUFzV1r5nSnomHRLbNvRRFTFK6gscSPJfa1W2Z70YocraU1IbSfOBlcB9EVF1bVkgRqiytgQnlFIoz7pq+e71IRExHBgHnCHpsEoHVIJqat/fAP2BYcAK4Jfp+orHKKkj8D/AdyJibUNF86xrkVjzxFh17RkRWyNiGNALOEjS0AaKVyTOAjFWXVuCE0op6oDeOc97AcsrFMt2ImJ5+nMlcCtJV/cNSd0B0p8rKxfhdgrFVTXtGxFvpH/M7wFX8cHQQUVjlNSO5IP69xFxS7q6qtozX4zV2p5pbGuAB4GxVFlb5ouxWtvSCaXpngAGSOonqT1wAjCzwjEhaWdJnbYtA2OAhSSxnZIWOwW4rTIRfkihuGYCJ0jaQVI/YADweAXi2/Zhss2xJO0JFYxRkoDfAYsj4uKcTVXTnoVirLb2lNRVUud0eUfg88BzVFdb5o2x2tryfS119v+j9ACOIvnmyovA+ZWOJ41pH5JvdywAFm2LC9gDmA28kP7cvQKx3UTSLd9M8h/U5IbiAs5P23YJMK6CMd4APAs8Q/KH2r2SMabHPZRkCOMZYH76OKqa2rOBGKuqPYH9gafTeBYCP0jXV1NbFoqxqtpy28NTr5iZWSY85GVmZplwQjEzs0w4oZiZWSacUMzMLBNOKGZmlgknFLMMSOos6V9znveQdHMzHesYST8osG19+rOrpLub4/hmhTihmGWjM/B+QomI5RFxXDMd6xzg1w0ViIhVwApJhzRTDGYf4oRilo2LgP7pvSl+Iamv0nurSDpV0p8k3S7pZUlnSvqupKclPSZp97Rcf0l3p5N7PixpYP2DSNoX+EdEvJk+7yfpUUlPSPpxveJ/Ak5q1ldtlsMJxSwbU4EXI2JYRPx7nu1DgRNJ5lz6CbAhIg4EHgW+kpa5EvhWRIwAziZ/L+QQ4Kmc59OB30TEJ4HX65WdB3ymxNdj1mRtKx2AWSvxQCT3Blkn6e/A7en6Z4H905l5Pw38dzIVFpDcJKm+7sCqnOeHABPT5RuAn+VsWwn0yCZ8s8Y5oZi1jH/kLL+X8/w9kr/DjwFrIpmmvCHvArvWW1do/qQOaXmzFuEhL7NsrCO53W1JIrlfyMuSjodkxl5JB+Qpuhj4eM7zuSQzXsOHz5fsywez0Jo1OycUswxExGpgrqSFkn5RYjUnAZMlbZsxOt+tpR8CDtQH42JnkdxM7Qk+3HP5LHBnibGYNZlnGzarMZKmA7dHxP2NlHsIGB8Rb7dMZNbauYdiVnt+CuzUUAFJXYGLnUysJbmHYmZmmXAPxczMMuGEYmZmmXBCMTOzTDihmJlZJpxQzMwsE/8f1qIiFZcVv4gAAAAASUVORK5CYII=\n", "text/plain": [ "
    " ] @@ -609,7 +609,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] @@ -644,7 +644,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] diff --git a/src/helio/helio_getacch.f90 b/src/helio/helio_getacch.f90 index 42b1fc918..21ae7aafe 100644 --- a/src/helio/helio_getacch.f90 +++ b/src/helio/helio_getacch.f90 @@ -1,7 +1,7 @@ submodule (helio_classes) s_helio_getacch use swiftest contains - module subroutine helio_getacch_pl(self, system, param, t) + module subroutine helio_getacch_pl(self, system, param, t, lbeg) !! author: David A. Minton !! !! Compute heliocentric accelerations of massive bodies @@ -14,20 +14,19 @@ module subroutine helio_getacch_pl(self, system, param, t) class(swiftest_nbody_system), intent(inout) :: system !! WHM nbody system object class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters of real(DP), intent(in) :: t !! Current simulation time - ! Internals + logical, optional, intent(in) :: lbeg !! Optional argument that determines whether or not this is the beginning or end of the step associate(cb => system%cb, pl => self, npl => self%nbody) call helio_getacch_int_pl(pl, t) - pl%ah(:,:) = pl%ahi(:,:) - if (param%loblatecb) call pl%obl_acc(cb) - if (param%lextra_force) call pl%user_getacch(system, param, t) - !if (param%lgr) call pl%gr_get_accel(param) + if (param%loblatecb) call pl%accel_obl(system) + if (param%lextra_force) call pl%accel_user(system, param, t) + !if (param%lgr) call pl%gr_accel(param) end associate return end subroutine helio_getacch_pl - module subroutine helio_getacch_tp(self, system, param, t, xhp) + module subroutine helio_getacch_tp(self, system, param, t, lbeg) !! author: David A. Minton !! !! Compute heliocentric accelerations of test particles @@ -40,22 +39,19 @@ module subroutine helio_getacch_tp(self, system, param, t, xhp) class(swiftest_nbody_system), intent(inout) :: system !! WHM nbody system object class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters of real(DP), intent(in) :: t !! Current time - real(DP), dimension(:,:), intent(in) :: xhp !! Heliocentric positions of planets at the current substep + logical, optional, intent(in) :: lbeg !! Optional argument that determines whether or not this is the beginning or end of the step ! Internals - logical, save :: lmalloc = .true. - integer(I4B) :: i - real(DP) :: r2, mu - real(DP), dimension(:), allocatable, save :: irh, irht + logical, save :: lmalloc = .true. + integer(I4B) :: i + real(DP) :: r2, mu + real(DP), dimension(:), allocatable, save :: irh, irht - associate(tp => self, ntp => self%nbody, cb => system%cb, npl => system%pl%nbody) - select type(pl => system%pl) - class is (helio_pl) - call helio_getacch_int_tp(tp, pl, t, xhp) - tp%ah(:,:) = tp%ahi(:,:) - if (param%loblatecb) call tp%obl_acc(cb) - if (param%lextra_force) call tp%user_getacch(system, param, t) - !if (param%lgr) call tp%gr_get_accel(param) - end select + associate(tp => self, ntp => self%nbody, cb => system%cb, npl => system%pl%nbody) + if (present(lbeg)) system%lbeg = lbeg + call helio_getacch_int_tp(tp, system, param, t) + if (param%loblatecb) call tp%accel_obl(system) + if (param%lextra_force) call tp%accel_user(system, param, t) + !if (param%lgr) call tp%gr_accel(param) end associate return end subroutine helio_getacch_tp @@ -77,7 +73,7 @@ subroutine helio_getacch_int_pl(pl, t) real(DP), dimension(NDIM) :: dx associate(npl => pl%nbody) - pl%ahi(:,:) = 0.0_DP + pl%ah(:,:) = 0.0_DP do i = 1, npl - 1 do j = i + 1, npl dx(:) = pl%xh(:,j) - pl%xh(:,i) @@ -85,8 +81,8 @@ subroutine helio_getacch_int_pl(pl, t) irij3 = 1.0_DP / (rji2 * sqrt(rji2)) faci = pl%Gmass(i) * irij3 facj = pl%Gmass(j) * irij3 - pl%ahi(:,i) = pl%ahi(:,i) + facj * dx(:) - pl%ahi(:,j) = pl%ahi(:,j) - faci * dx(:) + pl%ah(:,i) = pl%ah(:,i) + facj * dx(:) + pl%ah(:,j) = pl%ah(:,j) - faci * dx(:) end do end do end associate @@ -94,7 +90,7 @@ subroutine helio_getacch_int_pl(pl, t) return end subroutine helio_getacch_int_pl - subroutine helio_getacch_int_tp(tp, pl, t, xhp) + subroutine helio_getacch_int_tp(tp, system, param, t) !! author: David A. Minton !! !! Compute direct cross term heliocentric accelerations of test particles @@ -103,24 +99,31 @@ subroutine helio_getacch_int_tp(tp, pl, t, xhp) !! Adapted from Hal Levison's Swift routine getacch_ah3_tp.f implicit none ! Arguments - class(helio_tp), intent(inout) :: tp !! Helio test particle data structure - class(swiftest_pl), intent(inout) :: pl !! Helio massive body particle data structure - real(DP), intent(in) :: t !! Current time - real(DP), dimension(:,:), intent(in) :: xhp !! Heliocentric positions of planets + class(helio_tp), intent(inout) :: tp !! WHM test particle data structure + class(swiftest_nbody_system), intent(inout) :: system !! WHM nbody system object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters of + real(DP), intent(in) :: t !! Current times ! Internals - integer(I4B) :: i, j - real(DP) :: r2, fac - real(DP), dimension(NDIM) :: dx + integer(I4B) :: i, j + real(DP) :: r2, fac + real(DP), dimension(NDIM) :: dx + real(DP), dimension(:, :), allocatable :: xhp + + associate(ntp => tp%nbody, pl => system%pl, npl => system%pl%nbody) + if (system%lbeg) then + allocate(xhp, source=pl%xbeg) + else + allocate(xhp, source=pl%xend) + end if - associate(ntp => tp%nbody, npl => pl%nbody) - tp%ahi(:,:) = 0.0_DP + tp%ah(:,:) = 0.0_DP do i = 1, ntp if (tp%status(i) == ACTIVE) then do j = 1, npl dx(:) = tp%xh(:,i) - xhp(:,j) r2 = dot_product(dx(:), dx(:)) fac = pl%Gmass(j) / (r2 * sqrt(r2)) - tp%ahi(:,i) = tp%ahi(:,i) - fac * dx(:) + tp%ah(:,i) = tp%ah(:,i) - fac * dx(:) end do end if end do diff --git a/src/helio/helio_setup.f90 b/src/helio/helio_setup.f90 index 6a1f99f2a..b97287314 100644 --- a/src/helio/helio_setup.f90 +++ b/src/helio/helio_setup.f90 @@ -27,8 +27,8 @@ end subroutine helio_setup_system call setup_pl(self, n) if (n <= 0) return - allocate(self%ahi(NDIM, n)) - self%ahi(:,:) = 0.0_DP + allocate(self%ah(NDIM, n)) + self%ah(:,:) = 0.0_DP return end procedure helio_setup_pl @@ -44,8 +44,8 @@ end subroutine helio_setup_system call setup_tp(self, n) if (n <= 0) return - allocate(self%ahi(NDIM, n)) - self%ahi(:,:) = 0.0_DP + allocate(self%ah(NDIM, n)) + self%ah(:,:) = 0.0_DP return end procedure helio_setup_tp diff --git a/src/helio/helio_step.f90 b/src/helio/helio_step.f90 index 59997afeb..1c4367228 100644 --- a/src/helio/helio_step.f90 +++ b/src/helio/helio_step.f90 @@ -16,8 +16,8 @@ module subroutine helio_step_system(self, param, t, dt) real(DP), intent(in) :: dt !! Current stepsize associate(system => self, cb => self%cb, pl => self%pl, tp => self%tp) - call pl%set_rhill(cb) tp%lfirst = pl%lfirst + call pl%set_rhill(cb) call pl%step(system, param, t, dt) call tp%step(system, param, t, dt) end associate @@ -41,7 +41,8 @@ module subroutine helio_step_pl(self, system, param, t, dt) ! Internals integer(I4B) :: i real(DP) :: dth, msys - + + if (self%nbody == 0) return select type(system) class is (helio_nbody_system) associate(pl => self, cb => system%cb, ptb => system%ptb, pte => system%pte) @@ -51,12 +52,12 @@ module subroutine helio_step_pl(self, system, param, t, dt) pl%lfirst = .false. end if call pl%lindrift(system, dth, ptb) - call pl%get_accel(system, param, t) + call pl%accel(system, param, t) call pl%kick(dth) call pl%set_beg_end(xbeg = pl%xh) call pl%drift(system, param, dt) call pl%set_beg_end(xend = pl%xh) - call pl%get_accel(system, param, t + dt) + call pl%accel(system, param, t + dt) call pl%kick(dth) call pl%lindrift(system, dth, pte) call pl%vb2vh(cb) @@ -85,6 +86,8 @@ module subroutine helio_step_tp(self, system, param, t, dt) ! Internals real(DP) :: dth !! Half step size + if (self%nbody == 0) return + select type(system) class is (helio_nbody_system) associate(tp => self, cb => system%cb, pl => system%pl, ptb => system%ptb, pte => system%pte) @@ -94,10 +97,10 @@ module subroutine helio_step_tp(self, system, param, t, dt) tp%lfirst = .false. end if call tp%lindrift(system, dth, ptb) - call tp%get_accel(system, param, t, pl%xbeg) + call tp%accel(system, param, t, lbeg=.true.) call tp%kick(dth) call tp%drift(system, param, dt) - call tp%get_accel(system, param, t + dt, pl%xend) + call tp%accel(system, param, t + dt, lbeg=.false.) call tp%kick(dth) call tp%lindrift(system, dth, pte) call tp%vb2vh(vbcb = -pte) diff --git a/src/io/io.f90 b/src/io/io.f90 index c1440bf2d..55789417b 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1080,7 +1080,7 @@ module subroutine io_write_discard(self, param) if (param%lgr) then select type(discards) class is (whm_tp) - call discards%gr_pv2vh(param) + call discards%pv2vh(param) end select end if write(LUN, HDRFMT) t, nsp, param%lbig_discard @@ -1097,7 +1097,7 @@ module subroutine io_write_discard(self, param) allocate(pltemp, source = pl) select type(pltemp) class is (whm_pl) - call pltemp%gr_pv2vh(param) + call pltemp%pv2vh(param) allocate(vh, source = pltemp%vh) end select deallocate(pltemp) @@ -1316,11 +1316,11 @@ module subroutine io_write_frame_system(self, iu, param) associate(vh => pl%vh, vht => tp%vh) select type(pl) class is (whm_pl) - call pl%gr_pv2vh(param) + call pl%pv2vh(param) end select select type(tp) class is (whm_tp) - call tp%gr_pv2vh(param) + call tp%pv2vh(param) end select end associate end if diff --git a/src/modules/helio_classes.f90 b/src/modules/helio_classes.f90 index 7fc1749c8..9b88db48d 100644 --- a/src/modules/helio_classes.f90 +++ b/src/modules/helio_classes.f90 @@ -37,14 +37,14 @@ module helio_classes type, public, extends(swiftest_pl) :: helio_pl real(DP), dimension(:,:), allocatable :: ahi !! heliocentric acceleration due to interactions contains - procedure, public :: vh2vb => helio_coord_vh2vb_pl !! Convert massive bodies from heliocentric to barycentric coordinates (velocity only) - procedure, public :: vb2vh => helio_coord_vb2vh_pl !! Convert massive bodies from barycentric to heliocentric coordinates (velocity only) - procedure, public :: drift => helio_drift_pl !! Method for Danby drift in Democratic Heliocentric coordinates - procedure, public :: lindrift => helio_drift_linear_pl !! Method for linear drift of massive bodies due to barycentric momentum of Sun - procedure, public :: get_accel => helio_getacch_pl !! Compute heliocentric accelerations of massive bodies - procedure, public :: kick => helio_kickvb_pl !! Kicks the barycentric velocities - procedure, public :: setup => helio_setup_pl !! Constructor method - Allocates space for number of particles - procedure, public :: step => helio_step_pl !! Steps the body forward one stepsize + procedure, public :: vh2vb => helio_coord_vh2vb_pl !! Convert massive bodies from heliocentric to barycentric coordinates (velocity only) + procedure, public :: vb2vh => helio_coord_vb2vh_pl !! Convert massive bodies from barycentric to heliocentric coordinates (velocity only) + procedure, public :: drift => helio_drift_pl !! Method for Danby drift in Democratic Heliocentric coordinates + procedure, public :: lindrift => helio_drift_linear_pl !! Method for linear drift of massive bodies due to barycentric momentum of Sun + procedure, public :: accel => helio_getacch_pl !! Compute heliocentric accelerations of massive bodies + procedure, public :: kick => helio_kickvb_pl !! Kicks the barycentric velocities + procedure, public :: setup => helio_setup_pl !! Constructor method - Allocates space for number of particles + procedure, public :: step => helio_step_pl !! Steps the body forward one stepsize end type helio_pl !******************************************************************************************************************************** @@ -53,18 +53,17 @@ module helio_classes !! Helio test particle class type, public, extends(swiftest_tp) :: helio_tp - real(DP), dimension(:,:), allocatable :: ahi !! heliocentric acceleration due to interactions real(DP), dimension(NDIM) :: ptbeg !! negative barycentric velocity of the Sun at beginning of time step real(DP), dimension(NDIM) :: ptend !! negative barycentric velocity of the Sun at beginning of time step contains - procedure, public :: vh2vb => helio_coord_vh2vb_tp !! Convert test particles from heliocentric to barycentric coordinates (velocity only) - procedure, public :: vb2vh => helio_coord_vb2vh_tp !! Convert test particles from barycentric to heliocentric coordinates (velocity only) - procedure, public :: drift => helio_drift_tp !! Method for Danby drift in Democratic Heliocentric coordinates - procedure, public :: lindrift => helio_drift_linear_tp !! Method for linear drift of massive bodies due to barycentric momentum of Sun - procedure, public :: get_accel => helio_getacch_tp !! Compute heliocentric accelerations of massive bodies - procedure, public :: kick => helio_kickvb_tp !! Kicks the barycentric velocities - procedure, public :: setup => helio_setup_tp !! Constructor method - Allocates space for number of particles - procedure, public :: step => helio_step_tp !! Steps the body forward one stepsize + procedure, public :: vh2vb => helio_coord_vh2vb_tp !! Convert test particles from heliocentric to barycentric coordinates (velocity only) + procedure, public :: vb2vh => helio_coord_vb2vh_tp !! Convert test particles from barycentric to heliocentric coordinates (velocity only) + procedure, public :: drift => helio_drift_tp !! Method for Danby drift in Democratic Heliocentric coordinates + procedure, public :: lindrift => helio_drift_linear_tp !! Method for linear drift of massive bodies due to barycentric momentum of Sun + procedure, public :: accel => helio_getacch_tp !! Compute heliocentric accelerations of massive bodies + procedure, public :: kick => helio_kickvb_tp !! Kicks the barycentric velocities + procedure, public :: setup => helio_setup_tp !! Constructor method - Allocates space for number of particles + procedure, public :: step => helio_step_tp !! Steps the body forward one stepsize end type helio_tp interface @@ -128,23 +127,24 @@ module subroutine helio_drift_linear_tp(self, system, dt, pt) real(DP), dimension(:), intent(in) :: pt !! negative barycentric velocity of the Sun end subroutine helio_drift_linear_tp - module subroutine helio_getacch_pl(self, system, param, t) + module subroutine helio_getacch_pl(self, system, param, t, lbeg) use swiftest_classes, only : swiftest_parameters, swiftest_nbody_system implicit none class(helio_pl), intent(inout) :: self !! Helio massive body object class(swiftest_nbody_system), intent(inout) :: system !! WHM nbody system object class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters of real(DP), intent(in) :: t !! Current simulation time + logical, optional, intent(in) :: lbeg !! Optional argument that determines whether or not this is the beginning or end of the step end subroutine helio_getacch_pl - module subroutine helio_getacch_tp(self, system, param, t, xhp) + module subroutine helio_getacch_tp(self, system, param, t, lbeg) use swiftest_classes, only : swiftest_parameters, swiftest_nbody_system implicit none class(helio_tp), intent(inout) :: self !! Helio test particle object class(swiftest_nbody_system), intent(inout) :: system !! WHM nbody system object class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current time - real(DP), dimension(:,:), intent(in) :: xhp !! Heliocentric positions of planets + logical, optional, intent(in) :: lbeg !! Optional argument that determines whether or not this is the beginning or end of the step end subroutine helio_getacch_tp module subroutine helio_kickvb_pl(self, dt) diff --git a/src/modules/rmvs_classes.f90 b/src/modules/rmvs_classes.f90 index 905092892..2baad04eb 100644 --- a/src/modules/rmvs_classes.f90 +++ b/src/modules/rmvs_classes.f90 @@ -8,7 +8,6 @@ module rmvs_classes implicit none public - integer(I4B), parameter :: NTENC = 10 integer(I4B), parameter :: NTPHENC = 3 integer(I4B), parameter :: NTPENC = NTENC * NTPHENC @@ -67,13 +66,13 @@ module rmvs_classes integer(I4B) :: ipleP !! index value of encountering planet logical :: lplanetocentric = .false. !! Flag that indicates that the object is a planetocentric set of masive bodies used for close encounter calculations contains - procedure, public :: discard => rmvs_discard_tp !! Check to see if test particles should be discarded based on pericenter passage distances with respect to planets encountered - procedure, public :: encounter_check => rmvs_encounter_check_tp !! Checks if any test particles are undergoing a close encounter with a massive body - procedure, public :: fill => rmvs_fill_tp !! "Fills" bodies from one object into another depending on the results of a mask (uses the MERGE intrinsic) - procedure, public :: get_accel => rmvs_getacch_tp !! Calculates either the standard or modified version of the acceleration depending if the + procedure, public :: discard => rmvs_discard_tp !! Check to see if test particles should be discarded based on pericenter passage distances with respect to planets encountered + procedure, public :: encounter_check => rmvs_encounter_check_tp !! Checks if any test particles are undergoing a close encounter with a massive body + procedure, public :: fill => rmvs_fill_tp !! "Fills" bodies from one object into another depending on the results of a mask (uses the MERGE intrinsic) + procedure, public :: accel => rmvs_getacch_tp !! Calculates either the standard or modified version of the acceleration depending if the !! if the test particle is undergoing a close encounter or not - procedure, public :: setup => rmvs_setup_tp !! Constructor method - Allocates space for number of particles - procedure, public :: spill => rmvs_spill_tp !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) + procedure, public :: setup => rmvs_setup_tp !! Constructor method - Allocates space for number of particles + procedure, public :: spill => rmvs_spill_tp !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) end type rmvs_tp !******************************************************************************************************************************** @@ -82,11 +81,11 @@ module rmvs_classes !> RMVS massive body particle class type, private, extends(whm_pl) :: rmvs_pl - integer(I4B), dimension(:), allocatable :: nenc !! number of test particles encountering planet this full rmvs time step - integer(I4B), dimension(:), allocatable :: tpenc1P !! index of first test particle encountering planet - integer(I4B), dimension(:), allocatable :: plind ! Connects the planetocentric indices back to the heliocentric planet list - type(rmvs_interp), dimension(:), allocatable :: outer !! interpolated heliocentric central body position for outer encounters - type(rmvs_interp), dimension(:), allocatable :: inner !! interpolated heliocentric central body position for inner encounters + integer(I4B), dimension(:), allocatable :: nenc !! number of test particles encountering planet this full rmvs time step + integer(I4B), dimension(:), allocatable :: tpenc1P !! index of first test particle encountering planet + integer(I4B), dimension(:), allocatable :: plind ! Connects the planetocentric indices back to the heliocentric planet list + type(rmvs_interp), dimension(:), allocatable :: outer !! interpolated heliocentric central body position for outer encounters + type(rmvs_interp), dimension(:), allocatable :: inner !! interpolated heliocentric central body position for inner encounters class(rmvs_nbody_system), dimension(:), allocatable :: planetocentric logical :: lplanetocentric = .false. !! Flag that indicates that the object is a planetocentric set of masive bodies used for close encounter calculations contains @@ -128,14 +127,14 @@ module subroutine rmvs_fill_tp(self, inserts, lfill_list) logical, dimension(:), intent(in) :: lfill_list !! Logical array of bodies to merge into the keeps end subroutine rmvs_fill_tp - module subroutine rmvs_getacch_tp(self, system, param, t, xhp) + module subroutine rmvs_getacch_tp(self, system, param, t, lbeg) use swiftest_classes, only : swiftest_nbody_system, swiftest_parameters implicit none class(rmvs_tp), intent(inout) :: self !! RMVS test particle data structure class(swiftest_nbody_system), intent(inout) :: system !! Swiftest central body particle data structuree class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current time - real(DP), dimension(:,:), intent(in) :: xhp !! Heliocentric positions of planets at current substep + logical, optional, intent(in) :: lbeg !! Optional argument that determines whether or not this is the beginning or end of the step end subroutine rmvs_getacch_tp module subroutine rmvs_setup_pl(self,n) diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 6bd9a442b..3d1cba23d 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -13,12 +13,13 @@ module swiftest_classes io_read_cb_in, io_read_param_in, io_read_frame_body, io_read_frame_cb, io_read_frame_system, io_read_initialize_system, & io_write_discard, io_write_encounter, io_write_frame_body, io_write_frame_cb, io_write_frame_system public :: kickvh_body - public :: obl_acc_body + public :: obl_acc_body, obl_acc_pl, obl_acc_tp public :: orbel_el2xv_vec, orbel_xv2el_vec, orbel_scget, orbel_xv2aeq, orbel_xv2aqt - public :: setup_body, setup_construct_system, setup_pl, setup_set_ir3h, setup_set_msys, setup_set_mu_pl, setup_set_mu_tp, & - setup_set_rhill, setup_tp + public :: setup_body, setup_construct_system, setup_pl, setup_tp + public :: user_getacch_body public :: util_coord_b2h_pl, util_coord_b2h_tp, util_coord_h2b_pl, util_coord_h2b_tp, util_copy_body, util_copy_cb, util_copy_pl, & - util_copy_tp, util_copy_system, util_fill_body, util_fill_pl, util_fill_tp, util_reverse_status, util_set_beg_end, & + util_copy_tp, util_copy_system, util_fill_body, util_fill_pl, util_fill_tp, util_reverse_status, util_set_beg_end_cb, & + util_set_beg_end_pl, util_set_ir3h, util_set_msys, util_set_mu_pl, util_set_mu_tp, util_set_rhill, & util_spill_body, util_spill_pl, util_spill_tp !******************************************************************************************************************************** @@ -114,6 +115,8 @@ module swiftest_classes 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) :: 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) :: 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) :: Ip = 0.0_DP !! Unitless principal moments of inertia (I1, I2, I3) / (MR**2). Principal axis rotation assumed. @@ -122,10 +125,11 @@ module swiftest_classes real(DP) :: Q = 0.0_DP !! Tidal quality factor contains private - procedure, public :: initialize => io_read_cb_in !! I/O routine for reading in central body data - procedure, public :: write_frame => io_write_frame_cb !! I/O routine for writing out a single frame of time-series data for the central body - procedure, public :: read_frame => io_read_frame_cb !! I/O routine for reading out a single frame of time-series data for the central body - procedure, public :: copy => util_copy_cb !! Copies elements of one object to another. + procedure, public :: initialize => io_read_cb_in !! I/O routine for reading in central body data + procedure, public :: write_frame => io_write_frame_cb !! I/O routine for writing out a single frame of time-series data for the central body + procedure, public :: read_frame => io_read_frame_cb !! I/O routine for reading out a single frame of time-series data for the central body + procedure, public :: copy => util_copy_cb !! Copies elements of one object to another. + procedure, public :: set_beg_end => util_set_beg_end_cb !! Sets the beginning and ending oblateness acceleration term end type swiftest_cb !******************************************************************************************************************************** @@ -160,17 +164,18 @@ module swiftest_classes procedure(abstract_discard_body), public, deferred :: discard procedure(abstract_set_mu), public, deferred :: set_mu procedure(abstract_step_body), public, deferred :: step - procedure(abstract_get_accel), public, deferred :: get_accel + procedure(abstract_accel), public, deferred :: accel ! These are concrete because the implementation is the same for all types of particles procedure, public :: initialize => io_read_body_in !! Read in body initial conditions from a file procedure, public :: read_frame => io_read_frame_body !! I/O routine for writing out a single frame of time-series data for the central body procedure, public :: write_frame => io_write_frame_body !! I/O routine for writing out a single frame of time-series data for the central body procedure, public :: kick => kickvh_body !! Kicks the heliocentric velocities - procedure, public :: obl_acc => obl_acc_body !! Compute the barycentric accelerations of bodies due to the oblateness of the central body + procedure, public :: accel_obl => obl_acc_body !! Compute the barycentric accelerations of bodies due to the oblateness of the central body procedure, public :: el2xv => orbel_el2xv_vec !! Convert orbital elements to position and velocity vectors procedure, public :: xv2el => orbel_xv2el_vec !! Convert position and velocity vectors to orbital elements - procedure, public :: set_ir3 => setup_set_ir3h !! Sets the inverse heliocentric radius term (1/rh**3) + procedure, public :: set_ir3 => util_set_ir3h !! Sets the inverse heliocentric radius term (1/rh**3) procedure, public :: setup => setup_body !! A constructor that sets the number of bodies and allocates all allocatable arrays + procedure, public :: accel_user => user_getacch_body !! Add user-supplied heliocentric accelerations to planets procedure, public :: copy => util_copy_body !! Copies elements of one object to another. procedure, public :: fill => util_fill_body !! "Fills" bodies from one object into another depending on the results of a mask (uses the MERGE intrinsic) procedure, public :: spill => util_spill_body !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) @@ -206,18 +211,19 @@ module swiftest_classes private ! Massive body-specific concrete methods ! These are concrete because they are the same implemenation for all integrators - procedure, public :: discard => discard_pl !! Placeholder method for discarding massive bodies - procedure, public :: eucl_index => eucl_dist_index_plpl !! Sets up the (i, j) -> k indexing used for the single-loop blocking Euclidean distance matrix - procedure, public :: eucl_irij3 => eucl_irij3_plpl !! Parallelized single loop blocking for Euclidean distance matrix calcualtion - procedure, public :: setup => setup_pl !! A base constructor that sets the number of bodies and allocates and initializes all arrays - procedure, public :: set_mu => setup_set_mu_pl !! Method used to construct the vectorized form of the central body mass - procedure, public :: set_rhill => setup_set_rhill !! Calculates the Hill's radii for each body - procedure, public :: h2b => util_coord_h2b_pl !! Convert massive bodies from heliocentric to barycentric coordinates (position and velocity) - procedure, public :: b2h => util_coord_b2h_pl !! Convert massive bodies from barycentric to heliocentric coordinates (position and velocity) - procedure, public :: copy => util_copy_pl !! Copies elements of one object to another. - procedure, public :: fill => util_fill_pl !! "Fills" bodies from one object into another depending on the results of a mask (uses the MERGE intrinsic) - procedure, public :: set_beg_end => util_set_beg_end !! Sets the beginning and ending positions of planets. - procedure, public :: spill => util_spill_pl !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) + procedure, public :: discard => discard_pl !! Placeholder method for discarding massive bodies + procedure, public :: eucl_index => eucl_dist_index_plpl !! Sets up the (i, j) -> k indexing used for the single-loop blocking Euclidean distance matrix + procedure, public :: eucl_irij3 => eucl_irij3_plpl !! Parallelized single loop blocking for Euclidean distance matrix calcualtion + procedure, public :: accel_obl => obl_acc_pl !! Compute the barycentric accelerations of bodies due to the oblateness of the central body + procedure, public :: setup => setup_pl !! A base constructor that sets the number of bodies and allocates and initializes all arrays + procedure, public :: set_mu => util_set_mu_pl !! Method used to construct the vectorized form of the central body mass + procedure, public :: set_rhill => util_set_rhill !! Calculates the Hill's radii for each body + procedure, public :: h2b => util_coord_h2b_pl !! Convert massive bodies from heliocentric to barycentric coordinates (position and velocity) + procedure, public :: b2h => util_coord_b2h_pl !! Convert massive bodies from barycentric to heliocentric coordinates (position and velocity) + procedure, public :: copy => util_copy_pl !! Copies elements of one object to another. + procedure, public :: fill => util_fill_pl !! "Fills" bodies from one object into another depending on the results of a mask (uses the MERGE intrinsic) + procedure, public :: set_beg_end => util_set_beg_end_pl !! Sets the beginning and ending positions and velocities of planets. + procedure, public :: spill => util_spill_pl !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) end type swiftest_pl !******************************************************************************************************************************** @@ -236,15 +242,16 @@ module swiftest_classes private ! Test particle-specific concrete methods ! These are concrete because they are the same implemenation for all integrators - procedure, public :: discard => discard_tp !! Check to see if test particles should be discarded based on their positions relative to the massive bodies - procedure, public :: eucl_index => eucl_dist_index_pltp !! Sets up the (i, j) -> k indexing used for the single-loop blocking Euclidean distance matrix - procedure, public :: setup => setup_tp !! A base constructor that sets the number of bodies and - procedure, public :: set_mu => setup_set_mu_tp !! Method used to construct the vectorized form of the central body mass - procedure, public :: h2b => util_coord_h2b_tp !! Convert test particles from heliocentric to barycentric coordinates (position and velocity) - procedure, public :: b2h => util_coord_b2h_tp !! Convert test particles from barycentric to heliocentric coordinates (position and velocity) - procedure, public :: copy => util_copy_tp !! Copies elements of one object to another. - procedure, public :: fill => util_fill_tp !! "Fills" bodies from one object into another depending on the results of a mask (uses the MERGE intrinsic) - procedure, public :: spill => util_spill_tp !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) + procedure, public :: discard => discard_tp !! Check to see if test particles should be discarded based on their positions relative to the massive bodies + procedure, public :: eucl_index => eucl_dist_index_pltp !! Sets up the (i, j) -> k indexing used for the single-loop blocking Euclidean distance matrix + procedure, public :: accel_obl => obl_acc_tp !! Compute the barycentric accelerations of bodies due to the oblateness of the central body + procedure, public :: setup => setup_tp !! A base constructor that sets the number of bodies and + procedure, public :: set_mu => util_set_mu_tp !! Method used to construct the vectorized form of the central body mass + procedure, public :: h2b => util_coord_h2b_tp !! Convert test particles from heliocentric to barycentric coordinates (position and velocity) + procedure, public :: b2h => util_coord_b2h_tp !! Convert test particles from barycentric to heliocentric coordinates (position and velocity) + procedure, public :: copy => util_copy_tp !! Copies elements of one object to another. + procedure, public :: fill => util_fill_tp !! "Fills" bodies from one object into another depending on the results of a mask (uses the MERGE intrinsic) + procedure, public :: spill => util_spill_tp !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) end type swiftest_tp !******************************************************************************************************************************** @@ -262,6 +269,9 @@ module swiftest_classes real(DP) :: pe = 0.0_DP !! System potential energy real(DP) :: te = 0.0_DP !! System total energy real(DP), dimension(NDIM) :: htot = 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 private !> Each integrator will have its own version of the step @@ -272,7 +282,7 @@ module swiftest_classes procedure, public :: dump => io_dump_system !! Dump the state of the system to a file procedure, public :: initialize => io_read_initialize_system !! Initialize the system from an input file procedure, public :: read_frame => io_read_frame_system !! Append a frame of output data to file - procedure, public :: set_msys => setup_set_msys !! Sets the value of msys from the masses of system bodies. + procedure, public :: set_msys => util_set_msys !! Sets the value of msys from the masses of system bodies. procedure, public :: write_discard => io_write_discard !! Append a frame of output data to file procedure, public :: write_frame => io_write_frame_system !! Append a frame of output data to file procedure, public :: copy => util_copy_system !! Copies elements of one object to another. @@ -293,14 +303,14 @@ subroutine abstract_discard_body(self, system, param) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine abstract_discard_body - subroutine abstract_get_accel(self, system, param, t) - use swiftest_classes, only : swiftest_body, swifest_nbody_system, swiftest_parameters - implicit none + subroutine abstract_accel(self, system, param, t, lbeg) + import swiftest_body, swiftest_nbody_system, swiftest_parameters, DP class(swiftest_body), intent(inout) :: self !! Swiftest body data structure class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters of real(DP), intent(in) :: t !! Current simulation time - end subroutine abstract_get_accel + logical, optional, 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 @@ -537,14 +547,24 @@ module subroutine kickvh_body(self, dt) real(DP), intent(in) :: dt !! Stepsize end subroutine kickvh_body - module subroutine obl_acc_body(self, system, param, t) + module subroutine obl_acc_body(self, system) implicit none - class(swiftest_body), intent(inout) :: self !! Swiftest massive body data structure + class(swiftest_body), intent(inout) :: self !! Swiftest body object class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters of - real(DP), intent(in) :: t !! Current simulation time end subroutine obl_acc_body + module subroutine obl_acc_pl(self, system) + implicit none + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object + end subroutine obl_acc_pl + + module subroutine obl_acc_tp(self, system) + implicit none + class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object + end subroutine obl_acc_tp + module subroutine orbel_el2xv_vec(self, cb) implicit none class(swiftest_body), intent(inout) :: self !! Swiftest body object @@ -595,33 +615,33 @@ module subroutine setup_pl(self,n) integer, intent(in) :: n !! Number of massive bodies to allocate space for end subroutine setup_pl - module subroutine setup_set_ir3h(self) + module subroutine util_set_ir3h(self) implicit none class(swiftest_body), intent(inout) :: self !! Swiftest body object - end subroutine setup_set_ir3h + end subroutine util_set_ir3h - module subroutine setup_set_msys(self) + module subroutine util_set_msys(self) implicit none class(swiftest_nbody_system), intent(inout) :: self !! Swiftest system object - end subroutine setup_set_msys + end subroutine util_set_msys - module subroutine setup_set_mu_pl(self, cb) + module subroutine util_set_mu_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 setup_set_mu_pl + end subroutine util_set_mu_pl - module subroutine setup_set_mu_tp(self, cb) + module subroutine util_set_mu_tp(self, cb) implicit none class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object - end subroutine setup_set_mu_tp + end subroutine util_set_mu_tp - module subroutine setup_set_rhill(self,cb) + module subroutine util_set_rhill(self,cb) implicit none class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object class(swiftest_cb), intent(inout) :: cb !! Swiftest massive body object - end subroutine setup_set_rhill + end subroutine util_set_rhill module subroutine setup_tp(self, n) implicit none @@ -629,6 +649,15 @@ module subroutine setup_tp(self, n) integer, intent(in) :: n !! Number of bodies to allocate space for end subroutine setup_tp + module subroutine user_getacch_body(self, system, param, t, lbeg) + implicit none + class(swiftest_body), intent(inout) :: self !! Swiftest massive body particle data structure + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody_system_object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters of user parameters + real(DP), intent(in) :: t !! Current time + logical, optional, intent(in) :: lbeg !! Optional argument that determines whether or not this is the beginning or end of the step + end subroutine user_getacch_body + module subroutine util_coord_b2h_pl(self, cb) implicit none class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object @@ -714,12 +743,20 @@ module subroutine util_reverse_status(self) class(swiftest_body), intent(inout) :: self !! Swiftest body object end subroutine util_reverse_status - module subroutine util_set_beg_end(self, xbeg, xend, vbeg) + module subroutine util_set_beg_end_cb(self, aoblbeg, aoblend) + implicit none + class(swiftest_cb), intent(inout) :: self !! Swiftest central body object + real(DP), dimension(:), intent(in), optional :: aoblbeg !! Oblateness acceleration term at beginning of step + real(DP), dimension(:), intent(in), optional :: aoblend !! Oblateness acceleration term at end of step + end subroutine util_set_beg_end_cb + + module subroutine util_set_beg_end_pl(self, xbeg, xend, vbeg) implicit none - class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object - real(DP), dimension(:,:), intent(in), optional :: xbeg, xend !! Positions at beginning and end of step - real(DP), dimension(:,:), intent(in), optional :: vbeg !! vbeg is an unused variable to keep this method forward compatible with RMVS - end subroutine util_set_beg_end + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + real(DP), dimension(:,:), intent(in), optional :: xbeg !! Position vectors at beginning of step + real(DP), dimension(:,:), intent(in), optional :: xend !! Positions vectors at end of step + real(DP), dimension(:,:), intent(in), optional :: vbeg !! vbeg is an unused variable to keep this method forward compatible with RMVS + end subroutine util_set_beg_end_pl module subroutine util_spill_body(self, discards, lspill_list) implicit none diff --git a/src/modules/whm_classes.f90 b/src/modules/whm_classes.f90 index e15e6d9c7..b0f176a0a 100644 --- a/src/modules/whm_classes.f90 +++ b/src/modules/whm_classes.f90 @@ -30,21 +30,21 @@ module whm_classes !! Note to developers: If you add componenets to this class, be sure to update methods and subroutines that traverse the !! component list, such as whm_setup_pl and whm_spill_pl contains - procedure, public :: h2j => whm_coord_h2j_pl !! Convert position and velcoity vectors from heliocentric to Jacobi coordinates - procedure, public :: j2h => whm_coord_j2h_pl !! Convert position and velcoity vectors from Jacobi to helliocentric coordinates - procedure, public :: vh2vj => whm_coord_vh2vj_pl !! Convert velocity vectors from heliocentric to Jacobi coordinates - procedure, public :: drift => whm_drift_pl !! Loop through massive bodies and call Danby drift routine - procedure, public :: fill => whm_fill_pl !! "Fills" bodies from one object into another depending on the results of a mask (uses the MERGE intrinsic) - procedure, public :: get_accel => whm_getacch_pl !! Compute heliocentric accelerations of massive bodies - procedure, public :: gr_get_accel => whm_gr_getacch_pl !! Acceleration term arising from the post-Newtonian correction - procedure, public :: gr_p4 => whm_gr_p4_pl !! Position kick due to p**4 term in the post-Newtonian correction - procedure, public :: gr_vh2pv => whm_gr_vh2pv_pl !! Converts from heliocentric velocity to psudeovelocity for GR calculations - procedure, public :: gr_pv2vh => whm_gr_pv2vh_pl !! Converts from psudeovelocity to heliocentric velocity for GR calculations - procedure, public :: setup => whm_setup_pl !! Constructor method - Allocates space for number of particles - procedure, public :: set_mu => whm_setup_set_mu_eta_pl !! Sets the Jacobi mass value for all massive bodies. - procedure, public :: set_ir3 => whm_setup_set_ir3j !! Sets both the heliocentric and jacobi inverse radius terms (1/rj**3 and 1/rh**3) - procedure, public :: step => whm_step_pl !! Steps the body forward one stepsize - procedure, public :: spill => whm_spill_pl !!"Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) + procedure, public :: h2j => whm_coord_h2j_pl !! Convert position and velcoity vectors from heliocentric to Jacobi coordinates + procedure, public :: j2h => whm_coord_j2h_pl !! Convert position and velcoity vectors from Jacobi to helliocentric coordinates + procedure, public :: vh2vj => whm_coord_vh2vj_pl !! Convert velocity vectors from heliocentric to Jacobi coordinates + procedure, public :: drift => whm_drift_pl !! Loop through massive bodies and call Danby drift routine + procedure, public :: fill => whm_fill_pl !! "Fills" bodies from one object into another depending on the results of a mask (uses the MERGE intrinsic) + procedure, public :: accel => whm_getacch_pl !! Compute heliocentric accelerations of massive bodies + procedure, public :: accel_gr => whm_gr_getacch_pl !! Acceleration term arising from the post-Newtonian correction + procedure, public :: p4 => whm_gr_p4_pl !! Position kick due to p**4 term in the post-Newtonian correction + procedure, public :: vh2pv => whm_gr_vh2pv_pl !! Converts from heliocentric velocity to psudeovelocity for GR calculations + procedure, public :: pv2vh => whm_gr_pv2vh_pl !! Converts from psudeovelocity to heliocentric velocity for GR calculations + procedure, public :: setup => whm_setup_pl !! Constructor method - Allocates space for number of particles + procedure, public :: set_mu => whm_util_set_mu_eta_pl !! Sets the Jacobi mass value for all massive bodies. + procedure, public :: set_ir3 => whm_setup_set_ir3j !! Sets both the heliocentric and jacobi inverse radius terms (1/rj**3 and 1/rh**3) + procedure, public :: step => whm_step_pl !! Steps the body forward one stepsize + procedure, public :: spill => whm_spill_pl !!"Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) end type whm_pl !******************************************************************************************************************************** @@ -57,14 +57,14 @@ module whm_classes !! component list, such as whm_setup_tp and whm_spill_tp contains private - procedure, public :: drift => whm_drift_tp !! Loop through test particles and call Danby drift routine - procedure, public :: get_accel => whm_getacch_tp !! Compute heliocentric accelerations of test particles - procedure, public :: gr_get_accel => whm_gr_getacch_tp !! Acceleration term arising from the post-Newtonian correction - procedure, public :: gr_p4 => whm_gr_p4_tp !! Position kick due to p**4 term in the post-Newtonian correction - procedure, public :: gr_vh2pv => whm_gr_vh2pv_tp !! Converts from heliocentric velocity to psudeovelocity for GR calculations - procedure, public :: gr_pv2vh => whm_gr_pv2vh_tp !! Converts from psudeovelocity to heliocentric velocity for GR calculations - procedure, public :: setup => whm_setup_tp !! Allocates new components of the whm class and recursively calls parent allocations - procedure, public :: step => whm_step_tp !! Steps the particle forward one stepsize + procedure, public :: drift => whm_drift_tp !! Loop through test particles and call Danby drift routine + procedure, public :: accel => whm_getacch_tp !! Compute heliocentric accelerations of test particles + procedure, public :: accel_gr => whm_gr_getacch_tp !! Acceleration term arising from the post-Newtonian correction + procedure, public :: p4 => whm_gr_p4_tp !! Position kick due to p**4 term in the post-Newtonian correction + procedure, public :: vh2pv => whm_gr_vh2pv_tp !! Converts from heliocentric velocity to psudeovelocity for GR calculations + procedure, public :: pv2vh => whm_gr_pv2vh_tp !! Converts from psudeovelocity to heliocentric velocity for GR calculations + procedure, public :: setup => whm_setup_tp !! Allocates new components of the whm class and recursively calls parent allocations + procedure, public :: step => whm_step_tp !! Steps the particle forward one stepsize end type whm_tp !******************************************************************************************************************************** @@ -128,24 +128,25 @@ module subroutine whm_fill_pl(self, inserts, lfill_list) end subroutine whm_fill_pl !> Get heliocentric accelration of massive bodies - module subroutine whm_getacch_pl(self, system, param, t) + module subroutine whm_getacch_pl(self, system, param, t, lbeg) use swiftest_classes, only : swiftest_cb, swiftest_parameters implicit none class(whm_pl), intent(inout) :: self !! WHM massive body particle data structure class(swiftest_nbody_system), intent(inout) :: system !! WHM nbody system object class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters of real(DP), intent(in) :: t !! Current simulation time + logical, optional, intent(in) :: lbeg !! Optional argument that determines whether or not this is the beginning or end of the step end subroutine whm_getacch_pl !> Get heliocentric accelration of the test particle - module subroutine whm_getacch_tp(self, system, param, t, xhp) + module subroutine whm_getacch_tp(self, system, param, t, lbeg) use swiftest_classes, only : swiftest_cb, swiftest_parameters implicit none class(whm_tp), intent(inout) :: self !! WHM test particle data structure class(swiftest_nbody_system), intent(inout) :: system !! WHM nbody system object class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters of real(DP), intent(in) :: t !! Current time - real(DP), dimension(:,:), intent(in) :: xhp !! Heliocentric positions of planets at the current substep + logical, optional, intent(in) :: lbeg !! Optional argument that determines whether or not this is the beginning or end of the step end subroutine whm_getacch_tp module subroutine whm_gr_getacch_pl(self, param) @@ -218,12 +219,12 @@ module subroutine whm_setup_set_ir3j(self) class(whm_pl), intent(inout) :: self !! WHM massive body object end subroutine whm_setup_set_ir3j - module subroutine whm_setup_set_mu_eta_pl(self, cb) + module subroutine whm_util_set_mu_eta_pl(self, cb) use swiftest_classes, only : swiftest_cb implicit none class(whm_pl), intent(inout) :: self !! WHM massive body object class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object - end subroutine whm_setup_set_mu_eta_pl + end subroutine whm_util_set_mu_eta_pl module subroutine whm_setup_system(self, param) use swiftest_classes, only : swiftest_parameters diff --git a/src/obl/obl.f90 b/src/obl/obl.f90 index 1192189df..ec34110ee 100644 --- a/src/obl/obl.f90 +++ b/src/obl/obl.f90 @@ -1,23 +1,23 @@ submodule (swiftest_classes) s_obl use swiftest contains - module subroutine obl_acc_body(self, cb) + module subroutine obl_acc_body(self, system) !! author: David A. Minton !! !! Compute the barycentric accelerations of bodies due to the oblateness of the central body !! Returned values do not include monopole term or terms higher than J4 - + !! !! Adapted from David E. Kaufmann's Swifter routine: obl_acc.f90 and obl_acc_tp.f90 !! Adapted from Hal Levison's Swift routine obl_acc.f and obl_acc_tp.f implicit none ! Arguments - class(swiftest_body), intent(inout) :: self !! Swiftest generic body object - class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object + class(swiftest_body), intent(inout) :: self !! Swiftest body object + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object ! Internals integer(I4B) :: i real(DP) :: r2, irh, rinv2, t0, t1, t2, t3, fac1, fac2 - associate(n => self%nbody, xh => self%xh, vh => self%vh, ah => self%ah) + associate(n => self%nbody, cb => system%cb) do i = 1, n r2 = dot_product(self%xh(:, i), self%xh(:, i)) irh = 1.0_DP / sqrt(r2) @@ -31,19 +31,71 @@ module subroutine obl_acc_body(self, cb) self%aobl(:, i) = fac1 * self%xh(:, i) self%aobl(3, i) = fac2 * self%xh(3, i) + self%aobl(3, i) end do - select type(self) - class is (swiftest_pl) - do i = 1, NDIM - cb%aobl(i) = -sum(self%Gmass(1:n) * self%aobl(i, 1:n)) / cb%Gmass - end do - end select + end associate + return + + end subroutine obl_acc_body + + module subroutine obl_acc_pl(self, system) + !! author: David A. Minton + !! + !! Compute the barycentric accelerations of massive bodies due to the oblateness of the central body + !! + !! Adapted from David E. Kaufmann's Swifter routine: obl_acc.f90 and obl_acc_tp.f90 + !! Adapted from Hal Levison's Swift routine obl_acc.f and obl_acc_tp.f + implicit none + ! Arguments + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object + ! Internals + integer(I4B) :: i + + associate(pl => self, npl => self%nbody, cb => system%cb) + call obl_acc_body(pl, system) + do i = 1, NDIM + cb%aobl(i) = -sum(pl%Gmass(1:npl) * pl%aobl(i, 1:npl)) / cb%Gmass + end do + + do i = 1, NDIM + pl%ah(i, 1:npl) = pl%ah(i, 1:npl) + pl%aobl(i, 1:npl) - cb%aobl(i) + end do + end associate + + return + + end subroutine obl_acc_pl + + module subroutine obl_acc_tp(self, system) + !! author: David A. Minton + !! + !! Compute the barycentric accelerations of massive bodies due to the oblateness of the central body + !! + !! Adapted from David E. Kaufmann's Swifter routine: obl_acc.f90 and obl_acc_tp.f90 + !! Adapted from Hal Levison's Swift routine obl_acc.f and obl_acc_tp.f + implicit none + ! Arguments + class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object + ! Internals + real(DP), dimension(NDIM) :: aoblcb + integer(I4B) :: i + + associate(tp => self, ntp => self%nbody, cb => system%cb) + call obl_acc_body(tp, system) + if (system%lbeg) then + aoblcb = cb%aoblbeg + else + aoblcb = cb%aoblend + end if do i = 1, NDIM - self%ah(i, 1:n) = self%ah(i, 1:n) + self%aobl(i, 1:n) - cb%aobl(i) + tp%ah(i, 1:ntp) = tp%ah(i, 1:ntp) + tp%aobl(i, 1:ntp) - aoblcb(i) end do + end associate return - end subroutine obl_acc_body + end subroutine obl_acc_tp + end submodule s_obl diff --git a/src/rmvs/rmvs_getacch.f90 b/src/rmvs/rmvs_getacch.f90 index 58cccbf3e..b750e1ced 100644 --- a/src/rmvs/rmvs_getacch.f90 +++ b/src/rmvs/rmvs_getacch.f90 @@ -1,7 +1,7 @@ submodule(rmvs_classes) s_rmvs_getacch use swiftest contains - module subroutine rmvs_getacch_tp(self, system, param, t, xhp) + module subroutine rmvs_getacch_tp(self, system, param, t, lbeg) !! author: David A. Minton !! @@ -15,63 +15,62 @@ module subroutine rmvs_getacch_tp(self, system, param, t, xhp) class(swiftest_nbody_system), intent(inout) :: system !! Swiftest central body particle data structuree class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current time - real(DP), dimension(:,:), intent(in) :: xhp !! Heliocentric positions of planets at current substep + logical, optional, intent(in) :: lbeg !! Optional argument that determines whether or not this is the beginning or end of the step ! Internals type(swiftest_parameters) :: param_planetocen - real(DP), dimension(:, :), allocatable :: xh_original - integer(I4B) :: i + real(DP), dimension(:, :), allocatable :: xh_original + integer(I4B) :: i + real(DP), dimension(:, :), allocatable :: xhp - - associate(tp => self, ntp => self%nbody, ipleP => self%ipleP, inner_index => self%index, cb_heliocentric => self%cb_heliocentric) + associate(tp => self, ntp => self%nbody, ipleP => self%ipleP, inner_index => self%index) select type(system) class is (rmvs_nbody_system) if (system%lplanetocentric) then ! This is a close encounter step, so any accelerations requiring heliocentric position values - ! must be handeled outside the normal WHM method call + ! must be handeled outside the normal WHM method call select type(pl => system%pl) class is (rmvs_pl) - select type (cb => system%cb) - class is (rmvs_cb) - associate(xpc => pl%xh, xpct => self%xh, apct => self%ah) - allocate(xh_original, source=tp%xh) - param_planetocen = param - ! Temporarily turn off the heliocentric-dependent acceleration terms during an inner encounter - param_planetocen%loblatecb = .false. - param_planetocen%lextra_force = .false. - param_planetocen%lgr = .false. - ! Now compute the planetocentric values of acceleration - call whm_getacch_tp(tp, system, param_planetocen, t, xhp) + select type (cb => system%cb) + class is (rmvs_cb) + associate(xpc => pl%xh, xpct => self%xh, apct => self%ah, system_planetocen => system) - ! Now compute any heliocentric values of acceleration - if (tp%lfirst) then - do i = 1, ntp - tp%xheliocentric(:,i) = tp%xh(:,i) + cb%inner(inner_index - 1)%x(:,1) - end do - else - do i = 1, ntp - tp%xheliocentric(:,i) = tp%xh(:,i) + cb%inner(inner_index )%x(:,1) - end do - end if - ! Swap the planetocentric and heliocentric position vectors - tp%xh(:,:) = tp%xheliocentric(:,:) - if (param%loblatecb) then - ! Put in the current encountering planet's oblateness acceleration as the central body's - if (tp%lfirst) then - cb_heliocentric%aobl(:) = cb%inner(inner_index - 1)%aobl(:,1) + if (present(lbeg)) system_planetocen%lbeg = lbeg + + if (system_planetocen%lbeg) then + allocate(xhp, source=pl%xbeg) else - cb_heliocentric%aobl(:) = cb%inner(inner_index )%aobl(:,1) + allocate(xhp, source=pl%xend) end if - call tp%obl_acc(cb_heliocentric) - end if + + allocate(xh_original, source=tp%xh) + param_planetocen = param + ! Temporarily turn off the heliocentric-dependent acceleration terms during an inner encounter + param_planetocen%loblatecb = .false. + param_planetocen%lextra_force = .false. + param_planetocen%lgr = .false. + ! Now compute the planetocentric values of acceleration + call whm_getacch_tp(tp, system_planetocen, param_planetocen, t) - if (param%lextra_force) call tp%user_getacch(system, param, t) - if (param%lgr) call tp%gr_get_accel(param) - - tp%xh(:,:) = xh_original(:,:) - end associate - end select + ! Now compute any heliocentric values of acceleration + if (tp%lfirst) then + do i = 1, ntp + tp%xheliocentric(:,i) = tp%xh(:,i) + cb%inner(inner_index - 1)%x(:,1) + end do + else + do i = 1, ntp + tp%xheliocentric(:,i) = tp%xh(:,i) + cb%inner(inner_index )%x(:,1) + end do + end if + ! Swap the planetocentric and heliocentric position vectors + tp%xh(:,:) = tp%xheliocentric(:,:) + if (param%loblatecb) call tp%accel_obl(system_planetocen) + if (param%lextra_force) call tp%accel_user(system_planetocen, param, t) + if (param%lgr) call tp%accel_gr(param) + tp%xh(:,:) = xh_original(:,:) + end associate + end select end select else ! Not a close encounter, so just proceded with the standard WHM method - call whm_getacch_tp(tp, system, param, t, xhp) + call whm_getacch_tp(tp, system, param, t, lbeg) end if end select diff --git a/src/rmvs/rmvs_step.f90 b/src/rmvs/rmvs_step.f90 index 6fe920863..71091f6dd 100644 --- a/src/rmvs/rmvs_step.f90 +++ b/src/rmvs/rmvs_step.f90 @@ -42,9 +42,8 @@ module subroutine rmvs_step_system(self, param, t, dt) call pl%step(system, param, t, dt) pl%outer(NTENC)%x(:,:) = pl%xh(:,:) pl%outer(NTENC)%v(:,:) = pl%vh(:,:) - call pl%set_beg_end(xend = pl%xh) - call rmvs_interp_out(system, param, dt) - call rmvs_step_out(system, param, t, dt) + call rmvs_interp_out(cb, pl, dt) + call rmvs_step_out(cb, pl, tp, system, param, t, dt) call tp%reverse_status() call pl%set_beg_end(xbeg = xbeg, xend = xend) tp%lfirst = .true. @@ -53,7 +52,7 @@ module subroutine rmvs_step_system(self, param, t, dt) pl%lfirst = lfirstpl tp%lfirst = lfirsttp else - call whm_step_system(self, param, t, dt) + call whm_step_system(system, param, t, dt) end if end associate end select @@ -63,133 +62,144 @@ module subroutine rmvs_step_system(self, param, t, dt) end subroutine rmvs_step_system - subroutine rmvs_step_out(system, param, t, dt) + subroutine rmvs_interp_out(cb, pl, dt) !! author: David A. Minton !! - !! Step ACTIVE test particles ahead in the outer encounter region, setting up and calling the inner region - !! integration if necessar - !! - !! Adapted from Hal Levison's Swift routines rmvs3_step_out.f and rmvs3_step_out2.f - !! Adapted from David E. Kaufmann's Swifter routines rmvs_step_out.f90 and rmvs_step_out2.f90 + !! Interpolate planet positions between two Keplerian orbits in outer encounter region + !! + !! Adapted from David E. Kaufmann's Swifter routine rmvs_interp_out.f90 + !! + !! Adapted from Hal Levison's Swift routine rmvs3_interp.f implicit none ! Arguments - class(rmvs_nbody_system), intent(inout) :: system !! Swiftest system object - class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters - real(DP), intent(in) :: t !! Current simulation time - real(DP), intent(in) :: dt !! Current stepsiz + class(rmvs_cb), intent(inout) :: cb !! RMVS central body object + class(rmvs_pl), intent(inout) :: pl !! RMVS massive body object + real(DP), intent(in) :: dt !! Step size ! Internals - integer(I4B) :: outer_index, j, k - real(DP) :: dto, outer_time, rts - logical :: lencounter, lfirsttp + integer(I4B) :: i, outer_index + real(DP) :: frac, dntenc + real(DP), dimension(:,:), allocatable :: xtmp, vtmp + real(DP), dimension(:), allocatable :: GMcb, dto + integer(I4B), dimension(:), allocatable :: iflag - select type(pl => system%pl) - class is (rmvs_pl) - select type(tp => system%tp) - class is (rmvs_tp) - associate(cb => system%cb, npl => pl%nbody, ntp => tp%nbody) - dto = dt / NTENC - where(tp%plencP(:) == 0) - tp%status(:) = INACTIVE - elsewhere - tp%lperi(:) = .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(:, :)) - system%rts = RHPSCALE - lencounter = tp%encounter_check(system, dt) - if (lencounter) then - ! Interpolate planets in inner encounter region - call rmvs_interp_in(system, param, dto, outer_index) - ! Step through the inner region - call rmvs_step_in(system, param, outer_time, dto) - lfirsttp = tp%lfirst - tp%lfirst = .true. - call tp%step(system, param, outer_time, dto) - tp%lfirst = lfirsttp - else - call tp%step(system, param, outer_time, dto) + dntenc = real(NTENC, kind=DP) + associate (npl => pl%nbody) + allocate(xtmp, mold = pl%xh) + allocate(vtmp, mold = pl%vh) + 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(:, :) + 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), & + dto(1:npl), iflag(1:npl)) + if (any(iflag(1:npl) /= 0)) then + do i = 1, npl + if (iflag(i) /= 0) then + write(*, *) " Planet ", pl%name(i), " is lost!!!!!!!!!!" + write(*, *) GMcb(i), dto(i) + write(*, *) xtmp(:,i) + write(*, *) vtmp(:,i) + write(*, *) " STOPPING " + call util_exit(FAILURE) end if - do j = 1, npl - if (pl%nenc(j) == 0) cycle - where((tp%plencP(:) == j) .and. (tp%status(:) == INACTIVE)) tp%status(:) = ACTIVE - end do end do - end associate - end select - end select + end if + frac = 1.0_DP - outer_index / dntenc + pl%outer(outer_index)%x(:, :) = frac * xtmp(:,:) + pl%outer(outer_index)%v(:, :) = frac * vtmp(:,:) + end do + xtmp(:,:) = pl%outer(NTENC)%x(:, :) + vtmp(:,:) = pl%outer(NTENC)%v(:, :) + 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), & + -dto(1:npl), iflag(1:npl)) + if (any(iflag(1:npl) /= 0)) then + do i = 1, npl + if (iflag(i) /= 0) then + write(*, *) " Planet ", pl%name(i), " is lost!!!!!!!!!!" + write(*, *) GMcb(i), -dto(i) + write(*, *) xtmp(:,i) + write(*, *) vtmp(:,i) + write(*, *) " STOPPING " + call util_exit(FAILURE) + end if + 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(:,:) + end do + end associate + return - end subroutine rmvs_step_out + end subroutine rmvs_interp_out - subroutine rmvs_step_in(system, param, outer_time, dto) + subroutine rmvs_step_out(cb, pl, tp, system, param, t, dt) !! author: David A. Minton !! - !! Step active test particles ahead in the inner encounter region + !! Step ACTIVE test particles ahead in the outer encounter region, setting up and calling the inner region + !! integration if necessar !! - !! Adapted from Hal Levison's Swift routine rmvs3_step_in.f - !! Adapted from David E. Kaufmann's Swifter routine rmvs_step_in.f90 + !! Adapted from Hal Levison's Swift routines rmvs3_step_out.f and rmvs3_step_out2.f + !! Adapted from David E. Kaufmann's Swifter routines rmvs_step_out.f90 and rmvs_step_out2.f90 implicit none ! Arguments - class(rmvs_nbody_system), intent(inout) :: system !! RMVS nbody system object - class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters - real(DP), intent(in) :: outer_time !! Current time - real(DP), intent(in) :: dto !! Outer step size + class(rmvs_cb), intent(inout) :: cb !! RMVS central body object + class(rmvs_pl), intent(inout) :: pl !! RMVS massive body object + class(rmvs_tp), intent(inout) :: tp !! RMVS test particle object + class(rmvs_nbody_system), intent(inout) :: system !! RMVS nbody system object + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters + real(DP), intent(in) :: t !! Current simulation time + real(DP), intent(in) :: dt !! Current stepsiz ! Internals - logical :: lfirsttp - integer(I4B) :: i, j, ipleP - real(DP) :: dti, inner_time + integer(I4B) :: outer_index, j, k + real(DP) :: dto, outer_time, rts + logical :: lencounter, lfirsttp - select type(pl => system%pl) - class is (rmvs_pl) - select type (tp => system%tp) - class is (rmvs_tp) - associate(npl => pl%nbody, cb => system%cb) - dti = dto / NTPHENC - if (param%loblatecb) call pl%obl_acc(cb) - call rmvs_make_planetocentric(system, param) - do i = 1, npl - if (pl%nenc(i) == 0) cycle - select type(planetocen_system => pl%planetocentric(i)) - class is (rmvs_nbody_system) - select type(plenci => planetocen_system%pl) - class is (rmvs_pl) - select type(tpenci => planetocen_system%tp) - class is (rmvs_tp) - associate(inner_index => tpenci%index) - ! There are inner encounters with this planet...switch to planetocentric coordinates to proceed - tpenci%lfirst = .true. - inner_time = outer_time - call rmvs_peri_tp(tpenci, pl, inner_time, dti, .true., 0, i, param) - ! 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(:,:) - call plenci%set_beg_end(xbeg = plenci%inner(inner_index - 1)%x, & - xend = plenci%inner(inner_index)%x) - call tpenci%step(planetocen_system, param, inner_time, dti) - do j = 1, pl%nenc(i) - tpenci%xheliocentric(:, j) = tpenci%xh(:, j) + pl%inner(inner_index)%x(:,i) - end do - inner_time = outer_time + j * dti - call rmvs_peri_tp(tpenci, pl, inner_time, dti, .false., inner_index, i, param) - end do - where(tpenci%status(:) == ACTIVE) tpenci%status(:) = INACTIVE - end associate - end select - end select - end select - end do - call rmvs_end_planetocentric(system) - end associate - end select - end select + associate(npl => pl%nbody, ntp => tp%nbody) + dto = dt / NTENC + where(tp%plencP(:) == 0) + tp%status(:) = INACTIVE + elsewhere + tp%lperi(:) = .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(:, :)) + system%rts = RHPSCALE + lencounter = tp%encounter_check(system, dt) + if (lencounter) then + ! Interpolate planets in inner encounter region + call rmvs_interp_in(cb, pl, system, param, dto, outer_index) + ! Step through the inner region + call rmvs_step_in(cb, pl, tp, param, outer_time, dto) + lfirsttp = tp%lfirst + tp%lfirst = .true. + call tp%step(system, param, outer_time, dto) + tp%lfirst = lfirsttp + else + call tp%step(system, param, outer_time, dto) + end if + do j = 1, npl + if (pl%nenc(j) == 0) cycle + where((tp%plencP(:) == j) .and. (tp%status(:) == INACTIVE)) tp%status(:) = ACTIVE + end do + end do + end associate return - end subroutine rmvs_step_in - subroutine rmvs_interp_in(system, param, dt, outer_index) + end subroutine rmvs_step_out + + subroutine rmvs_interp_in(cb, pl, system, param, dt, outer_index) !! author: David A. Minton !! !! Interpolate planet positions between two Keplerian orbits in inner encounter regio @@ -199,7 +209,9 @@ subroutine rmvs_interp_in(system, param, dt, outer_index) !! Adapted from Hal Levison's Swift routine rmvs3_interp.f implicit none ! Arguments - class(rmvs_nbody_system), intent(inout) :: system !! RMVS test particle object + class(rmvs_cb), intent(inout) :: cb !! RMVS cenral body object + class(rmvs_pl), intent(inout) :: pl !! RMVS massive body object + class(rmvs_nbody_system), intent(inout) :: system !! RMVS nbody system object class(swiftest_parameters), intent(in) :: param !! Swiftest parameters file real(DP), intent(in) :: dt !! Step size integer(I4B), intent(in) :: outer_index !! Outer substep number within current set @@ -210,179 +222,234 @@ subroutine rmvs_interp_in(system, param, dt, outer_index) real(DP), dimension(:), allocatable :: GMcb, dti integer(I4B), dimension(:), allocatable :: iflag - associate (cb => system%cb, npl => system%pl%nbody) - select type(pl => system%pl) - class is (rmvs_pl) - dntphenc = real(NTPHENC, kind=DP) + associate (npl => system%pl%nbody) + 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(:, :) - - 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(:, :) - if (param%loblatecb) then - allocate(xh_original,source=pl%xh) - pl%xh(:, :) = xtmp(:, :) ! Temporarily replace heliocentric position with inner substep values to calculate the oblateness terms - call pl%obl_acc(cb) - pl%inner(0)%aobl(:, :) = pl%aobl(:, :) ! Save the oblateness acceleration on the planet for this substep + ! 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(:, :) + + 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(:, :) + if (param%loblatecb) then + allocate(xh_original,source=pl%xh) + pl%xh(:, :) = xtmp(:, :) ! Temporarily replace heliocentric position with inner substep values to calculate the oblateness terms + call pl%accel_obl(system) + pl%inner(0)%aobl(:, :) = pl%aobl(:, :) ! Save the oblateness acceleration on the planet for this substep + end if + + do inner_index = 1, NTPHENC - 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), & + dti(1:npl), iflag(1:npl)) + if (any(iflag(1:npl) /= 0)) then + do i = 1, npl + if (iflag(i) /=0) then + write(*, *) " Planet ", pl%name(i), " is lost!!!!!!!!!!" + write(*, *) GMcb(i), dti(i) + write(*, *) xtmp(:,i) + write(*, *) vtmp(:,i) + write(*, *) " STOPPING " + call util_exit(failure) + end if + end do end if - - do inner_index = 1, NTPHENC - 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), & - dti(1:npl), iflag(1:npl)) - if (any(iflag(1:npl) /= 0)) then - do i = 1, npl - if (iflag(i) /=0) then - write(*, *) " Planet ", pl%name(i), " is lost!!!!!!!!!!" - write(*, *) GMcb(i), dti(i) - write(*, *) xtmp(:,i) - write(*, *) vtmp(:,i) - write(*, *) " STOPPING " - call util_exit(failure) - end if - 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(:,:) - end do - - xtmp(:,:) = pl%inner(NTPHENC)%x(:, :) - vtmp(:,:) = pl%inner(NTPHENC)%v(:, :) - - 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), & - vtmp(1,1:npl), vtmp(2,1:npl), vtmp(3,1:npl), & - -dti(1:npl), iflag(1:npl)) - if (any(iflag(1:npl) /= 0)) then - do i = 1, npl - if (iflag(i) /=0) then - write(*, *) " Planet ", pl%name(i), " is lost!!!!!!!!!!" - write(*, *) GMcb(i), -dti(i) - write(*, *) xtmp(:,i) - write(*, *) vtmp(:,i) - write(*, *) " STOPPING " - call util_exit(failure) - end if - 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(:, :) - - if (param%loblatecb) then - pl%xh(:,:) = pl%inner(inner_index)%x(:, :) - call pl%obl_acc(cb) - pl%inner(inner_index)%aobl(:, :) = pl%aobl(:, :) - end if - end do + frac = 1.0_DP - inner_index / dntphenc + pl%inner(inner_index)%x(:, :) = frac * xtmp(:,:) + pl%inner(inner_index)%v(:, :) = frac * vtmp(:,:) + end do + + xtmp(:,:) = pl%inner(NTPHENC)%x(:, :) + vtmp(:,:) = pl%inner(NTPHENC)%v(:, :) + + 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), & + vtmp(1,1:npl), vtmp(2,1:npl), vtmp(3,1:npl), & + -dti(1:npl), iflag(1:npl)) + if (any(iflag(1:npl) /= 0)) then + do i = 1, npl + if (iflag(i) /=0) then + write(*, *) " Planet ", pl%name(i), " is lost!!!!!!!!!!" + write(*, *) GMcb(i), -dti(i) + write(*, *) xtmp(:,i) + write(*, *) vtmp(:,i) + write(*, *) " STOPPING " + call util_exit(failure) + end if + 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(:, :) + if (param%loblatecb) then - ! Calculate the final value of oblateness accelerations at the final inner substep - pl%xh(:,:) = pl%inner(NTPHENC)%x(:, :) - call pl%obl_acc(cb) - pl%inner(NTPHENC)%aobl(:, :) = pl%aobl(:, :) - ! Put the planet positions back into place - call move_alloc(xh_original, pl%xh) + pl%xh(:,:) = pl%inner(inner_index)%x(:, :) + call pl%accel_obl(system) + pl%inner(inner_index)%aobl(:, :) = pl%aobl(:, :) end if - end select + end do + if (param%loblatecb) then + ! Calculate the final value of oblateness accelerations at the final inner substep + pl%xh(:,:) = pl%inner(NTPHENC)%x(:, :) + call pl%accel_obl(system) + pl%inner(NTPHENC)%aobl(:, :) = pl%aobl(:, :) + ! Put the planet positions back into place + call move_alloc(xh_original, pl%xh) + end if end associate return end subroutine rmvs_interp_in - subroutine rmvs_interp_out(system, param, dt) + subroutine rmvs_step_in(cb, pl, tp, param, outer_time, dto) !! author: David A. Minton !! - !! Interpolate planet positions between two Keplerian orbits in outer encounter region + !! Step active test particles ahead in the inner encounter region + !! + !! Adapted from Hal Levison's Swift routine rmvs3_step_in.f + !! Adapted from David E. Kaufmann's Swifter routine rmvs_step_in.f90 + implicit none + ! Arguments + class(rmvs_cb), intent(inout) :: cb !! RMVS central body object + class(rmvs_pl), intent(inout) :: pl !! RMVS massive body object + class(rmvs_tp), intent(inout) :: tp !! RMVS test particle object + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters + real(DP), intent(in) :: outer_time !! Current time + real(DP), intent(in) :: dto !! Outer step size + ! Internals + logical :: lfirsttp + integer(I4B) :: i, j, ipleP + real(DP) :: dti, inner_time + + associate(npl => pl%nbody) + dti = dto / NTPHENC + call rmvs_make_planetocentric(cb, pl, tp) + do i = 1, npl + if (pl%nenc(i) == 0) cycle + select type(planetocen_system => pl%planetocentric(i)) + class is (rmvs_nbody_system) + select type(cbenci => planetocen_system%cb) + class is (rmvs_cb) + select type(plenci => planetocen_system%pl) + class is (rmvs_pl) + select type(tpenci => planetocen_system%tp) + class is (rmvs_tp) + associate(inner_index => tpenci%index) + ! There are inner encounters with this planet...switch to planetocentric coordinates to proceed + tpenci%lfirst = .true. + inner_time = outer_time + call rmvs_peri_tp(tpenci, pl, inner_time, dti, .true., 0, i, param) + ! 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(:,:) + call plenci%set_beg_end(xbeg = plenci%inner(inner_index - 1)%x, & + xend = plenci%inner(inner_index)%x) + call cbenci%set_beg_end(aoblbeg = cbenci%inner(inner_index - 1)%aobl(:, 1), & + aoblend = cbenci%inner(inner_index )%aobl(:, 1)) + call tpenci%step(planetocen_system, param, inner_time, dti) + do j = 1, pl%nenc(i) + tpenci%xheliocentric(:, j) = tpenci%xh(:, j) + pl%inner(inner_index)%x(:,i) + end do + inner_time = outer_time + j * dti + call rmvs_peri_tp(tpenci, pl, inner_time, dti, .false., inner_index, i, param) + end do + where(tpenci%status(:) == ACTIVE) tpenci%status(:) = INACTIVE + end associate + end select + end select + end select + end select + end do + call rmvs_end_planetocentric(pl, tp) + end associate + return + end subroutine rmvs_step_in + + subroutine rmvs_make_planetocentric(cb, pl, tp) + !! author: David A. Minton !! - !! Adapted from David E. Kaufmann's Swifter routine rmvs_interp_out.f90 + !! When encounters are detected, this method will call the interpolation methods for the planets and + !! creates a Swiftest test particle structure for each planet's encountering test particles to simplify the + !! planetocentric calculations. This subroutine is not based on an existing one from Swift and Swifter !! - !! Adapted from Hal Levison's Swift routine rmvs3_interp.f implicit none ! Arguments - class(rmvs_nbody_system), intent(inout) :: system !! RMVS nbody system object - class(swiftest_parameters), intent(in) :: param !! Swiftest parameters file - real(DP), intent(in) :: dt !! Step size - ! Internals - integer(I4B) :: i, outer_index - real(DP) :: frac, dntenc - real(DP), dimension(:,:), allocatable :: xtmp, vtmp - real(DP), dimension(:), allocatable :: GMcb, dto - integer(I4B), dimension(:), allocatable :: iflag + class(rmvs_cb), intent(inout) :: cb !! RMVS central body object + class(rmvs_pl), intent(inout) :: pl !! RMVS massive body object + class(rmvs_tp), intent(inout) :: tp !! RMVS test particle object - dntenc = real(NTENC, kind=DP) - associate (cb => system%cb, pl => system%pl, npl => system%pl%nbody) - select type(pl => system%pl) - class is (rmvs_pl) - allocate(xtmp, mold = pl%xh) - allocate(vtmp, mold = pl%vh) - 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(:, :) - 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), & - dto(1:npl), iflag(1:npl)) + ! Internals + integer(I4B) :: i, j, inner_index, ipc2hc + logical, dimension(:), allocatable :: encmask - if (any(iflag(1:npl) /= 0)) then - do i = 1, npl - if (iflag(i) /= 0) then - write(*, *) " Planet ", pl%name(i), " is lost!!!!!!!!!!" - write(*, *) GMcb(i), dto(i) - write(*, *) xtmp(:,i) - write(*, *) vtmp(:,i) - write(*, *) " STOPPING " - call util_exit(FAILURE) - end if - 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(:,:) - end do - xtmp(:,:) = pl%outer(NTENC)%x(:, :) - vtmp(:,:) = pl%outer(NTENC)%v(:, :) - 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), & - -dto(1:npl), iflag(1:npl)) - if (any(iflag(1:npl) /= 0)) then - do i = 1, npl - if (iflag(i) /= 0) then - write(*, *) " Planet ", pl%name(i), " is lost!!!!!!!!!!" - write(*, *) GMcb(i), -dto(i) - write(*, *) xtmp(:,i) - write(*, *) vtmp(:,i) - write(*, *) " STOPPING " - call util_exit(FAILURE) - end if - 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(:,:) - end do - end select + associate (npl => pl%nbody, ntp => tp%nbody) + do i = 1, npl + if (pl%nenc(i) == 0) cycle + ! There are inner encounters with this planet + if (allocated(encmask)) deallocate(encmask) + allocate(encmask(ntp)) + encmask(:) = tp%plencP(:) == i + allocate(rmvs_tp :: pl%planetocentric(i)%tp) + ! Create encountering test particle structure + select type(cbenci => pl%planetocentric(i)%cb) + class is (rmvs_cb) + select type(plenci => pl%planetocentric(i)%pl) + class is (rmvs_pl) + select type(tpenci => pl%planetocentric(i)%tp) + class is (rmvs_tp) + tpenci%lplanetocentric = .true. + call tpenci%setup(pl%nenc(i)) + tpenci%cb_heliocentric = cb + tpenci%ipleP = i + tpenci%status(:) = ACTIVE + ! Grab all the encountering test particles and convert them to a planetocentric frame + tpenci%name(:) = pack(tp%name(:), 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(plenci%inner(inner_index)%aobl, mold=pl%inner(inner_index)%aobl) + allocate(cbenci%inner(inner_index)%x(NDIM,1)) + allocate(cbenci%inner(inner_index)%v(NDIM,1)) + allocate(cbenci%inner(inner_index)%aobl(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) + cbenci%inner(inner_index)%aobl(:,1) = pl%inner(inner_index)%aobl(:, 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) + 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 + call tpenci%set_mu(cbenci) + end select + end select + end select + end do end associate - return + end subroutine rmvs_make_planetocentric - end subroutine rmvs_interp_out subroutine rmvs_peri_tp(tp, pl, t, dt, lfirst, inner_index, ipleP, param) !! author: David A. Minton @@ -467,148 +534,57 @@ subroutine rmvs_peri_tp(tp, pl, t, dt, lfirst, inner_index, ipleP, param) end subroutine rmvs_peri_tp - subroutine rmvs_make_planetocentric(system, param) - !! author: David A. Minton - !! - !! When encounters are detected, this method will call the interpolation methods for the planets and - !! creates a Swiftest test particle structure for each planet's encountering test particles to simplify the - !! planetocentric calculations. This subroutine is not based on an existing one from Swift and Swifter - !! - implicit none - ! Arguments - class(rmvs_nbody_system), intent(inout) :: system !! RMVS nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - - ! Internals - integer(I4B) :: i, j, inner_index, ipc2hc - logical, dimension(:), allocatable :: encmask - - select type(cb => system%cb) - class is (rmvs_cb) - select type(pl => system%pl) - class is (rmvs_pl) - select type (tp => system%tp) - class is (rmvs_tp) - associate (npl => pl%nbody, ntp => tp%nbody) - do i = 1, npl - if (pl%nenc(i) == 0) cycle - ! There are inner encounters with this planet - if (allocated(encmask)) deallocate(encmask) - allocate(encmask(ntp)) - encmask(:) = tp%plencP(:) == i - allocate(rmvs_tp :: pl%planetocentric(i)%tp) - ! Create encountering test particle structure - select type(cbenci => pl%planetocentric(i)%cb) - class is (rmvs_cb) - select type(plenci => pl%planetocentric(i)%pl) - class is (rmvs_pl) - select type(tpenci => pl%planetocentric(i)%tp) - class is (rmvs_tp) - tpenci%lplanetocentric = .true. - call tpenci%setup(pl%nenc(i)) - tpenci%cb_heliocentric = cb - tpenci%ipleP = i - tpenci%status(:) = ACTIVE - ! Grab all the encountering test particles and convert them to a planetocentric frame - tpenci%name(:) = pack(tp%name(:), 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(plenci%inner(inner_index)%aobl, mold=pl%inner(inner_index)%aobl) - allocate(cbenci%inner(inner_index)%x(NDIM,1)) - allocate(cbenci%inner(inner_index)%v(NDIM,1)) - allocate(cbenci%inner(inner_index)%aobl(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) - cbenci%inner(inner_index)%aobl(:,1) = pl%inner(inner_index)%aobl(:, 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) - 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 - call tpenci%set_mu(cbenci) - end select - end select - end select - end do - end associate - end select - end select - end select - return - end subroutine rmvs_make_planetocentric - - subroutine rmvs_end_planetocentric(system) + subroutine rmvs_end_planetocentric(pl, tp) !! author: David A. Minton !! !! Deallocates all of the encountering particle data structures for next time !! implicit none ! Arguments - class(rmvs_nbody_system), intent(inout) :: system !! RMVS nbody system object + class(rmvs_pl), intent(inout) :: pl !! RMVS massive body object + class(rmvs_tp), intent(inout) :: tp !! RMVS test particle objec ! Internals integer(I4B) :: i, j, inner_index integer(I4B), dimension(:), allocatable :: tpind logical, dimension(:), allocatable :: encmask - select type(cb => system%cb) - class is (rmvs_cb) - select type(pl => system%pl) - class is (rmvs_pl) - select type (tp => system%tp) - class is (rmvs_tp) - associate (npl => pl%nbody, ntp => tp%nbody) - do i = 1, npl - if (pl%nenc(i) == 0) cycle - select type(cbenci => pl%planetocentric(i)%cb) - class is (rmvs_cb) - select type(plenci => pl%planetocentric(i)%pl) - 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)) - 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) - deallocate(plenci%inner(inner_index)%aobl) - end do - end select - end select - end select - end do - end associate + associate (npl => pl%nbody, ntp => tp%nbody) + do i = 1, npl + if (pl%nenc(i) == 0) cycle + select type(cbenci => pl%planetocentric(i)%cb) + class is (rmvs_cb) + select type(plenci => pl%planetocentric(i)%pl) + 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)) + 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) + deallocate(plenci%inner(inner_index)%aobl) + end do + end select + end select end select - end select - end select + end do + end associate return end subroutine rmvs_end_planetocentric diff --git a/src/setup/setup.f90 b/src/setup/setup.f90 index a50f57254..0f16e7c5b 100644 --- a/src/setup/setup.f90 +++ b/src/setup/setup.f90 @@ -174,79 +174,4 @@ module subroutine setup_tp(self, n) return end subroutine setup_tp - module subroutine setup_set_msys(self) - !! author: David A. Minton - !! - !! Sets the value of msys and the vector mass quantities based on the total mass of the system - implicit none - class(swiftest_nbody_system), intent(inout) :: self !! Swiftest system objec - self%msys = self%cb%mass + sum(self%pl%mass(1:self%pl%nbody)) - - return - end subroutine setup_set_msys - - module subroutine setup_set_mu_pl(self, cb) - !! author: David A. Minton - !! - !! Computes G * (M + m) for each massive body - implicit none - 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(:) - - return - end subroutine setup_set_mu_pl - - module subroutine setup_set_mu_tp(self, cb) - !! author: David A. Minton - !! - !! Converts certain scalar values to arrays so that they can be used in elemental functions - implicit none - 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 - - return - end subroutine setup_set_mu_tp - - module subroutine setup_set_rhill(self,cb) - !! author: David A. Minton - !! - !! Sets the value of the Hill's radius - implicit none - class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object - class(swiftest_cb), intent(inout) :: cb !! Swiftest massive body object - - if (self%nbody > 0) then - call self%xv2el(cb) - self%rhill(:) = self%a(:) * (self%Gmass(:) / cb%Gmass / 3)**THIRD - end if - - return - end subroutine setup_set_rhill - - module subroutine setup_set_ir3h(self) - !! author: David A. Minton - !! - !! Sets the inverse heliocentric radius term (1/rh**3) for all bodies in a structure - implicit none - class(swiftest_body), intent(inout) :: self !! Swiftest generic body object - - integer(I4B) :: i - real(DP) :: r2, irh - - if (self%nbody > 0) then - - do i = 1, self%nbody - r2 = dot_product(self%xh(:, i), self%xh(:, i)) - irh = 1.0_DP / sqrt(r2) - self%ir3h(i) = irh / r2 - end do - end if - - return - end subroutine setup_set_ir3h - end submodule s_setup diff --git a/src/symba/symba_helio_getacch.f90 b/src/symba/symba_helio_getacch.f90 index 65d2171f8..6d69de2b9 100644 --- a/src/symba/symba_helio_getacch.f90 +++ b/src/symba/symba_helio_getacch.f90 @@ -19,7 +19,7 @@ ! executable code if (lflag) then do i = 2, npl - helio_plA%ahi(:,i) = (/ 0.0_DP, 0.0_DP, 0.0_DP /) + helio_plA%ah(:,i) = (/ 0.0_DP, 0.0_DP, 0.0_DP /) end do call symba_helio_getacch_int(npl, nplm, helio_plA) end if @@ -35,11 +35,11 @@ end do call obl_acc(helio_plA, param%j2rp2, param%j4rp4, xh, irh, aobl) do i = 2, npl - helio_plA%ah(:,i) = helio_plA%ahi(:,i) + aobl(:, i) - aobl(:, 1) + helio_plA%ah(:,i) = helio_plA%ah(:,i) + aobl(:, i) - aobl(:, 1) end do else do i = 2, npl - helio_plA%ah(:,i) = helio_plA%ahi(:,i) + helio_plA%ah(:,i) = helio_plA%ah(:,i) end do end if if (lextra_force) call helio_user_getacch(t, npl, helio_plA) diff --git a/src/symba/symba_helio_getacch_int.f90 b/src/symba/symba_helio_getacch_int.f90 index 718f4b189..8093c48d7 100644 --- a/src/symba/symba_helio_getacch_int.f90 +++ b/src/symba/symba_helio_getacch_int.f90 @@ -21,8 +21,8 @@ irij3 = 1.0_DP/(rji2*sqrt(rji2)) faci = helio_plA%swiftest%mass(i)*irij3 facj = helio_plA%swiftest%mass(j)*irij3 - helio_plA%ahi(:,i) = helio_plA%ahi(:,i) + facj*dx(:) - helio_plA%ahi(:,j) = helio_plA%ahi(:,j) - faci*dx(:) + helio_plA%ah(:,i) = helio_plA%ah(:,i) + facj*dx(:) + helio_plA%ah(:,j) = helio_plA%ah(:,j) - faci*dx(:) end do end do return diff --git a/src/user/user_getacch.f90 b/src/user/user_getacch.f90 index da3d00578..c54c21693 100644 --- a/src/user/user_getacch.f90 +++ b/src/user/user_getacch.f90 @@ -1,10 +1,10 @@ submodule(swiftest_classes) s_user_getacch use swiftest contains - module subroutine user_getacch_body(self, system, param, t) + module subroutine user_getacch_body(self, system, param, t, lbeg) !! author: David A. Minton !! - !! Add user-supplied heliocentric accelerations to planets + !! Add user-supplied heliocentric accelerations to planets. !! !! Adapted from David E. Kaufmann's Swifter routine whm_user_getacch.f90 implicit none @@ -13,6 +13,7 @@ module subroutine user_getacch_body(self, system, param, t) class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody_system_object class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters of user parameters real(DP), intent(in) :: t !! Current time + logical, optional, intent(in) :: lbeg !! Optional argument that determines whether or not this is the beginning or end of the ste return end subroutine user_getacch_body diff --git a/src/util/util_get_energy_and_momentum.f90 b/src/util/util_get.f90 similarity index 100% rename from src/util/util_get_energy_and_momentum.f90 rename to src/util/util_get.f90 diff --git a/src/util/util_set.f90 b/src/util/util_set.f90 new file mode 100644 index 000000000..b77579de1 --- /dev/null +++ b/src/util/util_set.f90 @@ -0,0 +1,123 @@ +submodule(swiftest_classes) s_util_set + !! author: David A. Minton + !! This submodule contains a collection of setter method implementations + use swiftest +contains + + module subroutine util_set_beg_end_cb(self, aoblbeg, aoblend) + !! author: David A. Minton + !! + !! Sets one or more of the values of aoblbeg and aoblend + implicit none + ! Arguments + class(swiftest_cb), intent(inout) :: self !! Swiftest central body object + real(DP), dimension(:), intent(in), optional :: aoblbeg !! Oblateness acceleration term at beginning of step + real(DP), dimension(:), intent(in), optional :: aoblend !! Oblateness acceleration term at end of step + + if (present(aoblbeg)) self%aoblbeg = aoblbeg + if (present(aoblend)) self%aoblend = aoblend + return + + end subroutine util_set_beg_end_cb + + module subroutine util_set_beg_end_pl(self, xbeg, xend, vbeg) + !! author: David A. Minton + !! + !! Sets one or more of the values of xbeg, xend, and vbeg + implicit none + ! Arguments + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + real(DP), dimension(:,:), intent(in), optional :: xbeg, xend, vbeg + + if (present(xbeg)) then + if (allocated(self%xbeg)) deallocate(self%xbeg) + allocate(self%xbeg, source=xbeg) + end if + if (present(xend)) then + if (allocated(self%xend)) deallocate(self%xend) + allocate(self%xend, source=xend) + end if + if (present(vbeg)) then + if (allocated(self%vbeg)) deallocate(self%vbeg) + allocate(self%vbeg, source=vbeg) + end if + + return + + end subroutine util_set_beg_end_pl + + module subroutine util_set_msys(self) + !! author: David A. Minton + !! + !! Sets the value of msys and the vector mass quantities based on the total mass of the system + implicit none + class(swiftest_nbody_system), intent(inout) :: self !! Swiftest system objec + self%msys = self%cb%mass + sum(self%pl%mass(1:self%pl%nbody)) + + return + end subroutine util_set_msys + + module subroutine util_set_mu_pl(self, cb) + !! author: David A. Minton + !! + !! Computes G * (M + m) for each massive body + implicit none + 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(:) + + return + end subroutine util_set_mu_pl + + module subroutine util_set_mu_tp(self, cb) + !! author: David A. Minton + !! + !! Converts certain scalar values to arrays so that they can be used in elemental functions + implicit none + 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 + + return + end subroutine util_set_mu_tp + + module subroutine util_set_rhill(self,cb) + !! author: David A. Minton + !! + !! Sets the value of the Hill's radius + implicit none + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + class(swiftest_cb), intent(inout) :: cb !! Swiftest massive body object + + if (self%nbody > 0) then + call self%xv2el(cb) + self%rhill(:) = self%a(:) * (self%Gmass(:) / cb%Gmass / 3)**THIRD + end if + + return + end subroutine util_set_rhill + + module subroutine util_set_ir3h(self) + !! author: David A. Minton + !! + !! Sets the inverse heliocentric radius term (1/rh**3) for all bodies in a structure + implicit none + class(swiftest_body), intent(inout) :: self !! Swiftest generic body object + + integer(I4B) :: i + real(DP) :: r2, irh + + if (self%nbody > 0) then + + do i = 1, self%nbody + r2 = dot_product(self%xh(:, i), self%xh(:, i)) + irh = 1.0_DP / sqrt(r2) + self%ir3h(i) = irh / r2 + end do + end if + + return + end subroutine util_set_ir3h +end submodule s_util_set \ No newline at end of file diff --git a/src/util/util_set_beg_end.f90 b/src/util/util_set_beg_end.f90 deleted file mode 100644 index 67edfb549..000000000 --- a/src/util/util_set_beg_end.f90 +++ /dev/null @@ -1,30 +0,0 @@ -submodule(swiftest_classes) s_util_set_beg_end - use swiftest -contains - - module subroutine util_set_beg_end(self, xbeg, xend, vbeg) - !! author: David A. Minton - !! - !! Sets one or more of the values of xbeg, xend, and vbeg - implicit none - ! Arguments - class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object - real(DP), dimension(:,:), intent(in), optional :: xbeg, xend, vbeg - - if (present(xbeg)) then - if (allocated(self%xbeg)) deallocate(self%xbeg) - allocate(self%xbeg, source=xbeg) - end if - if (present(xend)) then - if (allocated(self%xend)) deallocate(self%xend) - allocate(self%xend, source=xend) - end if - if (present(vbeg)) then - if (allocated(self%vbeg)) deallocate(self%vbeg) - allocate(self%vbeg, source=vbeg) - end if - - return - - end subroutine util_set_beg_end -end submodule s_util_set_beg_end \ No newline at end of file diff --git a/src/whm/whm_getacch.f90 b/src/whm/whm_getacch.f90 index 595c4546b..182b385b9 100644 --- a/src/whm/whm_getacch.f90 +++ b/src/whm/whm_getacch.f90 @@ -1,7 +1,7 @@ submodule(whm_classes) s_whm_getacch use swiftest contains - module subroutine whm_getacch_pl(self, system, param, t) + module subroutine whm_getacch_pl(self, system, param, t, lbeg) !! author: David A. Minton !! !! Compute heliocentric accelerations of planets @@ -14,6 +14,7 @@ module subroutine whm_getacch_pl(self, system, param, t) class(swiftest_nbody_system), intent(inout) :: system !! Swiftest central body particle data structure class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters of real(DP), intent(in) :: t !! Current time + logical, optional, intent(in) :: lbeg !! Optional argument that determines whether or not this is the beginning or end of the step ! Internals integer(I4B) :: i real(DP), dimension(NDIM) :: ah0 @@ -31,15 +32,19 @@ module subroutine whm_getacch_pl(self, system, param, t) call whm_getacch_ah2(cb, pl) call whm_getacch_ah3(pl) - if (param%loblatecb) call pl%obl_acc(cb) - if (param%lextra_force) call pl%user_getacch(system, param, t) - if (param%lgr) call pl%gr_get_accel(param) + if (param%loblatecb) then + call cb%set_beg_end(aoblbeg = cb%aobl) + call pl%accel_obl(system) + call cb%set_beg_end(aoblend = cb%aobl) + end if + if (param%lextra_force) call pl%accel_user(system, param, t) + if (param%lgr) call pl%accel_gr(param) end associate return end subroutine whm_getacch_pl - module subroutine whm_getacch_tp(self, system, param, t, xhp) + module subroutine whm_getacch_tp(self, system, param, t, lbeg) !! author: David A. Minton !! !! Compute heliocentric accelerations of test particles @@ -52,22 +57,30 @@ module subroutine whm_getacch_tp(self, system, param, t, xhp) class(swiftest_nbody_system), intent(inout) :: system !! Swiftest central body particle data structure class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters of real(DP), intent(in) :: t !! Current time - real(DP), dimension(:,:), intent(in) :: xhp !! Heliocentric positions of planets at the current substep + logical, optional, intent(in) :: lbeg !! Optional argument that determines whether or not this is the beginning or end of the step ! Internals integer(I4B) :: i real(DP), dimension(NDIM) :: ah0 + real(DP), dimension(:,:), allocatable :: xhp associate(tp => self, ntp => self%nbody, pl => system%pl, cb => system%cb, npl => system%pl%nbody) if (ntp == 0 .or. npl == 0) return + if (present(lbeg)) system%lbeg = lbeg + + if (system%lbeg) then + allocate(xhp, source=pl%xbeg) + else + allocate(xhp, source=pl%xend) + end if ah0(:) = whm_getacch_ah0(pl%Gmass(:), xhp(:,:), npl) do i = 1, ntp tp%ah(:, i) = ah0(:) end do call whm_getacch_ah3_tp(system, xhp) - if (param%loblatecb) call tp%obl_acc(cb) - if (param%lextra_force) call tp%user_getacch(system, param, t) - if (param%lgr) call tp%gr_get_accel(param) + if (param%loblatecb) call tp%accel_obl(system) + if (param%lextra_force) call tp%accel_user(system, param, t) + if (param%lgr) call tp%accel_gr(param) end associate return end subroutine whm_getacch_tp diff --git a/src/whm/whm_setup.f90 b/src/whm/whm_setup.f90 index feba7cc51..9598b61ea 100644 --- a/src/whm/whm_setup.f90 +++ b/src/whm/whm_setup.f90 @@ -47,7 +47,7 @@ module subroutine whm_setup_tp(self,n) return end subroutine whm_setup_tp - module subroutine whm_setup_set_mu_eta_pl(self, cb) + module subroutine whm_util_set_mu_eta_pl(self, cb) !! author: David A. Minton !! !! Sets the Jacobi mass value eta for all massive bodies @@ -61,7 +61,7 @@ module subroutine whm_setup_set_mu_eta_pl(self, cb) associate(pl => self, npl => self%nbody, GMpl => self%Gmass, muj => self%muj, & eta => self%eta, GMcb => cb%Gmass) if (npl == 0) return - call setup_set_mu_pl(pl, cb) + call util_set_mu_pl(pl, cb) eta(1) = GMcb + GMpl(1) muj(1) = eta(1) do i = 2, npl @@ -70,7 +70,7 @@ module subroutine whm_setup_set_mu_eta_pl(self, cb) end do end associate - end subroutine whm_setup_set_mu_eta_pl + end subroutine whm_util_set_mu_eta_pl module subroutine whm_setup_system(self, param) !! author: David A. Minton @@ -89,7 +89,7 @@ module subroutine whm_setup_system(self, param) select type(pl => self%pl) class is (whm_pl) call pl%set_mu(self%cb) - if (param%lgr) call pl%gr_vh2pv(param) + if (param%lgr) call pl%vh2pv(param) !call pl%eucl_index() end select end if @@ -98,7 +98,7 @@ module subroutine whm_setup_system(self, param) select type(tp => self%tp) class is (whm_tp) call tp%set_mu(self%cb) - if (param%lgr) call tp%gr_vh2pv(param) + if (param%lgr) call tp%vh2pv(param) end select end if diff --git a/src/whm/whm_step.f90 b/src/whm/whm_step.f90 index 74c0a9290..8aa8cfd2a 100644 --- a/src/whm/whm_step.f90 +++ b/src/whm/whm_step.f90 @@ -18,12 +18,8 @@ module subroutine whm_step_system(self, param, t, dt) associate(system => self, cb => self%cb, pl => self%pl, tp => self%tp, ntp => self%tp%nbody) call pl%set_rhill(cb) - call pl%set_beg_end(xbeg = pl%xh) call pl%step(system, param, t, dt) - if (ntp > 0) then - call pl%set_beg_end(xend = pl%xh) - call tp%step(system, param, t, dt) - end if + call tp%step(system, param, t, dt) end associate return end subroutine whm_step_system @@ -46,22 +42,26 @@ module subroutine whm_step_pl(self, system, param, t, dt) ! Internals real(DP) :: dth + if (self%nbody == 0) return + associate(pl => self, cb => system%cb) dth = 0.5_DP * dt if (pl%lfirst) then call pl%h2j(cb) - call pl%get_accel(system, param, t) + call pl%accel(system, param, t) pl%lfirst = .false. end if + call pl%set_beg_end(xbeg = pl%xh) call pl%kick(dth) call pl%vh2vj(cb) !If GR enabled, calculate the p4 term before and after each drift - if (param%lgr) call pl%gr_p4(param, dth) + if (param%lgr) call pl%p4(param, dth) call pl%drift(system, param, dt) - if (param%lgr) call pl%gr_p4(param, dth) + if (param%lgr) call pl%p4(param, dth) call pl%j2h(cb) - call pl%get_accel(system, param, t + dt) + call pl%accel(system, param, t + dt) call pl%kick(dth) + call pl%set_beg_end(xend = pl%xh) end associate return end subroutine whm_step_pl @@ -83,19 +83,21 @@ module subroutine whm_step_tp(self, system, param, t, dt) ! Internals real(DP) :: dth + if (self%nbody == 0) return + select type(system) class is (whm_nbody_system) associate(tp => self, cb => system%cb, pl => system%pl) dth = 0.5_DP * dt if (tp%lfirst) then - call tp%get_accel(system, param, t, pl%xbeg) + call tp%accel(system, param, t, lbeg=.true.) tp%lfirst = .false. end if call tp%kick(dth) - if (param%lgr) call tp%gr_p4(param, dth) + if (param%lgr) call tp%p4(param, dth) call tp%drift(system, param, dt) - if (param%lgr) call tp%gr_p4(param, dth) - call tp%get_accel(system, param, t + dt, pl%xend) + if (param%lgr) call tp%p4(param, dth) + call tp%accel(system, param, t + dt, lbeg=.false.) call tp%kick(dth) end associate end select From e18196b95e137b0b0810b4c44fc65d98b1cfa860 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 8 Jul 2021 13:35:22 -0400 Subject: [PATCH 24/28] Updated whm swifter vs swiftest comparison example with streamlined initial conditions generator --- .../swiftest_vs_swifter.ipynb | 6 +- .../whm_swifter_comparison/Untitled.ipynb | 169 -------- .../whm_swifter_comparison/cb.swiftest.in | Bin 64 -> 87 bytes examples/whm_swifter_comparison/init_cond.py | 362 +++-------------- .../whm_swifter_comparison/param.swifter.in | 52 +-- .../whm_swifter_comparison/param.swiftest.in | 64 +-- examples/whm_swifter_comparison/pl.swifter.in | 56 ++- .../whm_swifter_comparison/pl.swiftest.in | Bin 700 -> 1529 bytes .../swiftest_vs_swifter.ipynb | 245 ++++++++++++ examples/whm_swifter_comparison/tp.swifter.in | 24 +- .../whm_swifter_comparison/tp.swiftest.in | Bin 280 -> 559 bytes .../whm_swiftest_vs_swifter.ipynb | 363 ------------------ 12 files changed, 396 insertions(+), 945 deletions(-) delete mode 100644 examples/whm_swifter_comparison/Untitled.ipynb mode change 100644 => 100755 examples/whm_swifter_comparison/init_cond.py create mode 100644 examples/whm_swifter_comparison/swiftest_vs_swifter.ipynb delete mode 100644 examples/whm_swifter_comparison/whm_swiftest_vs_swifter.ipynb 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 8232207e5..f2566d9e7 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, @@ -91,7 +91,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] diff --git a/examples/whm_swifter_comparison/Untitled.ipynb b/examples/whm_swifter_comparison/Untitled.ipynb deleted file mode 100644 index 7d5a299df..000000000 --- a/examples/whm_swifter_comparison/Untitled.ipynb +++ /dev/null @@ -1,169 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import astropy.constants as const" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "6.6743e-11\n" - ] - } - ], - "source": [ - "AU2M = np.longdouble(const.au.value)\n", - "GMSunSI = np.longdouble(const.GM_sun.value)\n", - "print(const.G.value)\n", - "Rsun = np.longdouble(const.R_sun.value)\n", - "GC = np.longdouble(const.G.value)\n", - "JD = 86400\n", - "year = np.longdouble(365.25 * JD)\n", - "c = np.longdouble(299792458.0)\n", - "MSun_over_Mpl = np.array([6023600.0,\n", - " 408523.71,\n", - " 328900.56,\n", - " 3098708.,\n", - " 1047.3486,\n", - " 3497.898,\n", - " 22902.98,\n", - " 19412.24,\n", - " 1.35e8], dtype=np.longdouble)\n", - "\n", - "MU2KG = np.longdouble(GMSunSI / GC) #Conversion from mass unit to kg\n", - "DU2M = np.longdouble(AU2M) #Conversion from radius unit to centimeters\n", - "TU2S = np.longdouble(year) #Conversion from time unit to seconds\n", - "GU = np.longdouble(GC / (DU2M**3 / (MU2KG * TU2S**2)))\n", - "\n", - "GMSun = np.longdouble(GMSunSI / (DU2M**3 / TU2S**2))" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "int" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "type(JD)" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([6.0236000000000000000e+06, 4.0852371000000002095e+05,\n", - " 3.2890055999999999767e+05, 3.0987080000000000000e+06,\n", - " 1.0473486000000000331e+03, 3.4978980000000001382e+03,\n", - " 2.2902979999999999563e+04, 1.9412240000000001601e+04,\n", - " 1.3500000000000000000e+08], dtype=float128)" - ] - }, - "execution_count": 39, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "MSun_over_Mpl" - ] - }, - { - "cell_type": "code", - "execution_count": 54, - "metadata": {}, - "outputs": [], - "source": [ - "np.set_printoptions(threshold = np.inf, precision=23)" - ] - }, - { - "cell_type": "code", - "execution_count": 59, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "39.476926408897626292\n" - ] - } - ], - "source": [ - "print(GU)" - ] - }, - { - "cell_type": "code", - "execution_count": 60, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "39.47692640889762571987376\n" - ] - } - ], - "source": [ - "print(\"{:.23f}\".format(GU))" - ] - }, - { - "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/whm_swifter_comparison/cb.swiftest.in b/examples/whm_swifter_comparison/cb.swiftest.in index 2386b53c8a2bcee968968e01db63bf30bc75c07a..058975b813b2ede68061d83c64275e30fd103ddb 100644 GIT binary patch literal 87 zcmWN`u@L|<2m`^KUd&(t5)}0Px9|=w*~|437p$0B5w!4#V!s5&61QdL>g)+_&4sf2 RI~R7~DCJW7wlL81u^;=Z5pDng literal 64 zcmd;JU|=xH*zksXud@ROkPX6j{SWxW@f6#``25D)QG73^*uwa(zDpQecDd{U@d2$e B4EX>6 diff --git a/examples/whm_swifter_comparison/init_cond.py b/examples/whm_swifter_comparison/init_cond.py old mode 100644 new mode 100755 index 289f14f75..aac82eed9 --- a/examples/whm_swifter_comparison/init_cond.py +++ b/examples/whm_swifter_comparison/init_cond.py @@ -1,323 +1,59 @@ +#!/usr/bin/env python3 +import swiftest import numpy as np import sys from astroquery.jplhorizons import Horizons import astropy.constants as const from scipy.io import FortranFile -#Values from JPL Horizons -AU2M = np.longdouble(const.au.value) -GMSunSI = np.longdouble(const.GM_sun.value) -Rsun = np.longdouble(const.R_sun.value) -GC = np.longdouble(const.G.value) -JD = 86400 -year = np.longdouble(365.25 * JD) -c = np.longdouble(299792458.0) -MSun_over_Mpl = np.array([6023600.0, - 408523.71, - 328900.56, - 3098708., - 1047.3486, - 3497.898, - 22902.98, - 19412.24, - 1.35e8], dtype=np.longdouble) - -MU2KG = np.longdouble(GMSunSI / GC) #Conversion from mass unit to kg -DU2M = np.longdouble(AU2M) #Conversion from radius unit to centimeters -TU2S = np.longdouble(year) #Conversion from time unit to seconds -GU = np.longdouble(GC / (DU2M**3 / (MU2KG * TU2S**2))) - -GMSun = np.longdouble(GMSunSI / (DU2M**3 / TU2S**2)) - -# Simulation start, stop, and output cadence times -t_0 = 0 # simulation start time -deltaT = 0.25 * JD / TU2S # simulation step size -end_sim = 1 * year / TU2S # simulation end time -t_print = deltaT #year / TU2S #output interval to print results - - -# Solar oblatenes values: From Mecheri et al. (2004), using Corbard (b) 2002 values (Table II) -J2 = 0.0 #np.longdouble(2.198e-7) * (Rsun / DU2M)**2 -J4 = 0.0 #np.longdouble(-4.805e-9) * (Rsun / DU2M)**4 - -tstart = '2021-01-28' -tend = '2021-01-29' -tstep = '1d' -planetid = { - 'mercury' : '1', - 'venus' : '2', - 'earthmoon' : '3', - 'mars' : '4', - 'jupiter' : '5', - 'saturn' : '6', - 'uranus' : '7', - 'neptune' : '8', - 'plutocharon' : '9' -} -npl = 9 - -#Planet Msun/M ratio -MSun_over_Mpl = { - 'mercury' : np.longdouble(6023600.0), - 'venus' : np.longdouble(408523.71), - 'earthmoon' : np.longdouble(328900.56), - 'mars' : np.longdouble(3098708.), - 'jupiter' : np.longdouble(1047.3486), - 'saturn' : np.longdouble(3497.898), - 'uranus' : np.longdouble(22902.98), - 'neptune' : np.longdouble(19412.24), - 'plutocharon' : np.longdouble(1.35e8) -} - -#Planet radii in meters -Rpl = { - 'mercury' : np.longdouble(2439.4e3), - 'venus' : np.longdouble(6051.8e3), - 'earthmoon' : np.longdouble(6371.0084e3), # Earth only for radius - 'mars' : np.longdouble(3389.50e3), - 'jupiter' : np.longdouble(69911e3), - 'saturn' : np.longdouble(58232.0e3), - 'uranus' : np.longdouble(25362.e3), - 'neptune' : np.longdouble(24622.e3), - 'plutocharon' : np.longdouble(1188.3e3) -} - -pdata = {} -plvec = {} -Rhill = {} -THIRDLONG = np.longdouble(1.0) / np.longdouble(3.0) - -for key,val in planetid.items(): - pdata[key] = Horizons(id=val, id_type='majorbody',location='@sun', - epochs={'start': tstart, 'stop': tend, - 'step': tstep}) - plvec[key] = np.array([pdata[key].vectors()['x'][0], - pdata[key].vectors()['y'][0], - pdata[key].vectors()['z'][0], - pdata[key].vectors()['vx'][0], - pdata[key].vectors()['vy'][0], - pdata[key].vectors()['vz'][0] - ]) - - Rhill[key] = np.longdouble(pdata[key].elements()['a'][0]) * (3 * MSun_over_Mpl[key])**(-THIRDLONG) - -asteroidid = { - '100001' : 'Ceres', - '100002' : 'Pallas', - '100003' : 'Juno', - '100004' : 'Vesta' +sim = swiftest.Simulation() + +sim.param['MU2KG'] = swiftest.MSun +sim.param['TU2S'] = swiftest.YR2S +sim.param['DU2M'] = swiftest.AU2M +sim.param['T0'] = 0.0 +sim.param['TSTOP'] = 1.0 +sim.param['DT'] = 0.25 * swiftest.JD2S / swiftest.YR2S +sim.param['CHK_QMIN_COORD'] = "HELIO" +sim.param['CHK_QMIN'] = swiftest.RSun / swiftest.AU2M +sim.param['CHK_QMIN_RANGE'] = f"{swiftest.RSun / swiftest.AU2M} 1000.0" +sim.param['CHK_RMIN'] = swiftest.RSun / swiftest.AU2M +sim.param['CHK_RMAX'] = 1000.0 +sim.param['CHK_EJECT'] = 1000.0 +sim.param['ISTEP_OUT'] = 1 +sim.param['ISTEP_DUMP'] = 1 +sim.param['OUT_FORM'] = "XV" +sim.param['OUT_STAT'] = "UNKNOWN" +sim.param['GR'] = 'NO' + +bodyid = { + "Sun": 0, + "Mercury": 1, + "Venus": 2, + "Earth": 3, + "Mars": 4, + "Jupiter": 5, + "Saturn": 6, + "Uranus": 7, + "Neptune": 8, + "Ceres": 101, + "Pallas": 102, + "Juno": 103, + "Vesta": 104 } -ntp = 4 -tdata = {} -tpvec = {} -for key,val in asteroidid.items(): - tdata[key] = Horizons(id=val, id_type='smallbody', location='@sun', - epochs={'start': tstart, 'stop': tend, - 'step': tstep}) - tpvec[key] = np.array([tdata[key].vectors()['x'][0], - tdata[key].vectors()['y'][0], - tdata[key].vectors()['z'][0], - tdata[key].vectors()['vx'][0], - tdata[key].vectors()['vy'][0], - tdata[key].vectors()['vz'][0] - ]) - - -if __name__ == '__main__': - # Convert from AU-day to AU-year just because I find it easier to keep track of the sim progress - for plid in plvec: - plvec[plid][3:] *= year / JD - - for tpid in tpvec: - tpvec[tpid][3:] *= year / JD - - # Names of all output files - swifter_input = "param.swifter.in" - swifter_pl = "pl.swifter.in" - swifter_tp = "tp.swifter.in" - swifter_bin = "bin.swifter.dat" - swifter_enc = "enc.swifter.dat" - - swiftest_input = "param.swiftest.in" - swiftest_pl = "pl.swiftest.in" - swiftest_tp = "tp.swiftest.in" - swiftest_cb = "cb.swiftest.in" - swiftest_bin = "bin.swiftest.dat" - swiftest_enc = "enc.swiftest.dat" - - iout = int(np.ceil(t_print / deltaT)) - rmin = Rsun / DU2M - rmax = np.longdouble(1000.0) - #Make Swifter files +for name, id in bodyid.items(): + sim.add(name, idval=id) - plfile = open(swifter_pl, 'w') - print(npl+1, f'! Planet input file generated using init_cond.py using JPL Horizons data for the major planets (and Pluto) for epoch {tstart}' ,file=plfile) - print(1,GMSun,file=plfile) - print('0.0 0.0 0.0',file=plfile) - print('0.0 0.0 0.0',file=plfile) - for i, plid in enumerate(plvec): - print(i + 2,"{:.23g}".format(GMSun * MSun_over_Mpl[plid]**-1),Rhill[plid], file=plfile) - print(Rpl[plid] / DU2M, file=plfile) - print(plvec[plid][0],plvec[plid][1],plvec[plid][2], file=plfile) - print(plvec[plid][3],plvec[plid][4],plvec[plid][5], file=plfile) - plfile.close() - - tpfile = open(swifter_tp, 'w') - print(ntp,file=tpfile) - for tpid, tp in tpvec.items(): - print(tpid, file=tpfile) - print(tp[0],tp[1],tp[2], file=tpfile) - print(tp[3],tp[4],tp[5], file=tpfile) - tpfile.close() - - sys.stdout = open(swifter_input, "w") - print('! Swifter input file generated using init_cond.py') - print('T0 ',t_0) - print('TSTOP ',end_sim) - print('DT ',deltaT) - print('PL_IN ',swifter_pl) - print('TP_IN ',swifter_tp) - print('IN_TYPE ASCII') - print('ISTEP_OUT ',iout) - print('ISTEP_DUMP ',iout) - print('BIN_OUT ',swifter_bin) - print('OUT_TYPE REAL8') - print('OUT_FORM XV') - print('OUT_STAT NEW') - print('J2 ',J2) - print('J4 ',J4) - print('CHK_CLOSE yes') - print('CHK_RMIN ',rmin) - print('CHK_RMAX ',rmax) - print('CHK_EJECT ',rmax) - print('CHK_QMIN ',rmin) - print('CHK_QMIN_COORD HELIO') - print('CHK_QMIN_RANGE ',rmin,rmax) - print('ENC_OUT ',swifter_enc) - print('EXTRA_FORCE no') - print('BIG_DISCARD no') - print('RHILL_PRESENT yes') - - sys.stdout = sys.__stdout__ - #Now make Swiftest files - #cbfile = open(swiftest_cb, 'w') - cbfile = FortranFile(swiftest_cb, 'w') - #print(1.0,file=cbfile) - #print(rmin,file=cbfile) - #print(J2,file=cbfile) - #print(J4,file=cbfile) - Msun = np.double(1.0) - cbfile.write_record(np.double(GMSun)) - cbfile.write_record(np.double(rmin)) - cbfile.write_record(np.double(J2)) - cbfile.write_record(np.double(J4)) - cbfile.close() - - #plfile = open(swiftest_pl, 'w') - plfile = FortranFile(swiftest_pl, 'w') - #print(npl,file=plfile) - plfile.write_record(npl) - - name = np.empty(npl, dtype=np.int32) - px = np.empty(npl, dtype=np.double) - py = np.empty(npl, dtype=np.double) - pz = np.empty(npl, dtype=np.double) - vx = np.empty(npl, dtype=np.double) - vy = np.empty(npl, dtype=np.double) - vz = np.empty(npl, dtype=np.double) - mass = np.empty(npl, dtype=np.double) - Gmass = np.empty(npl, dtype=np.double) - radius = np.empty(npl, dtype=np.double) - for i, plid in enumerate(plvec): - name[i] = i + 2 - px[i] = plvec[plid][0] - py[i] = plvec[plid][1] - pz[i] = plvec[plid][2] - vx[i] = plvec[plid][3] - vy[i] = plvec[plid][4] - vz[i] = plvec[plid][5] - Gmass[i] = GMSun * MSun_over_Mpl[plid]**-1 - radius[i] = Rpl[plid] / DU2M - plfile.write_record(name.T) - plfile.write_record(px.T) - plfile.write_record(py.T) - plfile.write_record(pz.T) - plfile.write_record(vx.T) - plfile.write_record(vy.T) - plfile.write_record(vz.T) - plfile.write_record(Gmass.T) - plfile.write_record(radius.T) - #for i, plid in enumerate(plvec): - # print(i + 2,"{:.23g}".format(np.longdouble(MSun_over_Mpl[plid]**-1)), file=plfile) - # print(Rpl[plid] / DU2M, file=plfile) - # print(plvec[plid][0], plvec[plid][1], plvec[plid][2], file=plfile) - # print(plvec[plid][3], plvec[plid][4], plvec[plid][5], file=plfile) - plfile.close() - #tpfile = open(swiftest_tp, 'w') - tpfile = FortranFile(swiftest_tp, 'w') - #print(ntp,file=tpfile) - tpfile.write_record(ntp) - #for tpid, tp in tpvec.items(): - # print(tpid, file=tpfile) - # print(tp[0],tp[1],tp[2], file=tpfile) - # print(tp[3],tp[4],tp[5], file=tpfile) - - name = np.empty(ntp, dtype=np.int32) - px = np.empty(ntp, dtype=np.double) - py = np.empty(ntp, dtype=np.double) - pz = np.empty(ntp, dtype=np.double) - vx = np.empty(ntp, dtype=np.double) - vy = np.empty(ntp, dtype=np.double) - vz = np.empty(ntp, dtype=np.double) - for i, tpid in enumerate(tpvec): - name[i] = int(tpid) - px[i] = tpvec[tpid][0] - py[i] = tpvec[tpid][1] - pz[i] = tpvec[tpid][2] - vx[i] = tpvec[tpid][3] - vy[i] = tpvec[tpid][4] - vz[i] = tpvec[tpid][5] - tpfile.write_record(name.T) - tpfile.write_record(px.T) - tpfile.write_record(py.T) - tpfile.write_record(pz.T) - tpfile.write_record(vx.T) - tpfile.write_record(vy.T) - tpfile.write_record(vz.T) - - tpfile.close() - - sys.stdout = open(swiftest_input, "w") - print('! Swiftest input file generated using init_cond.py') - print('T0 ',t_0) - print('TSTOP ',end_sim) - print('DT ',deltaT) - print('CB_IN ',swiftest_cb) - print('PL_IN ',swiftest_pl) - print('TP_IN ',swiftest_tp) - print('IN_TYPE REAL8') - print('ISTEP_OUT ',iout) - print('ISTEP_DUMP ',iout) - print('BIN_OUT ',swiftest_bin) - print('OUT_TYPE REAL8') - print('OUT_FORM XV') - print('OUT_STAT REPLACE') - print('CHK_CLOSE yes') - print('CHK_RMIN ',rmin) - print('CHK_RMAX ',rmax) - print('CHK_EJECT ',rmax) - print('CHK_QMIN ',rmin) - print('CHK_QMIN_COORD HELIO') - print('CHK_QMIN_RANGE ',rmin,rmax) - print('ENC_OUT ',swiftest_enc) - print('EXTRA_FORCE no') - print('BIG_DISCARD no') - print('ROTATION no') - print('GR no') - print('MU2KG ',MU2KG) - print('DU2M ',DU2M) - print('TU2S ',TU2S) - +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.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.save("param.swifter.in", codename="Swifter") - sys.stdout = sys.__stdout__ diff --git a/examples/whm_swifter_comparison/param.swifter.in b/examples/whm_swifter_comparison/param.swifter.in index b092c2553..5cf0cb8b9 100644 --- a/examples/whm_swifter_comparison/param.swifter.in +++ b/examples/whm_swifter_comparison/param.swifter.in @@ -1,26 +1,26 @@ -! Swifter input file generated using init_cond.py -T0 0 -TSTOP 1.0 -DT 0.0006844626967830253251 -PL_IN pl.swifter.in -TP_IN tp.swifter.in -IN_TYPE ASCII -ISTEP_OUT 1 -ISTEP_DUMP 1 -BIN_OUT bin.swifter.dat -OUT_TYPE REAL8 -OUT_FORM XV -OUT_STAT NEW -J2 4.7535806948127356533e-12 -J4 -2.2473967953572827815e-18 -CHK_CLOSE yes -CHK_RMIN 0.0046504672609621575315 -CHK_RMAX 1000.0 -CHK_EJECT 1000.0 -CHK_QMIN 0.0046504672609621575315 -CHK_QMIN_COORD HELIO -CHK_QMIN_RANGE 0.0046504672609621575315 1000.0 -ENC_OUT enc.swifter.dat -EXTRA_FORCE no -BIG_DISCARD no -RHILL_PRESENT yes +! VERSION Swifter parameter file converted from Swiftest +T0 0.0 +TSTOP 1.0 +DT 0.0006844626967830253 +ISTEP_OUT 1 +ISTEP_DUMP 1 +OUT_FORM XV +OUT_TYPE REAL8 +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 +EXTRA_FORCE NO +BIG_DISCARD NO +CHK_CLOSE YES +J2 4.7535806948127355e-12 +J4 -2.2473967953572827e-18 +RHILL_PRESENT YES diff --git a/examples/whm_swifter_comparison/param.swiftest.in b/examples/whm_swifter_comparison/param.swiftest.in index c32a270f5..73818e198 100644 --- a/examples/whm_swifter_comparison/param.swiftest.in +++ b/examples/whm_swifter_comparison/param.swiftest.in @@ -1,29 +1,35 @@ -! Swiftest input file generated using init_cond.py -T0 0 -TSTOP 1.0 -DT 0.0006844626967830253251 -CB_IN cb.swiftest.in -PL_IN pl.swiftest.in -TP_IN tp.swiftest.in -IN_TYPE REAL8 -ISTEP_OUT 1 -ISTEP_DUMP 1 -BIN_OUT bin.swiftest.dat -OUT_TYPE REAL8 -OUT_FORM XV -OUT_STAT REPLACE -CHK_CLOSE yes -CHK_RMIN 0.0046504672609621575315 -CHK_RMAX 1000.0 -CHK_EJECT 1000.0 -CHK_QMIN 0.0046504672609621575315 -CHK_QMIN_COORD HELIO -CHK_QMIN_RANGE 0.0046504672609621575315 1000.0 -ENC_OUT enc.swiftest.dat -EXTRA_FORCE no -BIG_DISCARD no -ROTATION no -GR no -MU2KG 1.988409870698050917e+30 -DU2M 149597870700.0 -TU2S 31557600.0 +! VERSION Swiftest parameter input +T0 0.0 +TSTOP 1.0 +DT 0.0006844626967830253 +ISTEP_OUT 1 +ISTEP_DUMP 1 +OUT_FORM XV +OUT_TYPE REAL8 +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 +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 +EXTRA_FORCE NO +BIG_DISCARD NO +CHK_CLOSE YES +FRAGMENTATION NO +ROTATION NO +TIDES NO +ENERGY NO +GR NO +YARKOVSKY NO +YORP NO +MTINY 0.0 diff --git a/examples/whm_swifter_comparison/pl.swifter.in b/examples/whm_swifter_comparison/pl.swifter.in index d0d4e7ff9..7412144e0 100644 --- a/examples/whm_swifter_comparison/pl.swifter.in +++ b/examples/whm_swifter_comparison/pl.swifter.in @@ -1,40 +1,36 @@ -10 ! Planet input file generated using init_cond.py using JPL Horizons data for the major planets (and Pluto) for epoch 2021-01-28 -1 39.47692640889762629 +9 +0 39.476926408897625196 0.0 0.0 0.0 0.0 0.0 0.0 -2 6.553709809565313959502e-06 0.0014751229680863789154 +1 6.5537098095653139645e-06 0.0014751253039664285066 1.6306381826061645943e-05 -0.1030256860922895 0.2897796047098886 0.01422904600374035 --11.74004209950937 3.8343124110162736 1.3902496665973592 -3 9.6633133995815387361564e-05 0.006759127649782299051 +0.36019833403308620934 -0.07157757063116521046 -0.038889932331457412185 +0.012062683987023428416 10.539199589223686515 0.86012493216791845955 +2 9.663313399581537916e-05 0.006759112363391176217 4.0453784346544178454e-05 -0.06110218027254217 -0.7245466901305982 -0.01346904300924688 -7.311995449678243 0.5941125721336201 -0.4137913843379075 -4 0.00012002693582795246295385 0.0100447565675466429165 +-0.71276554591539231787 0.0894943770131735733 0.042358444034962597358 +-0.96047232050779632014 -7.363179644470093107 -0.045627977257453471387 +3 0.000120026935827952453094 0.010044757472678654026 4.25875607065040958e-05 --0.6061796342297583 0.7761214554702035 -3.4750047790977e-05 --5.054824314301841 -3.891667468503358 0.00019720338148272726 -5 1.2739802010675942316241e-05 0.0072464490746299085006 +0.27645830888837641393 -0.97837771886398083865 4.5542715832163949185e-05 +5.9448497026859876977 1.6852493323830119935 -9.895818943662129852e-05 +4 1.2739802010675941456e-05 0.007246754169100752911 2.265740805092889601e-05 -0.2751944175855944 1.51937688993241 0.02508924593104206 --4.835983593209577 1.344855094041679 0.14681413000004515 -6 0.037692251088985682938581 0.3552852357486060849 +-1.4965217056830220077 0.729867855162097956 0.052005223740499352536 +-2.049353987860530548 -4.1577626275819368415 -0.03686191825212072444 +5 0.037692251088985676735 0.3552713962079929143 0.00046732617030490929307 -3.200135438345358 -3.953498213518368 -0.05517737289975112 -2.111393749129838 1.8660266890185446 -0.05498941067210089 -7 0.011285899820091272946487 0.43763064566943408597 +4.027841704615886087 -3.0231618001306270749 -0.077559557972985263 +1.6231826570873460391 2.3366237981055781438 -0.046019759896080974796 +6 0.011285899820091272997 0.43765160695836118215 0.00038925687730393611812 -5.607382165725712 -8.258649105608766 -0.07958445228024298 -1.5748468603228847 1.1414574661825514 -0.08250331331320372 -8 0.0017236589478267728883093 0.4690969274244374022 +6.2788354074558432316 -7.724005035333701308 -0.11559390097316769863 +1.4696075442034620881 1.282966226939726742 -0.08077393754283409384 +7 0.0017236589478267730203 0.4695227539643713788 0.00016953449859497231466 -15.28225422201768 12.53905314208462 -0.1514143582550325 --0.9198472198098231 1.0454390993472462 0.01574538863031621 -9 0.0020336100526728304385693 0.7807192056765467829 +14.869154031353570389 12.9936724365634095335 -0.1443982771709022006 +-0.95437109658589562686 1.0170745961532793757 0.016089151184688745742 +8 0.0020336100526728302319 0.78127049251990261927 0.000164587904124493665 -29.47483071169769 -5.147686530859088 -0.5733441819169969 -0.19191677740340274 1.1385110364087574 -0.027844325148353527 -10 2.9242167710294538257026e-07 0.05383468172776979939 -7.943294877391593783e-06 -14.14000920780611 -31.14141812522779 -0.7565722591093476 -1.073396108697069 0.23003123192799815 -0.33424529561177047 +29.55509611047864027 -4.6450138458072487424 -0.585533781429422695 +0.17223467348300621534 1.1421766618084267115 -0.027457548207218328868 diff --git a/examples/whm_swifter_comparison/pl.swiftest.in b/examples/whm_swifter_comparison/pl.swiftest.in index 7bdc4a619165c705f845ed6e32d16145b1630c7f..e144eae8fefeea04d75aebc32718c9ee298c1297 100644 GIT binary patch literal 1529 zcmXw($F;;Z3`O^AAV@{!L=bjLl!U8YRd&m1ESJs@}riaW1b9Rfe8vz*QnI86yun*THae&j$uKj$0i z{509-Z@11Aw8}X2y@AYOs56H>XGR3Lh4R~oiG}}~M27<3i}(YEbtI#QB8KPt+iwoX zaO72{wjBDSnj6-q9}Gw}UP0(T8SJxSUKvPQ!w1Otr-FX4iA!1%4~W44z0rok)sv~m zTCh<^gJe7L1Eu1?vGjU=hB*8=4#FRhmND-yzGFnJWewiNLxF{kLyw)5>5aZ7ZAkPS za|s;cwp0jZtm;DJV^P7w?N*?4S~0@9G{T5sC|0AOmEQR0=d8Mx4tkOvYw6hAmslLX zqW)#A`~-}%q>H>v<59u%uYG>F#l@q-`O$C&0tg3mVfGM6Tstt>bD2@KAuBsDwD{U~ z`wzO4Ah_*zihHS!+EYk{XEFen*cy#V9j=89C>Gds-UJ4?ja5PJOX=nuEMY9bM}ecs zl@SVbn$cr|u?7AyGLu$^UF?If0N}U{ug3bsbK@pTdwF9-kt literal 700 zcmd;JU|`?`Vi4c}Vih1}0%B$$W&vVWAZ7z%b|41HgVb^XF-V;U5O)h@89a&KWpC;5 zy6y7p2QxVx4&70o{xw(3VP28sg60W&4o4nj zHuhE8I`D)RdaifZaR8YG!Uwhm9^Bu3$$p_)U{{U)^ZoUI=dJv6^@Y9STMv~u{~z|- zZrodacme-`^wP`Ab6XS+l*%z2`zNgFa5ptT*?PLj0ozx3zl>Gv55UZe(0yeor_yV` zz2t7>imBcETiu@a2w5=g|6tF0`rn3`_D&bIGE5!T?BD8tp?hikmi>~Kb2fD+9^OCe z-PNa8BOdKxHrG8*XrSYC>ds&A^=ZfztTZkN(=wwJ}Odf*9ZH( z+7^-F=AZ0SZ6vO)EIbQ0kN<~Bewp1j`xVZ|ZueE++W*h;iz?4eP5bY875e8+9kQRn z^R{4;`kMVeU)H{OFSm97`_9)Y{qhs+e;k^?ZrMC%fAo_0M7NZyaQ_}>V&wc+bK7pw znaeXjgh<*;`$Y5IFO#=lFYUp%aQiE}$0w?U(|i`&Kff+;m0z~q{<-Ge%{{g;_DxqZ zL{F_qu)pigq" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "pldiff['dr'].plot.line(x=\"time (y)\")\n", + "print()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "tpdiff['dr'].plot.line(x=\"time (y)\")\n", + "print()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAEGCAYAAABLgMOSAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAYj0lEQVR4nO3df7RXdZ3v8ed7DhAlOKSA/DjgQcMA0RC4YGVGNnDBqQilrqSlVpdqtGWr8abTrBnHNWvKaprUanLRLytbch37IRZqCnrtYqQk4o+IIrQ8gklMJoIE5/C+f5yv3cOZA+fL/v7q9H0+1jqL7977sz/7/RH8vs5nf/d378hMJEk6XH/R6AIkSf2TASJJKsQAkSQVYoBIkgoxQCRJhQxodAH1NHz48Gxra2t0GZLUr/zkJz/5bWaO6Lm+qQKkra2NdevWNboMSepXIuJXva33FJYkqRADRJJUiAEiSSqkqT4DkaRG2LdvH+3t7ezZs6fRpRzS4MGDaW1tZeDAgWW1N0Akqcba29sZOnQobW1tRESjy+lVZrJjxw7a29uZMGFCWft4CkuSamzPnj0cffTRf7LhARARHH300Yc1SzJAJKkO/pTD40WHW6MBIkkqxACRpH7iNa95Ta/rL7jgAm6++eY6V2OASFK/cd999zW6hAN4FZYk9RNDhgzh+eefJzP54Ac/yOrVq5kwYQKNerKsMxBJ6me+853vsGnTJh555BG++MUvNmxmYoBIUj9z7733smTJElpaWhgzZgxnnHFGQ+owQCSpH/pTuCzYAJGkfub0009n+fLldHZ2sm3bNu6+++6G1OGH6JLUzyxatIjVq1dz0kknccIJJ/D617++IXUYIJLUTzz//PNA1+mrz33ucw2uxlNYkqSCDBBJUiEGiCSpEANEklSIASJJKsQAkSQVYoBIUpN497vfzciRI5k6dWpV+jNAJKlJXHDBBdx+++1V66+hARIR8yNiU0RsjojLe9keEXFtafvDETG9x/aWiFgfEd+rX9WS1D+dfvrpHHXUUVXrr2HfRI+IFuDzwFygHXggIlZk5k+7NVsATCz9zAa+UPrzRZcAG4Ej61K0JFXoylsf46dbn6tqn1PGHMkVbz6xqn2Wo5EzkFnA5szckpl7geXAwh5tFgJfzy5rgWERMRogIlqBvwa+VM+iJUldGnkvrLHAk92W2zlwdnGwNmOBbcDVwEeAoYc6SEQsBZYCjB8/vqKCJalSjZgp1EojZyC93cy+53MZe20TEW8CnsnMn/R1kMxclpkzM3PmiBEjitQpSepFIwOkHRjXbbkV2Fpmm9cCb4mIJ+g69XVGRNxQu1Ilqf9bsmQJr371q9m0aROtra18+ctfrqi/Rp7CegCYGBETgKeAc4B39GizArg4IpbTdXrr95m5Dfi70g8RMQe4NDPPq1PdktQv3XjjjVXtr2EBkpkdEXExcAfQAnwlMx+LiPeXtl8HrATOBDYDu4ELG1WvJOlADX2gVGaupCskuq+7rtvrBC7qo497gHtqUJ4k6RD8JrokqRADRJJUiAEiSSrEAJEkFWKASFITePLJJ3nDG97A5MmTOfHEE7nmmmsq7rOhV2FJkupjwIABfPrTn2b69Ons3LmTGTNmMHfuXKZMmVK4T2cgktQERo8ezfTpXU/EGDp0KJMnT+app56qqE9nIJJUT7ddDk8/Ut0+R50EC64qu/kTTzzB+vXrmT275/1rD48zEElqIs8//zxnn302V199NUceWdmjlJyBSFI9HcZModr27dvH2WefzbnnnstZZ51VcX/OQCSpCWQm73nPe5g8eTIf/vCHq9KnASJJTWDNmjV84xvfYPXq1UybNo1p06axcuXKvnc8BE9hSVITOO200+i6P231OAORJBVigEiSCjFAJEmFGCCSpEIMEElSIQaIJKkQA0SSmsCePXuYNWsWr3rVqzjxxBO54oorKu7T74FIUhN4yUtewurVqxkyZAj79u3jtNNOY8GCBZx66qmF+3QGIklNICIYMmQI0HVPrH379hERFfXpDESS6ugT93+Cn/3nz6ra56SjJnHZrMv6bNfZ2cmMGTPYvHkzF110kbdzlySVp6WlhYceeoj29nbuv/9+Hn300Yr6cwYiSXVUzkyh1oYNG8acOXO4/fbbmTp1auF+nIFIUhPYvn07zz77LAAvvPACd911F5MmTaqoT2cgktQEtm3bxvnnn09nZyf79+/n7W9/O29605sq6tMAkaQmcPLJJ7N+/fqq9ukpLElSIQaIJKmQhgZIRMyPiE0RsTkiLu9le0TEtaXtD0fE9NL6cRFxd0RsjIjHIuKS+lcvSc2tYQESES3A54EFwBRgSURM6dFsATCx9LMU+EJpfQfwt5k5GTgVuKiXfSVJNdTIGcgsYHNmbsnMvcByYGGPNguBr2eXtcCwiBidmdsy80GAzNwJbATG1rN4SWp2jQyQscCT3Zbb+a8h0GebiGgDTgF+XP0SJUkH08gA6e0uXnk4bSJiCPAt4EOZ+VyvB4lYGhHrImLd9u3bCxcrSX8OOjs7OeWUUyr+Dgg0NkDagXHdlluBreW2iYiBdIXHNzPz2wc7SGYuy8yZmTlzxIgRVSlckvqra665hsmTJ1elr0YGyAPAxIiYEBGDgHOAFT3arADeVboa61Tg95m5LbruQfxlYGNm/lt9y5ak/qm9vZ3vf//7vPe9761Kfw37JnpmdkTExcAdQAvwlcx8LCLeX9p+HbASOBPYDOwGLizt/lrgncAjEfFQad1HM3NlHYcgSYft6Y99jD9srO7t3F8yeRKjPvrRPtt96EMf4pOf/CQ7d+6synEbeiuT0hv+yh7rruv2OoGLetnv/9L75yOSpF5873vfY+TIkcyYMYN77rmnKn16LyxJqqNyZgq1sGbNGlasWMHKlSvZs2cPzz33HOeddx433HBD4T69lYkkNYGPf/zjtLe388QTT7B8+XLOOOOMisIDDBBJUkGewpKkJjNnzhzmzJlTcT/OQCRJhRggkqRCDBBJUiEGiCSpEANEklSIASJJKsTLeCWpSbS1tTF06FBaWloYMGAA69atq6g/A0SSmsjdd9/N8OHDq9KXp7AkSYU4A5GkOvrhTT/nt08+X9U+h48bwuvefkKf7SKCefPmERG8733vY+nSpRUd1wCRpCaxZs0axowZwzPPPMPcuXOZNGkSp59+euH+DBBJqqNyZgq1MmbMGABGjhzJokWLuP/++ysKED8DkaQmsGvXrj8+iXDXrl384Ac/YOrUqRX16QxEkprAb37zGxYtWgRAR0cH73jHO5g/f35FfRogktQEjjvuODZs2FDVPj2FJUkqxACRJBVigEiSCjFAJEmFGCCSpEIMEElSIQaIJDWJZ599lsWLFzNp0iQmT57Mj370o4r683sgktQkLrnkEubPn8/NN9/M3r172b17d0X9GSCS1ASee+457r33Xq6//noABg0axKBBgyrq0wCRpDq6+/plPPOrLVXtc+Sxx/GGCw59a/YtW7YwYsQILrzwQjZs2MCMGTO45pprOOKIIwof189AJKkJdHR08OCDD/KBD3yA9evXc8QRR3DVVVdV1KczEEmqo75mCrXS2tpKa2srs2fPBmDx4sUVB0hZM5CI2BARH42I4ys62n/td35EbIqIzRFxeS/bIyKuLW1/OCKml7uvJOn/GzVqFOPGjWPTpk0ArFq1iilTplTUZ7kzkLcA/wO4KSL2A/8buCkzf130wBHRAnwemAu0Aw9ExIrM/Gm3ZguAiaWf2cAXgNll7itJ6uazn/0s5557Lnv37uW4447jq1/9akX9lRUgmfkr4JPAJyNiIvAPwCeAlgqOPQvYnJlbACJiObAQ6B4CC4GvZ2YCayNiWESMBtrK2Ldqrv/bj/HCoIG16FpSE5jx5tfxTPvTDa1hYEswbdo01q1bV7U+y/4MJCLagLfTNRPpBD5S4bHHAk92W26na5bRV5uxZe4LQEQsBZYCjB8/vlCh+6OFFwZ0FtpXkjJgf2Rja9hf/eOXFSAR8WNgIHAT8LYXf/OvUPSyrucID9amnH27VmYuA5YBzJw5s9B/wXf/62VFdpMkADZu3MiosaMbXUbVHTJAIuLDpZe3Ai9+ZfGtEV3v35n5bxUcux0Y1225FdhaZptBZewrSaqhvq7CGlr6mQJ8ABhD1+mj95fWVeIBYGJETIiIQcA5wIoebVYA7ypdjXUq8PvM3FbmvpKkGjrkDCQzrwSIiB8A0zNzZ2n5n4D/qOTAmdkRERcDd9D1YfxXMvOxiHh/aft1wErgTGAzXTOgCw+1byX1SJIOT7kfoo8H9nZb3kvXlVAVycyVdIVE93XXdXudwEXl7itJqp9yb2XyDeD+iPiniLgC+DHwtdqVJUmqpk2bNjFt2rQ//hx55JFcffXVFfVZ7vdA/iUibgNeV1p1YWaur+jIkqS6eeUrX8lDDz0EQGdnJ2PHjmXRokUV9Vn290Ay80HgwYqOJklquFWrVnH88cdz7LHHVtSPN1OUpDp69tZfsnfrrqr2OWjMEQx7c/m3Kly+fDlLliyp+Ljezl2SmsjevXtZsWIFb3vb2yruyxmIJNXR4cwUauG2225j+vTpHHPMMRX35QxEkprIjTfeWJXTV2CASFLT2L17N3feeSdnnXVWVfrzFJYkNYmXvexl7Nixo2r9OQORJBVigEiSCjFAJEmFGCCSpEIMEElSIQaIJKkQA0SSmsRnPvMZTjzxRKZOncqSJUvYs2dPRf0ZIJLUBJ566imuvfZa1q1bx6OPPkpnZyfLly+vqE8DRJKaREdHBy+88AIdHR3s3r2bMWPGVNSf30SXpDq67bbbePrpp6va56hRo1iwYMEh24wdO5ZLL72U8ePH89KXvpR58+Yxb968io7rDESSmsDvfvc7brnlFh5//HG2bt3Krl27uOGGGyrq0xmIJNVRXzOFWrnrrruYMGECI0aMAOCss87ivvvu47zzzivcpzMQSWoC48ePZ+3atezevZvMZNWqVUyePLmiPg0QSWoCs2fPZvHixUyfPp2TTjqJ/fv3s3Tp0or69BSWJDWJK6+8kiuvvLJq/TkDkSQVYoBIkgoxQCSpDjKz0SX06XBrNEAkqcYGDx7Mjh07/qRDJDPZsWMHgwcPLnsfP0SXpBprbW2lvb2d7du3N7qUQxo8eDCtra1ltzdAJKnGBg4cyIQJExpdRtU15BRWRBwVEXdGxC9Kf778IO3mR8SmiNgcEZd3W/+piPhZRDwcEd+JiGF1K16SBDTuM5DLgVWZORFYVVo+QES0AJ8HFgBTgCURMaW0+U5gamaeDPwc+Lu6VC1J+qNGBchC4Gul118D3tpLm1nA5szckpl7geWl/cjMH2RmR6ndWqD8k3aSpKpoVIAck5nbAEp/juylzVjgyW7L7aV1Pb0buK3qFUqSDqlmH6JHxF3AqF42/X25XfSy7oBr4CLi74EO4JuHqGMpsBS6biYmSaqOmgVIZv7VwbZFxG8iYnRmbouI0cAzvTRrB8Z1W24Ftnbr43zgTcAb8xAXV2fmMmAZwMyZM/90L8KWpH6mUaewVgDnl16fD9zSS5sHgIkRMSEiBgHnlPYjIuYDlwFvyczddahXktRDowLkKmBuRPwCmFtaJiLGRMRKgNKH5BcDdwAbgZsy87HS/p8DhgJ3RsRDEXFdvQcgSc2uIV8kzMwdwBt7Wb8VOLPb8kpgZS/tXlHTAiVJffJeWJKkQgwQSVIhBogkqRADRJJUiAEiSSrEAJEkFWKASJIKMUAkSYUYIJKkQgwQSVIhBogkqRADRJJUiAEiSSrEAJEkFWKASJIKMUAkSYUYIJKkQgwQSVIhBogkqRADRJJUiAEiSSrEAJEkFWKASJIKMUAkSYUYIJKkQgwQSVIhBogkqRADRJJUiAEiSSrEAJEkFWKASJIKaUiARMRREXFnRPyi9OfLD9JufkRsiojNEXF5L9svjYiMiOG1r1qS1F2jZiCXA6sycyKwqrR8gIhoAT4PLACmAEsiYkq37eOAucCv61KxJOkAjQqQhcDXSq+/Bry1lzazgM2ZuSUz9wLLS/u96DPAR4CsYZ2SpINoVIAck5nbAEp/juylzVjgyW7L7aV1RMRbgKcyc0NfB4qIpRGxLiLWbd++vfLKJUkADKhVxxFxFzCql01/X24XvazLiHhZqY955XSSmcuAZQAzZ850tiJJVVKzAMnMvzrYtoj4TUSMzsxtETEaeKaXZu3AuG7LrcBW4HhgArAhIl5c/2BEzMrMp6s2AEnSITXqFNYK4PzS6/OBW3pp8wAwMSImRMQg4BxgRWY+kpkjM7MtM9voCprphock1VejAuQqYG5E/IKuK6muAoiIMRGxEiAzO4CLgTuAjcBNmflYg+qVJPVQs1NYh5KZO4A39rJ+K3Bmt+WVwMo++mqrdn2SpL75TXRJUiEGiCSpEANEklSIASJJKsQAkSQVYoBIkgoxQCRJhRggkqRCDBBJUiEGiCSpEANEklSIASJJKsQAkSQVYoBIkgoxQCRJhRggkqRCDBBJUiEGiCSpEANEklSIASJJKsQAkSQVYoBIkgoxQCRJhRggkqRCIjMbXUPdRMR24FcFdx8O/LaK5fQHjrk5OObmUMmYj83MET1XNlWAVCIi1mXmzEbXUU+OuTk45uZQizF7CkuSVIgBIkkqxAAp37JGF9AAjrk5OObmUPUx+xmIJKkQZyCSpEIMEElSIQZIDxExPyI2RcTmiLi8l+0REdeWtj8cEdMbUWc1lTHmc0tjfTgi7ouIVzWizmrqa8zd2v23iOiMiMX1rK/ayhlvRMyJiIci4rGI+D/1rrHayvh3/ZcRcWtEbCiN+cJG1FlNEfGViHgmIh49yPbqvn9lpj+lH6AF+CVwHDAI2ABM6dHmTOA2IIBTgR83uu46jPk1wMtLrxc0w5i7tVsNrAQWN7ruGv8dDwN+CowvLY9sdN11GPNHgU+UXo8A/hMY1OjaKxz36cB04NGDbK/q+5czkAPNAjZn5pbM3AssBxb2aLMQ+Hp2WQsMi4jR9S60ivocc2bel5m/Ky2uBVrrXGO1lfP3DPBB4FvAM/UsrgbKGe87gG9n5q8BMrMZxpzA0IgIYAhdAdJR3zKrKzPvpWscB1PV9y8D5EBjgSe7LbeX1h1um/7kcMfzHrp+g+nP+hxzRIwFFgHX1bGuWinn7/gE4OURcU9E/CQi3lW36mqjnDF/DpgMbAUeAS7JzP31Ka9hqvr+NaDicv68RC/rel7nXE6b/qTs8UTEG+gKkNNqWlHtlTPmq4HLMrOz6xfUfq2c8Q4AZgBvBF4K/Cgi1mbmz2tdXI2UM+b/DjwEnAEcD9wZET/MzOdqXFsjVfX9ywA5UDswrttyK12/nRxum/6krPFExMnAl4AFmbmjTrXVSjljngksL4XHcODMiOjIzO/WpcLqKvff9W8zcxewKyLuBV4F9NcAKWfMFwJXZdeHA5sj4nFgEnB/fUpsiKq+f3kK60APABMjYkJEDALOAVb0aLMCeFfpaoZTgd9n5rZ6F1pFfY45IsYD3wbe2Y9/I+2uzzFn5oTMbMvMNuBm4G/6aXhAef+ubwFeFxEDIuJlwGxgY53rrKZyxvxrumZcRMQxwCuBLXWtsv6q+v7lDKSbzOyIiIuBO+i6iuMrmflYRLy/tP06uq7IORPYDOym67eYfqvMMf8jcDTw76XfyDuyH9/JtMwx/9koZ7yZuTEibgceBvYDX8rMXi8F7Q/K/Dv+Z+D6iHiErlM7l2Vmv77Fe0TcCMwBhkdEO3AFMBBq8/7lrUwkSYV4CkuSVIgBIkkqxACRJBVigEiSCjFAJEmFGCBSQRExLCL+ptvymIi4uUbHemtE/GMfbf41Is6oxfGl3ngZr1RQRLQB38vMqXU41n3AWw71PYWIOBb4YmbOq3U9EjgDkSpxFXB86Rkan4qIthefwxARF0TEd0vPm3g8Ii6OiA9HxPqIWBsRR5XaHR8Rt5duYPjDiJjU8yARcQLwh8z8bUQMLfU3sLTtyIh4IiIGZuavgKMjYlQd/xuoiRkgUnGXA7/MzGmZ+b962T6VrtukzwL+BdidmacAPwJevNvtMuCDmTkDuBT49176eS3wIEBm7gTuAf66tO0c4FuZua+0/GCpvVRz3spEqp27S2/4OyPi98CtpfWPACdHxBC6Htb1H93u+PuSXvoZDWzvtvwl4CPAd+m6FcX/7LbtGWBMtQYgHYoBItXOH7q93t9teT9d/+/9BfBsZk7ro58XgL98cSEz15ROl70eaOlxz6rBpfZSzXkKSypuJzC06M6l5048HhFvgz8+r7q3581vBF7RY93XgRuBr/ZYfwLQb2+CqP7FAJEKKj0XZU1EPBoRnyrYzbnAeyJiA/AYvT9a917glDjwyVbfBF5OV4gAUPpg/RXAuoK1SIfFy3ilfiAirgFuzcy7SsuLgYWZ+c5ubRYB0zPzHxpUppqMn4FI/cPH6HrIExHxWWABXc916G4A8Ok616Um5gxEklSIn4FIkgoxQCRJhRggkqRCDBBJUiEGiCSpkP8HsPNLWtpay0EAAAAASUVORK5CYII=\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "pldiff['dv'].plot.line(x=\"time (y)\")\n", + "print()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "tpdiff['dv'].plot.line(x=\"time (y)\")\n", + "print()" + ] + }, + { + "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/examples/whm_swifter_comparison/tp.swifter.in b/examples/whm_swifter_comparison/tp.swifter.in index 4043c1929..a9fa06f46 100644 --- a/examples/whm_swifter_comparison/tp.swifter.in +++ b/examples/whm_swifter_comparison/tp.swifter.in @@ -1,13 +1,13 @@ 4 -100001 -2.894380502059049 0.2060633316227693 -0.5267473116107563 --0.36781773526648104 3.511709550412678 0.17870205470035164 -100002 -2.402157114026988 -2.063650689101573 1.221462187067896 -1.9929454155842872 1.7670860403833373 -1.3920313116840413 -100003 --1.76242073921186 -2.766072818539065 0.6998178789690445 -2.514640194836968 -1.5368452873925367 0.24681696899054972 -100004 --2.13688673996785 1.023684546777855 0.2293900047351895 --1.3918193851434775 -3.7994616097035703 0.2829665907639622 +101 +2.3071617894844269614 1.6438449758645010679 -0.37312906258436789875 +-2.256588666826445461 2.8302735208962828827 0.50519430783805206563 +102 +3.011471099377928784 -1.1061264985150089935 0.5067865823770466571 +0.69505215270382913404 2.5183263418638507098 -1.8031340524448678953 +103 +-0.51350730399144917104 -3.139963346661017951 0.7339670445581878422 +3.0598116277417892524 -0.1107568728194456082 -0.09922455469700767241 +104 +-2.070517783632789044 -0.7764919020604850175 0.27514297675486260042 +1.7817875607764876778 -3.94088558602991294 -0.09896621676031464546 diff --git a/examples/whm_swifter_comparison/tp.swiftest.in b/examples/whm_swifter_comparison/tp.swiftest.in index 01954c3d71e48c09ad4c42e2426e7f0f5f111c6b..a9fa06f462e4b0ecb3c2ae57b64a7afb245e1e51 100644 GIT binary patch literal 559 zcmW-f$&p1d2m|kq;w3OH#3CU7#76!{+n}Y(d0;qx!x}`-=43jT$PbqpI&Rl6%V6yN z{_I8ve2rd{K`l+!`Sa_=njtyP%u3?(J7L~YZnO098Sl?-Sz%MI6JvU0F%-p5Tm!OU zyV1QqJ^B6N${bSNDU?ZTqkb~7m#J&klB~wD%ay#Nye-BTk(NqQm~cj77*p1^^OVQp zO_XQmyf*cc#8J^gXf7;vAr4S1g^3GYFhYhDzTSeebi`6AvTE>R`>##y0QByBcwIIR zAz)pc_7R3G+W5OxYj+7Gx6PXE35Cf=SAh#HU<{X%jNV4KpkPf1E!7JBxOf-RR|2I@ oPP6ob+oKHfwYN2TZ4rpOX){Vqa~1Xd35(8>4mJfS^#PLSA0*dq00000 literal 280 zcmd;JU|?VYVi4c}VgVpt*v81P2#6O0@e&{gi75bat-+UX8`RkyB+sa*%`<0qFb_B_ z_Q2@Rex?X(;Rp%F10XdZJZ-;Bvq!=ydy&cqUeQeq2i9NHKlw_5?Z9SVSsv!Z5B4B6 zAbj%2WL??Y5B6`6)p;-7{n?(s;Z@m-lxOyF-}SC6i#ZEdxBuO@)Znh``}f6U?Us7{ z-`>J;!`k1nEDrlbg3_P3eA^E*Pi>lm?r(7(2jN9r%zs?}*jJxz6@5MJ$NmFr9w_*v r^1-}T);(V{?A9DS+|HhFoXEsegZ~x!T=efMhC9u5!YW`%^ diff --git a/examples/whm_swifter_comparison/whm_swiftest_vs_swifter.ipynb b/examples/whm_swifter_comparison/whm_swiftest_vs_swifter.ipynb deleted file mode 100644 index 997defb80..000000000 --- a/examples/whm_swifter_comparison/whm_swiftest_vs_swifter.ipynb +++ /dev/null @@ -1,363 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import pandas as pd\n", - "import swiftestio as swio\n", - "from astroquery.jplhorizons import Horizons" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reading Swifter file param.swifter.in\n" - ] - } - ], - "source": [ - "inparfile = 'param.swifter.in'\n", - "param = swio.read_swifter_param(inparfile)\n", - "swifterdat = swio.swifter2xr(param)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reading Swiftest file param.swiftest.in\n" - ] - } - ], - "source": [ - "param_file_name = 'param.swiftest.in'\n", - "config = swio.read_swiftest_config(param_file_name)\n", - "swiftestdat = swio.swiftest2xr(config)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "swiftdiff = swiftestdat - swifterdat" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "swiftdiff = swiftdiff.rename({'time' : 'time (y)'})" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "swiftdiff['dr'] = np.sqrt(swiftdiff['px']**2 + swiftdiff['py']**2 + swiftdiff['pz']**2)\n", - "swiftdiff['dv'] = np.sqrt(swiftdiff['vx']**2 + swiftdiff['vy']**2 + swiftdiff['vz']**2)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ]" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAEGCAYAAABLgMOSAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAAfVUlEQVR4nO3de5QU5bnv8e8jA6KCQQRkLuBwlWFAEQhgtlsJbDigRoKiAS+gIYfESKKJJrB1ubNZMZHE5ESMFw5qEkSXk8SooBkxCHrkgARRQEFCGBFlYAQcQe4OMzznj244w6SBnuruKob+fdbqNV1Vb1U976D9m7eq+21zd0REROrrlKgLEBGRhkkBIiIigShAREQkEAWIiIgEogAREZFAcqIuIEytWrXywsLCqMsQEWlQ3n777U/dvXXd9VkVIIWFhSxbtizqMkREGhQz+yjRel3CEhGRQBQgIiISiAJEREQCyap7ICKSvQ4cOEB5eTn79++PupQTVtOmTSkoKKBx48ZJtVeAiEhWKC8vp3nz5hQWFmJmUZdzwnF3KisrKS8vp0OHDknto0tYIpIV9u/fz9lnn63wOAoz4+yzz67XCE0BIiJZQ+FxbPX9/ShAREQkEAWIiEhIvvKVryRcf9NNN/Hss8+GXE3qFCAiIiFZvHhx1CWkld6FJSISkmbNmrF7927cne9973ssWLCADh060FC/GVYjEBGRkD3//POsXbuW9957j8cee6zBjkwUICIiIXvjjTcYM2YMjRo1Ii8vj0GDBkVdUiAKEBGRCJwMbylWgIiIhOySSy6hpKSEmpoaKioqeO2116IuKRDdRBcRCdnIkSNZsGABPXv2pGvXrlx66aVRlxSIAkREJCS7d+8GYpevHnrooYirSZ0uYYmISCAKEBERCUQBIiIigShAREQkEAWIiIgEogAREZFAFCAiIiHYuHEjX/3qVykqKqK4uJhp06ZFXVLK9DkQEZEQ5OTk8Otf/5revXuza9cu+vTpw5AhQ+jevXvUpQUW6QjEzIaZ2VozKzOzyQm2m5k9GN/+rpn1rrO9kZktN7OXwqtaRKT+cnNz6d079hLWvHlzioqK2LRpU8RVpSayEYiZNQIeBoYA5cBbZjbH3d+v1Ww40CX+6A88Gv95yG3AGuDMUIoWkZPClBdX8/7mnWk9Zve8M/nJ14qTarthwwaWL19O//79j9/4BBblCKQfUObu6929CigBRtRpMwJ40mOWAC3MLBfAzAqAy4HHwyxaRCQVu3fv5uqrr+aBBx7gzDMb9t++Ud4DyQc21lou58jRxdHa5AMVwAPAj4HmxzqJmU0AJgC0b98+pYJF5OSQ7Egh3Q4cOMDVV1/N9ddfz1VXXRVJDekU5Qgk0WT4db/XMWEbM7sC2Orubx/vJO4+w937unvf1q1bB6lTRCRl7s748eMpKirihz/8YdTlpEWUAVIOtKu1XABsTrLNvwFXmtkGYpe+BpnZU5krVUQkNYsWLWLWrFksWLCAXr160atXL0pLS6MuKyVRXsJ6C+hiZh2ATcBo4Lo6beYAE82shNjlrc/dvQL4z/gDMxsI3OnuN4RUt4hIvV188cW4173I0rBFFiDuXm1mE4FXgEbA79x9tZl9J759OlAKXAaUAXuBm6OqV0REjhTpBwndvZRYSNReN73WcwduPc4xXgdez0B5IiJyDJrKREREAlGAiIhIIAoQEREJRAEiIiKBKEBEREKwf/9++vXrxwUXXEBxcTE/+clPoi4pZZrOXUQkBKeeeioLFiygWbNmHDhwgIsvvpjhw4czYMCAqEsLTCMQEZEQmBnNmjUDYnNiHThwALNEszU1HBqBiEj2eXkyfPJeeo/ZticMn3rMJjU1NfTp04eysjJuvfVWTecuIiLJadSoEStWrKC8vJylS5eyatWqqEtKiUYgIpJ9jjNSyLQWLVowcOBA5s6dS48ePSKtJRUagYiIhGDbtm3s2LEDgH379vHqq6/SrVu3aItKkUYgIiIhqKioYNy4cdTU1HDw4EGuvfZarrjiiqjLSokCREQkBOeffz7Lly+Puoy00iUsEREJRAEiIiKBKEBERCQQBYiIiASiABERkUAUICIiEogCREQkRDU1NVx44YUN/jMgoAAREQnVtGnTKCoqirqMtFCAiIiEpLy8nL/+9a9861vfirqUtNAn0UUk6/xi6S/4x2f/SOsxu7XsxqR+k47Z5vbbb+eXv/wlu3btSuu5o6IRiIhICF566SXatGlDnz59oi4lbTQCEZGsc7yRQiYsWrSIOXPmUFpayv79+9m5cyc33HADTz31VOi1pItGICIiIbjvvvsoLy9nw4YNlJSUMGjQoAYdHqAAERGRgHQJS0QkZAMHDmTgwIFRl5EyjUBERCQQBYiIiAQSaYCY2TAzW2tmZWY2OcF2M7MH49vfNbPe8fXtzOw1M1tjZqvN7LbwqxcRyW6RBYiZNQIeBoYD3YExZta9TrPhQJf4YwLwaHx9NXCHuxcBA4BbE+wrIiIZFOUIpB9Q5u7r3b0KKAFG1GkzAnjSY5YALcws190r3P0dAHffBawB8sMsXkQk20UZIPnAxlrL5fxrCBy3jZkVAhcCf09/iSIicjRRvo3XEqzz+rQxs2bAX4Db3X1nwpOYTSB2+Yv27dsHq1REJA0KCwtp3rw5jRo1Iicnh2XLlkVdUkqiDJByoF2t5QJgc7JtzKwxsfB42t2fO9pJ3H0GMAOgb9++dQNKRCRUr732Gq1atYq6jLSI8hLWW0AXM+tgZk2A0cCcOm3mAGPj78YaAHzu7hVmZsATwBp3/1/hli0iIhDhCMTdq81sIvAK0Aj4nbuvNrPvxLdPB0qBy4AyYC9wc3z3fwNuBN4zsxXxdXe5e2mIXRCRBuqTn/+cL9akdzr3U4u60fauu47ZxswYOnQoZsa3v/1tJkyYkNYawhbpVCbxF/zSOuum13ruwK0J9vu/JL4/IiJywlq0aBF5eXls3bqVIUOG0K1bNy655JKoywpMc2GJSNY53kghU/Ly8gBo06YNI0eOZOnSpQ06QDSViYhICPbs2XP4mwj37NnD3/72N3r06BFxVanRCEREJARbtmxh5MiRAFRXV3PdddcxbNiwiKtKjQJERCQEHTt2ZOXKlVGXkVa6hCUiIoEoQEREJBAFiIiIBKIAERGRQBQgIiISiAJEREQCUYCIiIRkx44djBo1im7dulFUVMSbb74ZdUkp0edARERCcttttzFs2DCeffZZqqqq2Lt3b9QlpUQBIiISgp07d/LGG2/whz/8AYAmTZrQpEmTaItKkQJERLLOwj/9k0837k7rMVu1a8a/X9v1qNvXr19P69atufnmm1m5ciV9+vRh2rRpnHHGGWmtI0y6ByIiEoLq6mreeecdbrnlFpYvX84ZZ5zB1KlToy4rJRqBiEjWOdZIIVMKCgooKCigf//+AIwaNarBB4hGICIiIWjbti3t2rVj7dq1AMyfP5/u3btHXFVqNAIREQnJb3/7W66//nqqqqro2LEjv//976MuKSUKEBGRkPTq1Ytly5ZFXUba6BKWiIgEogAREZFAFCAiIhKIAkRERAJRgIiISCAKEBERCUQBIiISgrVr19KrV6/DjzPPPJMHHngg6rJSos+BiIiE4LzzzmPFihUA1NTUkJ+fz8iRI6MtKkUagYiIhGz+/Pl06tSJc889N+pSUqIRiIhkndf+MIOtH61P6zHbnNuRr940Iam2JSUljBkzJq3nj4JGICIiIaqqqmLOnDlcc801UZeSMo1ARCTrJDtSyISXX36Z3r17c84550RWQ7ocdwRiZo3M7AeZOLmZDTOztWZWZmaTE2w3M3swvv1dM+ud7L4iIieiZ5555qS4fAVJBIi71wAj0n1iM2sEPAwMB7oDY8ys7uT4w4Eu8ccE4NF67CsickLZu3cv8+bN46qrroq6lLRI9hLWIjN7CPgjsOfQSnd/J4Vz9wPK3H09gJmVEAuq92u1GQE86e4OLDGzFmaWCxQmsW/a3Prbr7EjpyIThxaRkHynzy9Zv9WjLoO31iyk8otNVG7dFOp5m/oZ5J2T3nd9JRsgX4n/nBL/aYADg1I4dz6wsdZyOdA/iTb5Se4bK9RsArHRC+3btw9UaLXtY3vO/kD7isiJ4SBOjUUfIFE56AfTfsxjBoiZ/TD+9CVigWG1Nqf6L2EJ1tU95tHaJLNvbKX7DGAGQN++fQPV/L8nvhpkNxE5gaxZs4YurYuiLuOkcrwRSPP4z/OALwOzib14fw14I8VzlwPtai0XAJuTbNMkiX1FRCSDjhkg7j4FwMz+BvR2913x5f8G/pziud8CuphZB2ATMBq4rk6bOcDE+D2O/sDn7l5hZtuS2FdERDIo2Xsg7YGqWstVxG5kB+bu1WY2EXgFaAT8zt1Xm9l34tunA6XAZUAZsBe4+Vj7plKPiIjUT7IBMgtYambPE7vXMBKYmerJ3b2UWEjUXje91nMHbk12XxERCU9SU5m4+8+I/fW/HdgB3Ozu92WwLhGRk85vfvMbiouL6dGjB2PGjGH//ob97s6k58Jy93fcfVr8sTyTRYmInGw2bdrEgw8+yLJly1i1ahU1NTWUlJREXVZKNJmiiEhIqqur2bdvH9XV1ezdu5e8vLyoS0qJJlMUkayz48UPqNq85/gN66FJ3hm0+Fqno27Pz8/nzjvvpH379px22mkMHTqUoUOHprWGsGkEIiISgu3btzN79mw+/PBDNm/ezJ49e3jqqaeiLislGoGISNY51kghU1599VU6dOhA69atAbjqqqtYvHgxN9xwQ+i1pItGICIiIWjfvj1Llixh7969uDvz58+nqKhhT62iABERCUH//v0ZNWoUvXv3pmfPnhw8eJAJE6L7Yqt00CUsEZGQTJkyhSlTphy/YQOhEYiIiASiABERkUAUICIiEogCREREAlGAiIhIIAoQEREJRAEiIhKSadOm0aNHD4qLi3nggQeiLidlChARkRCsWrWKxx57jKVLl7Jy5Upeeukl1q1bF3VZKVGAiIiEYM2aNQwYMIDTTz+dnJwcLr30Up5//vmoy0qJPokuIlnn5Zdf5pNPPknrMdu2bcvw4cOPur1Hjx7cfffdVFZWctppp1FaWkrfvn3TWkPYFCAiIiEoKipi0qRJDBkyhGbNmnHBBReQk9OwX4IbdvUiIgEca6SQSePHj2f8+PEA3HXXXRQUFERSR7ooQEREQrJ161batGnDxx9/zHPPPcebb74ZdUkpUYCIiITk6quvprKyksaNG/Pwww9z1llnRV1SShQgIiIhWbhwYdQlpJXexisiIoEoQEREJBAFiIiIBKIAERGRQBQgIiISiAJEREQCiSRAzKylmc0zs3XxnwnfDG1mw8xsrZmVmdnkWuvvN7N/mNm7Zva8mbUIrXgRkYC++c1v0qZNG3r06HF43WeffcaQIUPo0qULQ4YMYfv27RFWWD9RjUAmA/PdvQswP758BDNrBDwMDAe6A2PMrHt88zygh7ufD/wT+M9QqhYRScFNN93E3Llzj1g3depUBg8ezLp16xg8eDBTp06NqLr6iypARgAz489nAl9P0KYfUObu6929CiiJ74e7/83dq+PtlgANe0IZEckKl1xyCS1btjxi3ezZsxk3bhwA48aN44UXXoigsmCi+iT6Oe5eAeDuFWbWJkGbfGBjreVyoH+Cdt8E/pj+EkXkZPXPf/6UXbvXpPWYzZsV0bXrPfXeb8uWLeTm5gKQm5vL1q1b01pXJmUsQMzsVaBtgk13J3uIBOu8zjnuBqqBp49RxwRgAkD79u2TPLWIiBxPxgLE3f/jaNvMbIuZ5cZHH7lAosgtB9rVWi4ANtc6xjjgCmCwuztH4e4zgBkAffv2PWo7EckeQUYKmXLOOedQUVFBbm4uFRUVtGmT6ILMiSmqeyBzgHHx5+OA2QnavAV0MbMOZtYEGB3fDzMbBkwCrnT3vSHUKyKSEVdeeSUzZ8ZuCc+cOZMRI0ZEXFHyogqQqcAQM1sHDIkvY2Z5ZlYKEL9JPhF4BVgD/MndV8f3fwhoDswzsxVmNj3sDoiI1NeYMWO46KKLWLt2LQUFBTzxxBNMnjyZefPm0aVLF+bNm8fkyf/yptQTViQ30d29EhicYP1m4LJay6VAaYJ2nTNaoIhIBjzzzDMJ18+fPz/kStJDn0QXEZFAFCAiIhKIAkRERAJRgIiISCAKEBERCUQBIiIigShARERCUt/p3O+77z46d+7MeeedxyuvvHJ4/dtvv03Pnj3p3Lkz3//+9zk0GccXX3zBN77xDTp37kz//v3ZsGHD4X2GDRtGixYtuOKKK9LWHwWIiEhI6jOd+/vvv09JSQmrV69m7ty5fPe736WmpgaAW265hRkzZrBu3TrWrVt3+JhPPPEEZ511FmVlZfzgBz9g0qRJh8/zox/9iFmzZqW1PwoQEZGQ1Gc699mzZzN69GhOPfVUOnToQOfOnVm6dCkVFRXs3LmTiy66CDNj7NixR+xz6FijRo1i/vz5h0cngwcPpnnz5mntT1TTuYuIROaedeWs2r0vrcfs0ew0ftql/l9NdLTp3Ddt2sSAAQMOtysoKGDTpk00btyYgoKCf1l/aJ927WJz0Obk5PClL32JyspKWrVqFbhfx6IRiIjICSjRJONmdtT1x9onUzQCEZGsE2SkkClHm869oKCAjRv//3fqlZeXk5eXR0FBAeXl5f+yvvY+BQUFVFdX8/nnn//LJbN00ghERCRCR5vO/corr6SkpIQvvviCDz/8kHXr1tGvXz9yc3Np3rw5S5Yswd158sknj9jn0LGeffZZBg0alNERCO6eNY8+ffq4iGSn999/P+oSfPTo0d62bVvPycnx/Px8f/zxx/3TTz/1QYMGeefOnX3QoEFeWVl5uP29997rHTt29K5du3ppaenh9W+99ZYXFxd7x44d/dZbb/WDBw+6u/u+fft81KhR3qlTJ//yl7/sH3zwweF9Lr74Ym/VqpU3bdrU8/Pzfe7cuQlrTPR7ApZ5gtdU86N/md9Jp2/fvr5s2bKoyxCRCKxZs4aioqKoyzjhJfo9mdnb7t63bltdwhIRkUAUICIiEogCREREAlGAiIhIIAoQEREJRAEiIiKBKEBEREIS1XTuK1as4KKLLqK4uJjzzz+fP/7xj2npjwJERCQkUU3nfvrpp/Pkk08ePtbtt9/Ojh07Uu6PAkREJCRRTefetWtXunTpAkBeXh5t2rRh27ZtKfdHkymKSNaZ8uJq3t+8M63H7J53Jj/5WnG99wt7OvelS5dSVVVFp06d6t/JOhQgIiInoETTTKU6nXtFRQU33ngjM2fO5JRTUr8ApQARkawTZKSQKWFN575z504uv/xy7r333iNGNqnQPRARkQiFMZ17VVUVI0eOZOzYsVxzzTXpKz7RFL0n60PTuYtkr2yezn3WrFmek5PjF1xwweHH8uXLE9ao6dyPQtO5i2QvTeeeHE3nLiIiGRdJgJhZSzObZ2br4j/POkq7YWa21szKzGxygu13mpmbWatE+4uISOZENQKZDMx39y7A/PjyEcysEfAwMBzoDowxs+61trcDhgAfh1KxiIgcIaoAGQHMjD+fCXw9QZt+QJm7r3f3KqAkvt8hvwF+DGTPTRwRkRNIVAFyjrtXAMR/tknQJh/YWGu5PL4OM7sS2OTuK493IjObYGbLzGxZOj66LyIiMRn7IKGZvQq0TbDp7mQPkWCdm9np8WMMTeYg7j4DmAGxd2EleW4RETmOjI1A3P0/3L1HgsdsYIuZ5QLEf25NcIhyoF2t5QJgM9AJ6ACsNLMN8fXvmFmisBIROWFENZ37Rx99RJ8+fejVqxfFxcVMnz49Lf2J6hLWHGBc/Pk4YHaCNm8BXcysg5k1AUYDc9z9PXdv4+6F7l5ILGh6u/snYRQuIhJUVNO55+bmsnjxYlasWMHf//53pk6dyubNm1PuT1QBMhUYYmbriL2TaiqAmeWZWSmAu1cDE4FXgDXAn9x9dUT1ioikLKrp3Js0acKpp54KxEYpBw8eTEt/IplM0d0rgcEJ1m8GLqu1XAqUHudYhemuT0ROci9Phk/eS+8x2/aE4VPrvVtY07lv3LiRyy+/nLKyMu6///7DEzCmQp9EFxE5ASWaZiqV6dzbtWvHu+++S1lZGTNnzmTLli0p16jp3EUk+wQYKWRKWNO5H5KXl0dxcTELFy5k1KhRKdWuEYiISITCmM69vLycffv2AbB9+3YWLVrEeeedl3LtGoGIiIRkzJgxvP7663z66acUFBQwZcoUJk+ezLXXXssTTzxB+/bt+fOf/wxAcXEx1157Ld27dycnJ4eHH36YRo0aAfDoo49y0003sW/fPoYPH87w4cMBGD9+PDfeeCOdO3emZcuWlJSUALEZdu+4447Dl8DuvPNOevbsmXJ/NJ27iGQFTeeeHE3nLiIiGacAERGRQBQgIiISiAJEREQCUYCIiEggChAREQlEASIiEpKopnM/ZOfOneTn5zNx4sS09EcBIiISkqimcz/knnvu4dJLL01bfxQgIiIhiWo6d4iNWrZs2cLQoUl9mWtSNJWJiGSdXyz9Bf/47B9pPWa3lt2Y1G/S8RvWEcZ07i1btuSOO+5g1qxZzJ8/P3Af69IIRETkBJTO6dwfeeQRLrvsssPhki4agYhI1gkyUsiUMKZzf/PNN1m4cCGPPPIIu3fvpqqqimbNmh2+3xKURiAiIhEKYzr3p59+mo8//pgNGzbwq1/9irFjx6YcHqARiIhIaKKazj1TNJ27iGQFTeeeHE3nLiIiGacAERGRQBQgIpI1sumSfRD1/f0oQEQkKzRt2pTKykqFyFG4O5WVlTRt2jTpfbLqJrqZbQM+Crh7K+DTNJbTEKjP2SEr+ty6deucn/3sZ4WFhYWnufspp5xyysGoawrTwYMHj9lnd2fDhg377r777g3btm2rrrP5XHdvXXefrAqQVJjZskTvQjiZqc/ZQX3ODpnosy5hiYhIIAoQEREJRAGSvBlRFxAB9Tk7qM/ZIe191j0QEREJRCMQEREJRAEiIiKBKEDqMLNhZrbWzMrMbHKC7WZmD8a3v2tmvaOoM52S6PP18b6+a2aLzeyCKOpMp+P1uVa7L5tZjZmNCrO+dEumv2Y20MxWmNlqM/s/YdeYbkn8d/0lM3vRzFbG+3xzFHWmk5n9zsy2mtmqo2xP7+uXu+sRfwCNgA+AjkATYCXQvU6by4CXAQMGAH+Puu4Q+vwV4Kz48+HZ0Oda7RYApcCoqOvO8L9xC+B9oH18uU3UdYfQ57uAX8SftwY+A5pEXXuK/b4E6A2sOsr2tL5+aQRypH5Ambuvd/cqoAQYUafNCOBJj1kCtDCz3LALTaPj9tndF7v79vjiEqCAhi2Zf2eA7wF/AbaGWVwGJNPf64Dn3P1jAHfPhj470Nxi3wfbjFiA1P0EdoPi7m8Q68fRpPX1SwFypHxgY63l8vi6+rZpSOrbn/HE/oJpyI7bZzPLB0YC00OsK1OS+TfuCpxlZq+b2dtmNja06jIjmT4/BBQBm4H3gNvc/WSf3iStr1/6RsIjWYJ1dd/nnEybhiTp/pjZV4kFyMUZrSjzkunzA8Akd6+J/YHaoCXT3xygDzAYOA1408yWuPs/M11chiTT5/8BrAAGAZ2AeWa20N13Zri2KKX19UsBcqRyoF2t5QJif53Ut01DklR/zOx84HFguLtXhlRbpiTT575ASTw8WgGXmVm1u78QSoXplex/15+6+x5gj5m9AVwANNQASabPNwNTPXZzoMzMPgS6AUvDKTESaX390iWsI70FdDGzDmbWBBgNzKnTZg4wNv5uhgHA5+5eEXahaXTcPptZe+A54MYG/Bdpbcfts7t3cPdCdy8EngW+20DDA5L773o28O9mlmNmpwP9gTUh15lOyfT5Y2IjLszsHOA8YH2oVYYvra9fGoHU4u7VZjYReIXYuzh+5+6rzew78e3Tib0j5zKgDNhL7K+YBivJPv8XcDbwSPwv8mpvwDOZJtnnk0Yy/XX3NWY2F3gXOAg87u4J3wraECT5b/xT4A9m9h6xSzuT3L1BT2tvZs8AA4FWZlYO/ARoDJl5/dJUJiIiEoguYYmISCAKEBERCUQBIiIigShAREQkEAWIiIgEogARCcjMWpjZd2st55nZsxk619fN7L+O0+ZXZjYoE+cXSURv4xUJyMwKgZfcvUcI51oMXHmszymY2bnAY+4+NNP1iIBGICKpmAp0in+Hxv1mVnjoexjM7CYzeyH+fRMfmtlEM/uhmS03syVm1jLerpOZzY1PYLjQzLrVPYmZdQW+cPdPzax5/HiN49vONLMNZtbY3T8CzjaztiH+DiSLKUBEgpsMfODuvdz9Rwm29yA2TXo/4GfAXne/EHgTODTb7Qzge+7eB7gTeCTBcf4NeAfA3XcBrwOXx7eNBv7i7gfiy+/E24tknKYyEcmc1+Iv+LvM7HPgxfj694DzzawZsS/r+nOtGX9PTXCcXGBbreXHgR8DLxCbiuJ/1tq2FchLVwdEjkUBIpI5X9R6frDW8kFi/++dAuxw917HOc4+4EuHFtx9Ufxy2aVAozpzVjWNtxfJOF3CEgluF9A86M7x75340MyugcPfV53o++bXAJ3rrHsSeAb4fZ31XYEGOwmiNCwKEJGA4t+LssjMVpnZ/QEPcz0w3sxWAqtJ/NW6bwAX2pHfbPU0cBaxEAEgfmO9M7AsYC0i9aK38Yo0AGY2DXjR3V+NL48CRrj7jbXajAR6u/s9EZUpWUb3QEQahp8T+5InzOy3wHBi3+tQWw7w65DrkiymEYiIiASieyAiIhKIAkRERAJRgIiISCAKEBERCUQBIiIigfw/hLGPYHYEDhoAAAAASUVORK5CYII=\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "swiftdiff['dr'].plot.line(x=\"time (y)\")" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "swiftdiff['dv'].sel(id=2).plot.line(x=\"time (y)\")" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ]" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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INOAIWa2ERgSW8bMcsysBCD2Ivkk4GVgPfBnd18b2/8hoBmwwMxWm9mMsDsgIlJXY8aM4aKLLmLDhg3k5eXxxBNPMGXKFBYsWEDnzp1ZsGABU6b825tST1qRvIju7hXA4DjrtwGX1VguAUritOuU1gJFRNLgmWeeibt+4cKFIVeSGvokuoiIBKIAERGRQBQgIiISiAJEREQCUYCIiEggChAREQlEASIiEpK6Tud+77330qlTJ84//3xefvnlI+vffPNNevToQadOnfjRj37E4ck4vvzyS7797W/TqVMn+vfvz+bNm4/sM2zYMJo3b84VV1yRsv4oQEREQlKX6dzXrVtHcXExa9euZf78+fzwhz/k4MGDANx4443MnDmTjRs3snHjxiPHfOKJJzj77LMpLS3lxz/+MZMnTz5ynp/+9KfMnj07pf1RgIiIhKQu07nPnTuX0aNHc/rpp9O+fXs6derEihUrKC8vZ9euXVx00UWYGWPHjj1qn8PHGjlyJAsXLjwyOhk8eDDNmjVLaX+ims5dRCQyd20s493d+1J6zO5Nm/DzznW/NdGxpnPfunUrAwYMONIuLy+PrVu30rBhQ/Ly8v5t/eF92ratnoM2KyuLr3zlK1RUVNCyZcvA/ToejUBERE5C8SYZN7Njrj/ePumiEYiIZJwgI4V0OdZ07nl5eWzZ8v/vqVdWVkZOTg55eXmUlZX92/qa++Tl5VFVVcXnn3/+b5fMUkkjEBGRCB1rOvcrr7yS4uJivvzyS95//302btxIv379yM7OplmzZixfvhx358knnzxqn8PHmjNnDoMGDUrrCAR3z5hHnz59XEQy07p166IuwUePHu1t2rTxrKwsz83N9ccff9w/+eQTHzRokHfq1MkHDRrkFRUVR9rfc8893qFDB+/SpYuXlJQcWf/GG294YWGhd+jQwW+66SY/dOiQu7vv27fPR44c6R07dvSvfvWr/t577x3Z5+KLL/aWLVt648aNPTc31+fPnx+3xng/J2Clx3lONT/2zfxOOX379vWVK1dGXYaIRGD9+vUUFBREXcZJL97PyczedPe+tdvqEpaIiASiABERkUAUICIiEogCREREAlGAiIhIIAoQEREJRAEiIhKSqKZzX716NRdddBGFhYVccMEF/OlPf0pJfxQgIiIhiWo69zPOOIMnn3zyyLFuvfVWdu7cmXR/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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "swiftdiff['pz'].plot.line(x=\"time (y)\")" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ]" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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bw/AZZddxpIlS7j66qtDryVVNAIREQlBfn4+S5cuZffu3bg7CxYsoLCwaU+togAREQnBwIEDGT16NH379qV3797s37+fiROje7BVKugSlohISKZNm8a0adOiLiNlNAIREZFAFCAiIhKIAkRERAJRgIiISCAKEBERCUQBIiIigShARERCMmPGDIqLiykqKuKee+6JupykKUBEREKwevVqHnroIZYtW8aqVat47rnnWL9+fdRlJUUBIiISgrVr1zJo0CBOPvlksrKyuPDCC3n66aejLisp+ia6iGSc559/ng8++CClx+zYsSMlJSWH3V5cXMztt99OVVUVJ510EmVlZfTv3z+lNYRNASIiEoLCwkKmTJnCsGHDaNWqFeeccw5ZWU37LbhpVy8iEsCRRgrpNGHCBCZMmADAbbfdRl5eXiR1pIoCREQkJNu2baNDhw68//77PPXUU7z66qtRl5QUBYiISEguv/xyqqqqaN68Offddx+nnXZa1CUlRQEiIhKSRYsWRV1CSuljvCIiEogCREREAlGAiIhIIAoQEREJRAEiIiKBKEBERCSQSALEzNqa2XwzWx/7M+6Hoc1shJmtM7NyM5tab/3dZvYvM3vTzJ42szahFS8iEtC3v/1tOnToQHFx8cF1H3/8McOGDaN79+4MGzaMTz75JMIKGyeqEchUYIG7dwcWxJYPYWbNgPuAEqAXMNbMesU2zweK3f1s4N/AT0KpWkQkCddeey3z5s07ZN306dMZOnQo69evZ+jQoUyfPj2i6hovqgAZCcyK/TwL+EacNgOAcnff4O7VQGlsP9z9H+5eE2u3FGjaE8qISEa44IILaNu27SHr5syZw/jx4wEYP348zzzzTASVBRPVN9HPcPdKAHevNLMOcdrkApvqLVcAA+O0+zbw59SXKCLHq3//+2d8tnNtSo/ZulUhPXr8tNH7bd26lezsbACys7PZtm1bSutKp7QFiJm9CHSMs+n2RA8RZ503OMftQA3w+BHqmAhMBMjPz0/w1CIicjRpCxB3/8/DbTOzrWaWHRt9ZAPxIrcC6FRvOQ/YUu8Y44FLgKHu7hyGu88EZgL079//sO1EJHMEGSmkyxlnnEFlZSXZ2dlUVlbSoUO8CzLHpqjugcwFxsd+Hg/MidPmNaC7mXU2sxbAmNh+mNkIYApwqbvvDqFeEZG0uPTSS5k1q+6W8KxZsxg5cmTEFSUuqgCZDgwzs/XAsNgyZpZjZmUAsZvkk4EXgLXAX9x9TWz/3wOtgflmttLMHgy7AyIijTV27FjOO+881q1bR15eHo888ghTp05l/vz5dO/enfnz5zN16hc+lHrMiuQmurtXAUPjrN8CXFRvuQwoi9OuW1oLFBFJgyeeeCLu+gULFoRcSWrom+giIhKIAkRERAJRgIiISCAKEBERCUQBIiIigShAREQkEAWIiEhIGjud+1133UW3bt0466yzeOGFFw6uf/311+nduzfdunXj+9//Pgcm4/j888/55je/Sbdu3Rg4cCAbN248uM+IESNo06YNl1xyScr6owAREQlJY6Zzf/vttyktLWXNmjXMmzePG2+8kdraWgBuuOEGZs6cyfr161m/fv3BYz7yyCOcdtpplJeX84Mf/IApU6YcPM+PfvQjZs+endL+KEBERELSmOnc58yZw5gxYzjxxBPp3Lkz3bp1Y9myZVRWVrJjxw7OO+88zIxx48Ydss+BY40ePZoFCxYcHJ0MHTqU1q1bp7Q/UU3nLiISmZ+ur2D1zj0pPWZxq5P4WffGP5rocNO5b968mUGDBh1sl5eXx+bNm2nevDl5eXlfWH9gn06d6uagzcrK4ktf+hJVVVW0a9cucL+ORCMQEZFjULxJxs3ssOuPtE+6aAQiIhknyEghXQ43nXteXh6bNv3/Z+pVVFSQk5NDXl4eFRUVX1hff5+8vDxqamr49NNPv3DJLJU0AhERidDhpnO/9NJLKS0t5fPPP+fdd99l/fr1DBgwgOzsbFq3bs3SpUtxdx599NFD9jlwrCeffJIhQ4akdQSCu2fMq1+/fi4imentt9+OugQfM2aMd+zY0bOysjw3N9cffvhh/+ijj3zIkCHerVs3HzJkiFdVVR1sf+edd3qXLl28R48eXlZWdnD9a6+95kVFRd6lSxefNGmS79+/393d9+zZ46NHj/auXbv6l7/8ZX/nnXcO7nP++ed7u3btvGXLlp6bm+vz5s2LW2O8vydgucd5TzU//MP8jjv9+/f35cuXR12GiERg7dq1FBYWRl3GMS/e35OZve7u/Ru21SUsEREJRAEiIiKBKEBERCQQBYiIiASiABERkUAUICIiEogCREQkJFFN575y5UrOO+88ioqKOPvss/nzn/+ckv4oQEREQhLVdO4nn3wyjz766MFj3XzzzWzfvj3p/ihARERCEtV07j169KB79+4A5OTk0KFDBz788MOk+6PJFEUk40x7dg1vb9mR0mP2yjmVO75e1Oj9wp7OfdmyZVRXV9O1a9fGd7IBBYiIyDEo3jRTyU7nXllZyTXXXMOsWbM44YTkL0ApQEQk4wQZKaRLWNO579ixg4svvpg777zzkJFNMnQPREQkQmFM515dXc2oUaMYN24cV1xxReqKjzdF7/H60nTuIpkrk6dznz17tmdlZfk555xz8LVixYq4NWo698PQdO4imUvTuSdG07mLiEjaRRIgZtbWzOab2frYn6cdpt0IM1tnZuVmNjXO9lvNzM2sXbz9RUQkfaIagUwFFrh7d2BBbPkQZtYMuA8oAXoBY82sV73tnYBhwPuhVCwiIoeIKkBGArNiP88CvhGnzQCg3N03uHs1UBrb74DfAj8GMucmjojIMSSqADnD3SsBYn92iNMmF9hUb7kitg4zuxTY7O6rjnYiM5toZsvNbHkqvrovIiJ10vZFQjN7EegYZ9PtiR4izjo3s5NjxxieyEHcfSYwE+o+hZXguUVE5CjSNgJx9/909+I4rznAVjPLBoj9uS3OISqATvWW84AtQFegM7DKzDbG1r9hZvHCSkTkmBHVdO7vvfce/fr1o0+fPhQVFfHggw+mpD9RXcKaC4yP/TwemBOnzWtAdzPrbGYtgDHAXHd/y907uHuBuxdQFzR93f2DMAoXEQkqquncs7OzWbJkCStXruSf//wn06dPZ8uWLUn3J6oAmQ4MM7P11H2SajqAmeWYWRmAu9cAk4EXgLXAX9x9TUT1iogkLarp3Fu0aMGJJ54I1I1S9u/fn5L+RDKZortXAUPjrN8CXFRvuQwoO8qxClJdn4gc556fCh+8ldpjduwNJdMbvVtY07lv2rSJiy++mPLycu6+++6DEzAmQ99EFxE5BsWbZiqZ6dw7derEm2++SXl5ObNmzWLr1q1J16jp3EUk8wQYKaRLWNO5H5CTk0NRURGLFi1i9OjRSdWuEYiISITCmM69oqKCPXv2APDJJ5+wePFizjrrrKRr1whERCQkY8eO5eWXX+ajjz4iLy+PadOmMXXqVK688koeeeQR8vPz+etf/wpAUVERV155Jb169SIrK4v77ruPZs2aAfDAAw9w7bXXsmfPHkpKSigpKQFgwoQJXHPNNXTr1o22bdtSWloK1M2we8sttxy8BHbrrbfSu3fvpPuj6dxFJCNoOvfEaDp3ERFJOwWIiIgEogAREZFAFCAiIhKIAkRERAJRgIiISCAKEBGRkEQ1nfsBO3bsIDc3l8mTJ6ekPwoQEZGQRDWd+wE//elPufDCC1PWHwWIiEhIoprOHepGLVu3bmX48IQe5poQTWUiIhnnl8t+yb8+/ldKj9mzbU+mDJhy9IYNhDGde9u2bbnllluYPXs2CxYsCNzHhjQCERE5BqVyOvf777+fiy666GC4pIpGICKScYKMFNIljOncX331VRYtWsT999/Pzp07qa6uplWrVgfvtwSlEYiISITCmM798ccf5/3332fjxo38+te/Zty4cUmHB2gEIiISmqimc08XTecuIhlB07knRtO5i4hI2ilAREQkEAWIiGSMTLpkH0Rj/34UICKSEVq2bElVVZVC5DDcnaqqKlq2bJnwPhl1E93MPgTeC7h7O+CjFJbTFKjPmSEj+ty+ffusn//85wUFBQUnufsJJ5xwwv6oawrT/v37j9hnd2fjxo17br/99o0ffvhhTYPNZ7p7+4b7ZFSAJMPMlsf7FMLxTH3ODOpzZkhHn3UJS0REAlGAiIhIIAqQxM2MuoAIqM+ZQX3ODCnvs+6BiIhIIBqBiIhIIAoQEREJRAHSgJmNMLN1ZlZuZlPjbDczuze2/U0z6xtFnamUQJ+vivX1TTNbYmbnRFFnKh2tz/XafdnMas1sdJj1pVoi/TWzwWa20szWmNn/hF1jqiXw3/WXzOxZM1sV6/N1UdSZSmb2BzPbZmarD7M9te9f7q5X7AU0A94BugAtgFVArwZtLgKeBwwYBPwz6rpD6PNXgNNiP5dkQp/rtVsIlAGjo647zf/GbYC3gfzYcoeo6w6hz7cBv4z93B74GGgRde1J9vsCoC+w+jDbU/r+pRHIoQYA5e6+wd2rgVJgZIM2I4FHvc5SoI2ZZYddaAodtc/uvsTdP4ktLgXyaNoS+XcG+B7wN2BbmMWlQSL9/RbwlLu/D+DumdBnB1pb3fNgW1EXIA2/gd2kuPsr1PXjcFL6/qUAOVQusKneckVsXWPbNCWN7c8E6n6DacqO2mczywVGAQ+GWFe6JPJv3AM4zcxeNrPXzWxcaNWlRyJ9/j1QCGwB3gJucvfjfXqTlL5/6YmEh7I46xp+zjmRNk1Jwv0xs69RFyDnp7Wi9Eukz/cAU9y9tu4X1CYtkf5mAf2AocBJwKtmttTd/53u4tIkkT7/L2AlMAToCsw3s0XuviPNtUUppe9fCpBDVQCd6i3nUffbSWPbNCUJ9cfMzgYeBkrcvSqk2tIlkT73B0pj4dEOuMjMatz9mVAqTK1E/7v+yN13AbvM7BXgHKCpBkgifb4OmO51NwfKzexdoCewLJwSI5HS9y9dwjrUa0B3M+tsZi2AMcDcBm3mAuNin2YYBHzq7pVhF5pCR+2zmeUDTwHXNOHfSOs7ap/dvbO7F7h7AfAkcGMTDQ9I7L/rOcB/mFmWmZ0MDATWhlxnKiXS5/epG3FhZmcAZwEbQq0yfCl9/9IIpB53rzGzycAL1H2K4w/uvsbMro9tf5C6T+RcBJQDu6n7LabJSrDP/w2cDtwf+428xpvwTKYJ9vm4kUh/3X2tmc0D3gT2Aw+7e9yPgjYFCf4b/wz4k5m9Rd2lnSnu3qSntTezJ4DBQDszqwDuAJpDet6/NJWJiIgEoktYIiISiAJEREQCUYCIiEggChAREQlEASIiIoEoQEQCMrM2ZnZjveUcM3syTef6hpn991Ha/NrMhqTj/CLx6GO8IgGZWQHwnLsXh3CuJcClR/qegpmdCTzk7sPTXY8IaAQikozpQNfYMzTuNrOCA89hMLNrzeyZ2PMm3jWzyWb2QzNbYWZLzaxtrF1XM5sXm8BwkZn1bHgSM+sBfO7uH5lZ69jxmse2nWpmG82subu/B5xuZh1D/DuQDKYAEQluKvCOu/dx9x/F2V5M3TTpA4CfA7vd/VzgVeDAbLczge+5ez/gVuD+OMf5KvAGgLt/BrwMXBzbNgb4m7vviy2/EWsvknaaykQkfV6KveF/ZmafAs/G1r8FnG1mrah7WNdf6834e2Kc42QDH9Zbfhj4MfAMdVNR/Fe9bduAnFR1QORIFCAi6fN5vZ/311veT93/eycA2929z1GOswf40oEFd18cu1x2IdCswZxVLWPtRdJOl7BEgvsMaB1059hzJ941syvg4POq4z1vfi3QrcG6R4EngD82WN8DaLKTIErTogARCSj2XJTFZrbazO4OeJirgAlmtgpYQ/xH674CnGuHPtnqceA06kIEgNiN9W7A8oC1iDSKPsYr0gSY2QzgWXd/MbY8Ghjp7tfUazMK6OvuP42oTMkwugci0jT8grqHPGFmvwNKqHuuQ31ZwG9CrksymEYgIiISiO6BiIhIIAoQEREJRAEiIiKBKEBERCQQBYiIiATy/wCOFJSakoouPQAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "swiftdiff['vx'].plot.line(x=\"time (y)\")" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ]" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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RxoppMsrr7xCp06daNu2LQCXXXYZixcv5uqrrw69llTRCEREJAQdO3ZkyZIl7N69G3entLSUgoLGPbWKAkREJAQDBw5k9OjR9O3bl969e7N//34mTozuwVapoEtYIiIhueuuu7jrrruiLiNlNAIREZFAFCAiIhKIAkRERAJRgIiISCAKEBERCUQBIiIigShARERCMn36dHr16kVhYSH33Xdf1OUkTQEiIhKCVatW8cgjj7B06VJWrlzJiy++yLp166IuKykKEBGREKxZs4ZBgwZx8sknk5WVxYUXXshzzz0XdVlJ0TfRRSTjvPTSS3z88ccpPWb79u0pKio67PZevXpxxx13UFlZyUknnURJSQn9+/dPaQ1hU4CIiISgoKCAKVOmMGzYMFq0aME555xDVlbjfgtu3NWLiARwpJFCOk2YMIEJEyYAcPvtt5OXlxdJHamiABERCcnWrVtp164dH330Ec8++yxvvPFG1CUlRQEiIhKSyy+/nMrKSpo2bcqDDz7IaaedFnVJSVGAiIiEZOHChVGXkFL6GK+IiASiABERkUAUICIiEogCREREAlGAiIhIIAoQEREJJJIAMbPWZjbfzNbF/oz7YWgzG2Fma82szMym1ll/r5n9w8zeMbPnzKxVaMWLiAR0/fXX065dO3r16nVw3WeffcawYcPo1q0bw4YN4/PPP4+wwoaJagQyFSh1925AaWz5EGbWBHgQKAJ6AmPNrGds83ygl7ufDfwT+M9QqhYRScK1117LvHnzDlk3bdo0hg4dyrp16xg6dCjTpk2LqLqGiypARgKzYj/PAr4Vp80AoMzd17t7FVAc2w93/5u7V8faLQEa94QyIpIRLrjgAlq3bn3Iujlz5jB+/HgAxo8fz/PPPx9BZcFE9U30M9y9AsDdK8ysXZw2ucDGOsvlwMA47a4H/pj6EkXkePXPf/6MHTvXpPSYLVsU0L37Txu835YtW8jOzgYgOzubrVu3prSudEpbgJjZK0D7OJvuSPQQcdZ5vXPcAVQDTx2hjonARICOHTsmeGoRETmatAWIu//74baZ2RYzy46NPrKBeJFbDnSos5wHbK5zjPHAJcBQd3cOw91nAjMB+vfvf9h2IpI5gowU0uWMM86goqKC7OxsKioqaNcu3gWZY1NU90DmAuNjP48H5sRp8ybQzcw6mVkzYExsP8xsBDAFuNTdd4dQr4hIWlx66aXMmlV7S3jWrFmMHDky4ooSF1WATAOGmdk6YFhsGTPLMbMSgNhN8snAy8Aa4E/uvjq2/++AlsB8M1thZjPC7oCISEONHTuW8847j7Vr15KXl8djjz3G1KlTmT9/Pt26dWP+/PlMnfovH0o9ZkVyE93dK4GhcdZvBi6qs1wClMRp1zWtBYqIpMHTTz8dd31paWnIlaSGvokuIiKBKEBERCQQBYiIiASiABERkUAUICIiEogCREREAlGAiIiEpKHTud9zzz107dqVs846i5dffvng+rfeeovevXvTtWtXfvCDH3BgMo4vv/ySb3/723Tt2pWBAweyYcOGg/uMGDGCVq1acckll6SsPwoQEZGQNGQ69/fee4/i4mJWr17NvHnzuOmmm6ipqQHgxhtvZObMmaxbt45169YdPOZjjz3GaaedRllZGT/84Q+ZMmXKwfP8+Mc/Zvbs2SntjwJERCQkDZnOfc6cOYwZM4YTTzyRTp060bVrV5YuXUpFRQXbt2/nvPPOw8wYN27cIfscONbo0aMpLS09ODoZOnQoLVu2TGl/oprOXUQkMj9dV86qnXtSesxeLU7iZ90a/miiw03nvmnTJgYNGnSwXV5eHps2baJp06bk5eX9y/oD+3ToUDsHbVZWFl/5yleorKykTZs2gft1JBqBiIgcg+JNMm5mh11/pH3SRSMQEck4QUYK6XK46dzz8vLYuPH/P1OvvLycnJwc8vLyKC8v/5f1dffJy8ujurqaL7744l8umaWSRiAiIhE63HTul156KcXFxXz55Zd88MEHrFu3jgEDBpCdnU3Lli1ZsmQJ7s4TTzxxyD4HjvXMM88wZMiQtI5AcPeMefXr189FJDO99957UZfgY8aM8fbt23tWVpbn5ub6o48+6p9++qkPGTLEu3bt6kOGDPHKysqD7e+++27v3Lmzd+/e3UtKSg6uf/PNN72wsNA7d+7skyZN8v3797u7+549e3z06NHepUsX/+pXv+rvv//+wX3OP/98b9OmjTdv3txzc3N93rx5cWuM9/cELPM476nmh3+Y33Gnf//+vmzZsqjLEJEIrFmzhoKCgqjLOObF+3sys7fcvX/9trqEJSIigShAREQkEAWIiIgEogAREZFAFCAiIhKIAkRERAJRgIiIhCSq6dxXrFjBeeedR2FhIWeffTZ//OMfU9If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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "swiftdiff['vy'].plot.line(x=\"time (y)\")" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - " ]" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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EYiISAgKCgpYunQpu3fvxt1ZsGABRUVNe2oVBYiISAgGDhzI6NGj6du3L71792b//v1MnBjdg61SQZewRERCcuedd3LnnXdGXUbKaAQiIiKBKEBERCQQBYiIiASiABERkUAUICIiEogCREREAlGAiIiEZNq0afTq1Yvi4mLuvffeqMtJmgJERCQEq1ev5qGHHmLZsmWsWrWK5557jvXr10ddVlIUICIiIVi7di2DBg3i5JNPJisri4suuoinn3466rKSom+ii0jGef755/nggw9SeswOHTpQUlJy2O29evXi9ttvp6qqipNOOomysjL69++f0hrCpgAREQlBUVERkydPZtiwYbRq1Ypzzz2XrKym/RbctKsXEQngSCOFdJowYQITJkwA4LbbbiM/Pz+SOlJFASIiEpJt27aRnZ3N+++/z1NPPcWrr74adUlJUYCIiITkiiuuoKqqiubNm3P//fdz+umnR11SUhQgIiIhWbRoUdQlpJQ+xisiIoEoQEREJBAFiIiIBKIAERGRQBQgIiISiAJEREQCiSRAzKytmc03s/WxP+N+GNrMRpjZOjMrN7Mp9dbfY2b/MLM3zexpM2sTWvEiIgF9/etfJzs7m169eh1c9/HHHzNs2DC6devGsGHD+OSTTyKssHGiGoFMARa4ezdgQWz5EGbWDLgfKAF6AmPNrGds83ygl7ufA/wT+O9QqhYRScJ1113HvHnzDlk3depUhg4dyvr16xk6dChTp06NqLrGiypARgIzYz/PBL4Sp80AoNzdN7h7NVAa2w93/6u718TaLQWa9oQyIpIRLrzwQtq2bXvIujlz5jB+/HgAxo8fzzPPPBNBZcFE9U30M929EsDdK80sO06bPGBTveUKYGCcdl8H/pD6EkXkePXPf/6Ez3auTekxW7cqonv3HzV6v61bt5KTkwNATk4O27ZtS2ld6ZS2ADGzF4EOcTbdnugh4qzzBue4HagBnjhCHROBiQAFBQUJnlpERI4mbQHi7v9xuG1mttXMcmKjjxwgXuRWAB3rLecDW+odYzxwKTDU3Z3DcPcZwAyA/v37H7adiGSOICOFdDnzzDOprKwkJyeHyspKsrPjXZA5NkV1D2QuMD7283hgTpw2rwHdzKyTmbUAxsT2w8xGAJOBy9x9dwj1ioikxWWXXcbMmXW3hGfOnMnIkSMjrihxUQXIVGCY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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "swiftdiff['vz'].plot.line(x=\"time (y)\")" - ] - }, - { - "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 -} From 95de996aaf98b66f06e695302387ef26b08158c8 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 8 Jul 2021 13:58:01 -0400 Subject: [PATCH 25/28] Cleaned up examples and initialized a variable in the oblateness calc to 0 --- .../1pl_1tp_encounter/init_cond.py | 5 +++-- .../1pl_1tp_encounter/param.swifter.in | 4 ++-- .../1pl_1tp_encounter/param.swiftest.in | 4 ++-- .../1pl_1tp_encounter/pl.swifter.in | 4 ++-- .../1pl_1tp_encounter/pl.swiftest.in | Bin 160 -> 160 bytes .../1pl_1tp_encounter/swiftest_vs_swifter.ipynb | 12 ++++++------ src/obl/obl.f90 | 1 + 7 files changed, 16 insertions(+), 14 deletions(-) mode change 100644 => 100755 examples/rmvs_swifter_comparison/1pl_1tp_encounter/init_cond.py diff --git a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/init_cond.py b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/init_cond.py old mode 100644 new mode 100755 index 5b5f5e76e..4c4ecb7da --- a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/init_cond.py +++ b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/init_cond.py @@ -1,3 +1,4 @@ +#!/usr/bin/env python3 """ For testing RMVS, the code generates clones of test particles based on one that is fated to impact Mercury. To use the script, modify the variables just after the "if __name__ == '__main__':" line @@ -5,7 +6,7 @@ import numpy as np from astroquery.jplhorizons import Horizons import astropy.constants as const -import swiftestio as swio +import swiftest.io as swio from scipy.io import FortranFile import sys @@ -140,7 +141,7 @@ print(f'BIN_OUT {swifter_bin}') print(f'OUT_TYPE REAL8') print(f'OUT_FORM XV') -print(f'OUT_STAT NEW') +print(f'OUT_STAT UNKNOWN') print(f'J2 {J2}') print(f'J4 {J4}') print(f'CHK_CLOSE yes') diff --git a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/param.swifter.in b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/param.swifter.in index 40cedba41..9174b181a 100644 --- a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/param.swifter.in +++ b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/param.swifter.in @@ -1,7 +1,7 @@ ! Swifter input file generated using init_cond.py T0 0 -TSTOP 0.2 -DT 0.00034223134839151266 +TSTOP 1.0 +DT 0.0006844626967830253 PL_IN pl.swifter.in TP_IN tp.swifter.in IN_TYPE ASCII diff --git a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/param.swiftest.in b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/param.swiftest.in index 914af3324..d43b46d64 100644 --- a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/param.swiftest.in +++ b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/param.swiftest.in @@ -1,7 +1,7 @@ ! Swiftest input file generated using init_cond.py T0 0 -TSTOP 0.2 -DT 0.00034223134839151266 +TSTOP 1.0 +DT 0.0006844626967830253 CB_IN cb.swiftest.in PL_IN pl.swiftest.in TP_IN tp.swiftest.in diff --git a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/pl.swifter.in b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/pl.swifter.in index 6f91ef4c9..a964c7824 100644 --- a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/pl.swifter.in +++ b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/pl.swifter.in @@ -1,8 +1,8 @@ 2 ! Planet input file generated using init_cond.py -1 39.47692640889762629 +1 39.476926408897625193 0.0 0.0 0.0 0.0 0.0 0.0 -2 0.00012002693582795246295385 0.010044724833237895015 +2 0.00012002693582795244940133 0.0100447248332378922085 4.25875607065041e-05 1.0 0.0 0.0 0.0 6.283185307179586 0.0 diff --git a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/pl.swiftest.in b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/pl.swiftest.in index d3786c3df574e6b225dbd22bfec2c4995b86dd25..6f4bc1337f56833a126ada00c5685c950d805447 100644 GIT binary patch delta 35 lcmZ3$xPWm&i;R>{G~fL)d3z291_lroGM`Y$7{UhT0|1?g2Jrv@ delta 35 lcmZ3$xPWm&i;T2SG~fL)d3z291_lroGM`Y$7{UhT0|1?+2J!#^ 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 f2566d9e7..ccd070dad 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 @@ -23,7 +23,7 @@ "Reading Swifter file param.swifter.in\n", "Reading in time 1.355e-01\n", "Creating Dataset\n", - "Successfully converted 397 output frames.\n", + "Successfully converted 199 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.002e-01\n", + "Reading in time 1.001e+00\n", "Creating Dataset\n", - "Successfully converted 586 output frames.\n", + "Successfully converted 1463 output frames.\n", "Swiftest simulation data stored as xarray DataSet .ds\n" ] } @@ -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": [ "
    " ] diff --git a/src/obl/obl.f90 b/src/obl/obl.f90 index ec34110ee..8792f2399 100644 --- a/src/obl/obl.f90 +++ b/src/obl/obl.f90 @@ -18,6 +18,7 @@ module subroutine obl_acc_body(self, system) real(DP) :: r2, irh, rinv2, t0, t1, t2, t3, fac1, fac2 associate(n => self%nbody, cb => system%cb) + self%aobl(:,:) = 0.0_DP do i = 1, n r2 = dot_product(self%xh(:, i), self%xh(:, i)) irh = 1.0_DP / sqrt(r2) From 04dcf54acaa99f68f8107dc21dad374ecbcc13cf Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 8 Jul 2021 15:15:47 -0400 Subject: [PATCH 26/28] Fixed issue in which central body mass was not being passed to the oblateness acceleration calculator for test particles in close encounter --- .../1pl_1tp_encounter/swiftest_vs_swifter.ipynb | 6 +++--- .../swiftest_rmvs_vs_swifter_rmvs.ipynb | 8 ++++---- src/rmvs/rmvs_getacch.f90 | 6 +++++- 3 files changed, 12 insertions(+), 8 deletions(-) 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 ccd070dad..c6d739ace 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, @@ -91,7 +91,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] diff --git a/examples/rmvs_swifter_comparison/9pl_18tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb b/examples/rmvs_swifter_comparison/9pl_18tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb index 5e13697d5..f57828160 100644 --- a/examples/rmvs_swifter_comparison/9pl_18tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb +++ b/examples/rmvs_swifter_comparison/9pl_18tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb @@ -482,7 +482,7 @@ " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])\n", "Coordinates:\n", " id int64 4\n", - " * time (d) (time (d)) float64 0.0 1.0 2.0 3.0 4.0 ... 363.0 364.0 365.0 366.0
    • id
      ()
      int64
      4
      array(4)
    • time (d)
      (time (d))
      float64
      0.0 1.0 2.0 ... 364.0 365.0 366.0
      array([  0.,   1.,   2., ..., 364., 365., 366.])
  • " ], "text/plain": [ "\n", @@ -609,7 +609,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] @@ -644,7 +644,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] diff --git a/src/rmvs/rmvs_getacch.f90 b/src/rmvs/rmvs_getacch.f90 index b750e1ced..0ede99ab5 100644 --- a/src/rmvs/rmvs_getacch.f90 +++ b/src/rmvs/rmvs_getacch.f90 @@ -19,6 +19,7 @@ module subroutine rmvs_getacch_tp(self, system, param, t, lbeg) ! Internals type(swiftest_parameters) :: param_planetocen real(DP), dimension(:, :), allocatable :: xh_original + real(DP) :: GMcb_original integer(I4B) :: i real(DP), dimension(:, :), allocatable :: xhp @@ -60,12 +61,15 @@ module subroutine rmvs_getacch_tp(self, system, param, t, lbeg) tp%xheliocentric(:,i) = tp%xh(:,i) + cb%inner(inner_index )%x(:,1) end do end if - ! Swap the planetocentric and heliocentric position vectors + ! Swap the planetocentric and heliocentric position vectors and central body masses tp%xh(:,:) = tp%xheliocentric(:,:) + GMcb_original = cb%Gmass + cb%Gmass = tp%cb_heliocentric%Gmass if (param%loblatecb) call tp%accel_obl(system_planetocen) if (param%lextra_force) call tp%accel_user(system_planetocen, param, t) if (param%lgr) call tp%accel_gr(param) tp%xh(:,:) = xh_original(:,:) + cb%Gmass = GMcb_original end associate end select end select From 6b40580d0d5b508f6d80fa42da2124f613a25390 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 8 Jul 2021 16:19:07 -0400 Subject: [PATCH 27/28] Refactored pte and ptb to ptbeg and ptend for consistency. Changed some of the helio interfaces for consistency --- .../swiftest_vs_swifter.ipynb | 505 +++++++++++++++++- src/helio/helio_drift.f90 | 42 +- src/helio/helio_getacch.f90 | 14 +- src/helio/helio_setup.f90 | 53 -- src/helio/helio_step.f90 | 32 +- src/modules/helio_classes.f90 | 50 +- src/modules/symba.f90 | 4 +- src/symba/symba_step_helio.f90 | 6 +- src/symba/symba_step_helio_pl.f90 | 4 +- src/symba/symba_step_interp.f90 | 14 +- src/symba/symba_step_interp_eucl.f90 | 14 +- src/whm/whm_getacch.f90 | 4 +- src/whm/whm_step.f90 | 1 - 13 files changed, 591 insertions(+), 152 deletions(-) delete mode 100644 src/helio/helio_setup.f90 diff --git a/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb b/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb index 5538aa1c6..bdc6cdd03 100644 --- a/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb +++ b/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb @@ -137,7 +137,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] @@ -197,7 +197,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] @@ -213,6 +213,507 @@ "print()" ] }, + { + "cell_type": "code", + "execution_count": 12, + "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: 4, time (y): 1462)\n",
    +       "Coordinates:\n",
    +       "  * id        (id) int64 101 102 103 104\n",
    +       "  * time (y)  (time (y)) float64 0.0 0.0006845 0.001369 ... 0.9986 0.9993 1.0\n",
    +       "Data variables:\n",
    +       "    Mass      (time (y), id) float64 nan nan nan nan nan ... nan nan nan nan nan\n",
    +       "    Radius    (time (y), id) float64 nan nan nan nan nan ... nan nan nan nan nan\n",
    +       "    px        (time (y), id) float64 0.0 0.0 0.0 0.0 ... 1.001 -0.6538 -2.995\n",
    +       "    py        (time (y), id) float64 0.0 0.0 0.0 0.0 ... -2.233 -4.116 -5.31\n",
    +       "    pz        (time (y), id) float64 0.0 0.0 0.0 0.0 ... -0.08684 0.4693 0.3703\n",
    +       "    vx        (time (y), id) float64 0.0 0.0 0.0 0.0 ... 2.549 0.02329 -3.212\n",
    +       "    vy        (time (y), id) float64 0.0 0.0 0.0 0.0 ... -3.791 -8.402 -11.27\n",
    +       "    vz        (time (y), id) float64 0.0 0.0 0.0 0.0 ... -0.768 0.8964 0.4534\n",
    +       "    dr        (time (y), id) float64 0.0 0.0 0.0 0.0 ... 2.448 4.194 6.107\n",
    +       "    dv        (time (y), id) float64 0.0 0.0 0.0 0.0 ... 4.632 8.449 11.73
    " + ], + "text/plain": [ + "\n", + "Dimensions: (id: 4, time (y): 1462)\n", + "Coordinates:\n", + " * id (id) int64 101 102 103 104\n", + " * time (y) (time (y)) float64 0.0 0.0006845 0.001369 ... 0.9986 0.9993 1.0\n", + "Data variables:\n", + " Mass (time (y), id) float64 nan nan nan nan nan ... nan nan nan nan nan\n", + " Radius (time (y), id) float64 nan nan nan nan nan ... nan nan nan nan nan\n", + " px (time (y), id) float64 0.0 0.0 0.0 0.0 ... 1.001 -0.6538 -2.995\n", + " py (time (y), id) float64 0.0 0.0 0.0 0.0 ... -2.233 -4.116 -5.31\n", + " pz (time (y), id) float64 0.0 0.0 0.0 0.0 ... -0.08684 0.4693 0.3703\n", + " vx (time (y), id) float64 0.0 0.0 0.0 0.0 ... 2.549 0.02329 -3.212\n", + " vy (time (y), id) float64 0.0 0.0 0.0 0.0 ... -3.791 -8.402 -11.27\n", + " vz (time (y), id) float64 0.0 0.0 0.0 0.0 ... -0.768 0.8964 0.4534\n", + " dr (time (y), id) float64 0.0 0.0 0.0 0.0 ... 2.448 4.194 6.107\n", + " dv (time (y), id) float64 0.0 0.0 0.0 0.0 ... 4.632 8.449 11.73" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tpdiff" + ] + }, { "cell_type": "code", "execution_count": null, diff --git a/src/helio/helio_drift.f90 b/src/helio/helio_drift.f90 index aa0e44fd6..43de2a042 100644 --- a/src/helio/helio_drift.f90 +++ b/src/helio/helio_drift.f90 @@ -20,7 +20,7 @@ module subroutine helio_drift_pl(self, system, param, dt) integer(I4B) :: i !! Loop counter real(DP) :: rmag, vmag2, energy integer(I4B), dimension(:),allocatable :: iflag !! Vectorized error code flag - real(DP), dimension(:), allocatable :: dtp, mu + real(DP), dimension(:), allocatable :: dtp, mu associate(pl => self, npl => self%nbody, cb => system%cb) if (npl == 0) return @@ -58,7 +58,7 @@ module subroutine helio_drift_pl(self, system, param, dt) return end subroutine helio_drift_pl - module subroutine helio_drift_linear_pl(self, system, dt, pt) + module subroutine helio_drift_linear_pl(self, cb, dt, lbeg) !! author: David A. Minton !! !! Perform linear drift of massive bodies due to barycentric momentum of Sun @@ -67,12 +67,19 @@ module subroutine helio_drift_linear_pl(self, system, dt, pt) !! Adapted from Hal Levison's Swift routine helio_lindrift.f implicit none ! Arguments - class(helio_pl), intent(inout) :: self !! Helio massive body object - class(helio_nbody_system), intent(in) :: system !! Swiftest nbody system object - real(DP), intent(in) :: dt !! Stepsize - real(DP), dimension(:), intent(out) :: pt !! negative barycentric velocity of the central body - - associate(pl => self, npl => self%nbody, cb => system%cb) + class(helio_pl), intent(inout) :: self !! Helio massive body object + class(helio_cb), intent(in) :: cb !! Helio central bod + real(DP), intent(in) :: dt !! Stepsize + logical, intent(in) :: lbeg !! Argument that determines whether or not this is the beginning or end of the step + ! Internals + real(DP), dimension(NDIM) :: pt !! negative barycentric velocity of the central body + + associate(pl => self, npl => self%nbody) + if (lbeg) then + pt(:) = cb%ptbeg + else + pt(:) = cb%ptend + end if pt(1) = sum(pl%Gmass(1:npl) * pl%vb(1,1:npl)) pt(2) = sum(pl%Gmass(1:npl) * pl%vb(2,1:npl)) pt(3) = sum(pl%Gmass(1:npl) * pl%vb(3,1:npl)) @@ -136,7 +143,7 @@ module subroutine helio_drift_tp(self, system, param, dt) return end subroutine helio_drift_tp - module subroutine helio_drift_linear_tp(self, system, dt, pt) + module subroutine helio_drift_linear_tp(self, cb, dt, lbeg) !! author: David A. Minton !! !! Perform linear drift of test particles due to barycentric momentum of Sun @@ -146,12 +153,19 @@ module subroutine helio_drift_linear_tp(self, system, dt, pt) !! Adapted from Hal Levison's Swift routine helio_lindrift_tp.f implicit none ! Arguments - class(helio_tp), intent(inout) :: self !! Helio test particleb object - class(helio_nbody_system), intent(in) :: system !! Swiftest nbody system object - real(DP), intent(in) :: dt !! Stepsize - real(DP), dimension(:), intent(in) :: pt !! negative barycentric velocity of the central body - + class(helio_tp), intent(inout) :: self !! Helio test particleb object + class(helio_cb), intent(in) :: cb !! Helio central body + real(DP), intent(in) :: dt !! Stepsize + logical, intent(in) :: lbeg !! Argument that determines whether or not this is the beginning or end of the step + ! Internals + real(DP), dimension(NDIM) :: pt !! negative barycentric velocity of the central body + associate(tp => self, ntp => self%nbody) + if (lbeg) then + pt(:) = cb%ptbeg + else + pt(:) = cb%ptend + end if where (tp%status(1:ntp) == ACTIVE) tp%xh(1, 1:ntp) = tp%xh(1, 1:ntp) + pt(1) * dt tp%xh(2, 1:ntp) = tp%xh(2, 1:ntp) + pt(2) * dt diff --git a/src/helio/helio_getacch.f90 b/src/helio/helio_getacch.f90 index 21ae7aafe..4b598f204 100644 --- a/src/helio/helio_getacch.f90 +++ b/src/helio/helio_getacch.f90 @@ -18,7 +18,11 @@ module subroutine helio_getacch_pl(self, system, param, t, lbeg) associate(cb => system%cb, pl => self, npl => self%nbody) call helio_getacch_int_pl(pl, t) - if (param%loblatecb) call pl%accel_obl(system) + if (param%loblatecb) then + cb%aoblbeg = cb%aobl + call pl%accel_obl(system) + cb%aoblend = cb%aobl + end if if (param%lextra_force) call pl%accel_user(system, param, t) !if (param%lgr) call pl%gr_accel(param) end associate @@ -99,8 +103,8 @@ subroutine helio_getacch_int_tp(tp, system, param, t) !! Adapted from Hal Levison's Swift routine getacch_ah3_tp.f implicit none ! Arguments - class(helio_tp), intent(inout) :: tp !! WHM test particle data structure - class(swiftest_nbody_system), intent(inout) :: system !! WHM nbody system object + class(helio_tp), intent(inout) :: tp !! Helio test particle object + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters of real(DP), intent(in) :: t !! Current times ! Internals @@ -109,8 +113,8 @@ subroutine helio_getacch_int_tp(tp, system, param, t) real(DP), dimension(NDIM) :: dx real(DP), dimension(:, :), allocatable :: xhp - associate(ntp => tp%nbody, pl => system%pl, npl => system%pl%nbody) - if (system%lbeg) then + associate(ntp => tp%nbody, pl => system%pl, npl => system%pl%nbody, lbeg => system%lbeg) + if (lbeg) then allocate(xhp, source=pl%xbeg) else allocate(xhp, source=pl%xend) diff --git a/src/helio/helio_setup.f90 b/src/helio/helio_setup.f90 deleted file mode 100644 index b97287314..000000000 --- a/src/helio/helio_setup.f90 +++ /dev/null @@ -1,53 +0,0 @@ -submodule(helio_classes) s_helio_setup - use swiftest -contains - module subroutine helio_setup_system(self, param) - !! author: David A. Minton - !! - !! Initialize a Helio nbody system from files - implicit none - ! Arguments - class(helio_nbody_system), intent(inout) :: self !! Helio system object - class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters - - call io_read_initialize_system(self, param) - ! Make sure that the discard list gets allocated initially - call self%tp_discards%setup(self%tp%nbody) - end subroutine helio_setup_system - - module procedure helio_setup_pl - !! author: David A. Minton & Carlisle A. Wishard - !! - !! Allocate Helio planet structure - !! - !! Equivalent in functionality to David E. Kaufmann's Swifter routine helio_setup.f90 - implicit none - - !> Call allocation method for great-grandparent class (we don't need Jacobi variables from WHM/RMVS) - call setup_pl(self, n) - if (n <= 0) return - - allocate(self%ah(NDIM, n)) - self%ah(:,:) = 0.0_DP - return - end procedure helio_setup_pl - - module procedure helio_setup_tp - !! author: David A. Minton & Carlisle A. Wishard - !! - !! Allocate Helio test particle structure - !! - !! Equivalent in functionality to David E. Kaufmann's Swifter routine helio_setup.f90 - implicit none - - !> Call allocation method for great-grandparent class - call setup_tp(self, n) - if (n <= 0) return - - allocate(self%ah(NDIM, n)) - self%ah(:,:) = 0.0_DP - - return - end procedure helio_setup_tp - -end submodule s_helio_setup \ No newline at end of file diff --git a/src/helio/helio_step.f90 b/src/helio/helio_step.f90 index 1c4367228..8557477f7 100644 --- a/src/helio/helio_step.f90 +++ b/src/helio/helio_step.f90 @@ -43,15 +43,15 @@ module subroutine helio_step_pl(self, system, param, t, dt) real(DP) :: dth, msys if (self%nbody == 0) return - select type(system) - class is (helio_nbody_system) - associate(pl => self, cb => system%cb, ptb => system%ptb, pte => system%pte) + associate(pl => self) + select type(cb => system%cb) + class is (helio_cb) dth = 0.5_DP * dt if (pl%lfirst) then call pl%vh2vb(cb) pl%lfirst = .false. end if - call pl%lindrift(system, dth, ptb) + call pl%lindrift(cb, dth, lbeg=.true.) call pl%accel(system, param, t) call pl%kick(dth) call pl%set_beg_end(xbeg = pl%xh) @@ -59,10 +59,10 @@ module subroutine helio_step_pl(self, system, param, t, dt) call pl%set_beg_end(xend = pl%xh) call pl%accel(system, param, t + dt) call pl%kick(dth) - call pl%lindrift(system, dth, pte) + call pl%lindrift(cb, dth, lbeg=.false.) call pl%vb2vh(cb) - end associate - end select + end select + end associate return @@ -88,24 +88,24 @@ module subroutine helio_step_tp(self, system, param, t, dt) if (self%nbody == 0) return - select type(system) - class is (helio_nbody_system) - associate(tp => self, cb => system%cb, pl => system%pl, ptb => system%ptb, pte => system%pte) + associate(tp => self) + select type(cb => system%cb) + class is (helio_cb) dth = 0.5_DP * dt if (tp%lfirst) then - call tp%vh2vb(vbcb = -ptb) + call tp%vh2vb(vbcb = -cb%ptbeg) tp%lfirst = .false. end if - call tp%lindrift(system, dth, ptb) + call tp%lindrift(cb, dth, lbeg=.true.) call tp%accel(system, param, t, lbeg=.true.) call tp%kick(dth) call tp%drift(system, param, dt) call tp%accel(system, param, t + dt, lbeg=.false.) call tp%kick(dth) - call tp%lindrift(system, dth, pte) - call tp%vb2vh(vbcb = -pte) - end associate - end select + call tp%lindrift(cb, dth, lbeg=.false.) + call tp%vb2vh(vbcb = -cb%ptend) + end select + end associate return diff --git a/src/modules/helio_classes.f90 b/src/modules/helio_classes.f90 index 9b88db48d..c95b54397 100644 --- a/src/modules/helio_classes.f90 +++ b/src/modules/helio_classes.f90 @@ -13,12 +13,7 @@ module helio_classes ! helio_nbody_system class definitions and method interfaces !******************************************************************************************************************************** type, public, extends(whm_nbody_system) :: helio_nbody_system - real(DP), dimension(NDIM) :: ptb !! negative barycentric velocity of the central body at the beginning of time step - real(DP), dimension(NDIM) :: pte !! negative barycentric velocity of the central body at the end of time step contains - private - procedure, public :: initialize => helio_setup_system !! Performs Helio-specific initilization steps, - procedure, public :: step => helio_step_system end type helio_nbody_system !******************************************************************************************************************************** @@ -26,6 +21,8 @@ module helio_classes !******************************************************************************************************************************* !> Helio central body particle class type, public, extends(swiftest_cb) :: helio_cb + real(DP), dimension(NDIM) :: ptbeg !! negative barycentric velocity of the central body at the beginning of time step + real(DP), dimension(NDIM) :: ptend !! negative barycentric velocity of the central body at the end of time step contains end type helio_cb @@ -43,7 +40,6 @@ module helio_classes procedure, public :: lindrift => helio_drift_linear_pl !! Method for linear drift of massive bodies due to barycentric momentum of Sun procedure, public :: accel => helio_getacch_pl !! Compute heliocentric accelerations of massive bodies procedure, public :: kick => helio_kickvb_pl !! Kicks the barycentric velocities - procedure, public :: setup => helio_setup_pl !! Constructor method - Allocates space for number of particles procedure, public :: step => helio_step_pl !! Steps the body forward one stepsize end type helio_pl @@ -53,8 +49,6 @@ module helio_classes !! Helio test particle class type, public, extends(swiftest_tp) :: helio_tp - real(DP), dimension(NDIM) :: ptbeg !! negative barycentric velocity of the Sun at beginning of time step - real(DP), dimension(NDIM) :: ptend !! negative barycentric velocity of the Sun at beginning of time step contains procedure, public :: vh2vb => helio_coord_vh2vb_tp !! Convert test particles from heliocentric to barycentric coordinates (velocity only) procedure, public :: vb2vh => helio_coord_vb2vh_tp !! Convert test particles from barycentric to heliocentric coordinates (velocity only) @@ -62,7 +56,6 @@ module helio_classes procedure, public :: lindrift => helio_drift_linear_tp !! Method for linear drift of massive bodies due to barycentric momentum of Sun procedure, public :: accel => helio_getacch_tp !! Compute heliocentric accelerations of massive bodies procedure, public :: kick => helio_kickvb_tp !! Kicks the barycentric velocities - procedure, public :: setup => helio_setup_tp !! Constructor method - Allocates space for number of particles procedure, public :: step => helio_step_tp !! Steps the body forward one stepsize end type helio_tp @@ -111,20 +104,20 @@ module subroutine helio_drift_tp(self, system, param, dt) real(DP), intent(in) :: dt !! Stepsize end subroutine helio_drift_tp - module subroutine helio_drift_linear_pl(self, system, dt, pt) + module subroutine helio_drift_linear_pl(self, cb, dt, lbeg) implicit none - class(helio_pl), intent(inout) :: self !! Helio massive body object - class(helio_nbody_system), intent(in) :: system !! Helio nbody system object - real(DP), intent(in) :: dt !! Stepsize - real(DP), dimension(:), intent(out) :: pt !! negative barycentric velocity of the central body + class(helio_pl), intent(inout) :: self !! Helio massive body object + class(helio_cb), intent(in) :: cb !! Helio central body object + real(DP), intent(in) :: dt !! Stepsize + logical, intent(in) :: lbeg !! Argument that determines whether or not this is the beginning or end of the step end subroutine helio_drift_linear_pl - module subroutine helio_drift_linear_tp(self, system, dt, pt) + module subroutine helio_drift_linear_tp(self, cb, dt, lbeg) implicit none - class(helio_tp), intent(inout) :: self !! Helio test particle object - class(helio_nbody_system), intent(in) :: system !! Helio nbody system object - real(DP), intent(in) :: dt !! Stepsize - real(DP), dimension(:), intent(in) :: pt !! negative barycentric velocity of the Sun + class(helio_tp), intent(inout) :: self !! Helio test particle object + class(helio_cb), intent(in) :: cb !! Helio nbody system object + real(DP), intent(in) :: dt !! Stepsize + logical, intent(in) :: lbeg !! Argument that determines whether or not this is the beginning or end of the step end subroutine helio_drift_linear_tp module subroutine helio_getacch_pl(self, system, param, t, lbeg) @@ -159,25 +152,6 @@ module subroutine helio_kickvb_tp(self, dt) real(DP), intent(in) :: dt !! Stepsize end subroutine helio_kickvb_tp - module subroutine helio_setup_pl(self, n) - implicit none - class(helio_pl), intent(inout) :: self !! Helio massive body object - integer, intent(in) :: n !! Number of test particles to allocate - end subroutine helio_setup_pl - - module subroutine helio_setup_system(self, param) - use swiftest_classes, only : swiftest_parameters - implicit none - class(helio_nbody_system), intent(inout) :: self !! Helio system object - class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters - end subroutine helio_setup_system - - module subroutine helio_setup_tp(self,n) - implicit none - class(helio_tp), intent(inout) :: self !! Helio test particle object - integer, intent(in) :: n !! Number of test particles to allocate - end subroutine helio_setup_tp - module subroutine helio_step_system(self, param, t, dt) use swiftest_classes, only : swiftest_parameters implicit none diff --git a/src/modules/symba.f90 b/src/modules/symba.f90 index 82ff837a1..209322ee1 100644 --- a/src/modules/symba.f90 +++ b/src/modules/symba.f90 @@ -527,14 +527,14 @@ module subroutine symba_step_helio(lfirst, lextra_force, t, npl, nplm, param%npl end subroutine symba_step_helio module subroutine symba_step_helio_pl(lfirst, lextra_force, t, npl, nplm, param%nplmax, helio_plA, param%j2rp2, param%j4rp4, dt, xbeg, xend, & - ptb, pte) + ptbeg, ptend) implicit none logical , intent(in) :: lextra_force logical , intent(inout) :: lfirst integer(I4B), intent(in) :: npl, nplm, param%nplmax real(DP), intent(in) :: t, param%j2rp2, param%j4rp4, dt real(DP), dimension(npl, NDIMm), intent(out) :: xbeg, xend - real(DP), dimension(NDIM), intent(out) :: ptb, pte + real(DP), dimension(NDIM), intent(out) :: ptbeg, ptend type(helio_pl), intent(inout) :: helio_plA end subroutine symba_step_helio_pl diff --git a/src/symba/symba_step_helio.f90 b/src/symba/symba_step_helio.f90 index 54803c97e..3d3284c0a 100644 --- a/src/symba/symba_step_helio.f90 +++ b/src/symba/symba_step_helio.f90 @@ -9,14 +9,14 @@ use swiftest implicit none logical :: lfirsttp - real(DP), dimension(NDIM) :: ptb, pte + real(DP), dimension(NDIM) :: ptbeg, ptend real(DP), dimension(npl, NDIMm) :: xbeg, xend ! executable code lfirsttp = lfirst - call symba_step_helio_pl(lfirst, lextra_force, t, npl, nplm, param%nplmax, helio_plA, param%j2rp2, param%j4rp4, dt, xbeg, xend, ptb, pte) + call symba_step_helio_pl(lfirst, lextra_force, t, npl, nplm, param%nplmax, helio_plA, param%j2rp2, param%j4rp4, dt, xbeg, xend, ptbeg, ptend) if (ntp > 0) call helio_step_tp(lfirsttp, lextra_force, t, nplm, param%nplmax, ntp, param%ntpmax, helio_plA, helio_tpA, param%j2rp2, param%j4rp4, & - dt, xbeg, xend, ptb, pte) + dt, xbeg, xend, ptbeg, ptend) return diff --git a/src/symba/symba_step_helio_pl.f90 b/src/symba/symba_step_helio_pl.f90 index bf6dd412f..bcf2cfc40 100644 --- a/src/symba/symba_step_helio_pl.f90 +++ b/src/symba/symba_step_helio_pl.f90 @@ -23,7 +23,7 @@ lfirst = .false. end if - call helio_lindrift(npl, helio_plA%swiftest, dth, ptb) + call helio_lindrift(npl, helio_plA%swiftest, dth, ptbeg) call symba_helio_getacch(lflag, lextra_force, t, npl, nplm, param%nplmax, helio_plA, param%j2rp2, param%j4rp4) lflag = .true. @@ -42,7 +42,7 @@ call helio_kickvb(npl, helio_plA, dth) - call helio_lindrift(npl, helio_plA%swiftest, dth, pte) + call helio_lindrift(npl, helio_plA%swiftest, dth, ptend) call coord_vb2vh(npl, helio_plA%swiftest) diff --git a/src/symba/symba_step_interp.f90 b/src/symba/symba_step_interp.f90 index b9832ab53..7ec056ec8 100644 --- a/src/symba/symba_step_interp.f90 +++ b/src/symba/symba_step_interp.f90 @@ -13,7 +13,7 @@ logical , save :: lmalloc = .true. integer( I4B) :: i, irec real(DP) :: dth, msys - real(DP), dimension(NDIM) :: ptb, pte + real(DP), dimension(NDIM) :: ptbeg, ptend real(DP), dimension(:, :), allocatable, save :: xbeg, xend ! executable code @@ -26,10 +26,10 @@ call coord_vh2vb(npl, symba_plA, msys) - call helio_lindrift(npl, symba_plA, dth, ptb) + call helio_lindrift(npl, symba_plA, dth, ptbeg) if (ntp > 0) then - call coord_vh2vb_tp(ntp, symba_tpA, -ptb) - call helio_lindrift_tp(ntp, symba_tpA, dth, ptb) + call coord_vh2vb_tp(ntp, symba_tpA, -ptbeg) + call helio_lindrift_tp(ntp, symba_tpA, dth, ptbeg) do i = 2, npl xbeg(:, i) = symba_plA%xh(:,i) end do @@ -61,10 +61,10 @@ call helio_kickvb(npl, symba_plA, dth) if (ntp > 0) call helio_kickvb_tp(ntp, symba_tpA, dth) call coord_vb2vh(npl, symba_plA) - call helio_lindrift(npl, symba_plA, dth, pte) + call helio_lindrift(npl, symba_plA, dth, ptend) if (ntp > 0) then - call coord_vb2vh_tp(ntp, symba_tpA, -pte) - call helio_lindrift_tp(ntp, symba_tpA, dth, pte) + call coord_vb2vh_tp(ntp, symba_tpA, -ptend) + call helio_lindrift_tp(ntp, symba_tpA, dth, ptend) end if return diff --git a/src/symba/symba_step_interp_eucl.f90 b/src/symba/symba_step_interp_eucl.f90 index 9250e87f2..2036ae9aa 100644 --- a/src/symba/symba_step_interp_eucl.f90 +++ b/src/symba/symba_step_interp_eucl.f90 @@ -12,7 +12,7 @@ logical , save :: lmalloc = .true. integer(I4B) :: i, irec real(DP) :: dth, msys - real(DP), dimension(NDIM) :: ptb, pte + real(DP), dimension(NDIM) :: ptbeg, ptend real(DP), dimension(:, :), allocatable, save :: xbeg, xend ! executable code @@ -25,10 +25,10 @@ call coord_vh2vb(npl, symba_plA, msys) - call helio_lindrift(npl, symba_plA, dth, ptb) + call helio_lindrift(npl, symba_plA, dth, ptbeg) if (ntp > 0) then - call coord_vh2vb_tp(ntp, symba_tpA, -ptb) - call helio_lindrift_tp(ntp, symba_tpA, dth, ptb) + call coord_vh2vb_tp(ntp, symba_tpA, -ptbeg) + call helio_lindrift_tp(ntp, symba_tpA, dth, ptbeg) do i = 2, npl xbeg(:, i) = symba_plA%xh(:,i) end do @@ -61,10 +61,10 @@ call helio_kickvb(npl, symba_plA, dth) if (ntp > 0) call helio_kickvb_tp(ntp, symba_tpA, dth) call coord_vb2vh(npl, symba_plA) - call helio_lindrift(npl, symba_plA, dth, pte) + call helio_lindrift(npl, symba_plA, dth, ptend) if (ntp > 0) then - call coord_vb2vh_tp(ntp, symba_tpA, -pte) - call helio_lindrift_tp(ntp, symba_tpA, dth, pte) + call coord_vb2vh_tp(ntp, symba_tpA, -ptend) + call helio_lindrift_tp(ntp, symba_tpA, dth, ptend) end if return diff --git a/src/whm/whm_getacch.f90 b/src/whm/whm_getacch.f90 index 182b385b9..26a3acb19 100644 --- a/src/whm/whm_getacch.f90 +++ b/src/whm/whm_getacch.f90 @@ -33,9 +33,9 @@ module subroutine whm_getacch_pl(self, system, param, t, lbeg) call whm_getacch_ah3(pl) if (param%loblatecb) then - call cb%set_beg_end(aoblbeg = cb%aobl) + cb%aoblbeg = cb%aobl call pl%accel_obl(system) - call cb%set_beg_end(aoblend = cb%aobl) + cb%aoblend = cb%aobl end if if (param%lextra_force) call pl%accel_user(system, param, t) if (param%lgr) call pl%accel_gr(param) diff --git a/src/whm/whm_step.f90 b/src/whm/whm_step.f90 index 8aa8cfd2a..fb84fe49e 100644 --- a/src/whm/whm_step.f90 +++ b/src/whm/whm_step.f90 @@ -54,7 +54,6 @@ module subroutine whm_step_pl(self, system, param, t, dt) call pl%set_beg_end(xbeg = pl%xh) call pl%kick(dth) call pl%vh2vj(cb) - !If GR enabled, calculate the p4 term before and after each drift if (param%lgr) call pl%p4(param, dth) call pl%drift(system, param, dt) if (param%lgr) call pl%p4(param, dth) From 5038ce4dae0673a9ead9afc6947748675eb0e68e Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 8 Jul 2021 16:37:46 -0400 Subject: [PATCH 28/28] Fixed barycentric velocity problem with test particle drift. --- .../swiftest_vs_swifter.ipynb | 570 +----------------- src/helio/helio_drift.f90 | 17 +- src/modules/helio_classes.f90 | 10 +- 3 files changed, 41 insertions(+), 556 deletions(-) diff --git a/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb b/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb index bdc6cdd03..9a487a59c 100644 --- a/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb +++ b/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb @@ -89,8 +89,8 @@ "metadata": {}, "outputs": [], "source": [ - "pldiff = swiftdiff.where(np.invert(np.isnan(swiftdiff['Mass'])), drop=True)\n", - "tpdiff = swiftdiff.where(np.isnan(swiftdiff['Mass']), drop=True)" + "plidx = swiftdiff.id.values[swiftdiff.id.values < 10]\n", + "tpidx = swiftdiff.id.values[swiftdiff.id.values > 10]" ] }, { @@ -98,16 +98,9 @@ "execution_count": 8, "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] @@ -119,8 +112,12 @@ } ], "source": [ - "pldiff['dr'].plot.line(x=\"time (y)\")\n", - "print()" + "fig, ax = plt.subplots()\n", + "swiftdiff['dr'].sel(id=plidx).plot.line(x=\"time (y)\", ax=ax)\n", + "ax.set_ylabel(\"$|\\mathbf{r}_{swiftest} - \\mathbf{r}_{swifter}|$\")\n", + "ax.set_title(\"Helio integrator \\n Planets only\")\n", + "#legend = ax.legend()\n", + "fig.savefig(\"helio_swifter_comparison-pl-rmag.png\", facecolor='white', transparent=False, dpi=300)" ] }, { @@ -128,16 +125,9 @@ "execution_count": 9, "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] @@ -149,8 +139,11 @@ } ], "source": [ - "tpdiff['dr'].plot.line(x=\"time (y)\")\n", - "print()" + "fig, ax = plt.subplots()\n", + "swiftdiff['dr'].sel(id=tpidx).plot.line(x=\"time (y)\", ax=ax)\n", + "ax.set_ylabel(\"$|\\mathbf{r}_{swiftest} - \\mathbf{r}_{swifter}|$\")\n", + "ax.set_title(\"Helio integrator \\n Test Particles only\")\n", + "fig.savefig(\"helio_swifter_comparison-tp-rmag.png\", facecolor='white', transparent=False, dpi=300)" ] }, { @@ -158,16 +151,9 @@ "execution_count": 10, "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] @@ -179,8 +165,11 @@ } ], "source": [ - "pldiff['dv'].plot.line(x=\"time (y)\")\n", - "print()" + "fig, ax = plt.subplots()\n", + "swiftdiff['dv'].sel(id=plidx).plot.line(x=\"time (y)\", ax=ax)\n", + "ax.set_ylabel(\"$|\\mathbf{r}_{swiftest} - \\mathbf{r}_{swifter}|$\")\n", + "ax.set_title(\"Helio integrator \\n Planets only\")\n", + "fig.savefig(\"helio_swifter_comparison-pl-vmag.png\", facecolor='white', transparent=False, dpi=300)" ] }, { @@ -188,16 +177,9 @@ "execution_count": 11, "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] @@ -209,509 +191,11 @@ } ], "source": [ - "tpdiff['dv'].plot.line(x=\"time (y)\")\n", - "print()" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "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: 4, time (y): 1462)\n",
    -       "Coordinates:\n",
    -       "  * id        (id) int64 101 102 103 104\n",
    -       "  * time (y)  (time (y)) float64 0.0 0.0006845 0.001369 ... 0.9986 0.9993 1.0\n",
    -       "Data variables:\n",
    -       "    Mass      (time (y), id) float64 nan nan nan nan nan ... nan nan nan nan nan\n",
    -       "    Radius    (time (y), id) float64 nan nan nan nan nan ... nan nan nan nan nan\n",
    -       "    px        (time (y), id) float64 0.0 0.0 0.0 0.0 ... 1.001 -0.6538 -2.995\n",
    -       "    py        (time (y), id) float64 0.0 0.0 0.0 0.0 ... -2.233 -4.116 -5.31\n",
    -       "    pz        (time (y), id) float64 0.0 0.0 0.0 0.0 ... -0.08684 0.4693 0.3703\n",
    -       "    vx        (time (y), id) float64 0.0 0.0 0.0 0.0 ... 2.549 0.02329 -3.212\n",
    -       "    vy        (time (y), id) float64 0.0 0.0 0.0 0.0 ... -3.791 -8.402 -11.27\n",
    -       "    vz        (time (y), id) float64 0.0 0.0 0.0 0.0 ... -0.768 0.8964 0.4534\n",
    -       "    dr        (time (y), id) float64 0.0 0.0 0.0 0.0 ... 2.448 4.194 6.107\n",
    -       "    dv        (time (y), id) float64 0.0 0.0 0.0 0.0 ... 4.632 8.449 11.73
    " - ], - "text/plain": [ - "\n", - "Dimensions: (id: 4, time (y): 1462)\n", - "Coordinates:\n", - " * id (id) int64 101 102 103 104\n", - " * time (y) (time (y)) float64 0.0 0.0006845 0.001369 ... 0.9986 0.9993 1.0\n", - "Data variables:\n", - " Mass (time (y), id) float64 nan nan nan nan nan ... nan nan nan nan nan\n", - " Radius (time (y), id) float64 nan nan nan nan nan ... nan nan nan nan nan\n", - " px (time (y), id) float64 0.0 0.0 0.0 0.0 ... 1.001 -0.6538 -2.995\n", - " py (time (y), id) float64 0.0 0.0 0.0 0.0 ... -2.233 -4.116 -5.31\n", - " pz (time (y), id) float64 0.0 0.0 0.0 0.0 ... -0.08684 0.4693 0.3703\n", - " vx (time (y), id) float64 0.0 0.0 0.0 0.0 ... 2.549 0.02329 -3.212\n", - " vy (time (y), id) float64 0.0 0.0 0.0 0.0 ... -3.791 -8.402 -11.27\n", - " vz (time (y), id) float64 0.0 0.0 0.0 0.0 ... -0.768 0.8964 0.4534\n", - " dr (time (y), id) float64 0.0 0.0 0.0 0.0 ... 2.448 4.194 6.107\n", - " dv (time (y), id) float64 0.0 0.0 0.0 0.0 ... 4.632 8.449 11.73" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tpdiff" + "fig, ax = plt.subplots()\n", + "swiftdiff['dv'].sel(id=tpidx).plot.line(x=\"time (y)\", ax=ax)\n", + "ax.set_ylabel(\"$|\\mathbf{r}_{swiftest} - \\mathbf{r}_{swifter}|$\")\n", + "ax.set_title(\"Helio integrator \\n Test Particles only\")\n", + "fig.savefig(\"helio_swifter_comparison-tp-vmag.png\", facecolor='white', transparent=False, dpi=300)" ] }, { diff --git a/src/helio/helio_drift.f90 b/src/helio/helio_drift.f90 index 43de2a042..ce55797bf 100644 --- a/src/helio/helio_drift.f90 +++ b/src/helio/helio_drift.f90 @@ -68,18 +68,13 @@ module subroutine helio_drift_linear_pl(self, cb, dt, lbeg) implicit none ! Arguments class(helio_pl), intent(inout) :: self !! Helio massive body object - class(helio_cb), intent(in) :: cb !! Helio central bod + class(helio_cb), intent(inout) :: cb !! Helio central bod real(DP), intent(in) :: dt !! Stepsize logical, intent(in) :: lbeg !! Argument that determines whether or not this is the beginning or end of the step ! Internals real(DP), dimension(NDIM) :: pt !! negative barycentric velocity of the central body associate(pl => self, npl => self%nbody) - if (lbeg) then - pt(:) = cb%ptbeg - else - pt(:) = cb%ptend - end if pt(1) = sum(pl%Gmass(1:npl) * pl%vb(1,1:npl)) pt(2) = sum(pl%Gmass(1:npl) * pl%vb(2,1:npl)) pt(3) = sum(pl%Gmass(1:npl) * pl%vb(3,1:npl)) @@ -87,6 +82,12 @@ module subroutine helio_drift_linear_pl(self, cb, dt, lbeg) pl%xh(1,1:npl) = pl%xh(1,1:npl) + pt(1) * dt pl%xh(2,1:npl) = pl%xh(2,1:npl) + pt(2) * dt pl%xh(3,1:npl) = pl%xh(3,1:npl) + pt(3) * dt + + if (lbeg) then + cb%ptbeg = pt(:) + else + cb%ptend = pt(:) + end if end associate return @@ -130,8 +131,8 @@ module subroutine helio_drift_tp(self, system, param, dt) dtp(:) = dt end if call drift_one(mu(1:ntp), tp%xh(1,1:ntp), tp%xh(2,1:ntp), tp%xh(3,1:ntp), & - tp%vh(1,1:ntp), tp%vh(2,1:ntp), tp%vh(3,1:ntp), & - dtp(1:ntp), iflag(1:ntp)) + tp%vb(1,1:ntp), tp%vb(2,1:ntp), tp%vb(3,1:ntp), & + dtp(1:ntp), iflag(1:ntp)) if (any(iflag(1:ntp) /= 0)) then tp%status = DISCARDED_DRIFTERR do i = 1, ntp diff --git a/src/modules/helio_classes.f90 b/src/modules/helio_classes.f90 index c95b54397..d97a1608c 100644 --- a/src/modules/helio_classes.f90 +++ b/src/modules/helio_classes.f90 @@ -90,7 +90,7 @@ module subroutine helio_drift_pl(self, system, param, dt) use swiftest_classes, only : swiftest_nbody_system, swiftest_parameters implicit none class(helio_pl), intent(inout) :: self !! Helio massive body object - class(swiftest_nbody_system), intent(inout) :: system !! WHM nbody system object + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters of real(DP), intent(in) :: dt !! Stepsize end subroutine helio_drift_pl @@ -99,7 +99,7 @@ module subroutine helio_drift_tp(self, system, param, dt) use swiftest_classes, only : swiftest_nbody_system, swiftest_parameters implicit none class(helio_tp), intent(inout) :: self !! Helio test particle object - class(swiftest_nbody_system), intent(inout) :: system !! WHM nbody system object + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters of real(DP), intent(in) :: dt !! Stepsize end subroutine helio_drift_tp @@ -107,7 +107,7 @@ end subroutine helio_drift_tp module subroutine helio_drift_linear_pl(self, cb, dt, lbeg) implicit none class(helio_pl), intent(inout) :: self !! Helio massive body object - class(helio_cb), intent(in) :: cb !! Helio central body object + class(helio_cb), intent(inout) :: cb !! Helio central body object real(DP), intent(in) :: dt !! Stepsize logical, intent(in) :: lbeg !! Argument that determines whether or not this is the beginning or end of the step end subroutine helio_drift_linear_pl @@ -124,7 +124,7 @@ module subroutine helio_getacch_pl(self, system, param, t, lbeg) use swiftest_classes, only : swiftest_parameters, swiftest_nbody_system implicit none class(helio_pl), intent(inout) :: self !! Helio massive body object - class(swiftest_nbody_system), intent(inout) :: system !! WHM nbody system object + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters of real(DP), intent(in) :: t !! Current simulation time logical, optional, intent(in) :: lbeg !! Optional argument that determines whether or not this is the beginning or end of the step @@ -134,7 +134,7 @@ module subroutine helio_getacch_tp(self, system, param, t, lbeg) use swiftest_classes, only : swiftest_parameters, swiftest_nbody_system implicit none class(helio_tp), intent(inout) :: self !! Helio test particle object - class(swiftest_nbody_system), intent(inout) :: system !! WHM nbody 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 time logical, optional, intent(in) :: lbeg !! Optional argument that determines whether or not this is the beginning or end of the step