自定義Controller在MindSponge分子動力學模擬框架中的應用

maro

分子動力學模擬中的控制器(Controller)可用于修改模擬過程中的原子坐標和原子速度等參量,實現對系統特定參量的控制。例如,控溫器可以用于實現NVT系綜,控壓器可用于實現NPT系綜。在MindSponge分子動力學模擬框架下,控溫和控壓可以基于控制器Controller來實現。更多關于MindSponge分子動力學模擬框架的信息,如安裝和基本使用等,可閱讀MindSponge專欄里的文章。

自定義Controller

Controller位于control路徑下,除了已經定義好的一些控溫控壓算法之外,用戶還可以直接繼承Controller來實現自己需要的系統控制算法。例如,我們可以定義一個縮放原子速度的控制器:

class MyController(Controller): def construct(self, coordinate: Tensor, velocity: Tensor, **kwargs): return super().construct(coordinate, velocity/2, **kwargs)

它的功能是保持原子當前位置不變,但是速度減半。

完整的MindSponge用例如下所示:

from mindspore import context, Tensor context.set_context(mode=context.GRAPH_MODE, device_target='GPU', device_id=0) from sponge import set_global_units, Sponge, Molecule, WithEnergyCell, UpdaterMD, ForceField from sponge.function import VelocityGenerator from sponge.callback import RunInfo from sponge.control import Controller # 自定義控制器 class MyController(Controller): def construct(self, coordinate: Tensor, velocity: Tensor, **kwargs): return super().construct(coordinate, velocity/2, **kwargs) # 設置全局分子動力學模擬單位 set_global_units('nm', 'kj/mol') # 根據內置模板生成水分子系統 system = Molecule(template='water.spce.yaml') # 將分子沿X軸方向復制一份,現在體系有2個水分子 system.reduplicate([0.3, 0, 0]) # 基于前面的分子系統,再復制一份,然后合并到system里面,此時一共是4個水分子 new_sys = system.copy([0, 0, -0.3]) system.append(new_sys) # 選擇SPCE力場 potential = ForceField(system, parameters='SPCE') # 類似于深度學習中的WithLossCell,綁定了分子系統和力場的信息 withenergy = WithEnergyCell(system, potential) # 配置MD參數 temp = 300 vgen = VelocityGenerator(temp) velocity = vgen(system.shape, system.atom_mass) # 構建迭代器,并且傳入我們自定義的控制器 updater = UpdaterMD( system=system, time_step=1e-3, velocity=velocity, integrator='velocity_verlet', temperature=300, controller=MyController(system), ) # 綁定系統、力場和迭代器三者的內容 mini = Sponge(withenergy, optimizer=updater) # 使用回調函數,每一步都會打印輸出能量、溫度等信息 run_info = RunInfo(1) mini.run(5, callbacks=[run_info])

因為每次控制器被調用都會使得速度減半,而且按照執行的順序,控制器在常規的控溫之后,因此運行過程中體系的溫度無法達到我們預期的300K。

如果去掉這個降低速度的控制器,那么體系的溫度和動能一下子就上去了,并且在穩定之后,溫度會逐漸收斂在300K附近。

總結概要

本文介紹了在MindSponge分子動力學模擬框架先實現自定義Controller控制器的方法,通過調控體系中的原子坐標和原子速度等,來控制系綜的參量。MindSponge分子模擬框架基于MindSpore深度學習框架開發而成,對于開發者尤其是深度學習開發者來說,非常的友好。

版權聲明

作者ID:DechinPhy

主站蜘蛛池模板: 成人黄软件网18免费下载成人黄18免费视频 | 久久精品国产亚洲欧美| 884aa四虎在线| 欧美黑人又粗又大又爽免费| 天天做天天爱天天干| 你是我的城池营垒免费观看完整版 | 精品综合久久久久久8888| 散步乳栓项圈尾巴乳环小说| 国产丰满麻豆videossexhd| 久久久久亚洲Av片无码下载蜜桃| 黄人成a动漫片免费网站 | 国语第一次处破女| 亚洲熟妇色自偷自拍另类| 97在线观看视频| 欧美日韩精品一区二区在线播放| 国产老妇一性一交一乱| 亚洲国产成人无码av在线播放| 在线a免费观看最新网站| 欧美中文在线观看| 国产成人精品免费视频大全可播放的| 九九久久精品国产AV片国产| 香蕉视频你懂的| 新木乃伊电影免费观看完整版 | 亚洲av永久无码精品水牛影视 | 久久久国产精品无码免费专区| 调教扩张尿孔折磨失禁| 成人黄色小说网站| 免费在线观看一级毛片| 99精品国产第一福利网站| 欧美日韩生活片| 国产成人精品电影| 久久久久无码精品国产| 绝美女神抬臀娇吟| 天啪天天久久天天综合啪| 亚洲欧美一区二区三区| 欧美bbbbb| 无码精品日韩中文字幕| 免费无码不卡视频在线观看| 99re66热这里只有精品首页| 欧美乱妇高清无乱码免费| 国产卡一卡二卡乱码三卡|