如何学分子模拟的软件

如何学分子模拟的软件当今分子模拟已经成为很多领域学术研究的主流方法。多年前,因为计算量的原因,很多情况下,MC方法是首选,特别是只关心平衡体系,关心相边界行为的时候。随着计算资源的增加、计算成本的降低、一些研究对象的平衡态的体系已经几乎被做烂了,科研工作者慢慢关心动力学行为,非平衡特征,致力于发现新的现象,新的物理规律(总要有事做,有饭吃吧),于是MD越来越普及,用的人也越来越多。除了极端的方法学工作者,一般情况下…

大家好,又见面了,我是你们的朋友全栈君。

当今分子模拟已经成为很多领域学术研究的主流方法。多年前,因为计算量的原因,很多情况下,MC方法是首选,特别是只关心平衡体系,关心相边界行为的时候。随着计算资源的增加、计算成本的降低、一些研究对象的平衡态的体系已经几乎被做烂了,科研工作者慢慢关心动力学行为,非平衡特征,致力于发现新的现象,新的物理规律(总要有事做,有饭吃吧),于是MD越来越普及,用的人也越来越多。

除了极端的方法学工作者,一般情况下,MD的结果更容易被实验研究这,审稿人接受。

当一个方法被大家普遍接受且研究所需要成本降低时,对应于这个方法的产品,也就是我们的模拟软件就会雨后春笋的出来了。因为,不同的人研究对象不同,所用的相互作用不同,数据处理的思路等等不同,会出现多种版本的软件:不同的团队开发,面向不同用户群的软件。

问题是,如果学一个软件呢?我的经验是把软件的核心部分,即MD的基本原理和实现算法搞明白,弄清楚。这些懂了,任何软件都容易上手,那么我们下面讲讲哪些是基础。

  1. 知道一个核心,MD就是解多粒子体系的牛顿方程(F=ma),多粒子下,我们不是直接面对F,而是粒子间相互势 U, 而二者有直接关系 F= – (倒三角) U。一般情况下,U是坐标的函数。

  2. 上面懂了后,我们想得到粒子的运动。U(或者说是势函数)要先定,这就是建模了,不同体系,U会不同;决定U的就是粒子间相互作用的参数了,这些参数完全知道了,在全原子的情况下就叫力场。

  3. 要让计算机明白你的上述信息,你要按照机器要求(格式)写文件,这就是输入数据,包含坐标、力场参数,复杂体系还要包含研究对象的分子内结构等。【这就是学软件必须遵守的,不要问他们为啥用这种格式,软件开发者喜欢罢了】

  4. 接下来一步就是要了解算法(如何解方程)了,常见的velocity-verlet, 蛙跳,控温空压方法(统计物理的一些基本概念)大致了解,不需要很懂,因为你接触不了这些算法,知道他们参数意义就行了。了解了之后你才会写控制文件(也就是你的研究对象遵循的运动规律,有了控温空压),才能判断自己写的对否。

  5. 对计算加速的处理方法也要了解,比如近邻列表、box类型、相互作用势的处理等等。

  6. 最后一步,就是数据如何处理了,不同学科肯定不同,这种数据处理的方法,和你的学科知识紧密相连,多读文献,多看专业的书才是王道。这个基础和模拟软件关系不大。

简单的说,软件的学习,会写正确的 data(坐标、分子拓扑链接)文件,会写正确的in(运动规律)文件就行了(正确有两个层次:一是能Run,二是算出来是符合物理规律的)。其他不是软件能帮大家解决的,特别是模拟的经验性的东西,需要不断的交流(www.isimuly.com)和探索。只是格式上学会了写Data,in文件(这是方法的核心部分),不一定会建模和数据处理(研究问题的核心部分)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/141253.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • keil5使用教程

    keil5使用教程简单介绍keil5得使用教程。

  • mysql 根据时间范围查询

    mysql 根据时间范围查询时间格式为第一种写法:select*fromtestwherecreate_timebetween’2019-03-0513:04:07’and’2019-03-0813:04:07′;第二种写法:select*fromtestwherecreate_time>=’2019-03-0513:04:07’anddate&lt…

  • mysql改变主键字段类型吗_mysql修改字段类型有哪些?

    mysql改变主键字段类型吗_mysql修改字段类型有哪些?mysql修改字段类型有:1、添加字段【altertabletable1(表名)addNo_id(字段名)】;2、修改字段类型【t1(表名)altercolumna(字段名)】;3、删除某表的字段【drop’cpid’】。mysql修改字段类型有:1、mysql修改字段的默认值altertabletb_mer_team_columndropconstraintDF_tb_m…

  • 循环移动数组元素

    循环移动数组元素//循环移动数组元素//一种大部分数据只移动一次的算法//方法://  将数据循环移动,可以直接计算出每个数据的最终位置,直接移动即可//分析://  这种算法基本可看做每个数据只需要移动一次//  但是每个数据移动的位置需要计算,算法

  • java实现MD5加密

    java实现MD5加密1加密方法:1.1java自带jar工具MessageDigest实现 java.security.MessageDigest1.2spring自带的工具DigestUtils实现

  • TypeError: ‘Collection‘ object is not callable. If you meant to call the ‘insert‘ method on a ‘Datab

    TypeError: ‘Collection‘ object is not callable. If you meant to call the ‘insert‘ method on a ‘DatabfrompymongoimportMongoClient报错问题描述解决方法问题描述使用pymongo连接本地的MongoDB,跟个老师的视频,出现报错,后查询资料改正frompymongoimportMongoClient#创建数据库连接对象client=MongoClient()#选择一个数据库db=client[‘python’]#身份认证#db.authenticate(‘python’,’python’)#选择一个集合col=c

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号