计算化学公社

标题: 入门第一性原理计算学编程学哪种语言比较好 [打印本页]

作者
Author:
spx    时间: 2023-8-15 17:06
标题: 入门第一性原理计算学编程学哪种语言比较好
本科没学过编程,0基础,研究生是第一性原理计算的,学什么语言比较好

作者
Author:
raolixiang    时间: 2023-8-16 13:04
C++或者Fortran辅助code工具编写,数据后处理以及绘图可以使用python,简单易上手
作者
Author:
spx    时间: 2023-8-17 11:12
raolixiang 发表于 2023-8-16 13:04
C++或者Fortran辅助code工具编写,数据后处理以及绘图可以使用python,简单易上手

好的,谢谢
作者
Author:
sobereva    时间: 2023-8-18 05:49
推荐先学Fortran,又容易学用处又大。第一性原理最流行的一批程序大多都是Fortran写的,如CP2K、QE、VASP等
如果只需要写一些简单的分析和可视化程序,不需要写计算为主的程序,Python也可以
C++语法和概念过于复杂,在第一性原理方面用的场合也有限,不建议作为第一个学习的语言。

作者
Author:
raolixiang    时间: 2023-8-18 15:06
sobereva 发表于 2023-8-18 05:49
推荐先学Fortran,又容易学用处又大。第一性原理最流行的一批程序大多都是Fortran写的,如CP2K、QE、VASP等 ...

这个是正解,长远发展还是Fortran,就是相比较python,学习成本会比较高。具体还是看你的具体需求。
作者
Author:
sobereva    时间: 2023-8-18 15:27
Fortran90/95真的很容易学,是编程语言里最容易学的档次,选择合适的书啃一个礼拜时间足够有能力写出有实用价值的小程序,我个人认为至少不比Python难学。
作者
Author:
Yjc    时间: 2023-8-18 15:34
sobereva 发表于 2023-8-18 15:27
Fortran90/95真的很容易学,是编程语言里最容易学的档次,选择合适的书啃一个礼拜时间足够有能力写出有实用 ...

想请sob老师指点下方向,您建议在学完Fortran基本语法之后写一个什么类型的程序练练手呢?
作者
Author:
sobereva    时间: 2023-8-18 15:50
Yjc 发表于 2023-8-18 15:34
想请sob老师指点下方向,您建议在学完Fortran基本语法之后写一个什么类型的程序练练手呢?

跟你研究有关的,比如对输出文件里某些信息进行分析统计,写个监控优化任务收敛情况的程序之类的
作者
Author:
Yjc    时间: 2023-8-18 16:00
sobereva 发表于 2023-8-18 15:50
跟你研究有关的,比如对输出文件里某些信息进行分析统计,写个监控优化任务收敛情况的程序之类的

嗯嗯,还想请教您一下:Fortran语言的强项据我所知是在科学运算(尤其是矩阵运算)这一方面,那对于仅有线性代数基础的人来说,能否准确地完成矩阵运算呢?有无必要进一步学习《矩阵分析》这一类更加深入的东西来补充矩阵方面的背景知识?感谢sob老师解惑!
作者
Author:
kimariyb    时间: 2023-8-18 16:07
正解 +1,多一句嘴,如果你只是想混个文凭,以后不干这个了,你还可以考虑 Go 和 Java,Python 脚本能做的大部分事情 Go 和 Java 也能做。前几天写了一个 Python 脚本做 Shermo 的批处理,隔几天我就用 Go 重新写了一遍,效果一样。不过做数据可视化还是 Python 更牛逼些,我平常也有用 Python 写很多可视化的脚本。

推荐先学Fortran,又容易学用处又大。第一性原理最流行的一批程序大多都是Fortran写的,如CP2K、QE、VASP等
如果只需要写一些简单的分析和可视化程序,不需要写计算为主的程序,Python也可以
C++语法和概念过于复杂,在第一性原理方面用的场合也有限,不建议作为第一个学习的语言。

作者
Author:
sobereva    时间: 2023-8-18 18:07
Yjc 发表于 2023-8-18 16:00
嗯嗯,还想请教您一下:Fortran语言的强项据我所知是在科学运算(尤其是矩阵运算)这一方面,那对于仅有 ...

本科有线性代数的基础,能及格,这就够了,Fortran的矢量/矩阵运算真没什么门槛,都是最基本的数学知识
写一些计算程序会牵扯到一些数学库的使用或者自编的数值运算的代码,有时间建议学一些数值计算的基本知识。彭国伦的Fortran书里就有一部分介绍,更多的善用google和wiki学,很系统学也可以看Numerical Recipes In Fortran之类的专著里和你有关的部分。




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3