TNG API  1.8.2
A flexible binary trajectory format
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
tng_io.h File Reference

API for input and output of tng trajectory files. More...

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include "tng_io_fwd.h"
#include <stdint.h>

Go to the source code of this file.

Data Structures

union  data_values
 

Macros

#define __PRI64_PREFIX   "ll"
 
#define __PRIPTR_PREFIX
 
#define PRId64   __PRI64_PREFIX "d"
 
#define PRIu64   __PRI64_PREFIX "u"
 
#define PRIuPTR   __PRIPTR_PREFIX "u"
 
#define DECLSPECDLLEXPORT
 
#define TNG_FRAME_DEPENDENT   1
 
#define TNG_PARTICLE_DEPENDENT   2
 
#define TNG_MAX_DATE_STR_LEN   24
 
#define TNG_MD5_HASH_LEN   16
 
#define TNG_MAX_STR_LEN   1024
 
#define TNG_ASSERT(cnd, msg)   if(!(cnd)) {printf("%s\n", msg); assert(cnd);}
 
#define TNG_GENERAL_INFO   0x0000000000000000LL
 
#define TNG_MOLECULES   0x0000000000000001LL
 
#define TNG_TRAJECTORY_FRAME_SET   0x0000000000000002LL
 
#define TNG_PARTICLE_MAPPING   0x0000000000000003LL
 
#define TNG_TRAJ_BOX_SHAPE   0x0000000010000000LL
 
#define TNG_TRAJ_POSITIONS   0x0000000010000001LL
 
#define TNG_TRAJ_VELOCITIES   0x0000000010000002LL
 
#define TNG_TRAJ_FORCES   0x0000000010000003LL
 
#define TNG_TRAJ_PARTIAL_CHARGES   0x0000000010000004LL
 
#define TNG_TRAJ_FORMAL_CHARGES   0x0000000010000005LL
 
#define TNG_TRAJ_B_FACTORS   0x0000000010000006LL
 
#define TNG_TRAJ_ANISOTROPIC_B_FACTORS   0x0000000010000007LL
 
#define TNG_TRAJ_OCCUPANCY   0x0000000010000008LL
 
#define TNG_TRAJ_GENERAL_COMMENTS   0x0000000010000009LL
 
#define TNG_TRAJ_MASSES   0x0000000010000010LL
 
#define TNG_GMX_LAMBDA   0x1000000010000000LL
 
#define TNG_GMX_ENERGY_ANGLE   0x1000000010000001LL
 
#define TNG_GMX_ENERGY_RYCKAERT_BELL   0x1000000010000002LL
 
#define TNG_GMX_ENERGY_LJ_14   0x1000000010000003LL
 
#define TNG_GMX_ENERGY_COULOMB_14   0x1000000010000004LL
 
#define TNG_GMX_ENERGY_COUL_RECIP   0x1000000010000007LL
 
#define TNG_GMX_ENERGY_POTENTIAL   0x1000000010000008LL
 
#define TNG_GMX_ENERGY_KINETIC_EN   0x1000000010000009LL
 
#define TNG_GMX_ENERGY_TOTAL_ENERGY   0x1000000010000010LL
 
#define TNG_GMX_ENERGY_TEMPERATURE   0x1000000010000011LL
 
#define TNG_GMX_ENERGY_PRESSURE   0x1000000010000012LL
 
#define TNG_GMX_ENERGY_CONSTR_RMSD   0x1000000010000013LL
 
#define TNG_GMX_ENERGY_CONSTR2_RMSD   0x1000000010000014LL
 
#define TNG_GMX_ENERGY_BOX_X   0x1000000010000015LL
 
#define TNG_GMX_ENERGY_BOX_Y   0x1000000010000016LL
 
#define TNG_GMX_ENERGY_BOX_Z   0x1000000010000017LL
 
#define TNG_GMX_ENERGY_BOXXX   0x1000000010000018LL
 
#define TNG_GMX_ENERGY_BOXYY   0x1000000010000019LL
 
#define TNG_GMX_ENERGY_BOXZZ   0x1000000010000020LL
 
#define TNG_GMX_ENERGY_BOXYX   0x1000000010000021LL
 
#define TNG_GMX_ENERGY_BOXZX   0x1000000010000022LL
 
#define TNG_GMX_ENERGY_BOXZY   0x1000000010000023LL
 
#define TNG_GMX_ENERGY_BOXVELXX   0x1000000010000024LL
 
#define TNG_GMX_ENERGY_BOXVELYY   0x1000000010000025LL
 
#define TNG_GMX_ENERGY_BOXVELZZ   0x1000000010000026LL
 
#define TNG_GMX_ENERGY_BOXVELYX   0x1000000010000027LL
 
#define TNG_GMX_ENERGY_BOXVELZX   0x1000000010000028LL
 
#define TNG_GMX_ENERGY_BOXVELZY   0x1000000010000029LL
 
#define TNG_GMX_ENERGY_VOLUME   0x1000000010000030LL
 
#define TNG_GMX_ENERGY_DENSITY   0x1000000010000031LL
 
#define TNG_GMX_ENERGY_PV   0x1000000010000032LL
 
#define TNG_GMX_ENERGY_ENTHALPY   0x1000000010000033LL
 
#define TNG_GMX_ENERGY_VIR_XX   0x1000000010000034LL
 
#define TNG_GMX_ENERGY_VIR_XY   0x1000000010000035LL
 
#define TNG_GMX_ENERGY_VIR_XZ   0x1000000010000036LL
 
#define TNG_GMX_ENERGY_VIR_YX   0x1000000010000037LL
 
#define TNG_GMX_ENERGY_VIR_YY   0x1000000010000038LL
 
#define TNG_GMX_ENERGY_VIR_YZ   0x1000000010000039LL
 
#define TNG_GMX_ENERGY_VIR_ZX   0x1000000010000040LL
 
#define TNG_GMX_ENERGY_VIR_ZY   0x1000000010000041LL
 
#define TNG_GMX_ENERGY_VIR_ZZ   0x1000000010000042LL
 
#define TNG_GMX_ENERGY_SHAKEVIR_XX   0x1000000010000043LL
 
