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

📄 creep_rspec.cpp

📁 Finite element program for mechanical problem. It can solve various problem in solid problem
💻 CPP
📖 第 1 页 / 共 3 页
字号:
  long i;  long nc;  nc=Mm->ip[ipp].ncompstr;  if (n_ret_times != nRetTime){//check of number of ret. times    fprintf (stderr,"\n Wrong number of ret. times in function store_emu (file %s, line %d).\n",__FILE__,__LINE__);    abort();  }    for (i=0;i<nRetTime;i++){    e_mu.a[i] = Mm->ip[ipp].eqother[ido+(nc+nc+nc+nc+2+2)+ i];  }}/**   function returns Gamma_mu hidden strains of Kelvin chains   @param gamma_mu - vector of stifnesses   @param nrettime - number of retardation times   @param nc       - number of strain components   @param ipp      - number of integration point   TKr, 3.6.2005*/void rspecmat::give_hidden_strains(matrix &gamma_mu,long ipp,long ido){  long i,j,ii;  long n_ret_times;  long nc;  nc=Mm->ip[ipp].ncompstr;  n_ret_times = give_nret_time ();  ii = 0;  for (i=0;i<n_ret_times;i++){    for (j=0;j<nc;j++){      gamma_mu[j][i]=Mm->ip[ipp].eqother[ido+(nc+nc+nc+nc+2+2+n_ret_times)+ ii];    ii++;    }  }}/**   function stores Gamma_mu hidden strains of Kelvin chains   @param gamma_mu - vector of stifnesses   @param nrettime - number of retardation times   @param nc       - number of strain components   @param ipp      - number of integration point   TKr, 3.6.2005*/void rspecmat::store_hidden_strains(matrix gamma_mu,long ipp,long ido){  long i,j,ii;  long n_ret_times;  long nc;  nc=Mm->ip[ipp].ncompstr;  n_ret_times = give_nret_time ();  ii = 0;  for (i=0;i<n_ret_times;i++){    for (j=0;j<nc;j++){      Mm->ip[ipp].eqother[ido+(nc+nc+nc+nc+2+2+n_ret_times)+ ii] = gamma_mu[j][i];    ii++;    }  }}/**   function returns total stresses from other   @param gamma_mu - vector of total stresses   @param nc       - number of components   @param ipp      - number of integration point   TKr, 3.6.2005*/void rspecmat::give_stresses(vector &sigma,long ipp,long ido){  long i;  long nc;  nc=Mm->ip[ipp].ncompstr;    for (i=0;i<nc;i++){    sigma[i] = Mm->ip[ipp].eqother[ido+(nc)+i];  }}/**   function stores total stresses into other   @param gamma_mu - vector of total stresses   @param nc       - number of components   @param ipp      - number of integration point   TKr, 3.6.2005*/void rspecmat::store_stresses(vector sigma,long ipp,long ido){  long i;  long nc;  nc=Mm->ip[ipp].ncompstr;    for (i=0;i<nc;i++){    Mm->ip[ipp].eqother[ido+(nc)+i] = sigma[i];  }}/**   function returns increments of total stresses from other   @param dsigma - vector of increments of total stresses   @param nc     - number of components   @param ipp    - number of integration point   TKr, 3.6.2005*/void rspecmat::give_dstresses(vector &dsigma,long ipp,long ido){  long i;  long nc;  nc=Mm->ip[ipp].ncompstr;    for (i=0;i<nc;i++){    dsigma[i] = Mm->ip[ipp].eqother[ido+(nc+nc+nc)+i];  }}/**   function stores increments of total stresses into other   @param sigma - vector of increments of total stresses   @param nc    - number of components   @param ipp   - number of integration point   TKr, 3.6.2005*/void rspecmat::store_dstresses(vector dsigma,long ipp,long ido){  long i;  long nc;  nc=Mm->ip[ipp].ncompstr;    for (i=0;i<nc;i++){    Mm->ip[ipp].eqother[ido+(nc+nc+nc)+i] = dsigma[i];  }}/**   function stores increments of total stresses into other and adds them to total stresses   @param sigma - vector of increments of total stresses   @param nc    - number of components   @param ipp   - number of integration point   TKr, 3.6.2005*/void rspecmat::store_dstresses_add(vector dsigma,long ipp,long ido){  long i;  long nc;  nc=Mm->ip[ipp].ncompstr;    for (i=0;i<nc;i++){    Mm->ip[ipp].eqother[ido+(nc+nc+nc)+i] = dsigma[i];    Mm->ip[ipp].eqother[ido+(nc)+i] = Mm->ip[ipp].eqother[ido+(nc)+i] + dsigma[i];  }}/**   function returns total strains from other   @param eps - vector of total strains   @param nc  - number of components   @param ipp - number of integration point   TKr, 3.6.2005*/void rspecmat::give_strains(vector &eps,long ipp,long ido){  long i;  long nc;  nc=Mm->ip[ipp].ncompstr;    for (i=0;i<nc;i++){    eps[i] = Mm->ip[ipp].eqother[ido+(0)+i];  }}/**   function stores total strains into other   @param eps - vector of total strains   @param nc       - number of components   @param ipp      - number of integration point   TKr, 3.6.2005*/void rspecmat::store_strains(vector eps,long ipp,long ido){  long i;  long nc;  nc=Mm->ip[ipp].ncompstr;    for (i=0;i<nc;i++){    Mm->ip[ipp].eqother[ido+(0)+i] = eps[i];  }}/**   function returns increments of total strains from other   @param deps - vector of increments of total strains   @param nc   - number of components   @param ipp  - number of integration point   TKr, 3.6.2005*/void rspecmat::give_dstrains(vector &deps,long ipp,long ido){  long i;  long nc;  nc=Mm->ip[ipp].ncompstr;    for (i=0;i<nc;i++){    deps[i] = Mm->ip[ipp].eqother[ido+(nc+nc)+i];  }}/**   function stores increments of total strains into other   @param deps - vector of increments of total strains   @param nc   - number of components   @param ipp  - number of integration point   TKr, 3.6.2005*/void rspecmat::store_dstrains(vector deps,long ipp,long ido){  long i;  long nc;  nc=Mm->ip[ipp].ncompstr;    for (i=0;i<nc;i++){    Mm->ip[ipp].eqother[ido+(nc+nc)+i] = deps[i];  }} /**   function returns increments of irreversible creep strains from other   @param deps_cr - vector of increments of strains   @param nc      - number of components   @param ipp     - number of integration point   TKr, 3.6.2005*/void rspecmat::give_creepdstrains(vector &deps_cr,long ipp,long ido){  long i;  long n_ret_times;  long nc;  nc=Mm->ip[ipp].ncompstr;  n_ret_times = give_nret_time ();    for (i=0;i<nc;i++){    deps_cr[i] = Mm->ip[ipp].eqother[ido+(nc+nc+nc+nc+2+2+n_ret_times+nc*n_ret_times)+i];  }}/**   function stores increments of irreversible creep strains into other   @param deps_cr - vector of increments of strains   @param nc      - number of components   @param ipp     - number of integration point   TKr, 3.6.2005*/void rspecmat::store_creepdstrains(vector deps_cr,long ipp,long ido){  long i;  long n_ret_times;  long nc;  nc=Mm->ip[ipp].ncompstr;  n_ret_times = give_nret_time ();    for (i=0;i<nc;i++){    Mm->ip[ipp].eqother[ido+(nc+nc+nc+nc+2+2+n_ret_times+nc*n_ret_times)+i] = deps_cr[i];  }}/**   function returns increments of irreversible shrinkage strains from other   @param deps_sh - vector of increments of strains   @param nc      - number of components   @param ipp     - number of integration point   TKr, 3.6.2005*/void rspecmat::give_irrdstrains(vector &deps_sh,long ipp,long ido){  long i;  long n_ret_times;  long nc;  nc=Mm->ip[ipp].ncompstr;  n_ret_times = give_nret_time ();    for (i=0;i<nc;i++){    deps_sh[i] = Mm->ip[ipp].eqother[ido+(nc+nc+nc+nc+2+2+n_ret_times+nc*n_ret_times+nc)+i];  }}/**   function stores increments of irreversible shrinkage strains into other   @param deps_sh - vector of increments of strains   @param nc      - number of components   @param ipp     - number of integration point   TKr, 3.6.2005*/void rspecmat::store_irrdstrains(vector deps_sh,long ipp,long ido){  long i;  long n_ret_times;  long nc;  nc=Mm->ip[ipp].ncompstr;  n_ret_times = give_nret_time ();    for (i=0;i<nc;i++){    Mm->ip[ipp].eqother[ido+(nc+nc+nc+nc+2+2+n_ret_times+nc*n_ret_times+nc)+i] = deps_sh[i];  }}/**   function returns increments of irreversible stress-induced shrinkage strains from other   @param deps_sh - vector of increments of strains   @param nc      - number of components   @param ipp     - number of integration point   TKr, 3.6.2005*/void rspecmat::give_stressirrdstrains(vector &deps_ss,long ipp,long ido){  long i;  long n_ret_times;  long nc;  nc=Mm->ip[ipp].ncompstr;  n_ret_times = give_nret_time ();    for (i=0;i<nc;i++){    deps_ss[i] = Mm->ip[ipp].eqother[ido+(nc+nc+nc+nc+2+2+n_ret_times+nc*n_ret_times+nc+nc)+i];  }}/**   function stores increments of irreversible stress-induced shrinkage strains into other   @param deps_ss - vector of increments of strains   @param nc      - number of components   @param ipp     - number of integration point   TKr, 3.6.2005*/void rspecmat::store_stressirrdstrains(vector deps_ss,long ipp,long ido){  long i;  long n_ret_times;  long nc;  nc=Mm->ip[ipp].ncompstr;  n_ret_times = give_nret_time ();    for (i=0;i<nc;i++){    Mm->ip[ipp].eqother[ido+(nc+nc+nc+nc+2+2+n_ret_times+nc*n_ret_times+nc+nc)+i] = deps_ss[i];  }}/**   function returns free shrinkage   @param eps_sh  - shrinkage strains   @param nc      - number of components   @param ipp     - number of integration point   TKr, 19.6.2007*/double rspecmat::give_shrinkage(long ipp,long ido){  long i;  long n_ret_times;  long nc;  double eps_sh;  nc=Mm->ip[ipp].ncompstr;  n_ret_times = give_nret_time ();    for (i=0;i<nc;i++){    eps_sh = Mm->ip[ipp].eqother[ido+(nc+nc+nc+nc+2+2+n_ret_times+nc*n_ret_times+nc+nc+nc+nc)];  }  return eps_sh;}/**   function stores free shrinkage   @param eps_sh  - shrinkage strains   @param nc      - number of components   @param ipp     - number of integration point   TKr, 19.6.2007*/void rspecmat::store_shrinkage(double eps_sh,long ipp,long ido){  long i;  long n_ret_times;  long nc;  nc=Mm->ip[ipp].ncompstr;  n_ret_times = give_nret_time ();    for (i=0;i<nc;i++){    Mm->ip[ipp].eqother[ido+(nc+nc+nc+nc+2+2+n_ret_times+nc*n_ret_times+nc+nc+nc+nc)] = eps_sh;  }}/**   function stores actual humidity   @param ipp     - number of integration point   TKr, 3.6.2005*/void rspecmat::store_hum(long ipp,long ido){  long nc;  nc=Mm->ip[ipp].ncompstr;  if(Mm->moist != NULL)    Mm->ip[ipp].eqother[ido+(nc+nc+nc+nc)] = Mm->moist[ipp];  else    Mm->ip[ipp].eqother[ido+(nc+nc+nc+nc)] = 0.0;}/**   function stores actual temperature   @param ipp     - number of integration point   TKr, 3.6.2005*/void rspecmat::store_temp(long ipp,long ido){  long nc;

⌨️ 快捷键说明

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