arpackff.hpp

来自「FreeFem++可以生成高质量的有限元网格。可以用于流体力学」· HPP 代码 · 共 440 行 · 第 1/2 页

HPP
440
字号
  irvec   = (int) rvec;  iselect = new logical[ncv];  iZ = (Z == NULL) ? &V[0] : Z;  F77NAME(sseupd)(&irvec, &HowMny, iselect, d, iZ, &ldz, &sigma, &bmat,                  &n, which, &nev, &tol, resid, &ncv, &V[0], &ldv, &iparam[1],                  &ipntr[1], &workd[1], &workl[1], &lworkl, &info HIDDEN_112 );  delete[] iselect;} // seupp (float).inline void naupp(int& ido, char bmat, int n, char* which, int nev,                  double& tol, double resid[], int ncv, double V[],                  int ldv, int iparam[], int ipntr[], double workd[],                  double workl[], int lworkl, int& info){  F77NAME(dnaupd)(&ido, &bmat, &n, which, &nev, &tol, resid, &ncv,                  &V[0], &ldv, &iparam[1], &ipntr[1], &workd[1], &workl[1],                  &lworkl, &info HIDDEN_12);} // naupp (double).inline void naupp(int& ido, char bmat, int n, char* which, int nev,                  float& tol, float resid[], int ncv, float V[],                  int ldv, int iparam[], int ipntr[], float workd[],                  float workl[], int lworkl, int& info){  F77NAME(snaupd)(&ido, &bmat, &n, which, &nev, &tol, resid, &ncv,                  &V[0], &ldv, &iparam[1], &ipntr[1], &workd[1], &workl[1],                  &lworkl, &info HIDDEN_12 );} // naupp (float).inline void caupp(int& ido, char bmat, int n, char* which, int nev,                  double& tol, complex<double> resid[], int ncv,                  complex<double> V[], int ldv, int iparam[], int ipntr[],                  complex<double> workd[], complex<double> workl[],                  int lworkl, double rwork[], int& info){  F77NAME(znaupd)(&ido, &bmat, &n, which, &nev, &tol, resid, &ncv,                  &V[0], &ldv, &iparam[1], &ipntr[1], &workd[1],                  &workl[1], &lworkl, &rwork[1], &info HIDDEN_12 );} // caupp inline void caupp(int& ido, char bmat, int n, char* which, int nev,                  float& tol, complex<float> resid[], int ncv,                  complex<float> V[], int ldv, int iparam[], int ipntr[],                  complex<float> workd[], complex<float> workl[],                  int lworkl, float rwork[], int& info){  F77NAME(cnaupd)(&ido, &bmat, &n, which, &nev, &tol, resid, &ncv,                  &V[0], &ldv, &iparam[1], &ipntr[1], &workd[1],                  &workl[1], &lworkl, &rwork[1], &info HIDDEN_12);} // caupp inline void ceupp(bool rvec, char HowMny, complex<double> d[],		 complex<double> Z[], int ldz, complex<double> sigma,		 complex<double> workev[], char bmat, int n, char* which,		 int nev, double tol, complex<double> resid[], int ncv,		 complex<double> V[], int ldv, int iparam[], int ipntr[],		 complex<double> workd[], complex<double> workl[],		 int lworkl, double rwork[], int& info){  int                irvec;  logical*           iselect;  complex<double>* iZ;  irvec   = (int) rvec;  iselect = new logical[ncv];  iZ = (Z == NULL) ? &V[0] : Z;  F77NAME(zneupd)(&irvec, &HowMny, iselect, d, iZ, &ldz, &sigma,                  &workev[0], &bmat, &n, which, &nev, &tol, resid,                  &ncv, &V[0], &ldv, &iparam[1], &ipntr[1],                  &workd[1], &workl[1], &lworkl, &rwork[1], &info HIDDEN_112);  delete[] iselect;} // ceupp (complex<double>).inline void ceupp(bool rvec, char HowMny, complex<float> d[],                  complex<float> Z[], int ldz, complex<float> sigma,                  complex<float> workev[], char bmat, int n, char* which,                  int nev, float tol, complex<float> resid[], int ncv,                  complex<float> V[], int ldv, int iparam[], int ipntr[],                  complex<float> workd[], complex<float> workl[],                  int lworkl, float rwork[], int& info){  int               irvec;  logical*          iselect;  complex<float>* iZ;  irvec   = (int) rvec;  iselect = new logical[ncv];  iZ = (Z == NULL) ? &V[0] : Z;  F77NAME(cneupd)(&irvec, &HowMny, iselect, d, iZ, &ldz, &sigma,                  &workev[0], &bmat, &n, which, &nev, &tol, resid,                  &ncv, &V[0], &ldv, &iparam[1], &ipntr[1],                  &workd[1], &workl[1], &lworkl, &rwork[1], &info HIDDEN_112);  delete[] iselect;} // ceupp (complex<float>).inline void neupp(bool rvec, char HowMny, double dr[],		 double di[], double Z[], int ldz, double sigmar,		 double sigmai, double workv[], char bmat, int n,		 char* which, int nev, double tol, double resid[],		 int ncv, double V[], int ldv, int iparam[],		 int ipntr[], double workd[], double workl[],		 int lworkl, int& info){  int      irvec;  logical* iselect;  double*  iZ;  irvec   = (int) rvec;  iselect = new logical[ncv];  iZ = (Z == NULL) ? &V[0] : Z;  F77NAME(dneupd)(&irvec, &HowMny, iselect, dr, di, iZ, &ldz, &sigmar,                  &sigmai, &workv[1], &bmat, &n, which, &nev, &tol,                  resid, &ncv, &V[0], &ldv, &iparam[1], &ipntr[1],                  &workd[1], &workl[1], &lworkl, &info HIDDEN_112);  delete[] iselect;} // neupp (double).                                                                                  inline void neupp(bool rvec, char HowMny, float dr[],                  float di[], float Z[], int ldz, float sigmar,                  float sigmai, float workv[], char bmat, int n,                  char* which, int nev, float tol, float resid[],                  int ncv, float V[], int ldv, int iparam[],                  int ipntr[], float workd[], float workl[],                  int lworkl, int& info){  int      irvec;  logical* iselect;  float*   iZ;  irvec   = (int) rvec;  iselect = new logical[ncv];  iZ = (Z == NULL) ? &V[0] : Z;  F77NAME(sneupd)(&irvec, &HowMny, iselect, dr, di, iZ, &ldz, &sigmar,                  &sigmai, &workv[1], &bmat, &n, which, &nev, &tol,                  resid, &ncv, &V[0], &ldv, &iparam[1], &ipntr[1],                  &workd[1], &workl[1], &lworkl, &info HIDDEN_112);  delete[] iselect;} // neupp (float).  inline void sauppError(int info){  if(info<0)    cerr << " erreur arpack sauppError" <<info <<  endl;  switch (info) {  case     0:    return;  case    -8:    throw ErrorExec("lapack error [sd]aupp ",info);  case    -9:    throw ErrorExec("arpack error START_RESID_ZERO  [sd]aupp ",info);  case -9999:    throw ErrorExec("arpack error ARNOLDI_NOT_BUILD  [sd]aupp ",info);  case     1:    throw ErrorExec("arpack error MAX_ITERATIONS  [sd]aupp ",info);    return;  case     3:    throw ErrorExec("arpack error NO_SHIFTS_APPLIED  [sd]aupp ",info);    return;  default   :    throw ErrorExec("arpack error AUPP_ERROR  [sd]aupp ",info);  }}inline void seuppError(int info){  if(info<0)    cerr << " erreur arpack seuppError" <<info <<  endl;  switch (info) {  case   0:    return;  case  -8:  case  -9:    throw ErrorExec("lapack LAPACK_ERROR [sd]eupp ",info);  case -14:    throw ErrorExec("lapack NOT_ACCURATE_EIG [sd]eupp ",info);  case   1:    throw ErrorExec("lapack REORDERING_ERROR [sd]eupp ",info);  default :    throw ErrorExec("lapack error [sd]eupp ",info);  }} // EuppError.#endif // ARPACKFF_HPP

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?