00001 00075 #ifndef _VPMGP_H_ 00076 #define _VPMGP_H_ 00077 00078 #include "maloc/maloc.h" 00079 #include "apbs/vhal.h" 00080 00087 struct sVpmgp { 00088 00089 /* ********** USER-SPECIFIED PARAMETERS ********** */ 00090 int nx; 00091 int ny; 00092 int nz; 00093 int nlev; 00094 double hx; 00095 double hy; 00096 double hzed; 00097 int nonlin; 00102 /* ********** DERIVED PARAMETERS ********** */ 00103 int nxc; 00104 int nyc; 00105 int nzc; 00106 int nf; 00107 int nc; 00108 int narrc; 00109 int n_rpc; 00110 int n_iz; 00111 int n_ipc; 00113 int nrwk; 00114 int niwk; 00115 int narr; 00116 int ipkey; 00124 /* ********** PARAMETERS WITH DEFAULT VALUES ********** */ 00125 double xcent; 00126 double ycent; 00127 double zcent; 00128 double errtol; 00129 int itmax; 00130 int istop; 00137 int iinfo; 00142 Vbcfl bcfl; 00143 int key; 00146 int iperf; 00151 int meth; 00160 int mgkey; 00163 int nu1; 00164 int nu2; 00165 int mgsmoo; 00171 int mgprol; 00175 int mgcoar; 00179 int mgsolv; 00182 int mgdisc; 00185 double omegal; 00186 double omegan; 00187 int irite; 00188 int ipcon; 00194 double xlen; 00195 double ylen; 00196 double zlen; 00197 double xmin; 00198 double ymin; 00199 double zmin; 00200 double xmax; 00201 double ymax; 00202 double zmax; 00203 }; 00204 00209 typedef struct sVpmgp Vpmgp; 00210 00211 /* /////////////////////////////////////////////////////////////////////////// 00212 // Class Vpmgp: Inlineable methods (vpmgp.c) 00214 00215 #if !defined(VINLINE_VPMGP) 00216 #else /* if defined(VINLINE_VPMGP) */ 00217 #endif /* if !defined(VINLINE_VPMGP) */ 00218 00219 /* /////////////////////////////////////////////////////////////////////////// 00220 // Class Vpmgp: Non-Inlineable methods (vpmgp.c) 00222 00238 Vpmgp* Vpmgp_ctor(int nx, int ny, int nz, int nlev, 00239 double hx, double hy, double hzed, int nonlin); 00240 00258 int Vpmgp_ctor2(Vpmgp *thee, int nx, int ny, int nz, int nlev, 00259 double hx, double hy, double hzed, int nonlin); 00260 00266 void Vpmgp_dtor(Vpmgp **thee); 00267 00273 void Vpmgp_dtor2(Vpmgp *thee); 00274 00275 #endif /* ifndef _VPMGP_H_ */ 00276