From 63b5e38adcc727a3d736df248b5856066f2dc30d Mon Sep 17 00:00:00 2001 From: Joe Jordan Date: Thu, 22 Apr 2021 13:19:47 +0000 Subject: [PATCH] Vectors in history_t --- src/gromacs/fileio/checkpoint.cpp | 17 ++--------------- src/gromacs/listed_forces/disre.cpp | 3 +-- src/gromacs/listed_forces/orires.cpp | 3 +-- src/gromacs/mdtypes/state.cpp | 10 +--------- src/gromacs/mdtypes/state.h | 10 ++++------ 5 files changed, 9 insertions(+), 34 deletions(-) diff --git a/src/gromacs/fileio/checkpoint.cpp b/src/gromacs/fileio/checkpoint.cpp index 0bb84ea803..5b7a215af7 100644 --- a/src/gromacs/fileio/checkpoint.cpp +++ b/src/gromacs/fileio/checkpoint.cpp @@ -947,17 +947,6 @@ static int do_cpte_reals(XDR* xd, Enum ecpt, int sflags, int n, real** v, FILE* xd, ecpt, sflags, n, nullptr, v, nullptr, list, CptElementType::real); } -/* This function does the same as do_cpte_reals, - * except that on reading it ignores the passed value of *n - * and stores the value read from the checkpoint file in *n. - */ -template -static int do_cpte_n_reals(XDR* xd, Enum ecpt, int sflags, int* n, real** v, FILE* list) -{ - return doVectorLow>( - xd, ecpt, sflags, -1, n, v, nullptr, list, CptElementType::real); -} - template static int do_cpte_real(XDR* xd, Enum ecpt, int sflags, real* r, FILE* list) { @@ -1425,15 +1414,13 @@ static int do_cpt_state(XDR* xd, int fflags, t_state* state, FILE* list) ret = do_cpte_real(xd, *i, sflags, &state->hist.disre_initf, list); break; case StateEntry::DisreRm3Tav: - ret = do_cpte_n_reals( - xd, *i, sflags, &state->hist.ndisrepairs, &state->hist.disre_rm3tav, list); + ret = doVector(xd, *i, sflags, &state->hist.disre_rm3tav, list); break; case StateEntry::OrireInitF: ret = do_cpte_real(xd, *i, sflags, &state->hist.orire_initf, list); break; case StateEntry::OrireDtav: - ret = do_cpte_n_reals( - xd, *i, sflags, &state->hist.norire_Dtav, &state->hist.orire_Dtav, list); + ret = doVector(xd, *i, sflags, &state->hist.orire_Dtav, list); break; case StateEntry::PullComPrevStep: ret = doVector(xd, *i, sflags, &state->pull_com_prev_step, list); diff --git a/src/gromacs/listed_forces/disre.cpp b/src/gromacs/listed_forces/disre.cpp index 981cbefa47..e22a49ba95 100644 --- a/src/gromacs/listed_forces/disre.cpp +++ b/src/gromacs/listed_forces/disre.cpp @@ -201,8 +201,7 @@ void init_disres(FILE* fplog, hist->disre_initf = 1.0; /* Allocate space for the r^-3 time averages */ state->flags |= enumValueToBitMask(StateEntry::DisreRm3Tav); - hist->ndisrepairs = dd->npair; - snew(hist->disre_rm3tav, hist->ndisrepairs); + hist->disre_rm3tav.resize(dd->npair); } /* Allocate space for a copy of rm3tav, * so we can call do_force without modifying the state. diff --git a/src/gromacs/listed_forces/orires.cpp b/src/gromacs/listed_forces/orires.cpp index 17bfa83b65..1ec9cef352 100644 --- a/src/gromacs/listed_forces/orires.cpp +++ b/src/gromacs/listed_forces/orires.cpp @@ -194,8 +194,7 @@ void init_orires(FILE* fplog, globalState->flags |= enumValueToBitMask(StateEntry::OrireInitF); globalState->hist.orire_initf = 1; globalState->flags |= enumValueToBitMask(StateEntry::OrireDtav); - globalState->hist.norire_Dtav = od->nr * 5; - snew(globalState->hist.orire_Dtav, globalState->hist.norire_Dtav); + globalState->hist.orire_Dtav.resize(od->nr * 5); } snew(od->oinsl, od->nr); diff --git a/src/gromacs/mdtypes/state.cpp b/src/gromacs/mdtypes/state.cpp index 4722245ff8..9cca0564a9 100644 --- a/src/gromacs/mdtypes/state.cpp +++ b/src/gromacs/mdtypes/state.cpp @@ -65,15 +65,7 @@ /* The source code in this file should be thread-safe. Please keep it that way. */ -history_t::history_t() : - disre_initf(0), - ndisrepairs(0), - disre_rm3tav(nullptr), - orire_initf(0), - norire_Dtav(0), - orire_Dtav(nullptr) -{ -} +history_t::history_t() : disre_initf(0), orire_initf(0) {} ekinstate_t::ekinstate_t() : bUpToDate(FALSE), diff --git a/src/gromacs/mdtypes/state.h b/src/gromacs/mdtypes/state.h index faa51d21a4..0dacb69dba 100644 --- a/src/gromacs/mdtypes/state.h +++ b/src/gromacs/mdtypes/state.h @@ -151,12 +151,10 @@ class history_t public: history_t(); - real disre_initf; //!< The scaling factor for initializing the time av. - int ndisrepairs; //!< The number of distance restraints - real* disre_rm3tav; //!< The r^-3 time averaged pair distances - real orire_initf; //!< The scaling factor for initializing the time av. - int norire_Dtav; //!< The number of matrix element in dtav (npair*5) - real* orire_Dtav; //!< The time averaged orientation tensors + real disre_initf; //!< The scaling factor for initializing the time av. + std::vector disre_rm3tav; //!< The r^-3 time averaged pair distances + real orire_initf; //!< The scaling factor for initializing the time av. + std::vector orire_Dtav; //!< The time averaged orientation tensors }; /*! \libinternal \brief Struct used for checkpointing only -- 2.22.0