Go to the documentation of this file.00001
00055 #ifndef _VCSM_H_
00056 #define _VCSM_H_
00057
00058
00059 #include "maloc/maloc.h"
00060 #include "apbs/vhal.h"
00061 #include "apbs/valist.h"
00062
00063
00064 #include "mc/mc.h"
00065
00070 VEXTERNC void Gem_setExternalUpdateFunction(
00071 Gem *thee,
00072 void (*externalUpdate)(SS **simps, int num)
00075 );
00076
00081 struct sVcsm {
00082
00083 Valist *alist;
00084 int natom;
00086 Gem *gm;
00089 int **sqm;
00096 int *nsqm;
00097 int nsimp;
00099 int msimp;
00101 int **qsm;
00103 int *nqsm;
00104 int initFlag;
00106 Vmem *vmem;
00108 };
00109
00114 typedef struct sVcsm Vcsm;
00115
00116
00117
00119
00120
00121
00127
00128
00129
00130
00136
00137
00138
00139
00140
00146
00147
00148
00149
00150
00151
00157
00158
00159
00160
00161
00162
00168
00169
00170
00171
00172
00178
00179
00180
00181
00182
00183
00189
00190
00191
00192
00193
00194
00201
00202
00203
00204
00205
00206 # define Vcsm_getValist(thee) ((thee)->alist)
00207 # define Vcsm_getNumberAtoms(thee, isimp) ((thee)->nsqm[isimp])
00208 # define Vcsm_getAtom(thee, iatom, isimp) (Valist_getAtom((thee)->alist, ((thee)->sqm)[isimp][iatom]))
00209 # define Vcsm_getAtomIndex(thee, iatom, isimp) (((thee)->sqm)[isimp][iatom])
00210 # define Vcsm_getNumberSimplices(thee, iatom) (((thee)->nqsm)[iatom])
00211 # define Vcsm_getSimplex(thee, isimp, iatom) (Gem_SS((thee)->gm, ((thee)->qsm)[iatom][isimp]))
00212 # define Vcsm_getSimplexIndex(thee, isimp, iatom) (((thee)->qsm)[iatom][isimp])
00213 # define Vcsm_memChk(thee) (Vmem_bytes((thee)->vmem))
00214 #endif
00215
00216
00217
00219
00228
00229
00230
00231
00232
00241
00242
00243
00244
00245
00246
00251
00252
00253
00254
00259
00260
00261
00262
00269
00270
00271
00272
00279
00280
00281
00286
00287
00288
00289