| 查看: 1942 | 回复: 15 | |||
[交流]
【求助】向bay__gulf求助!! 已有4人参与
|
|||
|
目前在做碳纳米管中水的相变,请教一下怎样写.tcl脚本来计算radial density of oxygen 和 orientation distributions of water molecules within CNTs? 虽然这个问题对你可能比较简单,但对我来说却很棘手,望赐教! 同时恭喜bay__gulf发JPCA! 也欢迎其他高手指教! |
» 猜你喜欢
假如你的研究生提出不合理要求
已经有4人回复
论文终于录用啦!满足毕业条件了
已经有27人回复
所感
已经有3人回复
要不要辞职读博?
已经有7人回复
不自信的我
已经有11人回复
北核录用
已经有3人回复
实验室接单子
已经有3人回复
磺酰氟产物,毕不了业了!
已经有8人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有10人回复
26申博(荧光探针方向,有机合成)
已经有4人回复
» 本主题相关商家推荐: (我也要在这里推广)
» 本主题相关价值贴推荐,对您同样有帮助:
【求助】高校图书馆采购集团和Elsevier公司闹崩了,以后CPL等文献怎么看呢?
已经有21人回复
【求助】有没有用DS软件做细胞膜的模拟的?
已经有7人回复
【求助】周期边界条件设定
已经有10人回复
【求助】有关服务器租用或者借用的事情
已经有15人回复
【求助】泊松过程的误差分析
已经有5人回复
【求助】请问量子化学的基础是“物理化学”么?
已经有18人回复
bay__gulf
金虫 (著名写手)
刘苏州
- 模拟EPI: 8
- 应助: 9 (幼儿园)
- 贵宾: 4.85
- 金币: 2332.8
- 红花: 1
- 帖子: 1344
- 在线: 271小时
- 虫号: 592012
- 注册: 2008-09-03
- 专业: 理论和计算化学
- 管辖: 分子模拟
★ ★ ★ ★ ★ ★ ★ ★ ★ ★
jianchaoyv(金币+10):谢谢指点 2010-06-22 18:29:11
ghcacj(金币+10):谢谢 2010-06-22 19:55:31
jianchaoyv(金币+10):谢谢指点 2010-06-22 18:29:11
ghcacj(金币+10):谢谢 2010-06-22 19:55:31
|
radial density, 也就是径向分布, 很常用, vmd 也提供了一个工具可以直接计算 就是measure gofr, 参考 http://www.ks.uiuc.edu/Research/vmd/current/ug/node133.html, 以及一个gui 界面, 参考 http://www.ks.uiuc.edu/Research/vmd/plugins/gofrgui/ 至于取向分布, 用户较少只能自己写了, vmd 的强大之处不在于内置了多少工具, 更不是做多漂亮的图形 而是提供了一个原子(集团)为数据结构的编程环境, 可以按照自己的需要实现任意的功能 下面是当时用的代码, 现在看来很幼稚了但拿它入门还是不错的 # count the dipolar-z angle and Legendre 2nd order polynomial in a pore, # make sure the psf/dcd be the top molecular set outf [open theta.dat w] set numFrame [molinfo top get numframes] set lgd 0 for { set fr 1 } { $fr < $numFrame } {incr fr } { set wt [atomselect top "water and name OH2 and z < 7.6 and z > -7.6 " frame $fr] set n [$wt num] set theta 0 foreach resid [$wt get resid] { set wto [atomselect top "resid $resid and name OH2" frame $fr] set wth1 [atomselect top "resid $resid and name H1" frame $fr] set wth2 [atomselect top "resid $resid and name H2" frame $fr] set coordo [measure center $wto] set coordh1 [measure center $wth1] set coordh2 [measure center $wth2] set coordh [vecadd $coordh1 $coordh2] set coordh [vecscale 0.5 $coordh] set vecd [vecsub $coordh $coordo] set thetai [expr acos ([expr [lindex $vecd 2] / [veclength $vecd]])] set thetai [expr $thetai * 180.0 / 3.1416] set theta [expr $theta + $thetai] $wto delete $wth1 delete $wth2 delete } set theta [expr $theta/$n ] set costheta [expr cos ([expr $theta*3.1416/180.0])] set lgd [expr $lgd + [expr $costheta * $costheta]] puts $fr puts $outf [format "%d %f" $fr $theta] $wt delete } set lgd [expr $lgd / $numFrame * 1.5 - 0.5] puts "3*<(cosθ)^2> - 1 = $lgd" close $outf |
2楼2010-06-22 16:44:02
3楼2010-06-22 19:41:03
|
请问上面提供的脚本中: set coordh [vecadd $coordh1 $coordh2] set coordh [vecscale 0.5 $coordh] set vecd [vecsub $coordh $coordo] set thetai [expr acos ([expr [lindex $vecd 2] / [veclength $vecd]])] 还有最后set lgd [expr $lgd / $numFrame * 1.5 - 0.5] 这几句看不懂,能不能解释一下?谢谢! [ Last edited by jianchaoyv on 2010-6-23 at 09:56 ] |
4楼2010-06-23 09:50:22
bay__gulf
金虫 (著名写手)
刘苏州
- 模拟EPI: 8
- 应助: 9 (幼儿园)
- 贵宾: 4.85
- 金币: 2332.8
- 红花: 1
- 帖子: 1344
- 在线: 271小时
- 虫号: 592012
- 注册: 2008-09-03
- 专业: 理论和计算化学
- 管辖: 分子模拟
★ ★ ★ ★ ★
ghcacj(金币+5):谢谢 2010-06-24 10:06:00
ghcacj(金币+5):谢谢 2010-06-24 10:06:00
|
set coordh [vecadd $coordh1 $coordh2] ;#两个H的坐标之和 set coordh [vecscale 0.5 $coordh] ;#两个H的平均坐标, 即中点 set vecd [vecsub $coordh $coordo] ;#O原子到H中点的矢量, 即水的偶记(方向) set thetai [expr acos ([expr [lindex $vecd 2] / [veclength $vecd]])] # 水的偶极u跟z轴(0 0 1)的夹角, cos(theta) = u(z)/|u| 还有最后set lgd [expr $lgd / $numFrame * 1.5 - 0.5] 勒让德项 (3 参考 http://www.mdbbs.org/viewthread.php?tid=11530 |
5楼2010-06-24 09:13:13
|
请问vecadd、vecscale、vecsub、veclength这些命令在哪里可以学习一下?根本不知道它们的用途?请给一个关于这类命令的全面的学习资料!!!十分感谢! 另外,这句set thetai [expr acos ([expr [lindex $vecd 2] / [veclength $vecd]])]的意思 #水的偶极u跟z轴(0 0 1)的夹角, cos(theta) = u(z)/|u|看不懂啊? 我的理解是:lindex $vecd 2 #是O原子的位置矢量 veclength $vecd #O原子到H中点的矢量|u| 所以,set thetai [expr acos ([expr [lindex $vecd 2] / [veclength $vecd]])] 并不是真正的#水的偶极u跟z轴(0 0 1)的夹角, cos(theta) = u(z)/|u| 正在研究你给的这个脚本中! [ Last edited by jianchaoyv on 2010-6-25 at 16:12 ] |
6楼2010-06-25 15:28:58
bay__gulf
金虫 (著名写手)
刘苏州
- 模拟EPI: 8
- 应助: 9 (幼儿园)
- 贵宾: 4.85
- 金币: 2332.8
- 红花: 1
- 帖子: 1344
- 在线: 271小时
- 虫号: 592012
- 注册: 2008-09-03
- 专业: 理论和计算化学
- 管辖: 分子模拟
★ ★ ★
jianchaoyv(金币+3): 2010-06-26 08:49:39
lei0736(金币+3):谢谢 2010-06-26 09:17:42
jianchaoyv(金币+3): 2010-06-26 08:49:39
lei0736(金币+3):谢谢 2010-06-26 09:17:42
|
请问vecadd、vecscale、vecsub、veclength这些命令在哪里可以学习一下?根本不知道它们的用途?请给一个关于这类命令的全面的学习资料!!!十分感谢! ==== vmd ug 的第10章讲的是Vectors and Matrices 这个ug 仅仅是vmd 特有的和常用的tcl 命令, 更深入了解需要Tcl 的资料 lindex $vecd 2 #是O原子的位置矢量 === vecd 是偶极矢量, lindex $vecd 2 是偶极的z 分量 veclength $vecd 是偶极的长度 很荣幸自己的工作被别人分析和引用 |
7楼2010-06-25 16:34:06
coolrainbow
木虫 (著名写手)
未来国家冻凉
- 应助: 1 (幼儿园)
- 贵宾: 0.1
- 金币: 3979.5
- 散金: 10
- 红花: 50
- 帖子: 1137
- 在线: 272.3小时
- 虫号: 239560
- 注册: 2006-04-07
- 性别: GG
- 专业: 理论和计算化学