#define TNG_GMX_ENERGY_SHAKEVIR_XY   0x1000000010000044LL
 
#define TNG_GMX_ENERGY_SHAKEVIR_XZ   0x1000000010000045LL
 
#define TNG_GMX_ENERGY_SHAKEVIR_YX   0x1000000010000046LL
 
#define TNG_GMX_ENERGY_SHAKEVIR_YY   0x1000000010000047LL
 
#define TNG_GMX_ENERGY_SHAKEVIR_YZ   0x1000000010000048LL
 
#define TNG_GMX_ENERGY_SHAKEVIR_ZX   0x1000000010000049LL
 
#define TNG_GMX_ENERGY_SHAKEVIR_ZY   0x1000000010000050LL
 
#define TNG_GMX_ENERGY_SHAKEVIR_ZZ   0x1000000010000051LL
 
#define TNG_GMX_ENERGY_FORCEVIR_XX   0x1000000010000052LL
 
#define TNG_GMX_ENERGY_FORCEVIR_XY   0x1000000010000053LL
 
#define TNG_GMX_ENERGY_FORCEVIR_XZ   0x1000000010000054LL
 
#define TNG_GMX_ENERGY_FORCEVIR_YX   0x1000000010000055LL
 
#define TNG_GMX_ENERGY_FORCEVIR_YY   0x1000000010000056LL
 
#define TNG_GMX_ENERGY_FORCEVIR_YZ   0x1000000010000057LL
 
#define TNG_GMX_ENERGY_FORCEVIR_ZX   0x1000000010000058LL
 
#define TNG_GMX_ENERGY_FORCEVIR_ZY   0x1000000010000059LL
 
#define TNG_GMX_ENERGY_FORCEVIR_ZZ   0x1000000010000060LL
 
#define TNG_GMX_ENERGY_PRES_XX   0x1000000010000061LL
 
#define TNG_GMX_ENERGY_PRES_XY   0x1000000010000062LL
 
#define TNG_GMX_ENERGY_PRES_XZ   0x1000000010000063LL
 
#define TNG_GMX_ENERGY_PRES_YX   0x1000000010000064LL
 
#define TNG_GMX_ENERGY_PRES_YY   0x1000000010000065LL
 
#define TNG_GMX_ENERGY_PRES_YZ   0x1000000010000066LL
 
#define TNG_GMX_ENERGY_PRES_ZX   0x1000000010000067LL
 
#define TNG_GMX_ENERGY_PRES_ZY   0x1000000010000068LL
 
#define TNG_GMX_ENERGY_PRES_ZZ   0x1000000010000069LL
 
#define TNG_GMX_ENERGY_SURFXSURFTEN   0x1000000010000070LL
 
#define TNG_GMX_ENERGY_MUX   0x1000000010000071LL
 
#define TNG_GMX_ENERGY_MUY   0x1000000010000072LL
 
#define TNG_GMX_ENERGY_MUZ   0x1000000010000073LL
 
#define TNG_GMX_ENERGY_VCOS   0x1000000010000074LL
 
#define TNG_GMX_ENERGY_VISC   0x1000000010000075LL
 
#define TNG_GMX_ENERGY_BAROSTAT   0x1000000010000076LL
 
#define TNG_GMX_ENERGY_T_SYSTEM   0x1000000010000077LL
 
#define TNG_GMX_ENERGY_LAMB_SYSTEM   0x1000000010000078LL
 
#define TNG_GMX_SELECTION_GROUP_NAMES   0x1000000010000079LL
 
#define TNG_GMX_ATOM_SELECTION_GROUP   0x1000000010000080LL
 

Enumerations

enum  tng_file_endianness { TNG_BIG_ENDIAN, TNG_LITTLE_ENDIAN }
 
enum  tng_endianness_32 { TNG_BIG_ENDIAN_32, TNG_LITTLE_ENDIAN_32, TNG_BYTE_PAIR_SWAP_32 }
 
enum  tng_endianness_64 {
  TNG_BIG_ENDIAN_64, TNG_LITTLE_ENDIAN_64, TNG_QUAD_SWAP_64, TNG_BYTE_PAIR_SWAP_64,
  TNG_BYTE_SWAP_64
}
 
enum  tng_compression { TNG_UNCOMPRESSED, TNG_XTC_COMPRESSION, TNG_TNG_COMPRESSION, TNG_GZIP_COMPRESSION }
 
enum  tng_hash_type { TNG_NO_HASH, TNG_MD5, TNG_SHA256 }
 
enum  tng_block_type { TNG_NON_TRAJECTORY_BLOCK, TNG_TRAJECTORY_BLOCK }
 
enum  tng_particle_dependency { TNG_NON_PARTICLE_BLOCK_DATA, TNG_PARTICLE_BLOCK_DATA }
 
enum  tng_bool { TNG_FALSE, TNG_TRUE }
 
enum  tng_variable_n_atoms_flag { TNG_CONSTANT_N_ATOMS, TNG_VARIABLE_N_ATOMS }
 
enum  tng_function_status { TNG_SUCCESS, TNG_FAILURE, TNG_CRITICAL }
 
enum  tng_hash_mode { TNG_SKIP_HASH, TNG_USE_HASH }
 
enum  tng_data_type { TNG_CHAR_DATA, TNG_INT_DATA, TNG_FLOAT_DATA, TNG_DOUBLE_DATA }
 

Functions

