LAMMPS实现MC模拟

关注 M r . m a t e r i a l   , \color{Violet} \rm Mr.material\ , Mr.material , 更 \color{red}{更} 多 \color{blue}{多} 精 \color{orange}{精} 彩 \color{green}{彩}


主要专栏内容包括:
  †《LAMMPS小技巧》: ‾ \textbf{ \underline{\dag《LAMMPS小技巧》:}}  LAMMPS小技巧》: 主要介绍采用分子动力学( L a m m p s Lammps Lammps)模拟相关安装教程、原理以及模拟小技巧(难度: ★ \bigstar
  ††《LAMMPS实例教程—In文件详解》: ‾ \textbf{ \underline{\dag\dag《LAMMPS实例教程—In文件详解》:}}  ††LAMMPS实例教程—In文件详解》: 主要介绍采用分子动力学( L a m m p s Lammps Lammps)模拟相关物理过程模拟。(包含:热导率计算、定压比热容计算,难度: ★ \bigstar ★ \bigstar ★ \bigstar
  †††《Lammps编程技巧及后处理程序技巧》: ‾ \textbf{ \underline{\dag\dag\dag《Lammps编程技巧及后处理程序技巧》:}}  †††Lammps编程技巧及后处理程序技巧》: 主要介绍针对分子模拟的动力学过程(轨迹文件)进行后相关的处理分析(需要一定编程能力。难度: ★ \bigstar ★ \bigstar ★ \bigstar ★ \bigstar ★ \bigstar )。
  ††††《分子动力学后处理集成函数—Matlab》: ‾ \textbf{ \underline{\dag\dag\dag\dag《分子动力学后处理集成函数—Matlab》:}}  ††††《分子动力学后处理集成函数—Matlab》: 主要介绍针对后处理过程中指定函数,进行包装,方便使用者直接调用(需要一定编程能力,难度: ★ \bigstar ★ \bigstar ★ \bigstar ★ \bigstar )。
  †††††《SCI论文绘图—Python绘图常用模板及技巧》: ‾ \textbf{ \underline{\dag\dag\dag\dag\dag《SCI论文绘图—Python绘图常用模板及技巧》:}}  †††††SCI论文绘图—Python绘图常用模板及技巧》: 主要介绍针对处理后的数据可视化,并提供对应的绘图模板(需要一定编程能力,难度: ★ \bigstar ★ \bigstar ★ \bigstar ★ \bigstar )。
  ††††††《分子模拟—Ovito渲染案例教程》: ‾ \textbf{ \underline{\dag\dag\dag\dag\dag\dag《分子模拟—Ovito渲染案例教程》:}}  ††††††《分子模拟—Ovito渲染案例教程》: 主要采用 O v i t o \rm Ovito Ovito软件,对 L a m m p s \rm Lammps Lammps 生成的轨迹文件进行渲染(难度: ★ \bigstar ★ \bigstar )。

  专栏说明(订阅后可浏览对应专栏全部博文): ‾ \color{red}{\textbf{ \underline{专栏说明(订阅后可浏览对应专栏全部博文):}}}  专栏说明(订阅后可浏览对应专栏全部博文):
注意: \color{red} 注意: 注意:如需只订阅某个单独博文,请联系博主邮箱咨询。 l a m m p s _ m a t e r i a l s @ 163. c o m \rm lammps\_materials@163.com lammps_materials@163.com

♠ \spadesuit † \dag 开源后处理集成程序:请关注专栏《LAMMPS后处理——MATLAB子函数合集整理》
♠ \spadesuit † \dag † \dag 需要付费定制后处理程序请邮件联系: l a m m p s _ m a t e r i a l s @ 163. c o m \rm lammps\_materials@163.com lammps_materials@163.com


# Monte Carlo relaxation of perturbed 2d hex lattice

# set these parameters
# make sure neigh skin > 2*deltamove

variable iter loop 3000            # number of Monte Carlo moves
variable deltaperturb equal 0.2    # max size of initial perturbation per dim
variable deltamove equal 0.1       # max size of MC move in one dimension
variable density equal 1.0         # reduced LJ density of atoms on lattice
variable kT equal 0.05             # effective T in Boltzmann factor
variable seed equal 582783         # RNG seed

# problem setup

units		lj
atom_style	atomic
atom_modify     map array sort 0 0.0

dimension       2

lattice		hex ${density}
region		box block 0 10 0 5 -0.5 0.5

create_box	1 box
create_atoms	1 box
mass		1 1.0

pair_style	lj/cut 2.5
pair_coeff	1 1 1.0 1.0 2.5
pair_modify     shift yes

neighbor	0.3 bin
neigh_modify	delay 0 every 1 check yes

variable        e equal pe

# run 0 to get energy of perfect lattice
# emin = minimum energy

run             0
variable        emin equal $e

# disorder the system
# estart = initial energy

variable        x atom x+v_deltaperturb*random(-1.0,1.0,${seed})
variable        y atom y+v_deltaperturb*random(-1.0,1.0,${seed})

set             group all x v_x
set             group all y v_y

#dump		1 all atom 25 dump.mc

#dump		2 all image 25 image.*.jpg type type &
#		zoom 1.6 adiam 1.0
#dump_modify	2 pad 5

#dump		3 all movie 25 movie.mpg type type &
#		zoom 1.6 adiam 1.0
#dump_modify	3 pad 5

variable        elast equal $e
thermo_style    custom step v_emin v_elast pe

run             0

variable        estart equal $e
variable        elast equal $e

# loop over Monte Carlo moves

variable        naccept equal 0
variable        increment equal v_naccept+1
variable        irandom equal floor(atoms*random(0.0,1.0,${seed})+1)
variable        rn equal random(0.0,1.0,${seed})
variable        boltzfactor equal "exp(atoms*(v_elast - v_e) / v_kT)"
variable        xnew equal x[v_i]+v_deltamove*random(-1.0,1.0,${seed})
variable        ynew equal y[v_i]+v_deltamove*random(-1.0,1.0,${seed})
variable        xi equal x[v_i]
variable        yi equal y[v_i]

label           loop

variable        i equal ${irandom}

variable        x0 equal ${xi}
variable        y0 equal ${yi}

set             atom $i x ${xnew}
set             atom $i y ${ynew}

run             1 pre no post no

if              "$e <= ${elast}" then &
                  "variable elast equal $e" &
                  "variable naccept equal ${increment}" &
                elif "${rn} <= ${boltzfactor}" &
                  "variable elast equal $e" &
                  "variable naccept equal ${increment}" &
                else &
                  "set atom $i x ${x0}" &
                  "set atom $i y ${y0}"

next            iter
jump            SELF loop

# final energy and stats

variable       nb equal nbuild
variable       nbuild equal ${nb}

run             0

print           "MC stats:"
print           "  starting energy = ${estart}"
print           "  final energy = $e"
print           "  minimum energy of perfect lattice = ${emin}"
print           "  accepted MC moves = ${naccept}"
print           "  neighbor list rebuilds = ${nbuild}"

LAMMPS(Large-scale Atomic/Molecular Massively Parallel Simulator)是一种用于分子动力学模拟的开源软件工具,常用于研究材料科学、生物物理学和化学等领域。为了进行LAMMPS模拟,需要一台配置适当的计算机。 首先,计算机需要具备足够的处理能力,包括强大的中央处理器(CPU)和图形处理器(GPU)。较高的CPU频率和多个处理核心可以加快LAMMPS模拟的计算速度。配备支持CUDA(Compute Unified Device Architecture)的NVIDIA GPU可以进一步提升模拟的效率。 其次,内存(RAM)也是至关重要的因素。在进行大规模原子模拟时,内存需求往往很高。通常建议至少拥有16GB的内存,以便处理大规模的原子系统。 此外,硬盘容量和速度也有一定的要求。LAMMPS的输入和输出文件通常很大,因此需要一个大容量的硬盘来存储这些文件。为了提高输入和输出速度,固态硬盘(SSD)是一个更好的选择。 此外,操作系统的选择也很重要。LAMMPS可以在多种操作系统上运行,例如Windows、Linux和MacOS。为了获得更好的性能和稳定性,建议使用Linux操作系统,因为它具有更好的并行计算支持和更少的系统开销。 最后,LAMMPS还依赖于其他软件包和库以提供一些附加功能。这些软件包可以根据需要进行安装和配置,常见的包括MPI(Message Passing Interface)库和OpenMP(Open Multi-Processing)库。 总而言之,为了进行LAMMPS动力学模拟,计算机需要配置高性能的处理器、足够的内存、大容量和高速的硬盘以及稳定的操作系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr. Material

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值