Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

vpmg-private.h

Go to the documentation of this file.
00001 
00055 #ifndef _VPMG_PRIVATE_H_
00056 #define _VPMG_PRIVATE_H_
00057 
00058 #include "apbscfg.h"
00059 #include "apbs/vpmg.h"
00060 
00061 /* ///////////////////////////////////////////////////////////////////////////
00062 // Internal routines
00064 
00070 VPRIVATE double bspline2(
00071         double x  
00072         );
00073 
00079 VPRIVATE double dbspline2(
00080         double x  
00081         );
00082 
00088 VPRIVATE double VFCHI4(
00089                 int i,
00090                 double f
00091                 );
00092 
00098 VPRIVATE double bspline4(
00099          double x 
00100          );
00101 
00107 VPRIVATE double dbspline4(
00108          double x 
00109          );
00110 
00116 VPRIVATE double d2bspline4(
00117          double x 
00118          );
00119 
00125 VPRIVATE double d3bspline4(
00126          double x 
00127          );
00128 
00135 VPRIVATE double Vpmg_polarizEnergy(
00136          Vpmg *thee, 
00137          int extFlag  
00139          ); 
00146 VPRIVATE double Vpmg_qfEnergyPoint(
00147         Vpmg *thee, 
00148         int extFlag  
00150         );
00151 
00157 VPRIVATE double Vpmg_qfEnergyVolume(
00158         Vpmg *thee, 
00159         int extFlag  
00161         );
00162 
00168 VPRIVATE void Vpmg_splineSelect(
00169                 int srfm,               
00171                 Vacc *acc,              
00172                 double *gpos,   
00173                 double win,             
00174                 double infrad,  
00175                 Vatom *atom,    
00176                 double *force   
00177                 );
00178 
00184 VPRIVATE void focusFillBound(
00185         Vpmg *thee,  
00186         Vpmg *pmg  
00187         );
00188 
00195 VPRIVATE void bcfl1(
00196         double size,  
00197         double *apos,  
00198         double charge,  
00199         double xkappa,  
00200         double pre1,  
00201         double *gxcf,  
00202         double *gycf,  
00203         double *gzcf,  
00204         double *xf,  
00205         double *yf,  
00206         double *zf,  
00207         int nx,  
00208         int ny,  
00209         int nz 
00210         );
00211 
00217 VPRIVATE void bcfl2(
00218         double size,  
00219         double *apos,  
00220         double charge,  
00221         double *dipole, 
00222         double *quad,   
00223         double xkappa,  
00224         double eps_p,   
00225         double eps_w,   
00226         double T,       
00227         double *gxcf,  
00228         double *gycf,  
00229         double *gzcf,  
00230         double *xf,  
00231         double *yf,  
00232         double *zf,  
00233         int nx,  
00234         int ny,  
00235         int nz 
00236         );  
00237 
00246 VPRIVATE void multipolebc(
00247         double r,      
00248         double kappa,  
00249         double eps_p,  
00250         double eps_w,  
00251         double rad,    
00252         double tsr[3]  
00253         );
00254 
00263 VPRIVATE double bcfl1sp(
00264         double size,  
00265         double *apos,  
00266         double charge,  
00267         double xkappa,  
00268         double pre1,  
00269         double *pos  
00270         );
00271 
00276 VPRIVATE void bcCalc(
00277         Vpmg *thee
00278         );
00279 
00284 VPRIVATE void fillcoCoef(
00285         Vpmg *thee
00286         );
00287 
00292 VPRIVATE void fillcoCoefMap(
00293         Vpmg *thee
00294         );
00295 
00301 VPRIVATE void fillcoCoefMol(
00302         Vpmg *thee
00303         );
00304 
00310 VPRIVATE void fillcoCoefMolIon(
00311         Vpmg *thee
00312         );
00313 
00319 VPRIVATE void fillcoCoefMolDiel(
00320         Vpmg *thee
00321         );
00322 
00328 VPRIVATE void fillcoCoefMolDielNoSmooth(
00329         Vpmg *thee
00330         );
00331 
00345 VPRIVATE void fillcoCoefMolDielSmooth(
00346         Vpmg *thee
00347         );
00348 
00354 VPRIVATE void fillcoCoefSpline(
00355         Vpmg *thee
00356         );
00357 
00363 VPRIVATE void fillcoCoefSpline3(
00364                 Vpmg *thee
00365                 );
00366 
00372 VPRIVATE void fillcoCoefSpline4(
00373         Vpmg *thee
00374         );
00375 
00381 VPRIVATE Vrc_Codes fillcoCharge(
00382         Vpmg *thee
00383         );
00384 
00390 VPRIVATE Vrc_Codes fillcoChargeMap(
00391         Vpmg *thee
00392         );
00393 
00398 VPRIVATE void fillcoChargeSpline1(
00399         Vpmg *thee
00400         );
00401 
00406 VPRIVATE void fillcoChargeSpline2(
00407         Vpmg *thee
00408         );
00409 
00414 VPRIVATE void fillcoPermanentMultipole(
00415         Vpmg *thee
00416         );
00417         
00422 VPRIVATE void fillcoInducedDipole(
00423         Vpmg *thee
00424         );
00425 
00431 VPRIVATE void fillcoNLInducedDipole(
00432         Vpmg *thee
00433         );
00434 
00441 VPRIVATE void extEnergy(
00442         Vpmg *thee,  
00443         Vpmg *pmgOLD,  
00444         PBEparm_calcEnergy extFlag,  
00445         double partMin[3],  
00446         double partMax[3],  
00447         int bflags[6]  
00448         );
00449 
00454 VPRIVATE void qfForceSpline1(
00455         Vpmg *thee, 
00456         double *force,  
00457         int atomID  
00458         );
00459 
00464 VPRIVATE void qfForceSpline2(
00465         Vpmg *thee, 
00466         double *force,  
00467         int atomID  
00468         );
00469 
00474 VPRIVATE void qfForceSpline4(
00475                                                          Vpmg *thee, 
00476                                                          double *force,  
00477                                                          int atomID  
00478                                                          );
00479 
00480 
00488 VPRIVATE void zlapSolve(
00489         Vpmg *thee,
00490         double **solution,  
00491         double **source,  
00492         double **work1  
00493         );
00494 
00501 VPRIVATE void markSphere(
00502         double rtot,  
00503         double *tpos,  
00504         int nx,  
00505         int ny,  
00506         int nz,  
00507         double hx,  
00508         double hy,  
00509         double hzed,  
00510         double xmin,  
00511         double ymin,  
00512         double zmin,  
00513         double *array,  
00514         double markVal  
00515         );
00516 
00521 VPRIVATE double Vpmg_qmEnergySMPBE(Vpmg *thee, int extFlag);
00522 VPRIVATE double Vpmg_qmEnergyNONLIN(Vpmg *thee, int extFlag);
00523 
00524 /* Added by Vincent Chu 9/13/06 for SMPB */
00525 #define VCUB(x)            ((x)*(x)*(x))
00526 #define VLOG(x)            (log(x))
00527 
00528 #define IJK(i,j,k)  (((k)*(nx)*(ny))+((j)*(nx))+(i))
00529 #define IJKx(j,k,i) (((i)*(ny)*(nz))+((k)*(ny))+(j))
00530 #define IJKy(i,k,j) (((j)*(nx)*(nz))+((k)*(nx))+(i))
00531 #define IJKz(i,j,k) (((k)*(nx)*(ny))+((j)*(nx))+(i))
00532 #define VFCHI(iint,iflt) (1.5+((double)(iint)-(iflt)))
00533 
00534 /* ///////////////////////////////////////////////////////////////////////////
00535 // External FORTRAN routines 
00537 #define F77BCOLCOMP VF77_MANGLE(bcolcomp, BCOLCOMP)
00538 void F77BCOLCOMP(int *iparm, double *rparm, int *iwork, 
00539   double *rwork, double *nzval, int *rowind, int *colptr, int *flag);
00540 
00541 #define F77PCOLCOMP VF77_MANGLE(pcolcomp, PCOLCOMP)
00542 void F77PCOLCOMP(int *nrow, int *ncol, int *nonz, 
00543   double *nzval, int *rowind, int *colptr, 
00544   char *path, char *title, char *mxtype);
00545 
00546 #define F77MGSZ VF77_MANGLE(mgsz, MGSZ)
00547 void F77MGSZ(int *mgcoar, int *mgdisc, int *mgsolv, int *nx, int *ny,
00548   int *nz, int *nlev, int *nxc, int *nyc, int *nyz, int *nf, int *nc, 
00549   int *narr, int *narrc, int *n_rpc, int *n_iz, int *n_ipc, int *nrwk, 
00550   int *niwk);
00551 
00552 #define F77MGSZAQUA VF77_MANGLE(mgszaqua, MGSZAQUA)
00553 void F77MGSZAQUA(int *mgcoar, int *mgdisc, int *mgsolv, int *nx, int *ny,
00554                                           int *nz, int *nlev, int *nxc, int *nyc, int *nyz, int *nf, int *nc, 
00555                                           int *narr, int *narrc, int *n_rpc, int *n_iz, int *n_ipc, int *nrwk, 
00556                                           int *niwk);
00557 
00558 #define F77PACKMG VF77_MANGLE(packmg, PACKMG)
00559 void F77PACKMG(int *iparm, double *rparm, int *nrwk, int *niwk,
00560   int *nx, int *ny, int *nz, int *nlev, int *nu1, int *nu2, int *mgkey, 
00561   int *itmax, int *istop, int *ipcon, int *nonlin, int *mgsmoo, int *mgprol, 
00562   int *mgcoar, int *mgsolv, int *mgdisc, int *iinfo, double *errtol,
00563   int *ipkey, double *omegal, double *omegan, int *irite, int *iperf);
00564 
00565 #define F77CGMGDRIV VF77_MANGLE(cgmgdriv, CGMGDRIV)
00566 void F77CGMGDRIV(int *iparm, double *rparm, int *iwork, double *rwork,
00567   double *u, double *xf, double *yf, double *zf, double *gxcf, double *gycf,
00568   double *gzcf, double *a1cf, double *a2cf, double *a3cf, double *ccf,
00569   double *fcf, double *tcf);
00570 
00571 #define F77NEWDRIV    VF77_MANGLE(newdriv, NEWDRIV)
00572 void F77NEWDRIV(int *iparm, double *rparm, int *iwork, double *rwork,
00573   double *u, double *xf, double *yf, double *zf, double *gxcf, double *gycf,
00574   double *gzcf, double *a1cf, double *a2cf, double *a3cf, double *ccf,
00575   double *fcf, double *tcf);
00576 
00577 #define F77MGDRIV     VF77_MANGLE(mgdriv, MGDRIV)
00578 void F77MGDRIV(int *iparm, double *rparm, int *iwork, double *rwork,
00579   double *u, double *xf, double *yf, double *zf, double *gxcf, double *gycf,
00580   double *gzcf, double *a1cf, double *a2cf, double *a3cf, double *ccf,
00581   double *fcf, double *tcf);
00582 
00583 #define F77NCGHSDRIV  VF77_MANGLE(ncghsdriv, NCGHSDRIV)
00584 void F77NCGHSDRIV(int *iparm, double *rparm, int *iwork, double *rwork,
00585   double *u, double *xf, double *yf, double *zf, double *gxcf, double *gycf,
00586   double *gzcf, double *a1cf, double *a2cf, double *a3cf, double *ccf,
00587   double *fcf, double *tcf);
00588 
00589 #define F77NSORDRIV   VF77_MANGLE(nsordriv, NSORDRIV)
00590 void F77NSORDRIV(int *iparm, double *rparm, int *iwork, double *rwork,
00591   double *u, double *xf, double *yf, double *zf, double *gxcf, double *gycf,
00592   double *gzcf, double *a1cf, double *a2cf, double *a3cf, double *ccf,
00593   double *fcf, double *tcf);
00594 
00595 #define F77NGSRBDRIV  VF77_MANGLE(ngsrbdriv, NGSRBDRIV)
00596 void F77NGSRBDRIV(int *iparm, double *rparm, int *iwork, double *rwork,
00597   double *u, double *xf, double *yf, double *zf, double *gxcf, double *gycf,
00598   double *gzcf, double *a1cf, double *a2cf, double *a3cf, double *ccf,
00599   double *fcf, double *tcf);
00600 
00601 #define F77NWJACDRIV  VF77_MANGLE(nwjacdriv, NWJACDRIV)
00602 void F77NWJACDRIV(int *iparm, double *rparm, int *iwork, double *rwork,
00603   double *u, double *xf, double *yf, double *zf, double *gxcf, double *gycf,
00604   double *gzcf, double *a1cf, double *a2cf, double *a3cf, double *ccf,
00605   double *fcf, double *tcf);
00606 
00607 #define F77NRICHDRIV  VF77_MANGLE(nrichdriv, NRICHDRIV)
00608 void F77NRICHDRIV(int *iparm, double *rparm, int *iwork, double *rwork,
00609   double *u, double *xf, double *yf, double *zf, double *gxcf, double *gycf,
00610   double *gzcf, double *a1cf, double *a2cf, double *a3cf, double *ccf,
00611   double *fcf, double *tcf);
00612 
00613 /* TEMPORARY USEAQUA */
00614 #define F77CGMGDRIVAQUA VF77_MANGLE(cgmgdrivaqua, CGMGDRIVAQUA)
00615 void F77CGMGDRIVAQUA(int *iparm, double *rparm, int *iwork, double *rwork,
00616   double *u, double *xf, double *yf, double *zf, double *gxcf, double *gycf,
00617   double *gzcf, double *a1cf, double *a2cf, double *a3cf, double *ccf,
00618   double *fcf);
00619 
00620 /* TEMPORARY USEAQUA */
00621 #define F77NEWDRIVAQUA    VF77_MANGLE(newdrivaqua, NEWDRIVAQUA)
00622 void F77NEWDRIVAQUA(int *iparm, double *rparm, int *iwork, double *rwork,
00623   double *u, double *xf, double *yf, double *zf, double *gxcf, double *gycf,
00624   double *gzcf, double *a1cf, double *a2cf, double *a3cf, double *ccf,
00625   double *fcf);
00626 
00627 #define F77TSECND     VF77_MANGLE(tsecnd, TSECND)
00628 #define F77VPMGANORM  VF77_MANGLE(vpmganorm, VPMGANORM)
00629 #define F77VPMGABAND  VF77_MANGLE(vpmgaband, VPMGABAND)
00630 #define F77DPBFA      VF77_MANGLE(dpbfa, DPBFA)
00631 #define F77DPBDI      VF77_MANGLE(dpbdi, DPBDI)
00632 #define F77EIGDRIV    VF77_MANGLE(eigdriv, EIGDRIV)
00633 #define F77ANORMDRIV  VF77_MANGLE(anormdriv, ANORMDRIV)
00634 
00635 #define F77MYPDEFINITLPBE VF77_MANGLE(mypdefinitlpbe, MYPDEFINITLPBE)
00636 void F77MYPDEFINITLPBE(int *nion, double *ionQ, double *ionConc);
00637 
00638 #define F77MYPDEFINITNPBE VF77_MANGLE(mypdefinitnpbe, MYPDEFINITNPBE)
00639 void F77MYPDEFINITNPBE(int *nion, double *ionQ, double *ionConc);
00640 
00641 #define F77MYPDEFINITSMPBE VF77_MANGLE(mypdefinitsmpbe, MYPDEFINITSMPBE)
00642 void F77MYPDEFINITSMPBE(int *nion, double *ionQ, double *ionConc,
00643                                                                         double *smvolume,double *smsize);
00644 
00645 #define F77MYPDEFCLEAR VF77_MANGLE(mypdefclear, MYPDEFCLEAR)
00646 void F77MYPDEFCLEAR();
00647 
00648 #endif
00649 
00650 

Generated on Tue Apr 15 13:53:15 2008 for APBS by doxygen 1.3.4