量子化学仿真软件:Quantum Espresso_(7).ph.x模块使用

ph.x模块使用

1. ph.x模块概述

ph.x 是 Quantum Espresso 软件套件中的一个重要模块,用于计算材料的声子谱和相关的物理性质,如热导率、热膨胀系数等。声子是晶格振动的量子化模式,对理解材料的热力学性质、电输运性质以及光学性质至关重要。ph.x 模块基于密度泛函微扰理论(Density Functional Perturbation Theory, DFPT)进行计算,能够高效地处理周期性固体系统中的声子问题。

在这里插入图片描述

2. 声子谱计算的基本原理

2.1 密度泛函微扰理论(DFPT)

密度泛函微扰理论(DFPT)是密度泛函理论(DFT)的一种扩展,用于计算材料在小扰动下的响应。DFPT 的核心思想是在 DFT 基础上引入一个小的外部扰动,通过计算系统的响应来得到声子谱和其他相关的物理性质。具体步骤如下:

  1. 基态计算:使用 pw.x 模块计算材料的基态电子结构,得到自洽场(Self-Consistent Field, SCF)波函数和能量。

  2. 微扰计算:在基态波函数的基础上,加入小的微扰,计算系统的响应。

  3. 声子谱计算:通过微扰理论计算得到的响应,进一步计算声子频率和模式。

2.2 声子模式和频率

声子模式是晶格振动的模式,可以用波矢 q 和模指数 ν 来描述。每个 q 点对应一个波矢,每个 ν 模指数对应一个特定的振动模式。声子频率 ω 是声子模式的能量,与波矢 q 和模指数 ν 有关。ph.x 模块通过计算这些频率和模式,提供了材料的声子谱。

2.3 声子谱的应用

声子谱在材料科学中有广泛的应用,例如:

  • 热导率:声子是固体中热量传输的主要载体,通过声子谱可以计算材料的热导率。

  • 热膨胀系数:声子谱可以用于计算材料在不同温度下的热膨胀系数。

  • 红外光谱:声子模式的振动频率与红外光谱的峰有关,可以用于材料的光谱学研究。

3. ph.x模块的输入文件

ph.x 模块的输入文件主要包含两个部分:控制参数和系统参数。这些参数可以分为几大类:全局控制参数、电子结构参数、声子计算参数等。

3.1 全局控制参数

| 参数名 | 描述 | 默认值 |

| — | — | — |

| outdir | 输出文件的目录 | ./ |

| prefix | 前缀,用于标识输出文件 | pwscf |

| tprnfor | 是否输出力的打印 | false |

| tstress | 是否输出应力的打印 | false |

| lfildvscf | 是否读取微扰势文件 | true |

3.2 电子结构参数

| 参数名 | 描述 | 默认值 |

| — | — | — |

| nbnd | 电子带数 | 自动确定 |

| ecutwfc | 波函数截断能 | 从 scf 计算中读取 |

| ecutrho | 电荷密度截断能 | 从 scf 计算中读取 |

| nband | 计算的带数 | 从 scf 计算中读取 |

3.3 声子计算参数

| 参数名 | 描述 | 默认值 |

| — | — | — |

| tr2_ph | 声子计算的收敛阈值 | 1.0d-12 |

| fildvscf | 微扰势文件名 | prefix.dvscf |

| fildyn | 动力学矩阵文件名 | prefix.dyn |

| fildvscf_threshold | 微扰势文件的阈值 | 1.0d-5 |

| qplot | 是否绘制 q 点路径 | false |

| lqdir | 是否使用 q 点方向 | false |

| q_thr | q 点筛选阈值 | 1.0d-4 |

3.4 示例输入文件

以下是一个典型的 ph.x 输入文件示例,用于计算 Si 的声子谱:


&INPUTPH

  prefix = 'Si',

  outdir = './tmp/',

  tr2_ph = 1.0d-12,

  fildvscf = 'Si.dvscf',

  fildyn = 'Si.dyn',

  qplot = .true.,

  lqdir = .false.,

  q_thr = 1.0d-4,

/

ATOMIC_POSITIONS (alat)

  Si 0.0 0.0 0.0

  Si 0.25 0.25 0.25

/

K_POINTS (automatic)

  4 4 4 0 0 0

/

Q_POINTS (crystal)

  2 1

  0.0 0.0 0.0

  0.5 0.5 0.5

/

3.5 输入文件参数详解

  • prefix:指定前缀,用于标识输出文件。通常与 scf 计算中的前缀相同。

  • outdir:指定输出文件的目录。确保该目录存在,否则计算会失败。

  • tr2_ph:声子计算的收敛阈值,通常设置为 1.0d-12

  • fildvscf:微扰势文件名,通常与 scf 计算中的前缀相同。

  • fildyn:动力学矩阵文件名,通常与 scf 计算中的前缀相同。

  • qplot:是否绘制 q 点路径,设置为 true 可以生成路径文件。

  • lqdir:是否使用 q 点方向,通常设置为 false

  • q_thr:q 点筛选阈值,用于排除低频的 q 点。

4. ph.x模块的输出文件

ph.x 模块的输出文件主要包括以下内容:

  • ph.log:计算过程的详细日志。

  • prefix.dyn:动力学矩阵文件,包含 q 点和对应的声子频率。

  • prefix.dvscf:微扰势文件,用于后续的声子谱计算。

  • prefix.phdos:声子态密度文件。

  • prefix.phdisp:声子色散关系文件。

4.1 动力学矩阵文件

动力学矩阵文件 prefix.dyn 包含每个 q 点的动力学矩阵和对应的声子频率。文件格式如下:


# q-point 1

q(1) = 0.0000000 0.0000000 0.0000000

# phonon frequencies

  0.0000000000

  0.0000000000

  0.0000000000

  0.0000000000

  0.0000000000

  0.0000000000