8楼2010-06-25 21:08:01
|
bay__gulf确实是牛人,也很耐心! 我把你那段程序的理解写下来: 程序开始到此已理解 set theta [expr $theta/$n ] #对每帧所有水分子偶极距求平均,另外,这个theta角是跟Z轴正半轴的夹角吧?而看到的文献中大都是算的与Z轴负半轴的夹角,感觉没什么差别,这样理解多吗? set costheta [expr cos ([expr $theta*3.1416/180.0])]#求cos(theta) set lgd [expr $lgd + [expr $costheta * $costheta]]#用于求不同帧的cos(theta)^2求和 puts $fr #输出第几帧 puts $outf [format " %f" $theta] 输出该帧下水分子偶极距的平均值 $wt delete } set lgd [expr $lgd / $numFrame * 1.5 - 0.5] #对所有帧的2阶勒让德函数求平均 puts "3*<(cosθ)^2> - 1 = $lgd" #输出P2的平均值 close $outf 对上面的解释若有错误请指正,还想请教一下算P2用来表征什么的?不知道算P2的目的。 若set theta [expr $theta/$n ] #对每帧所有水分子偶极距求平均,理解正确的话,也就默认了每帧里的所有水分子的偶极距方向都一样了,感觉同一帧不同位置的水分子偶极距还是有可能不同的,有这种可能吗? [ Last edited by jianchaoyv on 2010-6-26 at 10:09 ] |
9楼2010-06-26 09:48:01
bay__gulf
金虫 (著名写手)
刘苏州
- 模拟EPI: 8
- 应助: 9 (幼儿园)
- 贵宾: 4.85
- 金币: 2332.8
- 红花: 1
- 帖子: 1344
- 在线: 271小时
- 虫号: 592012
- 注册: 2008-09-03
- 专业: 理论和计算化学
- 管辖: 分子模拟
10楼2010-06-26 10:36:53












回复此楼