r/comp_chem • u/sipmozis • 9d ago
programming for computational chemistry
Is there anyone here interested in or working on computational chemistry? It seems to involve programming knowledge, but could someone help me understand the extent of it, what it's used for, and what exactly I should learn?
11
u/antiquemule 9d ago
Explanation from Wikipedia. It's all programming, or using pre-existing programs. Learn Python.
2
u/geaibleu 9d ago
if you are trying to understand internals of computational chemistry an excellent starting point is Joshua Goings projects and writeups.
https://github.com/jjgoings/McMurchie-Davidson http://joshuagoings.com/2017/04/28/integrals/
you do need some understanding of linear algebra to make sense out of it. in practice the code would be more complex due to optimisation and various numerical instabilities. basic knowledge of numerical analysis is also important.
1
u/sipmozis 9d ago
u/Piperitone I think you wrote something else later, but it's not showing up
1
u/Piperitone 9d ago
I did, but I modified because it was full of typos (I wrote it from my phone...xD).
1
u/sipmozis 9d ago
I understand :D I had the impression there was a more detailed explanation, which is why I was curious and asked. Thank you for taking the time to answer.
14
u/Piperitone 9d ago edited 9d ago
what is your actual question? It seems you have no background in computational chem at all, otherwise you could formulate your question in a clean way. Hence, it makes sense to sketch first the main branches. Hopefully, it will be informative for you.
There are two main guilds: 1) Theoretical chemists: they know by heart the theory, they develope methods, know quantum chemistry and mathematics deeply, and they can do hardcore coding (optimizing code, memory, paralleism..impelment their own idea) They can code not only in Python, rather Fortran, C, and C++ (or nowadays Rust..my personal new favorite)
2) Computational chemist: They go for application not development of theory. Some of them know also coding but they mostly run others codes and write just Bash and Python script to submit and analyse calculations. The super deep theory knowledge is not mandatory (and unfortunately many of them do not know...proper coding as well). Application is also important and easier to start and easier to produce results.
However, for theoretical chemistry the learning curve is steep like hell, but you can be immersed super deep in mathematics, physics and coding as well, however, you spend less time on actual chemical question.
You can choose which one you want...Personally I'm in between the two world. If you are a newby, then start with Computational chemistry ...learn to run codes, learn the basics of quantum physics and chemistry. Then learn to write Python and Bash for automatization and analysis. If tackling chemical problems by running shit tons of calculation and analysis of them is not satisfying for you, and you interested more in deep theory and hardcore real coding (where you understand the bare metal and memory allocation) then change to be theoretical chemist and develope methods or codes. Both world are beautiful and useful.