Main Page | Class List | File List | Class Members | File Members

fselect.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2005-2006 by David J. Hardy.  All rights reserved.
00003  */
00004 
00018 #ifndef FSELECT_H
00019 #define FSELECT_H
00020 
00021 #include "mdapi/mdtypes.h"
00022 #include "force/fparam.h"
00023 
00024 #ifdef __cplusplus
00025 extern "C" {
00026 #endif
00027 
00028 
00036   typedef struct ForceSelect_t {
00037     int32 *bond_sel;
00039     int32 *angle_sel;
00041     int32 *dihed_sel;
00043     int32 *impr_sel;
00045     int32 *aset_sel;
00047     int32 *bset_sel;
00049     int32 *bres_sel;
00052     int32 bond_sel_len;
00054     int32 angle_sel_len;
00056     int32 dihed_sel_len;
00058     int32 impr_sel_len;
00060     int32 aset_sel_len;
00062     int32 bset_sel_len;
00064     int32 bres_sel_len;
00067     int32 self_alloc_sel;
00070   } ForceSelect;
00071 
00072 
00073   enum ForceSelectFlags_t {
00074     FORCE_SELECT_ALL = -1,
00076     FORCE_SELECT_NONE = 0,
00078     FORCE_SELECT_BOND  = 0x001,
00080     FORCE_SELECT_ANGLE = 0x002,
00082     FORCE_SELECT_DIHED = 0x004,
00084     FORCE_SELECT_IMPR  = 0x008,
00086     FORCE_SELECT_ASET  = 0x010,
00088     FORCE_SELECT_BSET  = 0x020,
00090     FORCE_SELECT_BRES  = 0x040,
00092     FORCE_SELECT_MASK  = 0x07f
00094   };
00095 
00096 
00151   ForceSelect *force_select_create(ForceParam *fprm,
00152       int32 *bond_sel, int32 bond_sel_len,
00153       int32 *angle_sel, int32 angle_sel_len,
00154       int32 *dihed_sel, int32 dihed_sel_len,
00155       int32 *impr_sel, int32 impr_sel_len,
00156       int32 *aset_sel, int32 aset_sel_len,
00157       int32 *bset_sel, int32 bset_sel_len,
00158       int32 *bres_sel, int32 bres_sel_len);
00159 
00165   void force_select_destroy(ForceSelect *);
00166 
00175   int force_select_initialize(ForceSelect *, ForceParam *fprm,
00176       int32 *bond_sel, int32 bond_sel_len,
00177       int32 *angle_sel, int32 angle_sel_len,
00178       int32 *dihed_sel, int32 dihed_sel_len,
00179       int32 *impr_sel, int32 impr_sel_len,
00180       int32 *aset_sel, int32 aset_sel_len,
00181       int32 *bset_sel, int32 bset_sel_len,
00182       int32 *bres_sel, int32 bres_sel_len);
00183 
00189   void force_select_cleanup(ForceSelect *);
00190 
00192   void force_select_reset_force(MD_Dvec f[], const int32 sel[], int32 len);
00193 
00195   void force_select_reset_potential(double e[], const int32 sel[], int32 len);
00196 
00197 #ifdef __cplusplus
00198 }
00199 #endif
00200 
00201 #endif /* FDOMAIN_H */

Generated on Thu Feb 7 18:11:40 2008 for MDX by  doxygen 1.3.9.1