24小时热门版块排行榜    

查看: 1586  |  回复: 7
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

frcon

新虫 (初入文坛)

[求助] LAMMPS源代码的求助 已有1人参与

给位老师,大家好,最近我在修改lammps中bond_harmonic的源代码,对其中部分不是很清楚,在这里请教一下:
bond_harmonic的势函数为E=K(r-r0)^2, 在源代码中
rsq = delx*delx + dely*dely + delz*delz;
r = sqrt(rsq);
dr = r - r0[type];
rk = k[type] * dr;

其势函数是这样写的,在这里,我不是很懂程序中[type]的意思,各位有知道的能讲解一下吗?万分感谢!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

frcon

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by lsloneil at 2016-02-23 15:27:18
这很好理解啊,模拟中可以定义多种类型的键,每一种类型的键都有相应的力常数k和平衡距离r0, type就表示健的种类。

p.s. 如果不懂c++,还是补一点基础知识再去看源代码。

那像代码里的ebond,fbond这些定义对应的意思可以在哪里找到
4楼2016-02-23 15:35:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 8 个回答

lsloneil

专家顾问 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
这很好理解啊,模拟中可以定义多种类型的键,每一种类型的键都有相应的力常数k和平衡距离r0, type就表示健的种类。

p.s. 如果不懂c++,还是补一点基础知识再去看源代码。
2楼2016-02-23 15:27:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

frcon

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by lsloneil at 2016-02-23 15:27:18
这很好理解啊,模拟中可以定义多种类型的键,每一种类型的键都有相应的力常数k和平衡距离r0, type就表示健的种类。

p.s. 如果不懂c++,还是补一点基础知识再去看源代码。

好的,谢谢
3楼2016-02-23 15:33:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lsloneil

专家顾问 (正式写手)

【答案】应助回帖

引用回帖:
4楼: Originally posted by frcon at 2016-02-22 19:35:20
那像代码里的ebond,fbond这些定义对应的意思可以在哪里找到...

没法找到,lammps代码不可能每一行都给你注释,每个变量的具体含义只能根据变量的名字和在程序中的调用,结合注释才能推测。

像ebond, fbond都还是比较简单的能根据名字能推测出含义的变量,也就是键的能量和力。如果碰到其他你看了半天代码也推测不出来含义的变量,可以到lammps mailing list去请教别人。lammps developer guide(http://lammps.sandia.gov/doc/Developer.pdf)可以帮助你了解代码的结构,但不会告诉你每个变量每个函数的具体含义。总之要了解代码是要花一些时间的。
5楼2016-02-24 00:26:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见