Main Page   Modules   Compound List   File List   Compound Members   File Members  

macromolecule.h

Go to the documentation of this file.
00001 /* 
00002 // File:     macromolecule.h    < macromolecule.c >
00003 //
00004 // Purpose:  
00005 //    Definition of generic macromolecule class; interface should be generic
00006 //              as well, flexibility achieved by function pointers
00008 
00065 #ifndef _MACROMOLECULE_H_
00069 #define _MACROMOLECULE_H_ 1
00070 
00071 #include "maloc/maloc.h"
00072 #include "apbs/apbs.h"
00073 #include "isim/various.h"
00074 #include "isim/ionlist.h"
00075 #include "apbs/valist.h"
00076 #include "apbs/vatom.h"
00077 #include "apbs/vacc.h"
00078 #include "apbs/vpbe.h"
00079 #include "apbs/vopot.h"
00080 
00089 typedef struct macromolecule{
00090 
00091         
00092         double (*macromolecule_get_vol)(struct macromolecule *thee);                                                                                                                                                                    
00093         double (*macromolecule_get_steric)(struct macromolecule *thee, int types, ionlist *ions, char mode);                                                            
00094         double (*macromolecule_get_estatic)(struct macromolecule *thee, int types, ionlist *ions);                                                                                      
00095         double (*macromolecule_get_steric2)(struct macromolecule *thee, int types, ionlist *ions, char mode, double *coordsnew[]);      
00096         double (*macromolecule_get_estatic2)(struct macromolecule *thee, int types, ionlist *ions, double *coordsnew[]);                                
00097         double (*macromolecule_get_pot)(struct macromolecule *thee, double *point);                                                                                                                             
00098         double (*macromolecule_get_one_steric)(struct macromolecule *thee, ionlist *ions, int type, int pos, char mode);                                
00099         int (*macromolecule_is_at)(struct macromolecule *thee, double *xyz, double rad);                                                                                                                        
00100         void (*macromolecule_shift)(struct macromolecule *thee, double xshift, double yshift, double zshift);                                                           
00102         double (*macromolecule_maxradius)(struct macromolecule *thee);                                                                                                                                                                  
00105         double charge;                  
00106         double radius;                  
00107         double length;                  
00108         double volume;                  
00109         double center[3];               
00110         double** invrotmatrix; 
00111         double invshift[3];     
00112         double cylshift[3];     
00114         Valist *asatoms;                
00115         Valist *origatoms;      
00116         Vacc *access;                   
00118         Vgrid *orgrid;                  
00119         Vpbe *orams;                    
00120         Vopot *oracle;                  
00122         /*
00123         FILE *control;
00124         Vgrid *testgrid;
00125         Vopot *testoracle;
00126 
00127         double *gridxyz;
00128         int *gridinfo[11];
00129         int gridpoints;
00130         int res;
00131         double dr;
00132         double dphi;
00133         double dteta;*/
00134         /*
00135         int (*macromolecule_mmgrbuilder)(struct macromolecule *thee, double rad, double len, int res, int types);
00136         int (*macromolecule_get_gridpoints)(struct macromolecule *thee, int *vals, double *xyz);*/
00137         
00138 } macromolecule;
00139 
00140 
00141 #ifndef _MACROMOLECULE_INLINES_
00142 
00143 #else
00144 
00145 #endif /* ifndef _MACROMOLECULE_INLINES_ */
00146 
00155 macromolecule* macromolecule_ctor(char id);
00156 
00163 void macromolecule_dtor(macromolecule *thee, char id);
00164 
00171 double Born_vol(macromolecule *thee);
00172 
00181 int Born_is_at(macromolecule *thee, double *xyz, double rad);
00182 
00193 double Born_total_steric(macromolecule *thee, int types, ionlist *ions, char mode);
00194 
00209 double Born_total_steric2(macromolecule *thee, int types, ionlist *ions, char mode, double *coordsnew[]);
00210 
00222 double Born_one_steric(macromolecule *thee, ionlist *ions, int type, int pos, char mode);
00223 
00233 double Born_total_estatic(macromolecule *thee, int types, ionlist *ions);
00234 
00248 double Born_total_estatic2(macromolecule *thee, int types, ionlist *ions, double *coordsnew[]);
00249 
00258 double Born_point_pot(macromolecule *thee, double *point);
00259 
00272 void Born_reference(macromolecule *thee, ionlist *ions, int types, double rad, int res, double KB_T, double KB_T_IN_J);
00273 
00280 double PQR_vol(macromolecule *thee);
00281 
00290 int PQR_is_at(macromolecule *thee, double *xyz, double rad);
00291 
00300 void PQR_rotate(macromolecule *thee);
00301 
00312 double PQR_total_steric(macromolecule *thee, int types, ionlist *ions, char mode);
00313 
00328 double PQR_total_steric2(macromolecule *thee, int types, ionlist *ions, char mode, double *coordsnew[]);
00329 
00341 double PQR_one_steric(macromolecule *thee, ionlist *ions, int type, int pos, char mode);
00342 
00352 double PQR_total_estatic(macromolecule *thee, int types, ionlist *ions);
00353 
00367 double PQR_total_estatic2(macromolecule *thee, int types, ionlist *ions, double *coordsnew[]);
00368 
00377 double PQR_point_pot(macromolecule *thee, double *point);
00378 
00385 double PQR_sphere_maxradius(macromolecule *thee);
00386 
00393 double PQR_cylinder_maxradius(macromolecule *thee);
00394 
00403 void Born_shift(macromolecule *thee, double xshift, double yshift, double zshift);
00404 
00413 void PQR_shift(macromolecule *thee, double xshift, double yshift, double zshift);
00414 
00421 double CYL_vol(macromolecule *thee);
00422 
00431 int CYL_is_at(macromolecule *thee, double *xyz, double rad);
00432 
00443 double CYL_total_steric(macromolecule *thee, int types, ionlist *ions, char mode);
00444 
00459 double CYL_total_steric2(macromolecule *thee, int types, ionlist *ions, char mode, double *coordsnew[]);
00460 
00472 double CYL_one_steric(macromolecule *thee, ionlist *ions, int type, int pos, char mode);
00473 
00483 double CYL_total_estatic(macromolecule *thee, int types, ionlist *ions);
00484 
00498 double CYL_total_estatic2(macromolecule *thee, int types, ionlist *ions, double *coordsnew[]);
00499 
00508 double CYL_point_pot(macromolecule *thee, double *point);
00509 
00510 /*
00511 int sphere_mmgrdbuilder(macromolecule *thee, double rad, double len, int res, int types);
00512 int cylinder_mmgrdbuilder(macromolecule *thee, double rad, double len, int res, int types);
00513 int sphere_get_gridpoints(macromolecule *thee, int *vals, double *xyz);
00514 int cylinder_get_gridpoints(macromolecule *thee, int *vals, double *xyz);
00515 void macromolecule_stergrid(macromolecule *thee, ionlist *ions, int types, char mode);
00516 double macromolecule_gripolate(macromolecule *thee, int *vals, int nr);
00517 */
00518 
00519 #endif /*ifndef _MACROMOLECULE_H_*/
00520 
00521 

Generated on Tue Jun 18 16:58:24 2002 for ISIM by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002