tng_function_status
DECLSPECDLLEXPORT 
tng_version_major (const tng_trajectory_t tng_data, int *version)
 Get the major version of the TNG library. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_version_minor (const tng_trajectory_t tng_data, int *version)
 Get the minor version of the TNG library. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_version_patchlevel (const tng_trajectory_t tng_data, int *patch_level)
 Get the patch level of the TNG library. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_version (const tng_trajectory_t tng_data, char *version, const int max_len)
 Get the full version string of the TNG library. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_trajectory_init (tng_trajectory_t *tng_data_p)
 Setup a trajectory data container. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_trajectory_destroy (tng_trajectory_t *tng_data_p)
 Clean up a trajectory data container. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_trajectory_init_from_src (const tng_trajectory_t src, tng_trajectory_t *dest_p)
 Copy a trajectory data container (dest is setup as well). More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_input_file_get (const tng_trajectory_t tng_data, char *file_name, const int max_len)
 Get the name of the input file. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_input_file_set (const tng_trajectory_t tng_data, const char *file_name)
 Set the name of the input file. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_output_file_get (const tng_trajectory_t tng_data, char *file_name, const int max_len)
 Get the name of the output file. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_output_file_set (const tng_trajectory_t tng_data, const char *file_name)
 Set the name of the output file. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_output_append_file_set (const tng_trajectory_t tng_data, const char *file_name)
 Set the name of the output file for appending. The output file will not be overwritten. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_output_file_endianness_get (const tng_trajectory_t tng_data, tng_file_endianness *endianness)
 Get the endianness of the output file. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_output_file_endianness_set (const tng_trajectory_t tng_data, const tng_file_endianness endianness)
 Set the endianness of the output file. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_first_program_name_get (const tng_trajectory_t tng_data, char *name, const int max_len)
 Get the name of the program used when creating the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_first_program_name_set (const tng_trajectory_t tng_data, const char *new_name)
 Set the name of the program used when creating the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_last_program_name_get (const tng_trajectory_t tng_data, char *name, const int max_len)
 Get the name of the program used when last modifying the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_last_program_name_set (const tng_trajectory_t tng_data, const char *new_name)
 Set the name of the program used when last modifying the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_first_user_name_get (const tng_trajectory_t tng_data, char *name, const int max_len)
 Get the name of the user who created the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_first_user_name_set (const tng_trajectory_t tng_data, const char *new_name)
 Set the name of the user who created the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_last_user_name_get (const tng_trajectory_t tng_data, char *name, const int max_len)
 Get the name of the user who last modified the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_last_user_name_set (const tng_trajectory_t tng_data, const char *new_name)
 Set the name of the user who last modified the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_first_computer_name_get (const tng_trajectory_t tng_data, char *name, const int max_len)
 Get the name of the computer used when creating the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_first_computer_name_set (const tng_trajectory_t tng_data, const char *new_name)
 Set the name of the computer used when creating the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_last_computer_name_get (const tng_trajectory_t tng_data, char *name, const int max_len)
 Get the name of the computer used when last modifying the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_last_computer_name_set (const tng_trajectory_t tng_data, const char *new_name)
 Set the name of the computer used when last modifying the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_first_signature_get (const tng_trajectory_t tng_data, char *signature, const int max_len)
 Get the pgp_signature of the user creating the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_first_signature_set (const tng_trajectory_t tng_data, const char *signature)
 Set the pgp_signature of the user creating the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_last_signature_get (const tng_trajectory_t tng_data, char *signature, const int max_len)
 Get the pgp_signature of the user last modifying the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_last_signature_set (const tng_trajectory_t tng_data, const char *signature)
 Set the pgp_signature of the user last modifying the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_forcefield_name_get (const tng_trajectory_t tng_data, char *name, const int max_len)
 Get the name of the forcefield used in the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_forcefield_name_set (const tng_trajectory_t tng_data, const char *new_name)
 Set the name of the forcefield used in the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_medium_stride_length_get (const tng_trajectory_t tng_data, int64_t *len)
 Get the medium stride length of the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_medium_stride_length_set (const tng_trajectory_t tng_data, const int64_t len)
 Set the medium stride length of the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_long_stride_length_get (const tng_trajectory_t tng_data, int64_t *len)
 Get the long stride length of the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_long_stride_length_set (const tng_trajectory_t tng_data, const int64_t len)
 Set the long stride length of the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_time_per_frame_get (const tng_trajectory_t tng_data, double *time)
 Get the current time per frame of the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_time_per_frame_set (const tng_trajectory_t tng_data, const double time)
 Set the time per frame of the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_input_file_len_get (const tng_trajectory_t tng_data, int64_t *len)
 Get the length of the input file. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_num_frames_get (const tng_trajectory_t tng_data, int64_t *n)
 Get the number of frames in the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_compression_precision_get (const tng_trajectory_t tng_data, double *precision)
 Get the precision of lossy compression. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_compression_precision_set (const tng_trajectory_t tng_data, const double precision)
 Set the precision of lossy compression. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_implicit_num_particles_set (const tng_trajectory_t tng_data, const int64_t n)
 Set the number of particles, in the case no molecular system is used. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_num_particles_get (const tng_trajectory_t tng_data, int64_t *n)
 Get the current number of particles. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_num_particles_variable_get (const tng_trajectory_t tng_data, char *variable)
 Get if the number of particle can be varied during the simulation. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_num_molecule_types_get (const tng_trajectory_t tng_data, int64_t *n)
 Get the number of molecule types (length of tng_data->molecules). More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_num_molecules_get (const tng_trajectory_t tng_data, int64_t *n)
 Get the current total number of molecules. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_cnt_list_get (const tng_trajectory_t tng_data, int64_t **mol_cnt_list)
 Get the list of the count of each molecule. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_distance_unit_exponential_get (const tng_trajectory_t tng_data, int64_t *exp)
 Get the exponent used for distances in the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_distance_unit_exponential_set (const tng_trajectory_t tng_data, const int64_t exp)
 Set the exponent used for distances in the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_num_frames_per_frame_set_get (const tng_trajectory_t tng_data, int64_t *n)
 Get the number of frames per frame set. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_num_frames_per_frame_set_set (const tng_trajectory_t tng_data, const int64_t n)
 Set the number of frames per frame set. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_num_frame_sets_get (const tng_trajectory_t tng_data, int64_t *n)
 Get the number of frame sets. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_current_frame_set_get (const tng_trajectory_t tng_data, tng_trajectory_frame_set_t *frame_set_p)
 Get the current trajectory frame set. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_frame_set_nr_find (const tng_trajectory_t tng_data, const int64_t nr)
 Find the requested frame set number. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_frame_set_of_frame_find (const tng_trajectory_t tng_data, const int64_t frame)
 Find the frame set containing a specific frame. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_frame_set_next_frame_set_file_pos_get (const tng_trajectory_t tng_data, const tng_trajectory_frame_set_t frame_set, int64_t *pos)
 Get the file position of the next frame set in the input file. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_frame_set_prev_frame_set_file_pos_get (const tng_trajectory_t tng_data, const tng_trajectory_frame_set_t frame_set, int64_t *pos)
 Get the file position of the previous frame set in the input file. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_frame_set_frame_range_get (const tng_trajectory_t tng_data, const tng_trajectory_frame_set_t frame_set, int64_t *first_frame, int64_t *last_frame)
 Get the first and last frames of the frame set. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_alloc (const tng_trajectory_t tng_data, tng_molecule_t *molecule_p)
 Allocate memory for and setup a molecule container. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_free (const tng_trajectory_t tng_data, tng_molecule_t *molecule_p)
 Clean up a molecule container and free its allocated memory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_init (const tng_trajectory_t tng_data, const tng_molecule_t molecule)
 Setup a molecule container. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_destroy (const tng_trajectory_t tng_data, const tng_molecule_t molecule)
 Clean up a molecule container. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_add (const tng_trajectory_t tng_data, const char *name, tng_molecule_t *molecule)
 Add a molecule to the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_w_id_add (const tng_trajectory_t tng_data, const char *name, const int64_t id, tng_molecule_t *molecule)
 Add a molecule with a specific ID to the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_existing_add (const tng_trajectory_t tng_data, tng_molecule_t *molecule)
 Add an existing molecule (from a molecule container) to the trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_name_get (const tng_trajectory_t tng_data, const tng_molecule_t molecule, char *name, const int max_len)
 Get the name of a molecule. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_name_set (const tng_trajectory_t tng_data, const tng_molecule_t molecule, const char *new_name)
 Set the name of a molecule. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_cnt_get (const tng_trajectory_t tng_data, const tng_molecule_t molecule, int64_t *cnt)
 Get the count of a molecule. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_cnt_set (const tng_trajectory_t tng_data, const tng_molecule_t molecule, const int64_t cnt)
 Set the count of a molecule. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_find (const tng_trajectory_t tng_data, const char *name, const int64_t id, tng_molecule_t *molecule)
 Find a molecule. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_of_index_get (const tng_trajectory_t tng_data, const int64_t index, tng_molecule_t *molecule)
 Retrieve the molecule with specified index in the list of molecules. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_system_copy (const tng_trajectory_t tng_data_src, const tng_trajectory_t tng_data_dest)
 Copy all molecules and the molecule counts from one TNG trajectory to another. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_num_chains_get (const tng_trajectory_t tng_data, const tng_molecule_t molecule, int64_t *n)
 Get the number of chains in a molecule. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_chain_of_index_get (const tng_trajectory_t tng_data, const tng_molecule_t molecule, const int64_t index, tng_chain_t *chain)
 Retrieve the chain of a molecule with specified index in the list of chains. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_num_residues_get (const tng_trajectory_t tng_data, const tng_molecule_t molecule, int64_t *n)
 Get the number of residues in a molecule. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_residue_of_index_get (const tng_trajectory_t tng_data, const tng_molecule_t molecule, const int64_t index, tng_residue_t *residue)
 Retrieve the residue of a molecule with specified index in the list of chains. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_num_atoms_get (const tng_trajectory_t tng_data, const tng_molecule_t molecule, int64_t *n)
 Get the number of atoms in a molecule. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_atom_of_index_get (const tng_trajectory_t tng_data, const tng_molecule_t molecule, const int64_t index, tng_atom_t *atom)
 Retrieve the atom of a molecule with specified index in the list of atoms. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_chain_find (const tng_trajectory_t tng_data, const tng_molecule_t molecule, const char *name, const int64_t id, tng_chain_t *chain)
 Find a chain in a molecule. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_chain_add (const tng_trajectory_t tng_data, const tng_molecule_t molecule, const char *name, tng_chain_t *chain)
 Add a chain to a molecule. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_chain_w_id_add (const tng_trajectory_t tng_data, const tng_molecule_t molecule, const char *name, const int64_t id, tng_chain_t *chain)
 Add a chain with a specific id to a molecule. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_bond_add (const tng_trajectory_t tng_data, const tng_molecule_t molecule, const int64_t from_atom_id, const int64_t to_atom_id, tng_bond_t *bond)
 Add a bond between two atoms to a molecule. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_atom_find (const tng_trajectory_t tng_data, const tng_molecule_t molecule, const char *name, const int64_t id, tng_atom_t *atom)
 Find an atom in a molecule. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_chain_name_get (const tng_trajectory_t tng_data, const tng_chain_t chain, char *name, const int max_len)
 Get the name of a chain. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_chain_name_set (const tng_trajectory_t tng_data, const tng_chain_t chain, const char *new_name)
 Set the name of a chain. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_chain_num_residues_get (const tng_trajectory_t tng_data, const tng_chain_t chain, int64_t *n)
 Get the number of residues in a molecule chain. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_chain_residue_of_index_get (const tng_trajectory_t tng_data, const tng_chain_t chain, const int64_t index, tng_residue_t *residue)
 Retrieve the residue of a chain with specified index in the list of residues. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_chain_residue_find (const tng_trajectory_t tng_data, const tng_chain_t chain, const char *name, const int64_t id, tng_residue_t *residue)
 Find a residue in a chain. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_chain_residue_add (const tng_trajectory_t tng_data, const tng_chain_t chain, const char *name, tng_residue_t *residue)
 Add a residue to a chain. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_chain_residue_w_id_add (const tng_trajectory_t tng_data, const tng_chain_t chain, const char *name, const int64_t id, tng_residue_t *residue)
 Add a residue with a specific ID to a chain. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_residue_name_get (const tng_trajectory_t tng_data, const tng_residue_t residue, char *name, const int max_len)
 Get the name of a residue. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_residue_name_set (const tng_trajectory_t tng_data, const tng_residue_t residue, const char *new_name)
 Set the name of a residue. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_residue_num_atoms_get (const tng_trajectory_t tng_data, const tng_residue_t residue, int64_t *n)
 Get the number of atoms in a residue. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_residue_atom_of_index_get (const tng_trajectory_t tng_data, const tng_residue_t residue, const int64_t index, tng_atom_t *atom)
 Retrieve the atom of a residue with specified index in the list of atoms. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_residue_atom_add (const tng_trajectory_t tng_data, const tng_residue_t residue, const char *atom_name, const char *atom_type, tng_atom_t *atom)
 Add an atom to a residue. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_residue_atom_w_id_add (const tng_trajectory_t tng_data, const tng_residue_t residue, const char *atom_name, const char *atom_type, const int64_t id, tng_atom_t *atom)
 Add an atom with a specific ID to a residue. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_atom_residue_get (const tng_trajectory_t tng_data, const tng_atom_t atom, tng_residue_t *residue)
 Get the residue of an atom. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_atom_name_get (const tng_trajectory_t tng_data, const tng_atom_t atom, char *name, const int max_len)
 Get the name of an atom. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_atom_name_set (const tng_trajectory_t tng_data, const tng_atom_t atom, const char *new_name)
 Set the name of an atom. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_atom_type_get (const tng_trajectory_t tng_data, const tng_atom_t atom, char *type, const int max_len)
 Get the type of an atom. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_atom_type_set (const tng_trajectory_t tng_data, const tng_atom_t atom, const char *new_type)
 Set the atom type of an atom. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_name_of_particle_nr_get (const tng_trajectory_t tng_data, const int64_t nr, char *name, const int max_len)
 Get the molecule name of real particle number (number in mol system). More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molecule_id_of_particle_nr_get (const tng_trajectory_t tng_data, const int64_t nr, int64_t *id)
 Get the molecule id of real particle number (number in mol system). More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_molsystem_bonds_get (const tng_trajectory_t tng_data, int64_t *n_bonds, int64_t **from_atoms, int64_t **to_atoms)
 Get the bonds of the current molecular system. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_chain_name_of_particle_nr_get (const tng_trajectory_t tng_data, const int64_t nr, char *name, const int max_len)
 Get the chain name of real particle number (number in mol system). More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_residue_name_of_particle_nr_get (const tng_trajectory_t tng_data, const int64_t nr, char *name, const int max_len)
 Get the residue name of real particle number (number in mol system). More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_residue_id_of_particle_nr_get (const tng_trajectory_t tng_data, const int64_t nr, int64_t *id)
 Get the residue id (local to molecule) of real particle number (number in mol system). More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_global_residue_id_of_particle_nr_get (const tng_trajectory_t tng_data, const int64_t nr, int64_t *id)
 Get the residue id (based on other molecules and molecule counts) of real particle number (number in mol system). More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_atom_name_of_particle_nr_get (const tng_trajectory_t tng_data, const int64_t nr, char *name, const int max_len)
 Get the atom name of real particle number (number in mol system). More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_atom_type_of_particle_nr_get (const tng_trajectory_t tng_data, const int64_t nr, char *type, const int max_len)
 Get the atom type of real particle number (number in mol system). More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_particle_mapping_add (const tng_trajectory_t tng_data, const int64_t num_first_particle, const int64_t n_particles, const int64_t *mapping_table)
 Add a particle mapping table. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_frame_set_particle_mapping_free (const tng_trajectory_t tng_data)
 Remove all particle mappings (in memory) from the current frame set. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_file_headers_read (const tng_trajectory_t tng_data, const char hash_mode)
 Read the header blocks from the input_file of tng_data. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_file_headers_write (const tng_trajectory_t tng_data, const char hash_mode)
 Write the header blocks to the output_file of tng_data. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_block_read_next (const tng_trajectory_t tng_data, const tng_gen_block_t block_data, const char hash_mode)
 Read one (the next) block (of any kind) from the input_file of tng_data. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_frame_set_read (const tng_trajectory_t tng_data, const char hash_mode)
 Read one frame set, including all particle mapping blocks and data blocks, starting from the current file position. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_frame_set_read_current_only_data_from_block_id (const tng_trajectory_t tng_data, const char hash_mode, const int64_t block_id)
 Read data from the current frame set from the input_file. Only read particle mapping and data blocks matching the specified block_id. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_frame_set_read_next (const tng_trajectory_t tng_data, const char hash_mode)
 Read one (the next) frame set, including particle mapping and related data blocks from the input_file of tng_data. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_frame_set_read_next_only_data_from_block_id (const tng_trajectory_t tng_data, const char hash_mode, const int64_t block_id)
 Read one (the next) frame set, including particle mapping and data blocks with a specific block id from the input_file of tng_data. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_frame_set_write (const tng_trajectory_t tng_data, const char hash_mode)
 Write one frame set, including mapping and related data blocks to the output_file of tng_data. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_frame_set_premature_write (const tng_trajectory_t tng_data, const char hash_mode)
 Write one frame set even if it does not have as many frames as expected. The function also writes mapping and related data blocks to the output_file of tng_data. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_frame_set_new (const tng_trajectory_t tng_data, const int64_t first_frame, const int64_t n_frames)
 Create and initialise a frame set. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_frame_set_with_time_new (const tng_trajectory_t tng_data, const int64_t first_frame, const int64_t n_frames, const double first_frame_time)
 Create and initialise a frame set with the time of the first frame specified. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_frame_set_first_frame_time_set (const tng_trajectory_t tng_data, const double first_frame_time)
 Set the time stamp of the first frame of the current frame set. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_first_frame_nr_of_next_frame_set_get (const tng_trajectory_t tng_data, int64_t *frame)
 Read the number of the first frame of the next frame set. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_data_block_add (const tng_trajectory_t tng_data, const int64_t id, const char *block_name, const char datatype, const char block_type_flag, int64_t n_frames, const int64_t n_values_per_frame, int64_t stride_length, const int64_t codec_id, void *new_data)
 Add a non-particle dependent data block. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_particle_data_block_add (const tng_trajectory_t tng_data, const int64_t id, const char *block_name, const char datatype, const char block_type_flag, int64_t n_frames, const int64_t n_values_per_frame, int64_t stride_length, const int64_t num_first_particle, const int64_t n_particles, const int64_t codec_id, void *new_data)
 Add a particle dependent data block. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_data_block_name_get (const tng_trajectory_t tng_data, const int64_t block_id, char *name, const int max_len)
 Get the name of a data block of a specific ID. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_data_block_dependency_get (const tng_trajectory_t tng_data, const int64_t block_id, int *block_dependency)
 Get the dependency of a data block of a specific ID. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_data_block_num_values_per_frame_get (const tng_trajectory_t tng_data, const int64_t block_id, int64_t *n_values_per_frame)
 Get the number of values per frame of a data block of a specific ID. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_frame_data_write (const tng_trajectory_t tng_data, const int64_t frame_nr, const int64_t block_id, const void *values, const char hash_mode)
 Write data of one trajectory frame to the output_file of tng_data. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_frame_particle_data_write (const tng_trajectory_t tng_data, const int64_t frame_nr, const int64_t block_id, const int64_t val_first_particle, const int64_t val_n_particles, const void *values, const char hash_mode)
 Write particle data of one trajectory frame to the output_file of tng_data. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_data_values_free (const tng_trajectory_t tng_data, union data_values **values, const int64_t n_frames, const int64_t n_values_per_frame, const char type)
 Free data of an array of values (2D). More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_particle_data_values_free (const tng_trajectory_t tng_data, union data_values ***values, const int64_t n_frames, const int64_t n_particles, const int64_t n_values_per_frame, const char type)
 Free data of an array of values (3D). More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_data_get (const tng_trajectory_t tng_data, const int64_t block_id, union data_values ***values, int64_t *n_frames, int64_t *n_values_per_frame, char *type)
 Retrieve non-particle data, from the last read frame set. Obsolete! More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_data_vector_get (const tng_trajectory_t tng_data, const int64_t block_id, void **values, int64_t *n_frames, int64_t *stride_length, int64_t *n_values_per_frame, char *type)
 Retrieve a vector (1D array) of non-particle data, from the last read frame set. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_data_interval_get (const tng_trajectory_t tng_data, const int64_t block_id, const int64_t start_frame_nr, const int64_t end_frame_nr, const char hash_mode, union data_values ***values, int64_t *n_values_per_frame, char *type)
 Read and retrieve non-particle data, in a specific interval. Obsolete! More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_data_vector_interval_get (const tng_trajectory_t tng_data, const int64_t block_id, const int64_t start_frame_nr, const int64_t end_frame_nr, const char hash_mode, void **values, int64_t *stride_length, int64_t *n_values_per_frame, char *type)
 Read and retrieve a vector (1D array) of non-particle data, in a specific interval. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_particle_data_get (const tng_trajectory_t tng_data, const int64_t block_id, union data_values ****values, int64_t *n_frames, int64_t *n_particles, int64_t *n_values_per_frame, char *type)
 Retrieve particle data, from the last read frame set. Obsolete! More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_particle_data_vector_get (const tng_trajectory_t tng_data, const int64_t block_id, void **values, int64_t *n_frames, int64_t *stride_length, int64_t *n_particles, int64_t *n_values_per_frame, char *type)
 Retrieve a vector (1D array) of particle data, from the last read frame set. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_particle_data_interval_get (const tng_trajectory_t tng_data, const int64_t block_id, const int64_t start_frame_nr, const int64_t end_frame_nr, const char hash_mode, union data_values ****values, int64_t *n_particles, int64_t *n_values_per_frame, char *type)
 Read and retrieve particle data, in a specific interval. Obsolete! More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_particle_data_vector_interval_get (const tng_trajectory_t tng_data, const int64_t block_id, const int64_t start_frame_nr, const int64_t end_frame_nr, const char hash_mode, void **values, int64_t *n_particles, int64_t *stride_length, int64_t *n_values_per_frame, char *type)
 Read and retrieve a vector (1D array) particle data, in a specific interval. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_data_get_stride_length (const tng_trajectory_t tng_data, const int64_t block_id, int64_t frame, int64_t *stride_length)
 Get the stride length of a specific data (particle dependency does not matter) block, either in the current frame set or of a specific frame. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_time_get_str (const tng_trajectory_t tng_data, char *time)
 Get the date and time of initial file creation in ISO format (string). More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_trajectory_open (const char *filename, const char mode, tng_trajectory_t *tng_data_p)
 High-level function for opening and initializing a TNG trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_trajectory_close (tng_trajectory_t *tng_data_p)
 High-level function for closing a TNG trajectory. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_time_of_frame_get (const tng_trajectory_t tng_data, const int64_t frame_nr, double *time)
 High-level function for getting the time (in seconds) of a frame. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_pos_read (const tng_trajectory_t tng_data, float **positions, int64_t *stride_length)
 High-level function for reading the positions of all particles from all frames. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_vel_read (const tng_trajectory_t tng_data, float **velocities, int64_t *stride_length)
 High-level function for reading the velocities of all particles from all frames. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_force_read (const tng_trajectory_t tng_data, float **forces, int64_t *stride_length)
 High-level function for reading the forces of all particles from all frames. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_box_shape_read (const tng_trajectory_t tng_data, float **box_shape, int64_t *stride_length)
 High-level function for reading the box shape from all frames. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_particle_data_next_frame_read (const tng_trajectory_t tng_data, const int64_t block_id, void **values, char *data_type, int64_t *retrieved_frame_number, double *retrieved_time)
 High-level function for reading the next frame of particle-dependent data of a specific type. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_non_particle_data_next_frame_read (const tng_trajectory_t tng_data, const int64_t block_id, void **values, char *data_type, int64_t *retrieved_frame_number, double *retrieved_time)
 High-level function for reading the next frame of non-particle-dependent data of a specific type. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_pos_read_range (const tng_trajectory_t tng_data, const int64_t first_frame, const int64_t last_frame, float **positions, int64_t *stride_length)
 High-level function for reading the positions of all particles from a specific range of frames. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_vel_read_range (const tng_trajectory_t tng_data, const int64_t first_frame, const int64_t last_frame, float **velocities, int64_t *stride_length)
 High-level function for reading the velocities of all particles from a specific range of frames. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_force_read_range (const tng_trajectory_t tng_data, const int64_t first_frame, const int64_t last_frame, float **forces, int64_t *stride_length)
 High-level function for reading the forces of all particles from a specific range of frames. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_box_shape_read_range (const tng_trajectory_t tng_data, const int64_t first_frame, const int64_t last_frame, float **box_shape, int64_t *stride_length)
 High-level function for reading the box shape from a specific range of frames. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_generic_write_interval_set (const tng_trajectory_t tng_data, const int64_t i, const int64_t n_values_per_frame, const int64_t block_id, const char *block_name, const char particle_dependency, const char compression)
 High-level function for setting the writing interval of data blocks. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_generic_write_interval_double_set (const tng_trajectory_t tng_data, const int64_t i, const int64_t n_values_per_frame, const int64_t block_id, const char *block_name, const char particle_dependency, const char compression)
 High-level function for setting the writing interval of data blocks containing double precision data. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_generic_write_frequency_set (const tng_trajectory_t tng_data, const int64_t i, const int64_t n_values_per_frame, const int64_t block_id, const char *block_name, const char particle_dependency, const char compression)
 High-level function for setting the writing interval of data blocks. Obsolete! Use tng_util_generic_write_interval_set() More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_pos_write_interval_set (const tng_trajectory_t tng_data, const int64_t i)
 High-level function for setting the writing interval of position data blocks. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_pos_write_interval_double_set (const tng_trajectory_t tng_data, const int64_t i)
 High-level function for setting the writing interval of position data blocks containing double precision data. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_pos_write_frequency_set (const tng_trajectory_t tng_data, const int64_t i)
 High-level function for setting the writing interval of position data blocks. Obsolete! Use tng_util_pos_write_interval_set() More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_vel_write_interval_set (const tng_trajectory_t tng_data, const int64_t i)
 High-level function for setting the writing interval of velocity data blocks. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_vel_write_interval_double_set (const tng_trajectory_t tng_data, const int64_t i)
 High-level function for setting the writing interval of velocity data blocks containing double precision data. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_vel_write_frequency_set (const tng_trajectory_t tng_data, const int64_t i)
 High-level function for setting the writing interval of velocity data blocks. Obsolete! Use tng_util_vel_write_interval_set() More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_force_write_interval_set (const tng_trajectory_t tng_data, const int64_t i)
 High-level function for setting the writing interval of force data blocks. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_force_write_interval_double_set (const tng_trajectory_t tng_data, const int64_t i)
 High-level function for setting the writing interval of force data blocks containing double precision data. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_force_write_frequency_set (const tng_trajectory_t tng_data, const int64_t i)
 High-level function for setting the writing interval of force data blocks. Obsolete! Use tng_util_force_write_interval_set() More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_box_shape_write_interval_set (const tng_trajectory_t tng_data, const int64_t i)
 High-level function for setting the writing interval of box shape data blocks. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_box_shape_write_interval_double_set (const tng_trajectory_t tng_data, const int64_t i)
 High-level function for setting the writing interval of box shape data blocks containing double precision data. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_box_shape_write_frequency_set (const tng_trajectory_t tng_data, const int64_t i)
 High-level function for setting the writing interval of velocity data blocks. Obsolete! Use tng_util_box_shape_write_interval_set() More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_generic_write (const tng_trajectory_t tng_data, const int64_t frame_nr, const float *values, const int64_t n_values_per_frame, const int64_t block_id, const char *block_name, const char particle_dependency, const char compression)
 High-level function for writing data of one frame to a data block. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_generic_double_write (const tng_trajectory_t tng_data, const int64_t frame_nr, const double *values, const int64_t n_values_per_frame, const int64_t block_id, const char *block_name, const char particle_dependency, const char compression)
 High-level function for writing data of one frame to a double precision data block. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_pos_write (const tng_trajectory_t tng_data, const int64_t frame_nr, const float *positions)
 High-level function for adding data to positions data blocks. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_pos_double_write (const tng_trajectory_t tng_data, const int64_t frame_nr, const double *positions)
 High-level function for adding data to positions data blocks at double precision. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_vel_write (const tng_trajectory_t tng_data, const int64_t frame_nr, const float *velocities)
 High-level function for adding data to velocities data blocks. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_vel_double_write (const tng_trajectory_t tng_data, const int64_t frame_nr, const double *velocities)
 High-level function for adding data to velocities data blocks at double precision. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_force_write (const tng_trajectory_t tng_data, const int64_t frame_nr, const float *forces)
 High-level function for adding data to forces data blocks. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_force_double_write (const tng_trajectory_t tng_data, const int64_t frame_nr, const double *forces)
 High-level function for adding data to forces data blocks at double precision. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_box_shape_write (const tng_trajectory_t tng_data, const int64_t frame_nr, const float *box_shape)
 High-level function for adding data to box shape data blocks. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_box_shape_double_write (const tng_trajectory_t tng_data, const int64_t frame_nr, const double *box_shape)
 High-level function for adding data to box shape data blocks at double precision. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_generic_with_time_write (const tng_trajectory_t tng_data, const int64_t frame_nr, const double time, const float *values, const int64_t n_values_per_frame, const int64_t block_id, const char *block_name, const char particle_dependency, const char compression)
 High-level function for writing data of one frame to a data block. If the frame is at the beginning of a frame set the time stamp of the frame set is set. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_generic_with_time_double_write (const tng_trajectory_t tng_data, const int64_t frame_nr, const double time, const double *values, const int64_t n_values_per_frame, const int64_t block_id, const char *block_name, const char particle_dependency, const char compression)
 High-level function for writing data of one frame to a double precision data block. If the frame is at the beginning of a frame set the time stamp of the frame set is set. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_pos_with_time_write (const tng_trajectory_t tng_data, const int64_t frame_nr, const double time, const float *positions)
 High-level function for adding data to positions data blocks. If the frame is at the beginning of a frame set the time stamp of the frame set is set. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_pos_with_time_double_write (const tng_trajectory_t tng_data, const int64_t frame_nr, const double time, const double *positions)
 High-level function for adding data to positions data blocks at double precision. If the frame is at the beginning of a frame set the time stamp of the frame set is set. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_vel_with_time_write (const tng_trajectory_t tng_data, const int64_t frame_nr, const double time, const float *velocities)
 High-level function for adding data to velocities data blocks. If the frame is at the beginning of a frame set the time stamp of the frame set is set. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_vel_with_time_double_write (const tng_trajectory_t tng_data, const int64_t frame_nr, const double time, const double *velocities)
 High-level function for adding data to velocities data blocks at double precision. If the frame is at the beginning of a frame set the time stamp of the frame set is set. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_force_with_time_write (const tng_trajectory_t tng_data, const int64_t frame_nr, const double time, const float *forces)
 High-level function for adding data to forces data blocks. If the frame is at the beginning of a frame set the time stamp of the frame set is set. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_force_with_time_double_write (const tng_trajectory_t tng_data, const int64_t frame_nr, const double time, const double *forces)
 High-level function for adding data to forces data blocks at double precision. If the frame is at the beginning of a frame set the time stamp of the frame set is set. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_box_shape_with_time_write (const tng_trajectory_t tng_data, const int64_t frame_nr, const double time, const float *box_shape)
 High-level function for adding data to box shape data blocks. If the frame is at the beginning of a frame set the time stamp of the frame set is set. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_box_shape_with_time_double_write (const tng_trajectory_t tng_data, const int64_t frame_nr, const double time, const double *box_shape)
 High-level function for adding data to box shape data blocks at double precision. If the frame is at the beginning of a frame set the time stamp of the frame set is set. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_frame_current_compression_get (const tng_trajectory_t tng_data, const int64_t block_id, int64_t *codec_id, double *factor)
 High-level function for getting the compression method and multiplication factor of the last read frame of a specific data block. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_trajectory_next_frame_present_data_blocks_find (const tng_trajectory_t tng_data, int64_t current_frame, const int64_t n_requested_data_block_ids, const int64_t *requested_data_block_ids, int64_t *next_frame, int64_t *n_data_blocks_in_next_frame, int64_t **data_block_ids_in_next_frame)
 High-level function for determining the next frame with data and what data blocks have data for that frame. The search can be limited to certain data blocks. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_prepare_append_after_frame (const tng_trajectory_t tng_data, const int64_t prev_frame)
 Finds the frame set of the specified frame in order to prepare for writing after it. More...
 
