返回首页

LAMMPS如何计算体积热容量

时间:2012-11-08 13:21来源:知行网www.zhixing123.cn 编辑:麦田守望者

体积热容简介

热容(Heat Capacity, or thermal capacity),单位质量或体积的物质温度升高或降低1K时吸收或放出的热量。

Wikipedia里热容的定义:Heat capacity (usually denoted by a capital C, often with subscripts), or thermal capacity, is the measurable physical quantity that characterizes the amount of heat required to change a substance’s temperature by a given amount.  (link: Heat capacity )

从上面的定义也可以看出,热容有质量热容 (Specific Heat) 和体积热容 (Volumetric Heat Capacity) ,分别是以单位质量和单位体积的物质定义的。这里具体介绍体积热容如何计算。

Wikipedia里体积热容的定义:Volumetric heat capacity (VHC), also termed volume-specific heat capacity, describes the ability of a given volume of a substance to store internal energy while undergoing a given temperature change, but without undergoing a phase change. (link: Volumetric heat capacity )

可以总结出如下公式:

definition of volumetric heat capacity

简单分析一下,既然是单位体积的物质,那么体积在模拟的过程中就不能变;然后考虑体系能量随着温度的变化,自然就会想到选择NVT系综。

更具体的描述是:在保持体系体积不变的前提下,计算不同温度下对应的体系总能。E-T曲线的斜率应该就与体积热容有一个直接的对应关系了。

体积热容计算举例

下面以Cu为例,介绍如何使用LAMMPS计算其体积热容Cv。

输入脚本 in.specific.heat

# This input script is used to calculate
# the specific heat of copper.


units           metal
boundary        p p p
atom_style      atomic

variable        x equal 2.5

lattice		fcc 3.62
region		box block 0 8 0 8 0 8
create_box	1 box
create_atoms 	1 box

pair_style      eam
pair_coeff      1 1 Cu_u3.eam

variable        N equal step
variable        Etotal equal etotal
variable        T equal temp
variable        V equal vol

velocity        all create $x 825577 dist gaussian
fix             extra all print 100 "${N} ${V}  ${T}  ${Etotal} " file data

timestep	0.002
thermo		1000

fix             1 all nvt temp $x 2000 0.2
run             120000

很简单的输入脚本,在34~35行定义了NVT系综,温度从初始温度2.5K一直升高到2000K,整个过程运行120000步。

输出的文件data中包含了所有的数据,分别是计算步,体积,温度和总能量。

将数据导入到origin中,进行简单的线性拟合分析,即可得到下图。

volumetric heat capacity - temperature vs total energy

图中拟合曲线的斜率为0.53975,即ΔE/ΔT=0.53975 eV/K。计算过程中保持恒定的体积 V=24288.21914 A3

从而,可以计算得到 Cv=3.56 J/(cm3K) 。实验值为:3.45 J/(cm3K)。

(其中用到了单位换算:1 eV = 1.60217646 × 10-19 J, 1 A = 10-8 cm)

体积热容表可以参考:体积热容量查询表

------分隔线----------------------------
标签(Tag):MATLAB Matlab技巧 Matlab实例教程 matlab源代码 matlab基础教程
------分隔线----------------------------
推荐内容
猜你感兴趣