如何学分子模拟的软件

如何学分子模拟的软件当今分子模拟已经成为很多领域学术研究的主流方法。多年前,因为计算量的原因,很多情况下,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)


相关推荐

  • java图书馆新地址_最受Java开发者喜爱的5款开源IDE盘点

    java图书馆新地址_最受Java开发者喜爱的5款开源IDE盘点开源最前线(ID:OpenSourceTop)猿妹编译项目地址:https://opensource.com/article/20/7/ide-java在TIOBE编程语言排行中,Java始终排在前三名,现今有700万到1000万的Java开发人员。许多应用程序的所有代码都是用Java编写的,这意味着集成开发环境(IDE)很重要,因为它是开发人员编写、测试和运行Java程序必备的工具…

  • k8s 开源_jdk源码剖析手册

    k8s 开源_jdk源码剖析手册createfunc main() { #随机数 rand.Seed(time.Now().UnixNano()) #创建一个新的命令行对象 command := cmd.NewDefaultKubectlCommand() #日志 logs.InitLogs() defer logs.FlushLogs() #真正执行的命令行 if err := command.Execute(); err != nil { os.Exit(1) }}# NewDefaultKubectl

  • Excel 增加删除线

    Excel 增加删除线Excel增加删除线操作如下:2.选中删除线即增加删除线,去掉删除线即删除删除线,颜色可以定义成红色之类。

  • JAVA虚拟机、Dalvik虚拟机和ART虚拟机简要对比

    简单介绍JAVA虚拟机,安卓Dalvik虚拟机和ART虚拟机,并做简单对比。

  • 怎么删除服务项

    怎么删除服务项

  • 需求分析之数据流图学习

    很实在的文章,原文转自http://blog.csdn.net/gashero/article/details/1230185以前眼里的软件工程,虽然重要,但是却一直不太了解其用处到底有多大。现在开始渐渐接触大工程了,才开始真正体验到软件工程的威力。没有好的需求分析,软件等于白做;没有好的系统设计,做了也要重做。在大型软件中,人的因素越来越大,远远超过技术的因素。比如,一些ERP系统的

发表回复

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

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