关注 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}"