⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eigvalsol.cpp

📁 Finite element program for mechanical problem. It can solve various problem in solid problem
💻 CPP
字号:
#include <string.h>#include "global.h"#include "eigvalsol.h"eigvalsol::eigvalsol (void){}eigvalsol::~eigvalsol (void){}/**   function reads data from input file      @param in - pointer to the input file   @param mespr - message printing indicator      JK, 20.8.2005*/void eigvalsol::read (XFILE *in){  long i;  xfscanf (in,"%k%d","type_of_eig_solver",(int*)&teigsol);    switch (teigsol){  case inv_iteration:{    if (Mespr==1)  fprintf (stdout,"\n eigenvalue problem will be solved by inverse iteration method");        //  number of eigenvectors    nev=1;  neigv=1;        xfscanf (in,"%ld %lf",&nies,&erres);    break;  }  case subspace_it_jacobi:{    if (Mespr==1){      fprintf (stdout,"\n eigenvalue problem will be solved by subspace");      fprintf (stdout,"\n iteration method with Jacobi method of rotations");    }        xfscanf (in,"%ld %ld %ld %lf",&neigv,&nev,&nies,&erres);    if (neigv>nev){      fprintf (stderr,"\n\n wrong number of vectors used in subspace iteration method");      fprintf (stderr,"\n nev must be greater or equal to neigv (file %s, line %d).\n",__FILE__,__LINE__);    }    xfscanf (in,"%ld %ld",&nijmr,&njacthr);    jacthr = new double [njacthr];    for (i=0;i<njacthr;i++){      xfscanf (in,"%lf",jacthr+i);    }        break;  }  case subspace_it_gsortho:{    if (Mespr==1){      fprintf (stdout,"\n eigenvalue problem will be solved by subspace");      fprintf (stdout,"\n iteration method with Gram-Schmidt orthonormalization technique");    }        xfscanf (in,"%ld %ld %ld %le",&neigv,&nev,&nies,&erres);    if (neigv>nev){      fprintf (stderr,"\n\n wrong number of vectors used in subspace iteration method");      fprintf (stderr,"\n nev must be greater or equal to neigv (file %s, line %d).\n",__FILE__,__LINE__);    }        break;  }  default:{    fprintf (stderr,"\n\n wrong type of eigenvalue problem solver is required");    fprintf (stderr,"\n in function read (file %s, line %d).\n",__FILE__,__LINE__);  }  }  }/**   function prints data about solver of eigenvalues and eigenvectors      @param out - pointer to output file      JK, 20.8.2005*/void eigvalsol::print (FILE *out){  long i;    fprintf (out,"%d\n",(int)teigsol);    switch (teigsol){  case inv_iteration:{    fprintf (out, "%ld %e", nies, erres);    break;  }  case subspace_it_jacobi:{    fprintf (out, "%ld %ld %ld %e", neigv, nev, nies, erres);    fprintf (out," %ld %ld\n",nijmr,njacthr);    for (i=0;i<njacthr;i++){      fprintf (out," %e",jacthr[i]);    }    break;  }  case subspace_it_gsortho:{    fprintf (out, "%ld %ld %ld %e", neigv, nev, nies, erres);    break;  }  default:{    fprintf (stderr,"\n\n unknown type of solver of eigenvalues and eigenvectors is required in function print (file %s, line %d),\n",	     __FILE__,__LINE__);  }  }    fprintf (out,"\n");  }

⌨️ 快捷键说明

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