zoukankan      html  css  js  c++  java
  • lammps温度云图

    转自:小木虫 田淮安 的回答。

    LAMMPS中的温度是由原子的动能计算而来的,具体可参见手册compute temp command一节的说明。
    LAMMPS的模拟结果,我这里指的是dump命令得到的lammpstrj文件,主要内容都是每个时刻每个原子的信息,包括坐标、速度、动能、势能等等(这些是由dump命令来设置的)。只要你的lammpstrj里面有动能数据,上面的图就容易画。
    方法一:用OVITO导入lammpstrj,然后着色。
    OVITO是一个专门对LAMMPS结果进行着色的软件,google一下就能找到官网,免费的,LINUX和WINDOWS下都有相应的版本。着色原理是按每个原子的某一种属性的值来配色,比如按原子的x值或者动能。操作很简单。缺点是得到的图是原子化的,基本单位是球,不是你想要的那种连续介质均匀分布的图。比如下图,就是石墨被C60轰击后表面区域的温度分布(侧视图),可以看到每个原子的温度。
     


    方法二:先将数据分道处理,然后画contour图
    你贴的这种连续分布图,就是常见的contour图。你需要先把lammpstrj里的温度从以原子为单位转化到以空间为单位。假设你想画x-y面的温度分布,那么就把lammpstrj中的原子按位置填到x-y空间中的小格子里,求出每一个格子里的平均温度,得到一个数据文件,应该有三列,(x,y,T),x,y是某一个小格子的中心坐标,T就是相应的温度,然后用originpro、matlab等常用软件画contour图就行了。下图是我画的石墨缺口处的原子密度contour图,颜色深浅代表原子密度的高低;温度也可以用同样的方法得到。

    抱歉,这几天没上小木虫。
    关于你的两个问题:
    1、怎么从LAMMPSTRJ文件中得到(x,y,T)的数据?
        这个你写点C++代码,或者在LINUX下用脚本或VIM,对LAMMPSTRJ文件进行处理就行了,提取出你想要的那一个时刻的x,y,ke(指动能)这三列数据。这是最基本的数据处理,你如果没做过可以找擅长C++/LINUX的人帮忙,非常简单。

    2、怎么用OVITO对原子动能进行着色?
        前提是你载入的LAMMPSTRJ文件中有动能这一列,这需要你在in_file的dump命令中提前设置;如果你的LAMMPSTRJ文件中只有原子坐标,自然就只能对坐标着色。
        已经含ke的话就比较简单了:
    (1)打开OVITO,载入文件;拉下右侧菜单,点color coding,如下图


    (2)在下面的property中选择你之前设置的动能数据。我的这个文件中,c_1代表动能,就选择c_1,如下图;


    (3)可以调节动能值的范围,如下图;


    (4)也可以在选择颜色种类,比如我把彩虹色改为热色,如下图;

     问:现在我载入的LAMMPS输出文件中,还没有像你这样的C_1的动能值,请问您在in文件中如何设置,使它出现,我用的thermo_style中包含了ke、pe,但载入时还是没有能量的选项,求赐教

    答:thermo_style中的ke是所有原子的总动能,是全局变量(global),LAMMPS会自动计算;
    你想得到的是每个原子的动能,是原子变量(atomic),需要你在in文件中先用compute命令计算,然后在dump一行中引用compute的编号。
    比如,我计算原子动能的命令是
    compute 1 all ke/atom,意思是计算每个原子的动能,计算名称为1(这个名称可以是数字,也可以是字符串,随个人风格)。
    而我的dump命令是
    dump 1 all custom 1000 filename.lammpstrj id type x y z c_1,意思就是每隔1000步输出每个原子的编号(id)、类型(type)、三维坐标(x,y,z)和动能(c_1)。"c_1"这种格式是LAMMPS定义的,表示名称为1的计算的结果。类似的还有v_name,表示用户定义的名称为name的变量。
    细节可以在手册的compute、dump等命令中找到。建议你多读手册。这些东西手册里讲得很清楚。



    希望对你有帮助

  • 相关阅读:
    python之路-day31-守护进程、锁、队列、生产者消费者模型
    python之路-day30-进程
    python之路-day26 初探网络编程
    python之路-day25-包
    python之路-day21-模块介绍1
    python之路-day19-面向对象之约束
    递归格式模板
    java创建一个窗体
    异常throws关键字 异常throw关键字
    多个catch块
  • 原文地址:https://www.cnblogs.com/lzqstudy/p/13192010.html
Copyright © 2011-2022 走看看