24小时热门版块排行榜    

CyRhmU.jpeg
查看: 394  |  回复: 1

雨一住

新虫 (初入文坛)

[求助] 分子动力学拉伸断层问题

Sample TextSample TextSample Text
本人在自己通过vc++6.0编程,做分子动力学拉伸模拟的时候原子出现断层现象,就是直接从拉伸的底部几层原子处拉断,没有之前做微观拉伸那种现象。之前用EAM做过也出现过这情况,后来解决了,不过我忘了当时怎么弄的,现在想用LJ势做,这中情况又出现了。

clip_image002.jpg
回复此楼

» 猜你喜欢

» 本主题相关商家推荐: (我也要在这里推广)

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   关注TA 给TA发消息 送TA红花 TA的回帖

雨一住

新虫 (初入文坛)

//下面为力计算程序,采用对比单位。长度对比单位1e-9,能量:1e-18。       
                int i,j,k;
                double rr,rr1,rrr1,ff;          
                double r0,p0,dr[4],A,B;

                d=0.2277;        r0=0.2277;     p0=0.066483;                A=4*p0*pow(r0,6);     B=4*p0*pow(r0,12);                        //铜原子

                for(i=1;i<=3;i++)
                        dr=0.0;

                for(i=0;i<10000;i++)
                {  
                        for(k=0;k<4;k++)
                        {
                                f[k]=0.0;
                        }
                }

                for(i=1;i<=node;i++)
                {          
                        for(j=1;j<=max;j++)
                        {
                                rr=0.0;
                                for(k=1;k<=3;k++)
                                {
                                        dr[k]=r[k]-r[listjd[j]][k];                                       
                                        rr=rr+dr[k]*dr[k];
                                }
                                rrr1=sqrt(rr);
                                rr1=rrr1/d;
                               
                                ff=6*A/pow(rr1,7)-12*B/pow(rr1,13);
                               
                                for(k=1;k<=3;k++)
                                {
                                        f[k]+=ff*dr[k]/rrr1/d*p0;                           //把对比力转化为原子实际作用力
                                }
                        }                       
                }
               
                for(i=1;i<=k2;i++)                                                                                //z向倒数3层加力
                {
                        f[painxy][3]=f[painxy][3]+sumwlf;
                }
               
                for(i=1;i<=k4;i++)
                {
                        f[painxy2][3]=f[painxy2][3]+sumwlf;
                }
               
                for(i=1;i<=k5;i++)
                {
                        f[painxy3][3]=f[painxy3][3]+sumwlf;
                }

                if(ic%10000==0)
                {
                        sumwlf=sumwlf+wlf;
                }
               
                fp2=fopen("sumwlf.txt","w";                                                               
                fprintf(fp2,"%le",sumwlf);
                fclose(fp2);
2楼2012-09-07 17:34:35
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 雨一住 的主题更新
信息提示
请填处理意见