00001
00050 #ifndef _VCSM_H_
00051 #define _VCSM_H_
00052
00053
00054 #include "maloc/maloc.h"
00055 #include "apbs/vhal.h"
00056 #include "apbs/valist.h"
00057
00058
00059 #include "mc/mc.h"
00060
00068 void Gem_setExternalUpdateFunction(Gem *thee,
00069 void (*externalUpdate)(SS **simps, int num));
00070
00075 struct sVcsm {
00076
00077 Valist *alist;
00078 int natom;
00080 Gem *gm;
00083 int **sqm;
00090 int *nsqm;
00091 int nsimp;
00093 int msimp;
00095 int **qsm;
00097 int *nqsm;
00098 int initFlag;
00100 Vmem *vmem;
00102 };
00103
00108 typedef struct sVcsm Vcsm;
00109
00110
00111
00113
00114
00115
00122
00123
00131
00132
00141
00142
00151
00152
00160
00161
00170
00171
00180
00181
00189
00190
00191
00192 # define Vcsm_getValist(thee) ((thee)->alist)
00193 # define Vcsm_getNumberAtoms(thee, isimp) ((thee)->nsqm[isimp])
00194 # define Vcsm_getAtom(thee, iatom, isimp) (Valist_getAtom((thee)->alist, ((thee)->sqm)[isimp][iatom]))
00195 # define Vcsm_getAtomIndex(thee, iatom, isimp) (((thee)->sqm)[isimp][iatom])
00196 # define Vcsm_getNumberSimplices(thee, iatom) (((thee)->nqsm)[iatom])
00197 # define Vcsm_getSimplex(thee, isimp, iatom) (Gem_SS((thee)->gm, ((thee)->qsm)[iatom][isimp]))
00198 # define Vcsm_getSimplexIndex(thee, isimp, iatom) (((thee)->qsm)[iatom][isimp])
00199 # define Vcsm_memChk(thee) (Vmem_bytes((thee)->vmem))
00200 #endif
00201
00202
00203
00205
00216
00217
00229
00230
00236
00237
00243
00244
00252
00253
00267
00268
00269
00270