From 2ef93640899308cf891377f6d423b58820795ae8 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 23 Jul 2021 17:50:12 -0400 Subject: [PATCH] Consolidated redundant drift subroutines into one single shared algorithm. Each type-bound procedure now feeds the correct position and velocities to the universal drift_all function --- .../swiftest_vs_swifter.ipynb | 99 +++---------------- src/drift/drift.f90 | 63 ++++++++---- src/helio/helio_drift.f90 | 48 +++------ src/modules/swiftest_classes.f90 | 13 ++- src/whm/whm_drift.f90 | 35 ++----- 5 files changed, 93 insertions(+), 165 deletions(-) diff --git a/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb b/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb index 7f0b1d4b9..c5a777669 100644 --- a/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb +++ b/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb @@ -13,7 +13,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -21,10 +21,7 @@ "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 in time 2.580e-01" ] } ], @@ -35,21 +32,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 +42,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -66,7 +51,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -75,7 +60,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -85,7 +70,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -95,22 +80,9 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, ax = plt.subplots()\n", "swiftdiff['dr'].sel(id=plidx).plot.line(x=\"time (y)\", ax=ax)\n", @@ -122,22 +94,9 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, ax = plt.subplots()\n", "swiftdiff['dr'].sel(id=tpidx).plot.line(x=\"time (y)\", ax=ax)\n", @@ -148,22 +107,9 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, ax = plt.subplots()\n", "swiftdiff['dv'].sel(id=plidx).plot.line(x=\"time (y)\", ax=ax)\n", @@ -174,22 +120,9 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, ax = plt.subplots()\n", "swiftdiff['dv'].sel(id=tpidx).plot.line(x=\"time (y)\", ax=ax)\n", diff --git a/src/drift/drift.f90 b/src/drift/drift.f90 index ce9f66761..4d9988f93 100644 --- a/src/drift/drift.f90 +++ b/src/drift/drift.f90 @@ -26,34 +26,16 @@ module subroutine drift_body(self, system, param, dt, mask) logical, dimension(:), intent(in) :: mask !! Logical mask of size self%nbody that determines which bodies to drift. ! Internals integer(I4B) :: i - real(DP) :: energy, vmag2, rmag !! Variables used in GR calculation integer(I4B), dimension(:), allocatable :: iflag - real(DP), dimension(:), allocatable :: dtp associate(n => self%nbody) - if (n == 0) return allocate(iflag(n)) iflag(:) = 0 - allocate(dtp(n)) - if (param%lgr) then - do concurrent(i = 1:n, mask(i)) - rmag = norm2(self%xh(:, i)) - vmag2 = dot_product(self%vh(:, i), self%vh(:, i)) - energy = 0.5_DP * vmag2 - self%mu(i) / rmag - dtp(i) = dt * (1.0_DP + 3 * param%inv_c2 * energy) - end do - else - where(mask(1:n)) dtp(1:n) = dt - end if - do concurrent(i = 1:n, mask(i)) - call drift_one(self%mu(i), self%xh(1,i), self%xh(2,i), self%xh(3,i), & - self%vh(1,i), self%vh(2,i), self%vh(3,i), & - dtp(i), iflag(i)) - end do + call drift_all(self%mu, self%xh, self%vh, self%nbody, param, dt, mask, iflag) if (any(iflag(1:n) /= 0)) then where(iflag(1:n) /= 0) self%status(1:n) = DISCARDED_DRIFTERR do i = 1, n - if (iflag(i) /= 0) write(*, *) "Particle ", self%id(i), " lost due to error in Danby drift" + if (iflag(i) /= 0) write(*, *) " Body ", self%id(i), " lost due to error in Danby drift" end do end if end associate @@ -61,6 +43,47 @@ module subroutine drift_body(self, system, param, dt, mask) return end subroutine drift_body + module pure subroutine drift_all(mu, x, v, n, param, dt, mask, iflag) + !! author: David A. Minton + !! + !! Loop bodies and call Danby drift routine on all bodies for the given position and velocity vector. + !! + !! Adapted from Hal Levison's Swift routine drift_tp.f + !! Adapted from David E. Kaufmann's Swifter routine whm_drift_tp.f9 + implicit none + ! Arguments + real(DP), dimension(:), intent(in) :: mu !! Vector of gravitational constants + real(DP), dimension(:,:), intent(inout) :: x, v !! Position and velocity vectors + integer(I4B), intent(in) :: n !! number of bodies + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + real(DP), intent(in) :: dt !! Stepsize + logical, dimension(:), intent(in) :: mask !! Logical mask of size self%nbody that determines which bodies to drift. + integer(I4B), dimension(:), intent(out) :: iflag !! Vector of error flags. 0 means no problem + ! Internals + integer(I4B) :: i + real(DP) :: energy, vmag2, rmag !! Variables used in GR calculation + real(DP), dimension(:), allocatable :: dtp + + if (n == 0) return + + allocate(dtp(n)) + if (param%lgr) then + do concurrent(i = 1:n, mask(i)) + rmag = norm2(x(:, i)) + vmag2 = dot_product(v(:, i), v(:, i)) + energy = 0.5_DP * vmag2 - mu(i) / rmag + dtp(i) = dt * (1.0_DP + 3 * param%inv_c2 * energy) + end do + else + where(mask(1:n)) dtp(1:n) = dt + end if + do concurrent(i = 1:n, mask(i)) + call drift_one(mu(i), x(1,i), x(2,i), x(3,i), v(1,i), v(2,i), v(3,i), dtp(i), iflag(i)) + end do + + return + end subroutine drift_all + module pure elemental subroutine drift_one(mu, px, py, pz, vx, vy, vz, dt, iflag) !! author: The Purdue Swiftest Team - David A. Minton, Carlisle A. Wishard, Jennifer L.L. Pouplin, and Jacob R. Elliott !! diff --git a/src/helio/helio_drift.f90 b/src/helio/helio_drift.f90 index 11d642159..0c146eea5 100644 --- a/src/helio/helio_drift.f90 +++ b/src/helio/helio_drift.f90 @@ -22,41 +22,19 @@ module subroutine helio_drift_body(self, system, param, dt, mask) integer(I4B), dimension(:),allocatable :: iflag !! Vectorized error code flag real(DP), dimension(:), allocatable :: dtp, mu - if (self%nbody == 0) return - - allocate(iflag(self%nbody)) - iflag(:) = 0 - allocate(dtp(self%nbody)) - allocate(mu(self%nbody)) - mu(:) = system%cb%Gmass - - if (param%lgr) then - do concurrent(i = 1:self%nbody, mask(i)) - rmag = norm2(self%xh(:, i)) - vmag2 = dot_product(self%vb(:, i), self%vb(:, i)) - energy = 0.5_DP * vmag2 - mu(i) / rmag - dtp(i) = dt * (1.0_DP + 3 * param%inv_c2 * energy) - end do - else - where(mask(1:self%nbody)) dtp(1:self%nbody) = dt - end if - - do concurrent(i = 1:self%nbody, mask(i)) - call drift_one(mu(i), self%xh(1,i), self%xh(2,i), self%xh(3,i), & - self%vb(1,i), self%vb(2,i), self%vb(3,i), & - dtp(i), iflag(i)) - end do - if (any(iflag(1:self%nbody) /= 0)) then - do i = 1, self%nbody - if (iflag(i) /= 0) then - write(*, *) " Body", self%id(i), " is lost!!!!!!!!!!" - write(*, *) self%xh(:,i) - write(*, *) self%vb(:,i) - write(*, *) " stopping " - call util_exit(FAILURE) - end if - end do - end if + associate(n => self%nbody) + allocate(iflag(n)) + iflag(:) = 0 + allocate(mu(n)) + mu(:) = system%cb%Gmass + call drift_all(mu, self%xh, self%vb, self%nbody, param, dt, mask, iflag) + if (any(iflag(1:n) /= 0)) then + where(iflag(1:n) /= 0) self%status(1:n) = DISCARDED_DRIFTERR + do i = 1, n + if (iflag(i) /= 0) write(*, *) " Body ", self%id(i), " lost due to error in Danby drift" + end do + end if + end associate return end subroutine helio_drift_body diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index c1accb768..fc2ca4d39 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -7,7 +7,7 @@ module swiftest_classes implicit none private public :: discard_pl, discard_system, discard_tp - public :: drift_body, drift_one + public :: drift_all, drift_body, drift_one public :: eucl_dist_index_plpl, eucl_dist_index_pltp public :: gr_getaccb_ns_body, gr_p4_pos_kick, gr_pseudovel2vel, gr_vel2pseudovel public :: io_dump_param, io_dump_swiftest, io_dump_system, io_get_args, io_get_token, io_param_reader, io_param_writer, io_read_body_in, & @@ -383,6 +383,17 @@ module subroutine discard_tp(self, system, param) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine discard_tp + module pure subroutine drift_all(mu, x, v, n, param, dt, mask, iflag) + implicit none + real(DP), dimension(:), intent(in) :: mu !! Vector of gravitational constants + real(DP), dimension(:,:), intent(inout) :: x, v !! Position and velocity vectors + integer(I4B), intent(in) :: n !! number of bodies + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + real(DP), intent(in) :: dt !! Stepsize + logical, dimension(:), intent(in) :: mask !! Logical mask of size self%nbody that determines which bodies to drift. + integer(I4B), dimension(:), intent(out) :: iflag !! Vector of error flags. 0 means no problem + end subroutine drift_all + module subroutine drift_body(self, system, param, dt, mask) implicit none class(swiftest_body), intent(inout) :: self !! Swiftest particle data structure diff --git a/src/whm/whm_drift.f90 b/src/whm/whm_drift.f90 index 12d8494a8..454e1bc53 100644 --- a/src/whm/whm_drift.f90 +++ b/src/whm/whm_drift.f90 @@ -17,43 +17,26 @@ module subroutine whm_drift_pl(self, system, param, dt, mask) logical, dimension(:), intent(in) :: mask !! Logical mask of size self%nbody that determines which bodies to drift ! Internals integer(I4B) :: i - real(DP) :: energy, vmag2, rmag !! Variables used in GR calculation integer(I4B), dimension(:), allocatable :: iflag - real(DP), dimension(:), allocatable :: dtp associate(pl => self, npl => self%nbody) if (npl == 0) return allocate(iflag(npl)) iflag(:) = 0 - allocate(dtp(npl)) - - if (param%lgr) then - do concurrent(i = 1:npl, mask(i)) - rmag = norm2(pl%xj(:, i)) - vmag2 = dot_product(pl%vj(:, i), pl%vj(:, i)) - energy = 0.5_DP * vmag2 - pl%muj(i) / rmag - dtp(i) = dt * (1.0_DP + 3 * param%inv_c2 * energy) - end do - else - where(mask(1:npl)) dtp(1:npl) = dt - end if - - do concurrent(i = 1:npl, mask(i)) - call drift_one(pl%muj(i), pl%xj(1,i), pl%xj(2,i), pl%xj(3,i), & - pl%vj(1,i), pl%vj(2,i), pl%vj(3,i), & - dtp(i), iflag(i)) - end do + call drift_all(pl%muj, pl%xj, pl%vj, npl, param, dt, mask, iflag) if (any(iflag(1:npl) /= 0)) then + where(iflag(1:npl) /= 0) pl%status(1:npl) = DISCARDED_DRIFTERR do i = 1, npl - if (iflag(i) /= 0) then - write(*, *) " Planet ", self%id(i), " is lost!!!!!!!!!!" - write(*, *) pl%xj(:,i) - write(*, *) pl%vj(:,i) - write(*, *) " stopping " - call util_exit(FAILURE) + if (iflag(i) /= 0) then + write(*, *) " Planet ", pl%id(i), " is lost!!!!!!!!!!!!" + WRITE(*, *) pl%muj(i), dt + WRITE(*, *) pl%xj(:,i) + WRITE(*, *) pl%vj(:,i) + WRITE(*, *) " STOPPING " end if end do + call util_exit(FAILURE) end if end associate