# 关于田老师的EAM教程的一点代码补充
首先我们来看看EAM势能的基本公式:
![](./picture/EAM公式.png)
上述公式的形式非常简单, 但是其实上述公式是eam/alloy的形式, 为了更简单, 我们可以将公式进一步简化为最基本的eam形式, 改动不大, 只需要把所有β都改成α即可, 因为eam的势函数只能用于单一金属元素的MD, 计算过程中不可能出现α和β两种不同的元素. 简化之后的公式如下:
![](./picture/eam2.png)
这里我展示一下对应的标准格式的模型文件里面的前20行, 务必按照这样的格式导出模型文件, 包括连空行都要保持一致, 上述程序才能读取成功:
```
# Fcc Cu oriented X=[100] Y=[010] Z=[001].
4000 atoms
1 atom types
0.000000000000 36.150000000000 xlo xhi
0.000000000000 36.150000000000 ylo yhi
0.000000000000 36.150000000000 zlo zhi
Masses
1 63.54600000 # Cu
Atoms # atomic
1 1 0.000000000000 0.000000000000 0.000000000000
2 1 1.807500000000 1.807500000000 0.000000000000
3 1 0.000000000000 1.807500000000 1.807500000000
4 1 1.807500000000 0.000000000000 1.807500000000
5 1 3.615000000000 0.000000000000 0.000000000000
```
# 主程序代码示范
```fortran
program main
use global_var, only: wp, stdout
use fileIO, only: eamFile, Readfile, Atom, ReadData, region
use computeUE, only: Pair, interpolate, Energy
implicit none
type(eamFile) :: cu_u3 !< 包含势函数的数据和处理之后的数据的类
type(Atom), allocatable :: cuSC(:) !< 单晶Cu的模型文件
type(region) :: box !< 仿真盒子
real(wp) :: power
call Readfile('Cu_u3.eam', cu_u3)
call ReadData('cu.lmp', box, cuSC)
call Energy(cu_u3, cuSC, power, box) !! 根据势函数和模型文件计算势能
write(stdout, *) power, ' ev' !! 输出势能
! lammps的输出: -14160.0000090988 ev
end program main
```
其中**Cu_u3.eam**是lammps的文件夹中自带的势函数文件, 而**cu.lmp**是我用ATOMSK生成的一个含有4000个Cu原子, 且xyz取向为标准取向的原子模型, 相关文件和源代码会在文章最后一并给出.
进入src目录输入make即可完成编译工作, 使用gfortran或者ifort都可以
自编程运行结果:
![](./picture/result.png)
lammps测试in文件:
```python
# 基本设定
units metal
boundary p p p
timestep 0.001
neighbor 0.0 bin # neigbor设为0.0, 只计算截断半径以内的原子的势能
read_data cu.lmp
# 定义势函数
pair_style eam
pair_coeff * * Cu_u3.eam # 定义原子为Cu
# 定义势能并输出
variable pot equal pe
thermo 100
thermo_style custom step pe ke etotal epair
run 0
print "------------------------------------------------------"
print "---------------- ${pot} ev ----------------"
print "------------------------------------------------------"
```
lammps运行结果:
![](./picture/lammps.png)
可以看到, 从相对误差的角度来说, 误差小于万分之一.
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
使用Fortran写的根据eam文件格式和ATOMSK生成的lmp格式的data文件计算模型势能的代_EAM_Compute.zip (20个子文件)
EAM_Compute-main
picture
lammps.png 10KB
result.png 12KB
eam2.png 18KB
EAM公式.png 24KB
src
mod_computePE.f90 7KB
Cu_u3.eam 36KB
main.f90 2KB
Makefile 744B
mod_fileIO.f90 19KB
global_var.f90 1KB
a.out 26KB
unittest
Cu_u3.eam 36KB
cu.lmp 313KB
mod_unittest.f90 3KB
test.f90 181B
global_var.f90 1KB
lammps-simulation
Cu_u3.eam 36KB
cu.lmp 313KB
run.in 578B
Readme.md 3KB
共 20 条
- 1
资源评论
2401_87496566
- 粉丝: 1083
- 资源: 5284
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功