# q-point 2

q(2) = 0.5000000 0.5000000 0.5000000

# phonon frequencies

  12.3456789012

  12.3456789012

  12.3456789012

  12.3456789012

  12.3456789012

  12.3456789012

4.2 声子态密度文件

声子态密度文件 prefix.phdos 包含声子态密度(Phonon Density of States, PDOS)的数据。文件格式如下:


# Phonon density of states

# Energy (THz)  PDOS

0.0000000000  0.0000000000

1.0000000000  0.0123456789

2.0000000000  0.0234567890

3.0000000000  0.0345678901

4.0000000000  0.0456789012

5.0000000000  0.0567890123

4.3 声子色散关系文件

声子色散关系文件 prefix.phdisp 包含 q 点和对应的声子频率数据。文件格式如下:


# Phonon dispersion relation

# q-point  Energy (THz)

0.0000000000 0.0000000000 0.0000000000

  0.0000000000

  0.0000000000

  0.0000000000

  0.0000000000

  0.0000000000

  0.0000000000

0.5000000000 0.5000000000 0.5000000000

  12.3456789012

  12.3456789012

  12.3456789012

  12.3456789012

  12.3456789012

  12.3456789012

5. ph.x模块的运行流程

5.1 基态计算

在使用 ph.x 模块之前,需要先进行基态计算。基态计算通常使用 pw.x 模块,生成自洽场波函数和能量。以下是一个简单的基态计算输入文件示例:


&control

  prefix = 'Si',

  outdir = './tmp/',

  pseudo_dir = './pseudo/',

  calculation = 'scf',

  restart_mode = 'from_scratch',

  verbosity = 'high',

/

&system

  ibrav = 2,

  celldm(1) = 10.260,

  nat = 2,

  ntyp = 1,

  ecutwfc = 50.0,

  ecutrho = 200.0,

/

&electrons

  mixing_mode = 'plain',

  mixing_beta = 0.7,

  conv_thr = 1.0d-8,

/

ATOMIC_SPECIES

  Si  28.0855  Si.pbe-n-rrkjus_psl.1.0.0.UPF

ATOMIC_POSITIONS (alat)

  Si 0.0 0.0 0.0

  Si 0.25 0.25 0.25

/

K_POINTS (automatic)

  4 4 4 0 0 0

/

5.2 微扰计算

基态计算完成后,使用 ph.x 模块进行微扰计算。微扰计算的输入文件如前所述,包含全局控制参数、电子结构参数和声子计算参数。

5.3 声子谱计算

微扰计算完成后,ph.x 模块会生成动力学矩阵文件 prefix.dyn 和微扰势文件 prefix.dvscf。这些文件可以用于进一步的声子谱计算,例如使用 matdyn.x 模块生成声子色散关系图。

6. 使用ph.x模块计算声子谱

6.1 计算步骤

  1. 基态计算:使用 pw.x 模块进行基态计算,生成自洽场波函数和能量。

  2. 微扰计算:使用 ph.x 模块进行微扰计算,生成动力学矩阵文件和微扰势文件。

  3. 声子谱计算:使用 matdyn.x 模块生成声子色散关系图和声子态密度图。

6.2 示例代码

以下是一个完整的计算流程示例,包括基态计算、微扰计算和声子谱计算。

6.2.1 基态计算

创建一个 scf.in 文件,包含基态计算的参数:


&control

  prefix = 'Si',

  outdir = './tmp/',

  pseudo_dir = './pseudo/',

  calculation = 'scf',

  restart_mode = 'from_scratch',

  verbosity = 'high',

/

&system

  ibrav = 2,

  celldm(1) = 10.260,

  nat = 2,

  ntyp = 1,

  ecutwfc = 50.0,

  ecutrho = 200.0,

/

&electrons

  mixing_mode = 'plain',

  mixing_beta = 0.7,

  conv_thr = 1.0d-8,

/

ATOMIC_SPECIES

  Si  28.0855  Si.pbe-n-rrkjus_psl.1.0.0.UPF

ATOMIC_POSITIONS (alat)

  Si 0.0 0.0 0.0

  Si 0.25 0.25 0.25

/

K_POINTS (automatic)

  4 4 4 0 0 0

/

运行基态计算:


mpirun -np 4 pw.x < scf.in > scf.out

6.2.2 微扰计算

创建一个 ph.in 文件,包含微扰计算的参数:


&INPUTPH

  prefix = 'Si',

  outdir = './tmp/',

  tr2_ph = 1.0d-12,

  fildvscf = 'Si.dvscf',

  fildyn = 'Si.dyn',

  qplot = .true.,

  lqdir = .false.,

  q_thr = 1.0d-4,

/

ATOMIC_POSITIONS (alat)

  Si 0.0 0.0 0.0

  Si 0.25 0.25 0.25

/

K_POINTS (automatic)

  4 4 4 0 0 0

/

Q_POINTS (crystal)

  2 1

  0.0 0.0 0.0

  0.5 0.5 0.5

/

运行微扰计算:


mpirun -np 4 ph.x < ph.in > ph.out

6.2.3 声子谱计算

创建一个 matdyn.in 文件,包含声子谱计算的参数:


&input

  asr = 'simple',

  amass(1) = 28.0855,

  filqin = 'Si.dyn',

  filoq = 'Si.phdisp',

  filxsf = 'Si.phdisp.xsf',

  flfrc = 'Si.force_constants',

  flfrq = 'Si.freq',

/

0.0 0.0 0.0

0.5 0.5 0.5

运行声子谱计算:


mpirun -np 4 matdyn.x < matdyn.in > matdyn.out

你可能感兴趣的:(分子动力学2,分子动力学,仿真模拟,性能优化,模拟仿真)