00001 00052 #ifndef _VPMGP_H_ 00053 #define _VPMGP_H_ 00054 00055 #include "maloc/maloc.h" 00056 #include "apbs/vhal.h" 00057 00063 struct sVpmgp { 00064 00065 /* ********** USER-SPECIFIED PARAMETERS ********** */ 00066 int nx; 00067 int ny; 00068 int nz; 00069 int nlev; 00070 double hx; 00071 double hy; 00072 double hzed; 00073 int nonlin; 00078 /* ********** DERIVED PARAMETERS ********** */ 00079 int nxc; 00080 int nyc; 00081 int nzc; 00082 int nf; 00083 int nc; 00084 int narrc; 00085 int n_rpc; 00086 int n_iz; 00087 int n_ipc; 00089 int nrwk; 00090 int niwk; 00091 int narr; 00092 int ipkey; 00099 /* ********** PARAMETERS WITH DEFAULT VALUES ********** */ 00100 double xcent; 00101 double ycent; 00102 double zcent; 00103 double errtol; 00104 int itmax; 00105 int istop; 00112 int iinfo; 00117 Vbcfl bcfl; 00118 int key; 00121 int iperf; 00126 int meth; 00135 int mgkey; 00138 int nu1; 00139 int nu2; 00140 int mgsmoo; 00146 int mgprol; 00150 int mgcoar; 00154 int mgsolv; 00157 int mgdisc; 00160 double omegal; 00161 double omegan; 00162 int irite; 00163 int ipcon; 00169 double xlen; 00170 double ylen; 00171 double zlen; 00172 double xmin; 00173 double ymin; 00174 double zmin; 00175 double xmax; 00176 double ymax; 00177 double zmax; 00178 }; 00179 00184 typedef struct sVpmgp Vpmgp; 00185 00186 /* /////////////////////////////////////////////////////////////////////////// 00187 // Class Vpmgp: Inlineable methods (vpmgp.c) 00189 00190 #if !defined(VINLINE_VPMGP) 00191 #else /* if defined(VINLINE_VPMGP) */ 00192 #endif /* if !defined(VINLINE_VPMGP) */ 00193 00194 /* /////////////////////////////////////////////////////////////////////////// 00195 // Class Vpmgp: Non-Inlineable methods (vpmgp.c) 00197 00213 Vpmgp* Vpmgp_ctor(int nx, int ny, int nz, int nlev, 00214 double hx, double hy, double hzed, int nonlin); 00215 00233 int Vpmgp_ctor2(Vpmgp *thee, int nx, int ny, int nz, int nlev, 00234 double hx, double hy, double hzed, int nonlin); 00235 00241 void Vpmgp_dtor(Vpmgp **thee); 00242 00248 void Vpmgp_dtor2(Vpmgp *thee); 00249 00250 #endif /* ifndef _VPMGP_H_ */ 00251