diff --git a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/cb.swiftest.in b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/cb.swiftest.in index 96c7f920c..572e1c58a 100644 Binary files a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/cb.swiftest.in and b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/cb.swiftest.in differ diff --git a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/init_cond.py b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/init_cond.py index f17e000fa..34072613e 100755 --- a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/init_cond.py +++ b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/init_cond.py @@ -18,7 +18,7 @@ swiftest_pl = "pl.swiftest.in" swiftest_tp = "tp.swiftest.in" swiftest_cb = "cb.swiftest.in" -swiftest_bin = "bin.swiftest.dat" +swiftest_bin = "bin.swiftest.nc" swiftest_enc = "enc.swiftest.dat" MU2KG = swiftest.MSun @@ -39,8 +39,8 @@ rmax = 1000.0 npl = 1 -plid = 2 -tpid = 100 +plid = 1 +tpid = 2 radius = np.double(4.25875607065041e-05) Gmass = np.double(0.00012002693582795244940133) @@ -60,7 +60,7 @@ #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,GMSun,file=plfile) print('0.0 0.0 0.0',file=plfile) print('0.0 0.0 0.0',file=plfile) print(plid,"{:.23g}".format(Gmass),rhill, file=plfile) @@ -106,9 +106,19 @@ sys.stdout = sys.__stdout__ #Now make Swiftest files +NAMELEN = 32 +cbname = "Sun" +plname = "Planet" +tpname = "TestParticle" + +cbname = cbname.ljust(NAMELEN) +plname = plname.ljust(NAMELEN) +tpname = tpname.ljust(NAMELEN) + cbfile = FortranFile(swiftest_cb, 'w') Msun = np.double(1.0) cbfile.write_record(0) +cbfile.write_record(cbname) cbfile.write_record(np.double(GMSun)) cbfile.write_record(np.double(rmin)) cbfile.write_record(np.double(swiftest.J2Sun)) @@ -119,6 +129,7 @@ plfile.write_record(npl) plfile.write_record(plid) +plfile.write_record(plname) plfile.write_record(p_pl[0]) plfile.write_record(p_pl[1]) plfile.write_record(p_pl[2]) @@ -133,6 +144,7 @@ ntp = 1 tpfile.write_record(ntp) tpfile.write_record(tpid) +tpfile.write_record(tpname) tpfile.write_record(p_tp[0]) tpfile.write_record(p_tp[1]) tpfile.write_record(p_tp[2]) @@ -154,8 +166,8 @@ 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_TYPE NETCDF_DOUBLE') +print(f'OUT_FORM XVEL') print(f'OUT_STAT REPLACE') print(f'RHILL_PRESENT yes') print(f'CHK_CLOSE yes') 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 d9c20a3be..5dd9ef3d8 100644 --- a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/param.swiftest.in +++ b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/param.swiftest.in @@ -7,10 +7,10 @@ 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 +ISTEP_DUMP 10 +BIN_OUT bin.swiftest.nc +OUT_TYPE NETCDF_DOUBLE +OUT_FORM XVEL OUT_STAT REPLACE RHILL_PRESENT yes CHK_CLOSE yes 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 17d461561..fb6b10800 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.476926408897625196 +0 39.476926408897625196 0.0 0.0 0.0 0.0 0.0 0.0 -2 0.00012002693582795244940133 0.010044724833237892 +1 0.00012002693582795244940133 0.010044724833237892 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 c94c6ae61..15fcca632 100644 Binary files a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/pl.swiftest.in and b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/pl.swiftest.in differ 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 aa7e8e5e3..43c398d4a 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 @@ -43,8 +43,8 @@ "output_type": "stream", "text": [ "Reading Swiftest file param.swiftest.in\n", - "Reading in time 1.506e-01\n", - "Creating Dataset\n", + "\n", + "Creating Dataset from NetCDF file\n", "Successfully converted 221 output frames.\n", "Swiftest simulation data stored as xarray DataSet .ds\n" ] @@ -75,23 +75,23 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[,\n", - " ]" + "[,\n", + " ]" ] }, - "execution_count": 6, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -103,7 +103,7 @@ } ], "source": [ - "swiftdiff['vx'].plot.line(x=\"time (y)\")" + "swiftdiff['vhx'].plot.line(x=\"time (y)\")" ] }, { diff --git a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/tp.swifter.in b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/tp.swifter.in index 9c026369e..ea062b86c 100644 --- a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/tp.swifter.in +++ b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/tp.swifter.in @@ -1,4 +1,4 @@ 1 -100 +2 1.01 0.0 0.0 0.0 6.252003053624663 0.0 diff --git a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/tp.swiftest.in b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/tp.swiftest.in index e1506974a..bf6ed2b1a 100644 Binary files a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/tp.swiftest.in and b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/tp.swiftest.in differ diff --git a/src/io/io.f90 b/src/io/io.f90 index 95b5abb7a..29562763b 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -73,11 +73,11 @@ module subroutine io_conservation_report(self, param, lterminal) if (abs(Merror) > 100 * epsilon(Merror)) then write(*,*) "Severe error! Mass not conserved! Halting!" call pl%xv2el(cb) - call param%nciu%open(param) + !call param%nciu%open(param) call self%write_hdr(param%nciu, param) call cb%write_frame(param%nciu, param) call pl%write_frame(param%nciu, param) - call param%nciu%close(param) + call param%nciu%close() call util_exit(FAILURE) end if end if @@ -202,9 +202,7 @@ module subroutine io_dump_particle_info_base(self, param, idx) close(unit = LUN, err = 667, iomsg = errmsg) !else if ((param%out_type == NETCDF_FLOAT_TYPE) .or. (param%out_type == NETCDF_DOUBLE_TYPE)) then if ((param%out_type == NETCDF_FLOAT_TYPE) .or. (param%out_type == NETCDF_DOUBLE_TYPE)) then - call param%nciu%open(param) call self%write_particle_info(param%nciu) - call param%nciu%close(param) end if return @@ -307,7 +305,9 @@ module subroutine io_dump_system(self, param) call self%cb%write_frame(dump_param%nciu, dump_param) call self%pl%write_frame(dump_param%nciu, dump_param) call self%tp%write_frame(dump_param%nciu, dump_param) - call dump_param%nciu%close(dump_param) + call dump_param%nciu%close() + ! Syncrhonize the disk and memory buffer of the NetCDF file (e.g. commit the frame files stored in memory to disk) + call param%nciu%sync() end if idx = idx + 1 @@ -1856,9 +1856,7 @@ module subroutine io_write_discard(self, param) ! Record the discarded body metadata information to file if ((param%out_type == NETCDF_FLOAT_TYPE) .or. (param%out_type == NETCDF_DOUBLE_TYPE)) then - call param%nciu%open(param) call tp_discards%write_particle_info(param%nciu) - call param%nciu%close(param) end if if (param%discard_out == "") return @@ -2176,7 +2174,7 @@ module subroutine io_write_frame_system(self, param) lfirst = .false. else - call param%nciu%open(param) + !call param%nciu%open(param) end if end if @@ -2202,7 +2200,6 @@ module subroutine io_write_frame_system(self, param) call cb%write_frame(param%nciu, param) call pl%write_frame(param%nciu, param) call tp%write_frame(param%nciu, param) - call param%nciu%close(param) end if return diff --git a/src/kick/kick.f90 b/src/kick/kick.f90 index 9c940190b..7d8c00808 100644 --- a/src/kick/kick.f90 +++ b/src/kick/kick.f90 @@ -19,15 +19,18 @@ module subroutine kick_getacch_int_pl(self, param) character(len=STRMAX) :: tstr, nstr, cstr, mstr, lstyle character(len=1) :: schar - if (param%ladaptive_interactions) then - if (lfirst) then - write(itimer%loopname, *) "kick_getacch_int_pl" - write(itimer%looptype, *) "INTERACTION" - call itimer%time_this_loop(param, self, self%nplpl) - lfirst = .false. + if (self%nplpl > 0) then + if (lfirst) then + write(itimer%loopname, *) "kick_getacch_int_pl" + write(itimer%looptype, *) "INTERACTION" + call itimer%time_this_loop(param, self, self%nplpl) + lfirst = .false. + else + if (itimer%check(param, self%nplpl)) call itimer%time_this_loop(param, self, self%nplpl) + end if else - if (itimer%check(param, self%nplpl)) call itimer%time_this_loop(param, self, self%nplpl) + param%lflatten_interactions = .false. end if end if @@ -37,7 +40,7 @@ module subroutine kick_getacch_int_pl(self, param) call kick_getacch_int_all_triangular_pl(self%nbody, self%nbody, self%xh, self%Gmass, self%radius, self%ah) end if - if (param%ladaptive_interactions) then + if (param%ladaptive_interactions .and. self%nplpl > 0) then if (itimer%is_on) call itimer%adapt(param, self, self%nplpl) end if diff --git a/src/main/swiftest_driver.f90 b/src/main/swiftest_driver.f90 index c00d08d94..755468868 100644 --- a/src/main/swiftest_driver.f90 +++ b/src/main/swiftest_driver.f90 @@ -106,6 +106,8 @@ program swiftest_driver end do end associate + call nbody_system%finalize(param) + call util_exit(SUCCESS) stop diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 5fe807071..a311b72f9 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -79,6 +79,7 @@ module swiftest_classes procedure :: close => netcdf_close !! Closes an open NetCDF file procedure :: initialize => netcdf_initialize_output !! Initialize a set of parameters used to identify a NetCDF output object procedure :: open => netcdf_open !! Opens a NetCDF file + procedure :: sync => netcdf_sync !! Syncrhonize the disk and memory buffer of the NetCDF file (e.g. commit the frame files stored in memory to disk) end type netcdf_parameters !******************************************************************************************************************************** @@ -432,6 +433,7 @@ module swiftest_classes procedure :: read_particle_info => io_read_particle_info_system !! Read in particle metadata from file procedure :: write_discard => io_write_discard !! Write out information about discarded test particles procedure :: obl_pot => obl_pot_system !! Compute the contribution to the total gravitational potential due solely to the oblateness of the central body + procedure :: finalize => setup_finalize_system !! Runs any finalization subroutines when ending the simulation. procedure :: initialize => setup_initialize_system !! Initialize the system from input files procedure :: init_particle_info => setup_initialize_particle_info_system !! Initialize the system from input files procedure :: step_spin => tides_step_spin_system !! Steps the spins of the massive & central bodies due to tides. @@ -998,10 +1000,9 @@ module pure subroutine kick_getacch_int_one_tp(rji2, xr, yr, zr, Gmpl, ax, ay, a real(DP), intent(inout) :: ax, ay, az !! Acceleration vector components of test particle end subroutine kick_getacch_int_one_tp - module subroutine netcdf_close(self, param) + module subroutine netcdf_close(self) implicit none class(netcdf_parameters), intent(inout) :: self !! Parameters used to identify a particular NetCDF dataset - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine netcdf_close module function netcdf_get_old_t_final_system(self, param) result(old_t_final) @@ -1023,6 +1024,11 @@ module subroutine netcdf_open(self, param) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine netcdf_open + module subroutine netcdf_sync(self) + implicit none + class(netcdf_parameters), intent(inout) :: self !! Parameters used to identify a particular NetCDF dataset + end subroutine netcdf_sync + module function netcdf_read_frame_base(self, iu, param) result(ierr) implicit none class(swiftest_base), intent(inout) :: self !! Swiftest base object @@ -1157,6 +1163,12 @@ module subroutine setup_encounter(self, n) integer(I4B), intent(in) :: n !! Number of encounters to allocate space for end subroutine setup_encounter + module subroutine setup_finalize_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 + end subroutine setup_finalize_system + module subroutine setup_initialize_particle_info_system(self, param) implicit none class(swiftest_nbody_system), intent(inout) :: self !! Swiftest nbody system object diff --git a/src/netcdf/netcdf.f90 b/src/netcdf/netcdf.f90 index 3ad813659..cb3c43198 100644 --- a/src/netcdf/netcdf.f90 +++ b/src/netcdf/netcdf.f90 @@ -19,14 +19,13 @@ subroutine check(status) return end subroutine check - module subroutine netcdf_close(self, param) + module subroutine netcdf_close(self) !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton !! !! Closes a NetCDF file implicit none ! Arguments class(netcdf_parameters), intent(inout) :: self !! Parameters used to identify a particular NetCDF dataset - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters call check( nf90_close(self%ncid) ) @@ -446,7 +445,7 @@ module function netcdf_read_frame_system(self, iu, param) result(ierr) call self%cb%read_in(param) call self%pl%read_in(param) call self%tp%read_in(param) - call iu%close(param) + call iu%close() ierr = 0 return @@ -500,6 +499,21 @@ module subroutine netcdf_read_hdr_system(self, iu, param) return end subroutine netcdf_read_hdr_system + + module subroutine netcdf_sync(self) + !! author: David A. Minton + !! + !! Syncrhonize the disk and memory buffer of the NetCDF file (e.g. commit the frame files stored in memory to disk) + !! + implicit none + ! Arguments + class(netcdf_parameters), intent(inout) :: self !! Parameters used to identify a particular NetCDF dataset + + call check( nf90_sync(self%ncid) ) + + return + end subroutine netcdf_sync + module subroutine netcdf_write_frame_base(self, iu, param) !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton !! @@ -610,13 +624,10 @@ module subroutine netcdf_write_frame_system(self, iu, param) class(netcdf_parameters), intent(inout) :: iu !! Parameters used to identify a particular NetCDF dataset class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - call iu%open(param) - call self%write_hdr(iu, param) call self%cb%write_frame(iu, param) call self%pl%write_frame(iu, param) call self%tp%write_frame(iu, param) - call iu%close(param) return end subroutine netcdf_write_frame_system diff --git a/src/setup/setup.f90 b/src/setup/setup.f90 index 208183e55..9ad815b8b 100644 --- a/src/setup/setup.f90 +++ b/src/setup/setup.f90 @@ -126,6 +126,27 @@ module subroutine setup_encounter(self, n) end subroutine setup_encounter + module subroutine setup_finalize_system(self, param) + !! author: David A. Minton + !! + !! Runs any finalization subroutines when ending the simulation. + !! + implicit none + ! Arguments + class(swiftest_nbody_system), intent(inout) :: self !! Swiftest system object + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters + integer(I4B) :: ierr + + associate(system => self) + if ((param%out_type == NETCDF_FLOAT_TYPE) .or. (param%out_type == NETCDF_DOUBLE_TYPE)) then + call param%nciu%close() + end if + end associate + + return + end subroutine setup_finalize_system + + module subroutine setup_initialize_particle_info_system(self, param) !! author: David A. Minton !! diff --git a/src/symba/symba_io.f90 b/src/symba/symba_io.f90 index bea4e9de3..632d4e64b 100644 --- a/src/symba/symba_io.f90 +++ b/src/symba/symba_io.f90 @@ -176,9 +176,7 @@ module subroutine symba_io_write_discard(self, param) ! Record the discarded body metadata information to file if ((param%out_type == NETCDF_FLOAT_TYPE) .or. (param%out_type == NETCDF_DOUBLE_TYPE)) then - call param%nciu%open(param) call pl_discards%write_particle_info(param%nciu) - call param%nciu%close(param) end if if (param%discard_out == "") return