00001 00063 #ifndef _VPMGP_H_ 00064 #define _VPMGP_H_ 00065 00066 #include "maloc/maloc.h" 00067 #include "apbs/vhal.h" 00068 #include "apbs/mgparm.h" 00069 00076 struct sVpmgp { 00077 00078 /* ********** USER-SPECIFIED PARAMETERS ********** */ 00079 int nx; 00080 int ny; 00081 int nz; 00082 int nlev; 00083 double hx; 00084 double hy; 00085 double hzed; 00086 int nonlin; 00091 /* ********** DERIVED PARAMETERS ********** */ 00092 int nxc; 00093 int nyc; 00094 int nzc; 00095 int nf; 00096 int nc; 00097 int narrc; 00098 int n_rpc; 00099 int n_iz; 00100 int n_ipc; 00102 int nrwk; 00103 int niwk; 00104 int narr; 00105 int ipkey; 00113 /* ********** PARAMETERS WITH DEFAULT VALUES ********** */ 00114 double xcent; 00115 double ycent; 00116 double zcent; 00117 double errtol; 00118 int itmax; 00119 int istop; 00126 int iinfo; 00131 Vbcfl bcfl; 00132 int key; 00135 int iperf; 00140 int meth; 00151 int mgkey; 00154 int nu1; 00155 int nu2; 00156 int mgsmoo; 00162 int mgprol; 00166 int mgcoar; 00170 int mgsolv; 00173 int mgdisc; 00176 double omegal; 00177 double omegan; 00178 int irite; 00179 int ipcon; 00185 double xlen; 00186 double ylen; 00187 double zlen; 00188 double xmin; 00189 double ymin; 00190 double zmin; 00191 double xmax; 00192 double ymax; 00193 double zmax; 00194 }; 00195 00200 typedef struct sVpmgp Vpmgp; 00201 00202 /* /////////////////////////////////////////////////////////////////////////// 00203 // Class Vpmgp: Inlineable methods (vpmgp.c) 00205 00206 #if !defined(VINLINE_VPMGP) 00207 #else /* if defined(VINLINE_VPMGP) */ 00208 #endif /* if !defined(VINLINE_VPMGP) */ 00209 00210 /* /////////////////////////////////////////////////////////////////////////// 00211 // Class Vpmgp: Non-Inlineable methods (vpmgp.c) 00213 00220 Vpmgp* Vpmgp_ctor(MGparm *mgparm); 00221 00230 int Vpmgp_ctor2(Vpmgp *thee, MGparm *mgparm); 00231 00237 void Vpmgp_dtor(Vpmgp **thee); 00238 00244 void Vpmgp_dtor2(Vpmgp *thee); 00245 00246 #endif /* ifndef _VPMGP_H_ */ 00247