计算化学公社

 找回密码 Forget password
 注册 Register
Views: 8542|回复 Reply: 17
打印 Print 上一主题 Last thread 下一主题 Next thread

[综合交流] 新手求助:在Linux上依次跑结构优化任务该怎么做

[复制链接 Copy URL]

198

帖子

0

威望

450

eV
积分
648

Level 4 (黑子)

跳转到指定楼层 Go to specific reply
楼主
本帖最后由 算一算 于 2019-1-16 02:08 编辑

我有个分子,想用Linux上的Gaussian做连续优化:
步骤一:把我的输入文件(用semi-empirical方法优化结构)丢给Gaussian并跑完任务;
步骤二:把优化好的坐标提取出来,以它为起始结构,生成新的Gaussian输入文件(用HF方法优化结构);
步骤三:把这个新输入文件丢给Gaussian执行;
步骤四:把优化好的坐标提取出来,以它为起始结构,生成新的Gaussian输入文件(用DFT方法优化结构);
步骤五:把这个新输入文件丢给Gaussian执行;
步骤六:把优化好的坐标提取出来,并把semi-empirical和HF优化后的坐标也提取出来,三个坐标列在一个文档里。



我希望我能某天睡觉前把第一步的输入文件丢给它,第二天早上醒来就能看到最后那个文档。这个在Linux可行吗?
如果可行,是直接在Linux上写一串指令就行,还是我要写个什么脚本?
如果是写脚本,我该学哪种语言?学多久能写出这种脚本来?写的过程中有什么需要注意的地方吗?如果可以,哪位前辈能示范一下步骤二该怎么写吗?

5万

帖子

99

威望

5万

eV
积分
112353

管理员

公社社长

2#
发表于 Post on 2019-1-16 05:14:45 | 只看该作者 Only view this author
写shell脚本,并且恰当运用linux下的一堆文本处理命令,不是什么难事,自学相关知识+编写,撑死了三天足够

评分 Rate

参与人数
Participants 1
eV +2 收起 理由
Reason
算一算 + 2

查看全部评分 View all ratings

北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入“北京科音”微信公众号获取北京科音培训的最新消息、避免错过网上有价值的计算化学文章!
欢迎加入人气非常高、专业性特别强的综合性理论与计算化学交流QQ群“思想家公社QQ群”:1号:18616395,2号:466017436,3号:764390338,搜索群号能搜到哪个说明目前哪个能加,合计9000人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大的量子化学波函数分析程序)
ResearchGate:https://www.researchgate.net/profile/Tian_Lu
Money and papers are rubbish, get a real life!

186

帖子

0

威望

4092

eV
积分
4278

Level 6 (一方通行)

3#
发表于 Post on 2019-1-16 09:17:39 | 只看该作者 Only view this author
前五步用Link1

3098

帖子

28

威望

1万

eV
积分
16892

Level 6 (一方通行)

4#
发表于 Post on 2019-1-16 12:34:02 | 只看该作者 Only view this author
首先我想不出来对一般案例、先用HF优化再用DFT优化能比直接做DFT优化有任何优势
另外前五步高斯内部实现就可以了,形如:


  1. %chk=1.chk
  2. #p
  3.     pm6d3
  4.     opt

  5. title

  6. 0 1
  7. coord...

  8. --link1--
  9. %chk=1.chk
  10. #p
  11.     HF/basis
  12.     opt
  13.     geom=allcheck

  14. --link1--
  15. %chk=1.chk
  16. #p
  17.     DFT/basis
  18.     opt
  19.     geom=allcheck
复制代码


评分 Rate

参与人数
Participants 3
eV +13 收起 理由
Reason
中二晚期 + 5
wangyj + 3 GJ!
Mikasa + 5 GJ!

查看全部评分 View all ratings

264

帖子

0

威望

2588

eV
积分
2852

Level 5 (御坂)

5#
发表于 Post on 2019-1-16 12:57:28 | 只看该作者 Only view this author
不想学脚本的话,最后一步无非也就是滚一下log文件复制的事,纯手动也快得很。

198

帖子

0

威望

450

eV
积分
648

Level 4 (黑子)

6#
 楼主 Author| 发表于 Post on 2019-1-16 18:46:49 | 只看该作者 Only view this author

谢谢,我知道,但是我就是想分开做

198

帖子

0

威望

450

eV
积分
648

