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

📄 lenjonesmat.cpp

📁 Finite element program for mechanical problem. It can solve various problem in solid problem
💻 CPP
字号:
#include "lenjonesmat.h"#include "matrix.h"#include "vector.h"#include "stochdriver.h"#include "global.h"#include "intpoints.h"lenjonesmat::lenjonesmat (void){  eps = 0.0;  sig = 0.0;  mindist=0.0;  eqdist=0.0;}lenjonesmat::~lenjonesmat (void){}void lenjonesmat::read (XFILE *in){  xfscanf (in,"%lf %lf",&eps,&sig);    //  computation of equilibrium distance between two atoms and for given constants of potential  //r=sig*exp(log(sig)+1.0/6.0*log(2.0));  eqdist = sig*1.122462048;}/**   function computes magnitude of interatomic force      @param r - distance between atoms      JK, 19.6.2005*/double lenjonesmat::compute_force (double r){  double f,c1,c2;    if (r<mindist){    fprintf (stderr,"\n\n distance between atoms (%le) is smaller than minimum defined distance (%le)",r,mindist);    fprintf (stderr,"\n see file %s, line %d",__FILE__,__LINE__);  }  c1=24.0*eps*sig*sig*sig*sig*sig*sig/r/r/r/r/r/r/r;  c2=2.0*sig*sig*sig*sig*sig*sig/r/r/r/r/r/r;    f=c1*(1.0-c2);    return f;}/**   function returns equilibrium distance between two atoms for given constants of potential      JK, 19.6.2005*/double lenjonesmat::equilib_distance (){  return eqdist;}/**   */double lenjonesmat::first_derivative (double r){  double f,c1,c2,tmp;    if (r<mindist){    fprintf (stderr,"\n\n distance between atoms (%le) is smaller than minimum defined distance (%le)",r,mindist);    fprintf (stderr,"\n see file %s, line %d",__FILE__,__LINE__);  }  tmp = sig/r;  c1=24.0*eps*tmp*tmp*tmp*tmp*tmp*tmp/r;  c2=2.0*tmp*tmp*tmp*tmp*tmp*tmp;    f=c1*(1.0-c2);    return f;}/**   */double lenjonesmat::second_derivative (double r){  double f,c1,c2,tmp;    if (r<mindist){    fprintf (stderr,"\n\n distance between atoms (%le) is smaller than minimum defined distance (%le)",r,mindist);    fprintf (stderr,"\n see file %s, line %d",__FILE__,__LINE__);  }  tmp = sig/r;  c1=tmp*tmp*tmp*tmp*tmp*tmp/r/r;  c2=tmp*tmp*tmp*tmp*tmp*tmp;    f=4.0*eps*c1*(12.0*13.0*c2-42.0);    return f;}

⌨️ 快捷键说明

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