LAMMPS源代码(1)- 源自精小木虫论坛华贴

博客讨论了LAMMPS分子动力学模拟软件的源代码结构,特别是如何计算原子间相互作用。用户在寻找计算力的代码时遇到困难,社区给出了建议,指出计算通常在`pair_style`命令和`integrate`类的`run`函数中完成。同时,还探讨了`bond_harmonic`势函数的实现和`[type]`的含义,它用于区分不同类型的键。
摘要由CSDN通过智能技术生成

关于源代码

Ask:想看看lammps源代码里面是如何计算原子间相互作用的,结果看来看去都没发现哪块是计算相互作用的,lammps的源代码写的很不容易看清楚啊。 从主程序main.cpp出发,里面除去MPI相关的函数,和创建一个lammps实例,剩下就一句话  lammps->input->file();   调用lammps下的input类的file函数,处理输入文件。 这个file函数里面除去很多判断最后就落到parse函数,对命令进行解析,然后进入execute_command函数调用相应的命令处理函数,但是这里面没有run命令的处理函数。 以pair_style命令为例,对应的pair_style函数会将输入的命令参数(力场名称)和类force下的pair_style字符串比较(然而这个字符串的赋值始终没找到),如果符合就进入相应的settings函数。然后,这个settings函数里面一般就一行判断参数个数的语句就没了。 求高手指点一下,lammps源代码的结构是怎么样的?哪个文件里面包含了原子间相互作用的计算?

Response1:用的是C++的多态技术;

Response2:比如,想看lj96势函数的,找pair_lj98_cut.cpp,打开这个CPP文件,就能看到计算作用力的代码;

Response3:嗯,这个应该是可以理解的,不过我想看的是lammps中怎么把计算的力结果返回到主程序的,分子动力学有个力->速度->位置->力的循环迭代,应该是在主程序中完成的吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值