This file is indexed.

/usr/include/gromacs/tpxio.h is in gromacs-dev 4.6.5-1build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
/*
 * This file is part of the GROMACS molecular simulation package.
 *
 * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
 * Copyright (c) 2001-2004, The GROMACS development team,
 * check out http://www.gromacs.org for more information.
 * Copyright (c) 2012,2013, by the GROMACS development team, led by
 * David van der Spoel, Berk Hess, Erik Lindahl, and including many
 * others, as listed in the AUTHORS file in the top-level source
 * directory and at http://www.gromacs.org.
 *
 * GROMACS is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public License
 * as published by the Free Software Foundation; either version 2.1
 * of the License, or (at your option) any later version.
 *
 * GROMACS is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with GROMACS; if not, see
 * http://www.gnu.org/licenses, or write to the Free Software Foundation,
 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
 *
 * If you want to redistribute modifications to GROMACS, please
 * consider that scientific software is very special. Version
 * control is crucial - bugs must be traceable. We will be happy to
 * consider code for inclusion in the official distribution, but
 * derived work must not be called official GROMACS. Details are found
 * in the README & COPYING files - if they are missing, get the
 * official version at http://www.gromacs.org.
 *
 * To help us fund GROMACS development, we humbly ask that you cite
 * the research papers on the package. Check out http://www.gromacs.org.
 */

#ifndef _tpxio_h
#define _tpxio_h


/**************************************************************
 *
 * The routines in the corresponding c-file tpxio.c
 * are based on the lower level routines in gmxfio.c
 * The integer file pointer returned from open_tpx
 * can also be used with the routines in gmxfio.h
 *
 **************************************************************/
#include "visibility.h"
#include "typedefs.h"
#include "gmxfio.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef struct
{
    int   bIr;       /* Non zero if input_rec is present		*/
    int   bBox;      /* Non zero if a box is present			*/
    int   bTop;      /* Non zero if a topology is present		*/
    int   bX;        /* Non zero if coordinates are present		*/
    int   bV;        /* Non zero if velocities are present		*/
    int   bF;        /* Non zero if forces are present		*/

    int   natoms;    /* The total number of atoms			*/
    int   ngtc;      /* The number of temperature coupling groups    */
    real  lambda;    /* Current value of lambda			*/
    int   fep_state; /* Current value of the alchemical state --
                      * not yet printed out.  */
    /*a better decision will eventually (5.0 or later) need to be made
       on how to treat the alchemical state of the system, which can now
       vary through a simulation, and cannot be completely described
       though a single lambda variable, or even a single state
       index. Eventually, should probably be a vector. MRS*/
} t_tpxheader;

/*
 * These routines handle reading and writing of preprocessed
 * topology files in any of the following formats:
 * TPR : topology in XDR format, portable accross platforms
 * TPB : binary topology, not portable accross platforms
 * TPA : ascii topology (possibbly huge)
 * TRR : trajectory in XDR format (non compressed)
 * TRJ : trajectory in binary format
 *
 * Files are written in the precision with which the source are compiled,
 * but double and single precision can be read by either.
 */

GMX_LIBGMX_EXPORT
t_fileio *open_tpx(const char *fn, const char *mode);
/* Return an file pointer corresponding to the file you have just opened */

GMX_LIBGMX_EXPORT
void close_tpx(t_fileio *fio);
/*  Close the file corresponding to fio */

GMX_LIBGMX_EXPORT
void read_tpxheader(const char *fn, t_tpxheader *tpx, gmx_bool TopOnlyOK,
                    int *version, int *generation);
/* Read the header from a tpx file and then close it again.
 * By setting TopOnlyOK to true, it is possible to read future
 * versions too (we skip the changed inputrec), provided we havent
 * changed the topology description. If it is possible to read
 * the inputrec it will still be done even if TopOnlyOK is TRUE.
 *
 * The version and generation if the topology (see top of tpxio.c)
 * are returned in the two last arguments.
 */

GMX_LIBGMX_EXPORT
void write_tpx_state(const char *fn,
                     t_inputrec *ir, t_state *state, gmx_mtop_t *mtop);
/* Write a file, and close it again.
 * If fn == NULL, an efTPA file will be written to stdout (which
 * will not be closed afterwards)
 */

GMX_LIBGMX_EXPORT
void read_tpx_state(const char *fn,
                    t_inputrec *ir, t_state *state, rvec *f,
                    gmx_mtop_t *mtop);
GMX_LIBGMX_EXPORT
int read_tpx(const char *fn,
             t_inputrec *ir, matrix box, int *natoms,
             rvec *x, rvec *v, rvec *f, gmx_mtop_t *mtop);
/* Read a file, and close it again.
 * If fn == NULL, an efTPA file will be read from stdin (which
 * will not be closed afterwards)
 * When step, t or lambda are NULL they will not be stored.
 * Returns ir->ePBC, if it could be read from the file.
 */

GMX_LIBGMX_EXPORT
int read_tpx_top(const char *fn,
                 t_inputrec *ir, matrix box, int *natoms,
                 rvec *x, rvec *v, rvec *f, t_topology *top);
/* As read_tpx, but for the old t_topology struct */

GMX_LIBGMX_EXPORT
gmx_bool fn2bTPX(const char *file);
/* return if *file is one of the TPX file types */

GMX_LIBGMX_EXPORT
gmx_bool read_tps_conf(const char *infile, char *title, t_topology *top,
                       int *ePBC, rvec **x, rvec **v, matrix box, gmx_bool bMass);
/* Read title, top.atoms, x, v (if not NULL) and box from an STX file,
 * memory for atoms, x and v will be allocated.
 * Return TRUE if a complete topology was read.
 * If infile is a TPX file read the whole top,
 * else if bMass=TRUE, read the masses into top.atoms from the mass database.
 */

void tpx_make_chain_identifiers(t_atoms *atoms, t_block *mols);

#ifdef __cplusplus
}
#endif

#endif