diff --git a/.github/workflows/draft-pdf.yml b/.github/workflows/draft-pdf.yml index eecf0d135..3504eab14 100644 --- a/.github/workflows/draft-pdf.yml +++ b/.github/workflows/draft-pdf.yml @@ -14,7 +14,7 @@ jobs: # This should be the path to the paper within your repo. paper-path: paper/paper.md - name: Upload - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v4 with: name: paper # This is the output path where Pandoc will write the compiled diff --git a/Docs/sphinx_doc/building.rst b/Docs/sphinx_doc/building.rst index 8227e9e26..1cea56ec6 100644 --- a/Docs/sphinx_doc/building.rst +++ b/Docs/sphinx_doc/building.rst @@ -214,7 +214,7 @@ HDF5 (tested with v1.14.3) #. Configure for your system ``../configure --prefix=/usr/local --enable-parallel`` #. Build ``make -j8`` and ``sudo make install`` -.. _hdfgroup.org: https://www.hdfgroup.org/downloads/hdf5/source-code/ +.. _hdfgroup.org: https://www.hdfgroup.org/download-hdf5/source-code/ NetCDF (tested with v4.9.2) diff --git a/Source/TimeIntegration/ERF_fast_rhs_MT.cpp b/Source/TimeIntegration/ERF_fast_rhs_MT.cpp index 64aa958d8..1ff3b524b 100644 --- a/Source/TimeIntegration/ERF_fast_rhs_MT.cpp +++ b/Source/TimeIntegration/ERF_fast_rhs_MT.cpp @@ -615,6 +615,12 @@ void erf_fast_rhs_MT (int step, int nrk, {{AMREX_D_DECL(&(flux[0]), &(flux[1]), &(flux[2]))}}, dx, dtau, strt_comp_reflux, strt_comp_reflux, num_comp_reflux, RunOn::Device); } + + // This is necessary here so we don't go on to the next FArrayBox without + // having finished copying the fluxes into the FluxRegisters (since the fluxes + // are stored in temporary FArrayBox's) + Gpu::streamSynchronize(); + } // two-way coupling } // mfi diff --git a/Source/TimeIntegration/ERF_fast_rhs_N.cpp b/Source/TimeIntegration/ERF_fast_rhs_N.cpp index 5f9583e19..6fbfd04c5 100644 --- a/Source/TimeIntegration/ERF_fast_rhs_N.cpp +++ b/Source/TimeIntegration/ERF_fast_rhs_N.cpp @@ -529,6 +529,12 @@ void erf_fast_rhs_N (int step, int nrk, {{AMREX_D_DECL(&(flux[0]), &(flux[1]), &(flux[2]))}}, dx, dtau, strt_comp_reflux, strt_comp_reflux, num_comp_reflux, RunOn::Device); } + + // This is necessary here so we don't go on to the next FArrayBox without + // having finished copying the fluxes into the FluxRegisters (since the fluxes + // are stored in temporary FArrayBox's) + Gpu::streamSynchronize(); + } // two-way coupling } // mfi } // OMP diff --git a/Source/TimeIntegration/ERF_fast_rhs_T.cpp b/Source/TimeIntegration/ERF_fast_rhs_T.cpp index 3ed41fff4..929660abf 100644 --- a/Source/TimeIntegration/ERF_fast_rhs_T.cpp +++ b/Source/TimeIntegration/ERF_fast_rhs_T.cpp @@ -689,6 +689,12 @@ void erf_fast_rhs_T (int step, int nrk, {{AMREX_D_DECL(&(flux[0]), &(flux[1]), &(flux[2]))}}, dx, dtau, strt_comp_reflux, strt_comp_reflux, num_comp_reflux, RunOn::Device); } + + // This is necessary here so we don't go on to the next FArrayBox without + // having finished copying the fluxes into the FluxRegisters (since the fluxes + // are stored in temporary FArrayBox's) + Gpu::streamSynchronize(); + } // two-way coupling } // mfi } // OMP diff --git a/Source/TimeIntegration/ERF_slow_rhs_post.cpp b/Source/TimeIntegration/ERF_slow_rhs_post.cpp index 7e8538ff9..959b4cac1 100644 --- a/Source/TimeIntegration/ERF_slow_rhs_post.cpp +++ b/Source/TimeIntegration/ERF_slow_rhs_post.cpp @@ -545,6 +545,12 @@ void erf_slow_rhs_post (int level, int finest_level, {{AMREX_D_DECL(&(flux[0]), &(flux[1]), &(flux[2]))}}, dx, dt, strt_comp_reflux, strt_comp_reflux, num_comp_reflux, RunOn::Device); } + + // This is necessary here so we don't go on to the next FArrayBox without + // having finished copying the fluxes into the FluxRegisters (since the fluxes + // are stored in temporary FArrayBox's) + Gpu::streamSynchronize(); + } // two-way coupling } // end profile } // mfi diff --git a/Source/TimeIntegration/ERF_slow_rhs_pre.cpp b/Source/TimeIntegration/ERF_slow_rhs_pre.cpp index de218c81d..e8cf77717 100644 --- a/Source/TimeIntegration/ERF_slow_rhs_pre.cpp +++ b/Source/TimeIntegration/ERF_slow_rhs_pre.cpp @@ -764,6 +764,12 @@ if (cell_data(i,j,k,RhoTheta_comp) < 0.) printf("BAD THETA AT %d %d %d %e %e \n" {{AMREX_D_DECL(&(flux[0]), &(flux[1]), &(flux[2]))}}, dx, dt, strt_comp_reflux, strt_comp_reflux, num_comp_reflux, RunOn::Device); } + + // This is necessary here so we don't go on to the next FArrayBox without + // having finished copying the fluxes into the FluxRegisters (since the fluxes + // are stored in temporary FArrayBox's) + Gpu::streamSynchronize(); + } // two-way coupling } // end profile } // mfi