diff --git a/pygmx/mdtypes.pxd b/pygmx/mdtypes.pxd index ad8f997..50aaf4d 100644 --- a/pygmx/mdtypes.pxd +++ b/pygmx/mdtypes.pxd @@ -30,153 +30,164 @@ cdef extern from "gromacs/mdtypes/inputrec.h": pass ctypedef struct t_inputrec: - int eI # Integration method */ - int nsteps # number of steps to be taken */ - int simulation_part # Used in checkpointing to separate chunks */ - int init_step # start at a stepcount >0 (used w. convert-tpr) */ - int nstcalcenergy # frequency of energy calc. and T/P coupl. upd. */ - int cutoff_scheme # group or verlet cutoffs */ - int ns_type # which ns method should we use? */ - int nstlist # number of steps before pairlist is generated */ - int ndelta # number of cells per rlong */ - int nstcomm # number of steps after which center of mass */ - # motion is removed */ - int comm_mode # Center of mass motion removal algorithm */ - int nstlog # number of steps after which print to logfile */ - int nstxout # number of steps after which X is output */ - int nstvout # id. for V */ - int nstfout # id. for F */ - int nstenergy # number of steps after which energies printed */ - int nstxout_compressed # id. for compressed trj (.xtc,.tng) */ - double init_t # initial time (ps) */ - double delta_t # time step (ps) */ - double x_compression_precision # precision of x in compressed trajectory file */ - double fourier_spacing # requested fourier_spacing, when nk? not set */ - int nkx, nky, nkz # number of k vectors in each spatial dimension*/ - # for fourier methods for long range electrost.*/ - int pme_order # interpolation order for PME */ - double ewald_rtol # double space tolerance for Ewald, determines */ - # the double/reciprocal space relative weight */ - double ewald_rtol_lj # double space tolerance for LJ-Ewald */ - int ewald_geometry # normal/3d ewald, or pseudo-2d LR corrections */ - double epsilon_surface # Epsilon for PME dipole correction */ - int ljpme_combination_rule # Type of combination rule in LJ-PME */ - int ePBC # Type of periodic boundary conditions */ - int bPeriodicMols # Periodic molecules */ - bint bContinuation # Continuation run: starting state is correct */ - int etc # temperature coupling */ - int nsttcouple # interval in steps for temperature coupling */ - bint bPrintNHChains # whether to print nose-hoover chains */ - int epc # pressure coupling */ - int epct # pressure coupling type */ - int nstpcouple # interval in steps for pressure coupling */ - double tau_p # pressure coupling time (ps) */ - tensor ref_p # reference pressure (kJ/(mol nm^3)) */ - tensor compress # compressability ((mol nm^3)/kJ) */ - int refcoord_scaling # How to scale absolute reference coordinates */ - rvec posres_com # The COM of the posres atoms */ - rvec posres_comB # The B-state COM of the posres atoms */ - int andersen_seed # Random seed for Andersen thermostat (obsolete) */ - double verletbuf_tol # Per atom pair energy drift tolerance (kJ/mol/ps/atom) for list buffer */ - double rlist # short range pairlist cut-off (nm) */ - double rtpi # Radius for test particle insertion */ - int coulombtype # Type of electrostatics treatment */ - int coulomb_modifier # Modify the Coulomb interaction */ - double rcoulomb_switch # Coulomb switch range start (nm) */ - double rcoulomb # Coulomb cutoff (nm) */ - double epsilon_r # relative dielectric constant */ - double epsilon_rf # relative dielectric constant of the RF */ - int implicit_solvent # No (=explicit water), or GBSA solvent models */ - int gb_algorithm # Algorithm to use for calculation Born radii */ - int nstgbradii # Frequency of updating Generalized Born radii */ - double rgbradii # Cutoff for GB radii calculation */ - double gb_saltconc # Salt concentration (M) for GBSA models */ - double gb_epsilon_solvent # dielectric coeff. of implicit solvent */ - double gb_obc_alpha # 1st scaling factor for Bashford-Case GB */ - double gb_obc_beta # 2nd scaling factor for Bashford-Case GB */ - double gb_obc_gamma # 3rd scaling factor for Bashford-Case GB */ - double gb_dielectric_offset # Dielectric offset for Still/HCT/OBC */ - int sa_algorithm # Algorithm for SA part of GBSA */ - double sa_surface_tension # Energy factor for SA part of GBSA */ - int vdwtype # Type of Van der Waals treatment */ - int vdw_modifier # Modify the VdW interaction */ - double rvdw_switch # Van der Waals switch range start (nm) */ - double rvdw # Van der Waals cutoff (nm) */ - int eDispCorr # Perform Long range dispersion corrections */ - double tabext # Extension of the table beyond the cut-off, * - # * as well as the table length for 1-4 interac. */ - double shake_tol # tolerance for shake */ - int efep # free energy calculations */ - t_lambda *fepvals # Data for the FEP state */ - bint bSimTemp # Whether to do simulated tempering */ - t_simtemp *simtempvals # Variables for simulated tempering */ - bint bExpanded # Whether expanded ensembles are used */ - t_expanded *expandedvals # Expanded ensemble parameters */ - int eDisre # Type of distance restraining */ - double dr_fc # force constant for ta_disre */ - int eDisreWeighting # type of weighting of pairs in one restraints */ - bint bDisreMixed # Use comb of time averaged and instan. viol's */ - int nstdisreout # frequency of writing pair distances to enx */ - double dr_tau # time constant for memory function in disres */ - double orires_fc # force constant for orientational restraints */ - double orires_tau # time constant for memory function in orires */ - int nstorireout # frequency of writing tr(SD) to enx */ - double em_stepsize # The stepsize for updating */ - double em_tol # The tolerance */ - int niter # Number of iterations for convergence of */ - # steepest descent in relax_shells */ - double fc_stepsize # Stepsize for directional minimization */ - # in relax_shells */ - int nstcgsteep # number of steps after which a steepest */ - # descents step is done while doing cg */ - int nbfgscorr # Number of corrections to the hessian to keep */ - int eConstrAlg # Type of constraint algorithm */ - int nProjOrder # Order of the LINCS Projection Algorithm */ - double LincsWarnAngle # If bond rotates more than %g degrees, warn */ - int nLincsIter # Number of iterations in the final Lincs step */ - bint bShakeSOR # Use successive overrelaxation for shake */ - double bd_fric # Friction coefficient for BD (amu/ps) */ - int ld_seed # Random seed for SD and BD */ - int nwall # The number of walls */ - int wall_type # The type of walls */ - double wall_r_linpot # The potentail is linear for r<=wall_r_linpot */ - int wall_atomtype[2] # The atom type for walls */ - double wall_density[2] # Number density for walls */ - double wall_ewald_zfac # Scaling factor for the box for Ewald */ + # t_inputrec() + # explicit t_inputrec(const t_inputrec &) = delete + # t_inputrec &operator=(const t_inputrec &) = delete + # ~t_inputrec() + int eI # Integration method */ + gmx_int64_t nsteps # number of steps to be taken */ + int simulation_part # Used in checkpointing to separate chunks */ + gmx_int64_t init_step # start at a stepcount >0 (used w. convert-tpr) */ + int nstcalcenergy # frequency of energy calc. and T/P coupl. upd. */ + int cutoff_scheme # group or verlet cutoffs */ + int ns_type # which ns method should we use? */ + int nstlist # number of steps before pairlist is generated */ + int ndelta # number of cells per rlong */ + int nstcomm # number of steps after which center of mass */ + # motion is removed */ + int comm_mode # Center of mass motion removal algorithm */ + int nstlog # number of steps after which print to logfile */ + int nstxout # number of steps after which X is output */ + int nstvout # id. for V */ + int nstfout # id. for F */ + int nstenergy # number of steps after which energies printed */ + int nstxout_compressed # id. for compressed trj (.xtc,.tng) */ + double init_t # initial time (ps) */ + double delta_t # time step (ps) */ + real x_compression_precision # precision of x in compressed trajectory file */ + real fourier_spacing # requested fourier_spacing, when nk? not set */ + int nkx, nky, nkz # number of k vectors in each spatial dimension*/ + # for fourier methods for long range electrost.*/ + int pme_order # interpolation order for PME */ + real ewald_rtol # Real space tolerance for Ewald, determines */ + # the real/reciprocal space relative weight */ + real ewald_rtol_lj # Real space tolerance for LJ-Ewald */ + int ewald_geometry # normal/3d ewald, or pseudo-2d LR corrections */ + real epsilon_surface # Epsilon for PME dipole correction */ + int ljpme_combination_rule # Type of combination rule in LJ-PME */ + int ePBC # Type of periodic boundary conditions */ + int bPeriodicMols # Periodic molecules */ + gmx_bool bContinuation # Continuation run: starting state is correct */ + int etc # temperature coupling */ + int nsttcouple # interval in steps for temperature coupling */ + gmx_bool bPrintNHChains # whether to print nose-hoover chains */ + int epc # pressure coupling */ + int epct # pressure coupling type */ + int nstpcouple # interval in steps for pressure coupling */ + real tau_p # pressure coupling time (ps) */ + tensor ref_p # reference pressure (kJ/(mol nm^3)) */ + tensor compress # compressability ((mol nm^3)/kJ) */ + int refcoord_scaling # How to scale absolute reference coordinates */ + rvec posres_com # The COM of the posres atoms */ + rvec posres_comB # The B-state COM of the posres atoms */ + int andersen_seed # Random seed for Andersen thermostat (obsolete) */ + real verletbuf_tol # Per atom pair energy drift tolerance (kJ/mol/ps/atom) for list buffer */ + real rlist # short range pairlist cut-off (nm) */ + real rtpi # Radius for test particle insertion */ + int coulombtype # Type of electrostatics treatment */ + int coulomb_modifier # Modify the Coulomb interaction */ + real rcoulomb_switch # Coulomb switch range start (nm) */ + real rcoulomb # Coulomb cutoff (nm) */ + real epsilon_r # relative dielectric constant */ + real epsilon_rf # relative dielectric constant of the RF */ + int implicit_solvent # No (=explicit water), or GBSA solvent models */ + int gb_algorithm # Algorithm to use for calculation Born radii */ + int nstgbradii # Frequency of updating Generalized Born radii */ + real rgbradii # Cutoff for GB radii calculation */ + real gb_saltconc # Salt concentration (M) for GBSA models */ + real gb_epsilon_solvent # dielectric coeff. of implicit solvent */ + real gb_obc_alpha # 1st scaling factor for Bashford-Case GB */ + real gb_obc_beta # 2nd scaling factor for Bashford-Case GB */ + real gb_obc_gamma # 3rd scaling factor for Bashford-Case GB */ + real gb_dielectric_offset # Dielectric offset for Still/HCT/OBC */ + int sa_algorithm # Algorithm for SA part of GBSA */ + real sa_surface_tension # Energy factor for SA part of GBSA */ + int vdwtype # Type of Van der Waals treatment */ + int vdw_modifier # Modify the VdW interaction */ + real rvdw_switch # Van der Waals switch range start (nm) */ + real rvdw # Van der Waals cutoff (nm) */ + int eDispCorr # Perform Long range dispersion corrections */ + real tabext # Extension of the table beyond the cut-off, * + # * as well as the table length for 1-4 interac. */ + real shake_tol # tolerance for shake */ + int efep # free energy calculations */ + t_lambda *fepvals # Data for the FEP state */ + gmx_bool bSimTemp # Whether to do simulated tempering */ + t_simtemp *simtempvals # Variables for simulated tempering */ + gmx_bool bExpanded # Whether expanded ensembles are used */ + t_expanded *expandedvals # Expanded ensemble parameters */ + int eDisre # Type of distance restraining */ + real dr_fc # force constant for ta_disre */ + int eDisreWeighting # type of weighting of pairs in one restraints */ + gmx_bool bDisreMixed # Use comb of time averaged and instan. viol's */ + int nstdisreout # frequency of writing pair distances to enx */ + real dr_tau # time constant for memory function in disres */ + real orires_fc # force constant for orientational restraints */ + real orires_tau # time constant for memory function in orires */ + int nstorireout # frequency of writing tr(SD) to enx */ + real em_stepsize # The stepsize for updating */ + real em_tol # The tolerance */ + int niter # Number of iterations for convergence of */ + # steepest descent in relax_shells */ + real fc_stepsize # Stepsize for directional minimization */ + # in relax_shells */ + int nstcgsteep # number of steps after which a steepest */ + # descents step is done while doing cg */ + int nbfgscorr # Number of corrections to the hessian to keep */ + int eConstrAlg # Type of constraint algorithm */ + int nProjOrder # Order of the LINCS Projection Algorithm */ + real LincsWarnAngle # If bond rotates more than %g degrees, warn */ + int nLincsIter # Number of iterations in the final Lincs step */ + gmx_bool bShakeSOR # Use successive overrelaxation for shake */ + real bd_fric # Friction coefficient for BD (amu/ps) */ + gmx_int64_t ld_seed # Random seed for SD and BD */ + int nwall # The number of walls */ + int wall_type # The type of walls */ + real wall_r_linpot # The potentail is linear for r<=wall_r_linpot */ + int wall_atomtype[2] # The atom type for walls */ + real wall_density[2] # Number density for walls */ + real wall_ewald_zfac # Scaling factor for the box for Ewald */ # COM pulling data */ - bint bPull # Do we do COM pulling? */ - #struct pull_params_t *pull # The data for center of mass pulling */ - #struct pull_t *pull_work # The COM pull force calculation data structure TODO this pointer should live somewhere else */ + # gmx_bool bPull # Do we do COM pulling? */ + # struct pull_params_t *pull # The data for center of mass pulling */ + # TODO: Remove this by converting pull into a ForceProvider + # struct pull_t *pull_work # The COM pull force calculation data structure */ + + # AWH bias data */ + gmx_bool bDoAwh # Use awh biasing for PMF calculations? */ + # gmx::AwhParams *awhParams # AWH biasing parameters */ + # TODO: Remove this by converting AWH into a ForceProvider + # gmx::Awh *awh # AWH work object */ # Enforced rotation data */ - bint bRot # Calculate enforced rotation potential(s)? */ - t_rot *rot # The data for enforced rotation potentials */ + gmx_bool bRot # Calculate enforced rotation potential(s)? */ + t_rot *rot # The data for enforced rotation potentials */ - int eSwapCoords # Do ion/water position exchanges (CompEL)? */ - t_swapcoords *swap + int eSwapCoords # Do ion/water position exchanges (CompEL)? */ + t_swapcoords *swap - bint bIMD # Allow interactive MD sessions for this .tpr? */ - t_IMD *imd # Interactive molecular dynamics */ + gmx_bool bIMD # Allow interactive MD sessions for this .tpr? */ + t_IMD *imd # Interactive molecular dynamics */ - double cos_accel # Acceleration for viscosity calculation */ - tensor deform # Triclinic deformation velocities (nm/ps) */ - int userint1 # User determined parameters */ - int userint2 - int userint3 - int userint4 - double userdouble1 - double userdouble2 - double userdouble3 - double userdouble4 - t_grpopts opts # Group options */ - t_cosines ex[0] # Electric field stuff (spatial part) */ - t_cosines et[0] # Electric field stuff (time part) */ - bint bQMMM # QM/MM calculation */ - int QMconstraints # constraints on QM bonds */ - int QMMMscheme # Scheme: ONIOM or normal */ - double scalefactor # factor for scaling the MM charges in QM calc.*/ + real cos_accel # Acceleration for viscosity calculation */ + tensor deform # Triclinic deformation velocities (nm/ps) */ + int userint1 # User determined parameters */ + int userint2 + int userint3 + int userint4 + real userreal1 + real userreal2 + real userreal3 + real userreal4 + t_grpopts opts # Group options */ + gmx_bool bQMMM # QM/MM calculation */ + int QMconstraints # constraints on QM bonds */ + int QMMMscheme # Scheme: ONIOM or normal */ + real scalefactor # factor for scaling the MM charges in QM calc.*/ # Fields for removed features go here (better caching) */ - bint bAdress # Whether AdResS is enabled - always false if a valid .tpr was read - bint useTwinRange # Whether twin-range scheme is active - always false if a valid .tpr was read + gmx_bool bAdress # Whether AdResS is enabled - always false if a valid .tpr was read + gmx_bool useTwinRange # Whether twin-range scheme is active - always false if a valid .tpr was read + + # gmx::KeyValueTreeObject *params diff --git a/pygmx/topology.pxd b/pygmx/topology.pxd old mode 100644 new mode 100755 index f885a2b..a2eba49 --- a/pygmx/topology.pxd +++ b/pygmx/topology.pxd @@ -7,22 +7,22 @@ from mdtypes cimport * cdef extern from "gromacs/topology/atoms.h": ctypedef struct t_atom: - real m, q; # Mass and charge */ - real mB, qB; # Mass and charge for Free Energy calc */ - unsigned short type; # Atom type */ - unsigned short typeB; # Atom type for Free Energy calc */ - int ptype; # Particle type */ - int resind; # Index into resinfo (in t_atoms) */ - int atomnumber; # Atomic Number or 0 */ - char elem[4]; # Element name */ + real m, q # Mass and charge */ + real mB, qB # Mass and charge for Free Energy calc */ + unsigned short type # Atom type */ + unsigned short typeB # Atom type for Free Energy calc */ + int ptype # Particle type */ + int resind # Index into resinfo (in t_atoms) */ + int atomnumber # Atomic Number or 0 */ + char elem[4] # Element name */ ctypedef struct t_resinfo: - char **name; # Pointer to the residue name */ - int nr; # Residue number */ - unsigned char ic; # Code for insertion of residues */ - int chainnum; # Iincremented at TER or new chain id */ - char chainid; # Chain identifier written/read to pdb */ - char **rtp; # rtp building block name (optional) */ + char **name # Pointer to the residue name */ + int nr # Residue number */ + unsigned char ic # Code for insertion of residues */ + int chainnum # Iincremented at TER or new chain id */ + char chainid # Chain identifier written/read to pdb */ + char **rtp # rtp building block name (optional) */ ctypedef struct t_pdbinfo: pass @@ -46,8 +46,8 @@ cdef extern from "gromacs/topology/atoms.h": pass ctypedef struct t_grps: - int nr; # Number of different groups */ - int *nm_ind; # Index in the group names */ + int nr # Number of different groups */ + int *nm_ind # Index in the group names */ #ctypedef t_atoms *t_atoms_ptr @@ -57,7 +57,10 @@ cdef extern from "gromacs/topology/symtab.h": cdef extern from "gromacs/topology/block.h": ctypedef struct t_block: - pass + int nr #/* The number of blocks */ + int *index #/* Array of indices (dim: nr+1) */ + int nalloc_index #/* The allocation size for index */ + ctypedef struct t_blocka: pass @@ -65,8 +68,8 @@ cdef extern from "gromacs/topology/idef.h": ctypedef struct t_ilist: pass - cdef enum t_ft_enum: - F_LJ + #cdef enum t_ft_enum: + # F_LJ ctypedef union t_iparams: pass @@ -77,13 +80,13 @@ cdef extern from "gromacs/topology/idef.h": pass ctypedef struct gmx_ffparams_t: - int ntypes; - int atnr; - t_functype *functype; - t_iparams *iparams; - double reppow; # The repulsion power for VdW: C12*r^-reppow */ - real fudgeQQ; # The scaling factor for Coulomb 1-4: f*q1*q2 */ - gmx_cmap_t cmap_grid; # The dihedral correction maps */ + int ntypes + int atnr + t_functype *functype + t_iparams *iparams + double reppow # The repulsion power for VdW: C12*r^-reppow */ + real fudgeQQ # The scaling factor for Coulomb 1-4: f*q1*q2 */ + gmx_cmap_t cmap_grid # The dihedral correction maps */ void pr_ffparams(FILE *fp, int indent, const char *title, @@ -91,20 +94,26 @@ cdef extern from "gromacs/topology/idef.h": cdef extern from "gromacs/topology/topology.h": ctypedef struct gmx_moltype_t: - char **name; # Name of the molecule type */ - t_atoms atoms; # The atoms in this molecule */ - t_ilist ilist[0]; # Interaction list with local indices */ - t_block cgs; # The charge groups */ - t_blocka excls; # The exclusions */ + char **name # Name of the molecule type */ + t_atoms atoms # The atoms in this molecule */ + t_ilist ilist[0] # Interaction list with local indices */ + t_block cgs # The charge groups */ + t_blocka excls # The exclusions */ ctypedef struct gmx_molblock_t: - int type; # The molcule type index in mtop.moltype */ - int nmol; # The number of molecules in this block */ - int natoms_mol; # The number of atoms in one molecule */ - int nposres_xA; # The number of posres coords for top A */ - rvec *posres_xA; # The posres coords for top A */ - int nposres_xB; # The number of posres coords for top B */ - rvec *posres_xB; # The posres coords for top B */ + int type #*< The molecule type index in mtop.moltype */ + int nmol #*< The number of molecules in this block */ + int nposres_xA #*< The number of posres coords for top A */ + rvec *posres_xA #*< Position restraint coordinates for top A */ + int nposres_xB #*< The number of posres coords for top B */ + rvec *posres_xB #*< Position restraint coordinates for top B */ + + # Convenience information, derived from other gmx_mtop_t contents */ + int natoms_mol #*< The number of atoms in one molecule */ + int globalAtomStart #*< Global atom index of the first atom in the block */ + int globalAtomEnd #*< Global atom index + 1 of the last atom in the block */ + int globalResidueStart #*< Global residue index of the first residue in the block */ + int residueNumberStart #*< Residue numbers start from this value if the number of residues per molecule is <= maxres_renum */ ctypedef struct gmx_groups_t: pass @@ -115,24 +124,24 @@ cdef extern from "gromacs/topology/topology.h": # unsigned char *grpnr[0] # Group numbers or NULL */ ctypedef struct gmx_mtop_t: - char **name # Name of the topology */ + char **name # Name of the topology */ gmx_ffparams_t ffparams int nmoltype gmx_moltype_t *moltype int nmolblock gmx_molblock_t *molblock - bint bIntermolecularInteractions # Are there intermolecular - # interactions? */ - t_ilist *intermolecular_ilist # List of intermolecular interactions - # using system wide atom indices, - # either NULL or size F_NRE */ + gmx_bool bIntermolecularInteractions # Are there intermolecular + # * interactions? */ + t_ilist *intermolecular_ilist # List of intermolecular interactions + # * using system wide atom indices, + # * either NULL or size F_NRE */ int natoms - int maxres_renum # Parameter for residue numbering */ - int maxresnr # The maximum residue number in moltype */ - t_atomtypes atomtypes # Atomtype properties */ - t_block mols # The molecules */ + int maxres_renum # Parameter for residue numbering */ + int maxresnr # The maximum residue number in moltype */ + t_atomtypes atomtypes # Atomtype properties */ + t_block mols # The molecules */ gmx_groups_t groups - t_symtab symtab # The symbol table */ + t_symtab symtab # The symbol table */ # cdef extern from "gromacs/topology/topology.h": # generate a t_atoms struct for the system from gmx_mtop_t diff --git a/pygmx/tpxio.pyx b/pygmx/tpxio.pyx old mode 100644 new mode 100755 index c9fc226..facd13c --- a/pygmx/tpxio.pyx +++ b/pygmx/tpxio.pyx @@ -34,7 +34,6 @@ cdef extern from "gromacs/fileio/tpxio.h": int *natoms, rvec *x, rvec *v, - # rvec *f, gmx_mtop_t *mtop) @@ -89,11 +88,12 @@ cdef index_groups_from_topology(gmx_mtop_t *topology): cdef open_tpx(const char* filename, t_inputrec *ir, matrix box, int *natoms, gmx_mtop_t *top): - #cdef stdio.FILE *old_stderr = stdio.stderr - #stdio.stderr = stdio.freopen('tmp', 'w', stdio.stderr) + + # unterdrücke GMX output durch internen stderr buffer... cdef char buffer[stdio.BUFSIZ] stdio.setbuf(stdio.stderr, buffer) - return_code = read_tpx(filename, ir, box, natoms, NULL, NULL, top) + cdef rvec *x, *v + return_code = read_tpx(filename, ir, box, natoms, x, v, top) for i in range(stdio.BUFSIZ): buffer[i] = 0 @@ -194,29 +194,39 @@ cdef class TPXReader: types += mol_type * nmol return np.array(types) - @property - def nsteps(self): - return self.input_record.nsteps + property molecules: + "Get molecule indices from topology." + def __get__(self): + mols = [0] * self.n_atoms + molid = 0 + for i in range(self.topology.mols.nr): + molid += 1 + for j in range(self.topology.mols.index[i], self.topology.mols.index[i+1]): + mols[j] = molid + return mols + # @property + # def nsteps(self): + # return self.input_record.nsteps - @property - def nstxout(self): - return self.input_record.nstxout + # @property + # def nstxout(self): + # return self.input_record.nstxout - @property - def nstvout(self): - return self.input_record.nstvout + # @property + # def nstvout(self): + # return self.input_record.nstvout - @property - def nstfout(self): - return self.input_record.nstfout + # @property + # def nstfout(self): + # return self.input_record.nstfout - @property - def nstxout_compressed(self): - return self.input_record.nstxout_compressed + # @property + # def nstxout_compressed(self): + # return self.input_record.nstxout_compressed - @property - def nstenergy(self): - return self.input_record.nstenergy + # @property + # def nstenergy(self): + # return self.input_record.nstenergy def read_ff(self): @@ -235,7 +245,7 @@ cdef class TPXReader: # cdef np.ndarray[real, ndim=2] forces = np.empty((self.n_atoms, 3), dtype=np.float32) open_tpx( filename, - &self.input_record, + NULL, self.box, &self.n_atoms, &self.topology diff --git a/setup.py b/setup.py old mode 100644 new mode 100755 index 1026df1..a8c3736 --- a/setup.py +++ b/setup.py @@ -27,7 +27,7 @@ if 'gromacs' in os.environ.get('LD_LIBRARY_PATH', ''): if os.path.exists(include): include_dirs.append(include) check_header_version(include) - +# übergebe library_dirs, damit beim linken die richtige version gefunden wird extensions = [ Extension( 'pygmx.gromacs.coordinates',