Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

Timestep.h

Go to the documentation of this file.
00001 /***************************************************************************
00002 *cr 
00003 *cr (C) Copyright 1995-2019 The Board of Trustees of the 
00004 *cr University of Illinois 
00005 *cr All Rights Reserved 
00006 *cr 
00007 ***************************************************************************/
00008 
00009 /***************************************************************************
00010 * RCS INFORMATION:
00011 *
00012 * $RCSfile: Timestep.h,v $
00013 * $Author: johns $ $Locker: $ $State: Exp $
00014 * $Revision: 1.53 $ $Date: 2019年01月17日 21:21:02 $
00015 *
00016 ***************************************************************************
00017 * DESCRIPTION:
00018 *
00019 * The Timestep class, which stores coordinates, energies, etc. for a
00020 * single timestep.
00021 *
00022 * Note: As more data is stored for each step, it should go in here. For
00023 * example, H-Bonds could be calculated each step.
00024 ***************************************************************************/
00025 #ifndef TIMESTEP_H
00026 #define TIMESTEP_H
00027 
00028 #include "ResizeArray.h"
00029 #include "Matrix4.h"
00030 #include "QMTimestep.h"
00031 
00032 // Energy terms and temperature stored for each timestep
00033 // TSENERGIES must be the last element. It indicates the number
00034 // energies. (TSE_TOTAL is the total energy). If you add fields here
00035 // you should also add the lines in MolInfo.C so you can get access to
00036 // the fields from Tcl.
00037 enum { TSE_BOND, TSE_ANGLE, TSE_DIHE, TSE_IMPR, TSE_VDW, TSE_COUL,
00038 TSE_HBOND, TSE_KE, TSE_PE, TSE_TEMP, TSE_TOTAL, TSE_VOLUME,
00039 TSE_PRESSURE, TSE_EFIELD, TSE_UREY_BRADLEY, TSE_RESTRAINT,
00040 TSENERGIES};
00041 
00043 class Timestep {
00044 public:
00045 int num; 
00046 int page_align_sz; 
00047 float *pos; 
00048 float *pos_ptr; 
00049 float *vel; 
00050 float *force; 
00051 float *user; 
00052 float *user2; 
00053 float *user3; 
00054 float *user4; 
00055 QMTimestep *qm_timestep; 
00056 float energy[TSENERGIES]; 
00057 int timesteps; 
00058 double physical_time; 
00059 
00061 float a_length, b_length, c_length, alpha, beta, gamma;
00062 
00064 void get_transform_vectors(float v1[3], float v2[3], float v3[3]) const;
00065 
00067 void get_transforms(Matrix4 &a, Matrix4 &b, Matrix4 &c) const;
00068 
00071 void get_transform_from_cell(const int *cell, Matrix4 &trans) const;
00072 
00073 Timestep(int n, int pagealignsz=1); 
00074 Timestep(const Timestep& ts); 
00075 ~Timestep(void); 
00076 
00077 void zero_values(); 
00078 };
00079 
00080 #endif
00081 

Generated on Mon Nov 17 02:47:18 2025 for VMD (current) by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002

AltStyle によって変換されたページ (->オリジナル) /