版块导航
正在加载中...
客户端APP下载
论文辅导
调剂小程序
登录
注册
帖子
帖子
用户
本版
应《网络安全法》要求,自2017年10月1日起,未进行实名认证将不得使用互联网跟帖服务。为保障您的帐号能够正常使用,请尽快对帐号进行手机号验证,感谢您的理解与支持!
24小时热门版块排行榜
>
论坛更新日志
(3523)
>
考研
(829)
>
导师招生
(797)
>
虫友互识
(250)
>
文献求助
(112)
>
休闲灌水
(72)
>
硕博家园
(40)
>
招聘信息布告栏
(31)
>
SciFinder/Reaxys
(20)
>
考博
(16)
>
基金申请
(12)
>
教师之家
(12)
>
绿色求助(高悬赏)
(11)
>
健康生活
(11)
>
论文投稿
(11)
>
博后之家
(8)
小木虫论坛-学术科研互动平台
»
计算模拟区
»
分子模拟
»
Monte Carlo
»
【原创】MAPS中构筑超晶胞的python程序
北京石油化工学院2026年研究生招生接收调剂公告
3
1/1
返回列表
查看: 677 | 回复: 2
只看楼主
@他人
存档
新回复提醒
(忽略)
收藏
在APP中查看
zyj8119
木虫
(著名写手)
模拟EPI: 10
应助: 65
(初中生)
贵宾: 0.003
金币: 915.1
散金: 1440
红花: 35
帖子: 2936
在线: 1329.4小时
虫号: 664177
注册: 2008-11-29
性别: GG
专业: 理论和计算化学
[交流]
【原创】MAPS中构筑超晶胞的python程序
已有2人参与
CODE:
#!/usr/bin/python
###########################################################################
# buildCluster.py - description
# -------------------------------
# begin : Fri Dec 15 16:11:04 CET 2006
# copyright : (C) 2006 by Scienomics
# email : Joerg-Ruediger.Hill@scienomics.com
###########################################################################
#
###########################################################################
# #
# This program and all subroutines, data, and files used by it are #
# protected by copyright and hence may not be used, copied, modified #
# transmitted, inspected, or executed by any means including the use #
# of electronic data processing equipment, xerography, or any other #
# methods without the express written permission of the copyright #
# holder. #
# #
# Copyright (C) 2006 Scienomics S. A. #
# #
###########################################################################
#
# $Id: buildCluster.py,v 1.10 2010/03/29 15:15:56 jrh Exp $
# $Log: buildCluster.py,v $
# Revision 1.10 2010/03/29 15:15:56 jrh
# Moved to new way of retrieving plugin objects
#
# Revision 1.9 2008/10/20 09:25:06 lperi
# Clear undo stack (bug 2562).
#
# Revision 1.8 2008/10/14 15:21:17 jrh
# Fixed bug 2520
#
# Revision 1.7 2008/01/16 12:21:18 jrh
# Moved to Qt4
#
# Revision 1.6 2007/01/16 10:28:26 jrh
# Removed automatic creation of cell since this might crash
#
# Revision 1.5 2006/12/15 16:07:31 jrh
# Added header and documentation
#
#
import Maps
import MapsChemistryDataModel
import MapsViewer
from PyQt4 import *
class ClusterBuilder:
""" This class implements a cluster generating algorithm
by cutting atoms from a periodic system based on a
distance criterion. The class takes either the active
molecule or asks the user to load a molecule if no
active molecule is found, puts a molecule into a box
at density 1.0 if the system is not periodic already,
and builds a cluster by copying all atoms which are
within 5 Ang from the central atom to a new model.
"""
app=Maps.MapsApp.getContainer()
cdm=MapsChemistryDataModel.ChemistryDataModel.get()
viewerPlugin=MapsViewer.ViewerPlugin.get()
project=None
molecule=None
def loadMolecule(self):
activeViewer=self.viewerPlugin.getActiveViewer()
if activeViewer != None:
self.molecule=activeViewer.getMolecule()
projectName=self.cdm.findProjectNameForMolecule(self.molecule)
self.project=self.cdm.findProjectByName(projectName)
QtGui.qApp.processEvents()
return(0)
else:
QtGui.QMessageBox.information(self.app, "Note", "Please load a molecule from the\nfollowing dialog.")
# Load a molecule from an existing file
dialog=self.app.fileDialog
dialog.setFileMode(QtGui.QFileDialog.ExistingFile)
dialog.setWindowTitle("Open file")
filters=QtCore.QStringList()
filters.append("All files (*)")
dialog.setFilters(filters)
dialog.selectFile("")
if dialog.exec_(Maps.FileDialog.DATA) == QtGui.QDialog.Accepted:
fileName=str(dialog.selectedFiles()[0])
self.app.openDocumentFile(fileName, None, "")
projects=self.cdm.getProjects()
self.project=projects[0]
molecules=self.project.getMolecules()
self.molecule=molecules[0]
self.viewerPlugin.start(self.molecule)
QtGui.qApp.processEvents()
return(0)
else:
return(1)
def createSuperCell(self):
# Create a 3 x 3 x 3 super cell. If the system is not periodic tell
# the user and exit
if not self.molecule.isPeriodic():
QtGui.QMessageBox.information(self.app, "Note", "Please use a periodic system with this script.")
return(0);
else:
cell=self.molecule.getActiveConformation().getUnitcell()
cell.setDuplicate(3, 3, 3, 1)
cell.makeSuperCell(1)
QtGui.qApp.processEvents()
return(1)
def cutCluster(self):
# Cut a cluster by finding the atom closest to the center of the
# super cell and including all atoms at a distance of up to
# 5.0 Ang from this atom
center=self.molecule.calculateCenterOfGravity(self.molecule.atoms)
min=100.0
centerAtom=None
for atom in self.molecule.atoms:
pos=atom.getCoordinates()
diff=pos-center
if diff.abs() < min:
min=diff.abs()
centerAtom=atom
viewer=self.viewerPlugin.getActiveViewer()
# Clear the undo stack to prevent a discontinuity
# in the recorded editing actions which could
# cause a crash
viewer.clearUndoStack()
viewer.setSelectionMode(MapsViewer.Viewer.DISTANCE, 5.0)
viewer.selectAtoms(centerAtom, 1)
viewer.copy()
# Create a new model in the same project and paste the cluster
# in there
cluster=MapsChemistryDataModel.Molecule(self.cdm)
cluster.setName("Cluster")
self.project.addMolecule(cluster)
self.viewerPlugin.start(cluster)
clusterViewer=self.viewerPlugin.getActiveViewer()
clusterViewer.paste()
clusterViewer.centerMolecule()
clusterViewer.getMoleculeRenderer().setSelection(cluster.atoms, 0)
QtGui.qApp.processEvents()
def run(self):
if not self.loadMolecule():
if self.createSuperCell():
self.cutCluster()
#-------------------------
if __name__ == '__main__':
builder=ClusterBuilder()
builder.run()
回复此楼
» 本帖已获得的红花(最新10朵)
liuying287
» 猜你喜欢
材料调剂
已经有4人回复
304求调剂
已经有14人回复
求调剂
已经有24人回复
一志愿华东理工085601材料工程303分求调剂
已经有7人回复
288环境专硕,求调材料方向
已经有25人回复
0703化学
已经有25人回复
求调剂 一志愿西南交通大学085701环境工程 282分
已经有12人回复
一志愿211,化学学硕,310分,本科重点双非,求调剂
已经有3人回复
一志愿211,0703化学305分求调剂
已经有12人回复
一志愿211,化学学硕,310分,本科重点双非,求调剂
已经有4人回复
高级回复
好好学习,天天向上。
1楼
2010-12-26 17:30:30
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
liuying287
送鲜花一朵
2楼
2012-03-22 16:11:27
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
juwendy
铁虫
(正式写手)
应助: 2
(幼儿园)
金币: 4898.8
帖子: 422
在线: 399.4小时
虫号: 796719
注册: 2009-06-18
专业: 岩土与基础工程
顶一个,支持楼主。
回复此楼
3楼
2012-03-22 21:09:32
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
相关版块跳转
第一性原理
量子化学
计算模拟
分子模拟
仿真模拟
程序语言
我要订阅楼主
zyj8119
的主题更新
3
1/1
返回列表
如果回帖内容含有宣传信息,请如实选中。否则帐号将被全论坛禁言
普通表情
龙
兔
虎
猫
高级回复
(可上传附件)
百度网盘
|
360云盘
|
千易网盘
|
华为网盘
在新窗口页面中打开自己喜欢的网盘网站,将文件上传后,然后将下载链接复制到帖子内容中就可以了。
最具人气热帖推荐
[查看全部]
作者
回/看
最后发表
[
考研
]
319分085702安全工程求调剂
+6
rious
2026-04-05
6/300
2026-04-07 09:42
by
jp9609
[
考研
]
一志愿苏州大学材料工程(085601)专硕有科研经历三项国奖两个实用型专利一项省级立项
+11
大火山小火山
2026-04-05
11/550
2026-04-06 22:55
by
yunlongyang
[
考研
]
286求调剂
+3
草木不言
2026-04-04
3/150
2026-04-04 22:40
by
lbsjt
[
考研
]
323求调剂
+8
李佳乐1
2026-04-04
8/400
2026-04-04 22:26
by
hemengdong
[
考研
]
292分,材料与化工,申请调剂
+22
程晴之
2026-04-01
26/1300
2026-04-04 22:03
by
hemengdong
[
考研
]
22408求调剂 354分 可跨专业
+3
hannnnnnn
2026-04-04
3/150
2026-04-04 14:35
by
土木硕士招生
[
考研
]
297求调剂
+11
ljy20040718!
2026-04-03
13/650
2026-04-04 09:23
by
来看流星雨10
[
考研
]
求调剂
+4
压力??大
2026-04-03
4/200
2026-04-03 21:36
by
啵啵啵0119
[
考研
]
学硕288调剂!!!
+3
小王xw123
2026-04-03
3/150
2026-04-03 21:20
by
啵啵啵0119
[
考研
]
335求调剂
+7
沈清璃
2026-04-03
7/350
2026-04-03 18:55
by
lijunpoly
[
考研
]
285求调剂
+5
AZMK
2026-04-03
8/400
2026-04-03 18:17
by
AZMK
[
考研
]
266分,一志愿电气工程,本科材料,求材料专业调剂
+9
哇呼哼呼哼
2026-04-02
9/450
2026-04-03 12:05
by
1753564080
[
考研
]
285求调剂
+7
AZMK
2026-04-02
9/450
2026-04-03 11:12
by
wanwan00
[
考研
]
081200-11408-276学硕求调剂
+6
崔wj
2026-04-02
6/300
2026-04-03 10:19
by
蓝云思雨
[
考研
]
求调剂22408 288分
+5
new382
2026-04-02
5/250
2026-04-03 09:13
by
醉在风里
[
考研
]
一志愿武汉理工0856,初试334
+3
26考研材料
2026-04-02
3/150
2026-04-02 21:22
by
dongzh2009
[
考研
]
285求调剂
+8
AZMK
2026-04-02
11/550
2026-04-02 20:16
by
yulian1987
[
考研
]
348求调剂
+6
吴彦祖24k
2026-04-02
6/300
2026-04-02 14:07
by
给你你注意休息
[
考研
]
材料工程322分
+8
哈哈哈吼吼吼哈
2026-04-01
8/400
2026-04-02 11:53
by
3041
[
考研
]
材料调剂
+11
一样YWY
2026-03-31
11/550
2026-04-01 22:25
by
zhouyuwinner
信息提示
关闭
请填处理意见
关闭
确定