研究温度和压力对碳纳米管储氢能力的影响

简单步骤计算模拟温度和压力对碳纳米管(CNT)储氢能力的影响

软件需求

  • GROMACS
    主要的模拟引擎
  • shell或者awk脚本
    产生单壁碳纳米管(SWCNT)和梯度温度,压力模拟

主要步骤

  • 产生CNT模型
    脚本下载链接,然后执行命令:

    1
    bash awk_cnt.bsh -n 8 -s 2 -l 2

    则产生名为cnt.gro,长度为2.414 nm,半径为0.313155 nm的(8, 0) zigzag碳纳米管

  • 准备top文件
    CNT可以直接通过gmx x2top -nopbc产生有限长的CNT的拓扑文件,可以参考博文无机材料的基本操作
    氢气的拓扑参数来自文献,详细步骤略。

  • 设计温度梯度和压力梯度
    本例只做一个温度77 K,压力范围0.1 ~ 2.8 MPa,研究氢气分子数目为500
    通过理想气体状态方程PV=nRT(也可以用真实气体范德华方程)计算相应温度和压力下需要的模拟体系体积,采用立方体盒子,确定边长L。L的值我直接采用下列脚本awk_calvolume.bsh

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #!/bin/bash

    P=$1
    N=$2
    awk '
    BEGIN {
    P = "'$P'"+0 # Mpa
    N = "'$N'"+0
    Na = 6.02214076E23 # Avogadro constant
    T = 77 # K
    R = 8.314 # pa m^3/mol K
    n = N/Na
    V = n*R*T/(P*1E6)
    L = V^(1/3)*1E9
    print L
    }
    '

    我想计算500个分子在温度77 K下,压力0.1 MPa,需要多大的盒子,则使用方式:

    1
    bash awk_calvolume.bsh 0.1 500
  • 批量模拟
    在温度77 K下依次进行多个压力梯度的模拟,每一个时长为2 ns,脚本如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    #!/bin/bash

    RUBSH="/dev/null"

    #bash awk_cnt.bsh -n 8 -s 2 -l 2 > $RUBSH 2>&1
    #echo 1 | gmx x2top -f cnt.gro -o topol.top -ff select -nopbc -kb 400000 -kt 600 -kp 150 > $RUBSH 2>&1

    n=1
    for MPa in `seq 0.1 0.3 3`
    do
    echo "Doing $n of 10 simulation"
    mkdir ${MPa}MPa && cd ${MPa}MPa && \
    cp -r ../awk_calvolume.bsh ../cnt_oplsaa.ff ../*.mdp ../h2.itp ../*.gro ../*.top .
    L=`bash awk_calvolume.bsh $MPa 500`

    gmx editconf -f cnt.gro -box $L $L $L -o box.gro -c > $RUBSH 2>&1
    gmx insert-molecules -f box.gro -ci h2.gro -nmol 500 -o comp.gro > $RUBSH 2>&1
    gmx grompp -f em.mdp -c comp.gro -o em.tpr > $RUBSH 2>&1
    gmx mdrun -deffnm em > $RUBSH 2>&1
    gmx grompp -f nvt.mdp -c em.gro -o nvt.tpr -maxwarn 1 > $RUBSH 2>&1
    gmx mdrun -deffnm nvt > $RUBSH 2>&1

    cd ..
    let n++
    done

  • 数据提取
    完成上面所有模拟以后,我们直接统计了SWCNT周围吸附的氢气分子数目。脚本如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #!/bin/bash

    n=1

    for MPa in `seq 0.1 0.3 3`
    do
    echo "Calculate $n ..."
    cd ${MPa}MPa
    L=`bash awk_calvolume.bsh $MPa 500`
    low=`awk -v L=$L 'BEGIN {print (L-2.414)/2}'`
    hig=`awk -v L=$L 'BEGIN {print (L-2.414)/2+2.414}'`
    gmx select -f nvt.xtc -s nvt.tpr -os << EOD
    name H1 and (x-${L}/2)^2+(y-${L}/2)^2<=1.5^2 and z>$low and z<$hig
    EOD

    cd ..
    let n++
    done

  • 数据作图分析
    简单用vmd查看一个的轨迹截图

最后用qtgrace作图看看。如下图:

不难看出,当温度为77 K的时候,随着压力的增加,SWCNT的储氢能力不断的增强,但是增强的量越来越慢,最后基于平稳。

文献参考

【1】Investigation of hydrogen adsorption on platinum-decorated single-walled carbon nanotube using molecular dynamics simulations
【2】Hydrogen and methane storage and release by MoS2 nanotubes for energy storage

文章目录
  1. 1. 软件需求
  2. 2. 主要步骤
  3. 3. 文献参考
_
本站总访问量