Add TNG writing and reading support
authorMagnus Lundborg <lundborg.magnus@gmail.com>
Tue, 1 Oct 2013 08:11:00 +0000 (10:11 +0200)
committerMark Abraham <mark.j.abraham@gmail.com>
Mon, 20 Jan 2014 14:26:39 +0000 (15:26 +0100)
commit8fb4a92d7136a5d960f4be64e0c50bc039dc94d3
treeea8b453844b95eaa198cd737c3d262d142e7ae04
parenta94ba70bcc3eba560740ceaca4971e59f99c4a11
Add TNG writing and reading support

TNG is never read or written by default, but is available as
a trajectory format. The TNG repo is bundled in the GROMACS
source (commit 35827d2c19db8ad86690be32f33da7470abddf3d).

Tools such as trjconv, trjcat, gmxcheck and gmxdump have partial
support for TNG available. Full support for these tools (even only for
the subset of TNG features that GROMACS might want to use right now)
is currently difficult, because the code and data for existing
trajectory writing is a mess of excess functionality.  This will need
to be revisited when (at least) trjconv is broken up into more parts.

Writing with mdrun -x works (tests included)
Reading with mdrun -rerun works (tests included)
Reading and writing with trjconv works (tests included)
trjconv -n subsets work (tests included)

Reading works from e.g. dump, check, trjconv trjcat.
Writing works from e.g. mdrun trjconv, trjcat.
Some other tools seem to work as well, e.g., g_rms.

Reworked some integration test machinery to do more value-paramterized
tests.

Renamed status variable in gmx_trjconv.c to better reflect its usage
as an opaque trajectory-reading-management object.

Encapsulated gmx_mdoutf_t

Moved content of trajectory_writing_low_level.c to mdoutf.c

The Windows build with GMX_USE_TNG=ON is known to be broken with TNG
files.

Changed .mdp field and code variable names that were specific to XTC
to be more generic, now that there is more than one way to write a
trajectory file with lossy compression. Other associated documentation
updates also.

