Use std::vector in t_state
authorBerk Hess <hess@kth.se>
Tue, 6 Sep 2016 09:32:58 +0000 (11:32 +0200)
committerDavid van der Spoel <davidvanderspoel@gmail.com>
Thu, 29 Sep 2016 07:20:06 +0000 (09:20 +0200)
commit74474d6febb66c0834f1fd567c191e291950f7ae
tree48287cebe7e2b589d9a22655acd89000ab1c3668
parent611d79b4b28cb063bd8e7f4dae99470b9c13e674
Use std::vector in t_state

Changed x, v and cg_p pointers in t_state to PaddedRVecVector.
PaddedRVecVector is currently std::vector<RVec> and is always
sized with one element extra for 4-wide SIMD (gather) loads.
But this will be replaced by a proper class.
t_state is now freed by the default destructor with some issues:
* ekinstate_t is fully converted to std::vector in a child change
* state struct of special algorithms still need conversion

Changes to t_state propagate over large parts of the core code.
This change extracts rvec pointers at intermediate levels to
make this single change manageable.
The state in EM also needed to be updated, which led to a lot
of changes in minimize.cpp, especially to do_lbfgs() which was not
yet converted to use em_state_t.

Change-Id: Ib6ead1f13741ead8dbeeddd118ecdd4bf1cc6584
37 files changed:
src/gromacs/domdec/domdec.cpp
src/gromacs/domdec/domdec.h
src/gromacs/domdec/domdec_network.cpp
src/gromacs/domdec/domdec_network.h
src/gromacs/domdec/domdec_topology.cpp
src/gromacs/fileio/checkpoint.cpp
src/gromacs/fileio/tpxio.cpp
src/gromacs/gmxana/gmx_pme_error.cpp
src/gromacs/gmxpreprocess/grompp.cpp
src/gromacs/imd/imd.cpp
src/gromacs/mdlib/broadcaststructs.cpp
src/gromacs/mdlib/constr.cpp
src/gromacs/mdlib/coupling.cpp
src/gromacs/mdlib/force.cpp
src/gromacs/mdlib/force.h
src/gromacs/mdlib/md_support.cpp
src/gromacs/mdlib/md_support.h
src/gromacs/mdlib/mdoutf.cpp
src/gromacs/mdlib/mdoutf.h
src/gromacs/mdlib/minimize.cpp
src/gromacs/mdlib/shellfc.cpp
src/gromacs/mdlib/shellfc.h
src/gromacs/mdlib/sim_util.cpp
src/gromacs/mdlib/sim_util.h
src/gromacs/mdlib/tpi.cpp
src/gromacs/mdlib/trajectory_writing.cpp
src/gromacs/mdlib/trajectory_writing.h
src/gromacs/mdlib/update.cpp
src/gromacs/mdlib/update.h
src/gromacs/mdtypes/state.cpp
src/gromacs/mdtypes/state.h
src/gromacs/tools/convert_tpr.cpp
src/gromacs/tools/dump.cpp
src/programs/mdrun/md.cpp
src/programs/mdrun/membed.cpp
src/programs/mdrun/repl_ex.cpp
src/programs/mdrun/runner.cpp