Level 4 (黑子)

7#
 楼主 Author| 发表于 Post on 2019-1-16 18:47:08 | 只看该作者 Only view this author
liyuanhe211 发表于 2019-1-16 12:34
首先我想不出来对一般案例、先用HF优化再用DFT优化能比直接做DFT优化有任何优势
另外前五步高斯内部实现就 ...

谢谢,我知道,但是我就是想分开做

198

帖子

0

威望

450

eV
积分
648

Level 4 (黑子)

8#
 楼主 Author| 发表于 Post on 2019-1-16 18:47:54 | 只看该作者 Only view this author
Jasminer 发表于 2019-1-16 12:57
不想学脚本的话,最后一步无非也就是滚一下log文件复制的事,纯手动也快得很。

问题是步骤多的情况下,滚来滚去实在是烦啊

3098

帖子

28

威望

1万

eV
积分
16892

Level 6 (一方通行)

9#
发表于 Post on 2019-1-16 20:56:53 | 只看该作者 Only view this author
算一算 发表于 2019-1-16 18:47
问题是步骤多的情况下,滚来滚去实在是烦啊

做完再切


Python 3.X
  1. from more_itertools import split_after
  2. filename = input("Filename:")
  3. with open(filename) as file:
  4.     files_to_write = list(split_after(file.readlines(), lambda x: 'Normal Termination' in x))
  5.     for count, i in enumerate(files_to_write):
  6.         with open(filename+"."+str(count)+'.out','r') as output_file:
  7.             output_file.write(''.join(i))
复制代码

评分 Rate

参与人数
Participants 1
eV +2 收起 理由
Reason
算一算 + 2

查看全部评分 View all ratings

198

帖子

0

威望

450

eV
积分
648

Level 4 (黑子)

10#
 楼主 Author| 发表于 Post on 2019-1-17 05:09:09 | 只看该作者 Only view this author

谢谢,我参考一下。楼上有人说shell语言三天就能学会,我从来没接触过这种语言,打算试试。你这个是python,大概不是三天就能学会吧!不过我会拿你这个做参考的,听说各种编程语言写出来很像。

186

帖子

0

威望

4092

eV
积分
4278

Level 6 (一方通行)

11#
发表于 Post on 2019-1-17 11:14:13 | 只看该作者 Only view this author
你先试试用sed和awk把输出文件的坐标提取出来

评分 Rate

参与人数
Participants 1
eV +2 收起 理由
Reason
算一算 + 2

查看全部评分 View all ratings

3098

帖子

28

威望

1万

eV
积分
16892

Level 6 (一方通行)

12#
发表于 Post on 2019-1-17 17:15:58 | 只看该作者 Only view this author
算一算 发表于 2019-1-17 05:09
谢谢,我参考一下。楼上有人说shell语言三天就能学会,我从来没接触过这种语言,打算试试。你这个是pytho ...

如果你学过任何一门编程语言,学一天Python肯定能写出来按“Normal Termination”分割文件的程序。

198

帖子

0

威望

450

eV
积分
648

Level 4 (黑子)

13#
 楼主 Author| 发表于 Post on 2019-1-18 04:19:54 | 只看该作者 Only view this author
liyuanhe211 发表于 2019-1-17 17:15
如果你学过任何一门编程语言,学一天Python肯定能写出来按“Normal Termination”分割文件的程序。

不是吧,我记得当初本科学C语言的时候,学了一学期也没学到这个

198

帖子

0

威望

450

eV
积分
648

Level 4 (黑子)

14#
 楼主 Author| 发表于 Post on 2019-1-18 04:21:50 | 只看该作者 Only view this author
plus 发表于 2019-1-17 11:14
你先试试用sed和awk把输出文件的坐标提取出来

谢谢,我去研究一下sed和awk是什么神器

3098

帖子

28

威望

1万

eV
积分
16892

Level 6 (一方通行)

15#
发表于 Post on 2019-1-18 18:37:40 | 只看该作者 Only view this author
算一算 发表于 2019-1-18 04:19
不是吧,我记得当初本科学C语言的时候,学了一学期也没学到这个

C也非常容易实现啊。。。任何一门计算机语言都容易实现。

学了一学期C...是不会按关键词分割文本,还是不会读入、输出文件。。。

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2024-11-23 19:16 , Processed in 0.192630 second(s), 22 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list