From 7fa96eb6b2cfcbe8f5e81046e20aa5d35bd8dee7 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 4 Aug 2021 20:43:30 -0400 Subject: [PATCH] Enabled conservation report --- .../1pl_1pl_encounter/init_cond.py | 1 + .../1pl_1pl_encounter/param.swiftest.in | 1 + src/io/io.f90 | 9 +++------ src/modules/swiftest_classes.f90 | 4 ++-- src/modules/symba_classes.f90 | 2 +- src/symba/symba_io.f90 | 2 +- 6 files changed, 9 insertions(+), 10 deletions(-) diff --git a/examples/symba_swifter_comparison/1pl_1pl_encounter/init_cond.py b/examples/symba_swifter_comparison/1pl_1pl_encounter/init_cond.py index ece9101e0..245f5fae0 100755 --- a/examples/symba_swifter_comparison/1pl_1pl_encounter/init_cond.py +++ b/examples/symba_swifter_comparison/1pl_1pl_encounter/init_cond.py @@ -174,6 +174,7 @@ print(f'BIG_DISCARD no') print(f'DISCARD_OUT discard.swiftest.out') print(f'ROTATION no') +print(f'ENERGY yes') print(f'GR no') print(f'MU2KG {MU2KG}') print(f'DU2M {DU2M}') diff --git a/examples/symba_swifter_comparison/1pl_1pl_encounter/param.swiftest.in b/examples/symba_swifter_comparison/1pl_1pl_encounter/param.swiftest.in index d44f4df0e..3050dea4a 100644 --- a/examples/symba_swifter_comparison/1pl_1pl_encounter/param.swiftest.in +++ b/examples/symba_swifter_comparison/1pl_1pl_encounter/param.swiftest.in @@ -24,6 +24,7 @@ EXTRA_FORCE no BIG_DISCARD no DISCARD_OUT discard.swiftest.out ROTATION no +ENERGY yes GR no MU2KG 1.988409870698051e+30 DU2M 149597870700.0 diff --git a/src/io/io.f90 b/src/io/io.f90 index e159d019d..360088980 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -70,10 +70,6 @@ module subroutine io_conservation_report(self, param, lterminal) write(*,*) 'dpe : ',(pe_now - pe_last) / abs(Eorbit_orig) write(*,*) end if - if (Lerror > 1e-6) then - write(*,*) 'Something has gone wrong! Angular momentum is too high!' - write(*,*) 'Lerror: ', Lerror - end if end if ke_orbit_last = ke_orbit_now ke_spin_last = ke_spin_now @@ -135,7 +131,7 @@ module subroutine io_dump_swiftest(self, param, msg) implicit none ! Arguments class(swiftest_base), intent(inout) :: self !! Swiftest base object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters character(*), optional, intent(in) :: msg !! Message to display with dump operation ! Internals integer(I4B) :: ierr !! Error code @@ -173,7 +169,7 @@ module subroutine io_dump_system(self, param, msg) implicit none ! Arguments class(swiftest_nbody_system), intent(inout) :: self !! Swiftest system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters character(*), optional, intent(in) :: msg !! Message to display with dump operation ! Internals class(swiftest_parameters), allocatable :: dump_param !! Local parameters variable used to parameters change input file names @@ -203,6 +199,7 @@ module subroutine io_dump_system(self, param, msg) ! Print the status message (format code passed in from main driver) tfrac = (param%t - param%t0) / (param%tstop - param%t0) write(*,msg) param%t, tfrac, self%pl%nbody, self%tp%nbody + if (param%lenergy) call self%conservation_report(param, lterminal=.true.) return end subroutine io_dump_system diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index dcff0f6d8..47cfc6dd1 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -516,14 +516,14 @@ end subroutine io_dump_param module subroutine io_dump_swiftest(self, param, msg) implicit none class(swiftest_base), intent(inout) :: self !! Swiftest base object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters character(*), optional, intent(in) :: msg !! Message to display with dump operation end subroutine io_dump_swiftest module subroutine io_dump_system(self, param, msg) implicit none class(swiftest_nbody_system), intent(inout) :: self !! Swiftest system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters character(*), optional, intent(in) :: msg !! Message to display with dump operation end subroutine io_dump_system diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index f920fff87..697356b44 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -296,7 +296,7 @@ module subroutine symba_io_dump_particle_info(self, param, msg) use swiftest_classes, only : swiftest_parameters implicit none class(symba_particle_info), intent(inout) :: self !! Swiftest base object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters character(*), optional, intent(in) :: msg !! Message to display with dump operation end subroutine symba_io_dump_particle_info diff --git a/src/symba/symba_io.f90 b/src/symba/symba_io.f90 index 1f8626242..2e568dd7e 100644 --- a/src/symba/symba_io.f90 +++ b/src/symba/symba_io.f90 @@ -8,7 +8,7 @@ module subroutine symba_io_dump_particle_info(self, param, msg) !! Dumps the particle information data to a file implicit none class(symba_particle_info), intent(inout) :: self !! Swiftest base object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters character(*), optional, intent(in) :: msg !! Message to display with dump operation end subroutine symba_io_dump_particle_info