tng_function_status
DECLSPECDLLEXPORT 
tng_util_num_frames_with_data_of_block_id_get (const tng_trajectory_t tng_data, const int64_t block_id, int64_t *n_frames)
 Get the number of frames containing data of a specific type. More...
 

Detailed Description

API for input and output of tng trajectory files.

Macro Definition Documentation

#define __PRI64_PREFIX   "ll"
#define __PRIPTR_PREFIX
#define DECLSPECDLLEXPORT
#define PRId64   __PRI64_PREFIX "d"
#define PRIu64   __PRI64_PREFIX "u"
#define PRIuPTR   __PRIPTR_PREFIX "u"
#define TNG_ASSERT (   cnd,
  msg 
)    if(!(cnd)) {printf("%s\n", msg); assert(cnd);}
#define TNG_FRAME_DEPENDENT   1

Flag to indicate frame dependent data.

#define TNG_MAX_DATE_STR_LEN   24

The maximum length of a date string

#define TNG_MAX_STR_LEN   1024

The maximum allowed length of a string

#define TNG_MD5_HASH_LEN   16

The length of an MD5 hash

#define TNG_PARTICLE_DEPENDENT   2

Flag to indicate particle dependent data.

Enumeration Type Documentation

Non trajectory blocks come before the first frame set block

