From b782c6c5db9b61604c30f2f6a93b44f24eabe3fd Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 7 Jul 2021 10:29:04 -0400 Subject: [PATCH] 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