Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

vclist.h

Go to the documentation of this file.
00001 
00060 #ifndef _VCLIST_H_
00061 #define _VCLIST_H_
00062 
00063 /* Generic headers */
00064 #include "maloc/maloc.h"
00065 #include "apbs/vhal.h"
00066 
00067 /* Headers specific to this file */
00068 #include "apbs/valist.h"
00069 #include "apbs/vatom.h"
00070 #include "apbs/vunit.h"
00071 
00077 enum eVclist_DomainMode {
00078     CLIST_AUTO_DOMAIN,  
00080     CLIST_MANUAL_DOMAIN   
00082 };
00083 
00089 typedef enum eVclist_DomainMode Vclist_DomainMode;
00090 
00096 struct sVclistCell {
00097     Vatom **atoms;  
00098     int natoms;  
00099 };
00100 
00105 typedef struct sVclistCell VclistCell;
00106 
00112 struct sVclist {
00113 
00114   Vmem *vmem;  
00115   Valist *alist;  
00116   Vclist_DomainMode mode;  
00117   int npts[VAPBS_DIM];  
00118   int n;  
00119   double max_radius;  
00120   VclistCell *cells;  
00121   double lower_corner[VAPBS_DIM]; 
00122   double upper_corner[VAPBS_DIM]; 
00123   double spacs[VAPBS_DIM];  
00125 };
00126 
00131 typedef struct sVclist Vclist;
00132 
00133 #if !defined(VINLINE_VCLIST)
00134 
00140     unsigned long int Vclist_memChk(
00141             Vclist *thee 
00142             );
00143 
00151     double Vclist_maxRadius(
00152             Vclist *thee 
00153             );
00154 
00155 #else /* if defined(VINLINE_VCLIST) */
00156 
00157 #   define Vclist_memChk(thee) (Vmem_bytes((thee)->vmem))
00158 #   define Vclist_maxRadius(thee) ((thee)->max_radius)
00159 
00160 #endif /* if !defined(VINLINE_VCLIST) */
00161 
00162 /* ///////////////////////////////////////////////////////////////////////////
00163 // Class Vclist: Non-Inlineable methods (vclist.c)
00165 
00170 Vclist* Vclist_ctor(
00171         Valist *alist, 
00172         double max_radius, 
00173         int npts[VAPBS_DIM], 
00175         Vclist_DomainMode mode, 
00176         double lower_corner[VAPBS_DIM],  
00179         double upper_corner[VAPBS_DIM]   
00182         );
00183 
00188 Vrc_Codes Vclist_ctor2(
00189         Vclist *thee, 
00190         Valist *alist, 
00191         double max_radius, 
00192         int npts[VAPBS_DIM], 
00194         Vclist_DomainMode mode, 
00195         double lower_corner[VAPBS_DIM],  
00198         double upper_corner[VAPBS_DIM]   
00201         );
00202 
00207 void Vclist_dtor(
00208         Vclist **thee 
00209         );
00210 
00215 void Vclist_dtor2(
00216         Vclist *thee 
00217         );
00218 
00226 VclistCell* Vclist_getCell(
00227         Vclist *thee, 
00228         double position[VAPBS_DIM] 
00229         );
00230 
00237 VclistCell* VclistCell_ctor(
00238         int natoms  
00239         );
00240 
00247 Vrc_Codes VclistCell_ctor2(
00248         VclistCell *thee,  
00249         int natoms  
00250         );
00251 
00256 void VclistCell_dtor(
00257         VclistCell **thee 
00258         );
00259 
00264 void VclistCell_dtor2(
00265         VclistCell *thee 
00266         );
00267 
00268 #endif    /* ifndef _VCLIST_H_ */
00269 

Generated on Tue Apr 15 13:53:15 2008 for APBS by doxygen 1.3.4