Enumerator
TNG_NON_TRAJECTORY_BLOCK 
TNG_TRAJECTORY_BLOCK 
enum tng_bool
Enumerator
TNG_FALSE 
TNG_TRUE 

Compression mode is specified in each data block

Enumerator
TNG_UNCOMPRESSED 
TNG_XTC_COMPRESSION 
TNG_TNG_COMPRESSION 
TNG_GZIP_COMPRESSION 

Possible formats of data block contents

Enumerator
TNG_CHAR_DATA 
TNG_INT_DATA 
TNG_FLOAT_DATA 
TNG_DOUBLE_DATA 

Flag to specify the endianness of 32 bit values of the current architecture.

Enumerator
TNG_BIG_ENDIAN_32 
TNG_LITTLE_ENDIAN_32 
TNG_BYTE_PAIR_SWAP_32 

Flag to specify the endianness of 64 bit values of the current architecture.

Enumerator
TNG_BIG_ENDIAN_64 
TNG_LITTLE_ENDIAN_64 
TNG_QUAD_SWAP_64 
TNG_BYTE_PAIR_SWAP_64 
TNG_BYTE_SWAP_64 

Flag to specify the endianness of a TNG file

Enumerator
TNG_BIG_ENDIAN 
TNG_LITTLE_ENDIAN 

Return values of API functions. TNG_SUCCESS means that the operation was successful. TNG_FAILURE means that the operation failed for some reason, but it is possible to try to continue anyhow. TNG_CRITICAL means that the error is irrecoverable.

Enumerator
TNG_SUCCESS 
TNG_FAILURE 
TNG_CRITICAL 

If tng_hash_mode == TNG_USE_HASH md5 hashes will be written to output files and when reading a file the md5 hashes of the contents will be compared to those in the file (for each block) in order to ensure data integrity

Enumerator
TNG_SKIP_HASH 
TNG_USE_HASH 

Hash types

Enumerator
TNG_NO_HASH 
TNG_MD5 
TNG_SHA256 

Flag to specify if a data block contains data related to particles or not.

Enumerator
TNG_NON_PARTICLE_BLOCK_DATA 
TNG_PARTICLE_BLOCK_DATA 

Flag to specify if the number of atoms change throughout the trajectory or if it is constant.

Enumerator
TNG_CONSTANT_N_ATOMS 
TNG_VARIABLE_N_ATOMS