Change-Id: Ied156d8ad728711e08a0c61db5ee3472b0df39d5
205 files changed:
CMakeLists.txt
manual/algorithms.tex
share/html/links.dat
share/html/online/files.html
share/html/online/mdp.html
share/html/online/mdp_opt.html
share/html/online/tng.html [new file with mode: 0644]
src/config.h.cmakein
src/external/tng_io/AUTHORS [new file with mode: 0644]
src/external/tng_io/CMakeLists.txt [new file with mode: 0644]
src/external/tng_io/COPYING [new file with mode: 0644]
src/external/tng_io/Doxyfile.in [new file with mode: 0644]
src/external/tng_io/INSTALL [new file with mode: 0644]
src/external/tng_io/Trajectoryformatspecification.mk [new file with mode: 0644]
src/external/tng_io/example_files/tng_example.tng [new file with mode: 0644]
src/external/tng_io/include/compression/bwlzh.h [new file with mode: 0644]
src/external/tng_io/include/compression/bwt.h [new file with mode: 0644]
src/external/tng_io/include/compression/coder.h [new file with mode: 0644]
src/external/tng_io/include/compression/dict.h [new file with mode: 0644]
src/external/tng_io/include/compression/fixpoint.h [new file with mode: 0644]
src/external/tng_io/include/compression/huffman.h [new file with mode: 0644]
src/external/tng_io/include/compression/lz77.h [new file with mode: 0644]
src/external/tng_io/include/compression/merge_sort.h [new file with mode: 0644]
src/external/tng_io/include/compression/mtf.h [new file with mode: 0644]
src/external/tng_io/include/compression/my64bit.h [new file with mode: 0644]
src/external/tng_io/include/compression/rle.h [new file with mode: 0644]
src/external/tng_io/include/compression/tng_compress.h [new file with mode: 0644]
src/external/tng_io/include/compression/vals16.h [new file with mode: 0644]
src/external/tng_io/include/compression/warnmalloc.h [new file with mode: 0644]
src/external/tng_io/include/compression/widemuldiv.h [new file with mode: 0644]
src/external/tng_io/include/md5.h [new file with mode: 0644]
src/external/tng_io/include/tng_io.h [new file with mode: 0644]
src/external/tng_io/include/tng_io.hpp [new file with mode: 0644]
src/external/tng_io/include/tng_io_fwd.h [new file with mode: 0644]
src/external/tng_io/src/CMakeLists.txt [new file with mode: 0644]
src/external/tng_io/src/compression/CMakeLists.txt [new file with mode: 0644]
src/external/tng_io/src/compression/bwlzh.c [new file with mode: 0644]
src/external/tng_io/src/compression/bwt.c [new file with mode: 0644]
src/external/tng_io/src/compression/coder.c [new file with mode: 0644]
src/external/tng_io/src/compression/dict.c [new file with mode: 0644]
src/external/tng_io/src/compression/fixpoint.c [new file with mode: 0644]
src/external/tng_io/src/compression/huffman.c [new file with mode: 0644]
src/external/tng_io/src/compression/huffmem.c [new file with mode: 0644]
src/external/tng_io/src/compression/lz77.c [new file with mode: 0644]
src/external/tng_io/src/compression/merge_sort.c [new file with mode: 0644]
src/external/tng_io/src/compression/mtf.c [new file with mode: 0644]
src/external/tng_io/src/compression/rle.c [new file with mode: 0644]
src/external/tng_io/src/compression/tng_compress.c [new file with mode: 0644]
src/external/tng_io/src/compression/vals16.c [new file with mode: 0644]
src/external/tng_io/src/compression/warnmalloc.c [new file with mode: 0644]
src/external/tng_io/src/compression/widemuldiv.c [new file with mode: 0644]
src/external/tng_io/src/compression/xtc2.c [new file with mode: 0644]
src/external/tng_io/src/compression/xtc3.c [new file with mode: 0644]
src/external/tng_io/src/lib/CMakeLists.txt [new file with mode: 0644]
src/external/tng_io/src/lib/md5.c [new file with mode: 0644]
src/external/tng_io/src/lib/tng_io.c [new file with mode: 0644]
src/external/tng_io/src/lib/tng_io_fortran.c [new file with mode: 0644]
src/external/tng_io/src/tests/CMakeLists.txt [new file with mode: 0644]
src/external/tng_io/src/tests/compression/CMakeLists.txt [new file with mode: 0644]
src/external/tng_io/src/tests/compression/getfilesize.sh [new file with mode: 0755]
src/external/tng_io/src/tests/compression/test1.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test10.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test11.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test12.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test13.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test14.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test15.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test16.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test17.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test18.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test19.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test2.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test20.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test21.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test22.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test23.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test24.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test25.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test26.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test27.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test28.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test29.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test3.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test30.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test31.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test32.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test33.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test34.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test35.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test36.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test37.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test38.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test39.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test4.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test40.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test41.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test42.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test43.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test44.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test45.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test46.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test47.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test48.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test49.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test5.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test50.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test51.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test52.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test53.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test54.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test55.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test56.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test57.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test58.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test59.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test6.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test60.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test61.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test62.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test63.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test64.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test65.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test66.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test67.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test68.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test69.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test7.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test70.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test71.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test72.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test73.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test74.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test75.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test76.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test77.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test78.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test8.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test9.h [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test_tng_compress_read.bat [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test_tng_compress_read.sh [new file with mode: 0755]
src/external/tng_io/src/tests/compression/test_tng_compress_write.bat [new file with mode: 0644]
src/external/tng_io/src/tests/compression/test_tng_compress_write.sh [new file with mode: 0755]
src/external/tng_io/src/tests/compression/testsuite.c [new file with mode: 0644]
src/external/tng_io/src/tests/md_openmp.c [new file with mode: 0644]
src/external/tng_io/src/tests/md_openmp.f [new file with mode: 0644]
src/external/tng_io/src/tests/md_openmp_util.c [new file with mode: 0644]
src/external/tng_io/src/tests/tng_io_read_pos.c [new file with mode: 0644]
src/external/tng_io/src/tests/tng_io_read_pos_util.c [new file with mode: 0644]
src/external/tng_io/src/tests/tng_io_testing.c [new file with mode: 0644]
src/external/tng_io/src/tests/tng_parallel_read.c [new file with mode: 0644]
src/gromacs/CMakeLists.txt
src/gromacs/fileio/CMakeLists.txt
src/gromacs/fileio/filenm.c
src/gromacs/fileio/filenm.h
src/gromacs/fileio/gmxfio.c
src/gromacs/fileio/mdoutf.c
src/gromacs/fileio/mdoutf.h
src/gromacs/fileio/tests/CMakeLists.txt [new file with mode: 0644]
src/gromacs/fileio/tests/spc2-traj.tng [new file with mode: 0644]
src/gromacs/fileio/tests/tngio.cpp [new file with mode: 0644]
src/gromacs/fileio/tngio.cpp [new file with mode: 0644]
src/gromacs/fileio/tngio.h [new file with mode: 0644]
src/gromacs/fileio/tngio_for_tools.cpp [new file with mode: 0644]
src/gromacs/fileio/tngio_for_tools.h [new file with mode: 0644]
src/gromacs/fileio/tpxio.c
src/gromacs/fileio/trajectory_writing.c
src/gromacs/fileio/trajectory_writing.h
src/gromacs/fileio/trajectory_writing_low_level.c [deleted file]
src/gromacs/fileio/trxio.c
src/gromacs/fileio/trxio.h
src/gromacs/fileio/xtcio.c
src/gromacs/gmxana/gmx_clustsize.c
src/gromacs/gmxana/gmx_mindist.c
src/gromacs/gmxana/gmx_spatial.c
src/gromacs/gmxana/gmx_trjcat.c
src/gromacs/gmxana/gmx_trjconv.c
src/gromacs/gmxana/gmx_tune_pme.c
src/gromacs/gmxana/legacytests/gmx_traj_tests.cpp
src/gromacs/gmxana/legacytests/spc2-traj.tng [new file with mode: 0644]
src/gromacs/gmxana/legacytests/spc2.ndx [new file with mode: 0644]
src/gromacs/gmxlib/names.c
src/gromacs/gmxlib/txtdump.c
src/gromacs/gmxpreprocess/compute_io.c
src/gromacs/gmxpreprocess/readir.c
src/gromacs/legacyheaders/pme.h
src/gromacs/legacyheaders/sim_util.h
src/gromacs/legacyheaders/txtdump.h
src/gromacs/legacyheaders/types/inputrec.h
src/gromacs/legacyheaders/types/topology.h
src/gromacs/mdlib/minimize.c
src/gromacs/mdlib/sim_util.c
src/gromacs/tools/compare.c
src/gromacs/tools/dump.c
src/gromacs/tools/dump.h
src/programs/mdrun/md.c
src/programs/mdrun/mdrun.cpp
src/programs/mdrun/tests/CMakeLists.txt
src/programs/mdrun/tests/compressed_x_output.cpp [moved from src/programs/mdrun/tests/xtc_output.cpp with 81% similarity]
src/programs/mdrun/tests/moduletest.cpp
src/programs/mdrun/tests/moduletest.h
src/programs/mdrun/tests/rerun.cpp
src/programs/mdrun/tests/spc-and-methanol.gro [new file with mode: 0644]
src/programs/mdrun/tests/spc-and-methanol.ndx [new file with mode: 0644]
src/programs/mdrun/tests/spc-and-methanol.top [new file with mode: 0644]
src/programs/mdrun/tests/trajectory_writing.cpp [new file with mode: 0644]