I am a chemistry PhD student at the University of New Mexico. I am looking for ways that I might contribute to the project. I miss some of the functionality of Avo1. My programming skills are rudimentary, and mostly python, so I worry I might not be able to help too much with contributing code. However, I could try and help with documentation or other tasks that might ease the burden on other developers.
Could someone point me towards how I might get started?
Thank you for your reply! I went ahead and looked at your list.
As regards your questions:
-I miss the way that you could quickly browse a Gaussian Fchk file to look at the 10 or so molecular orbitals around the HOMO which were printed with the energies. This made it easy to quickly interpret the output of jobs, and show results to collaborators.
I would like to see the spectra come back (I know you are working hard on this!) and I would like to see some tools for checking the convergence of a HPC job over time. Dream-features include integration with something like MoleQueue and easy Mulliken Population Analysis.
Concerning what I might be able to help with:
I mostly use Avo1 to build, input, and interpret the output of HPC jobs. Last week I found myself wanting a script that would load a bunch of files and generate molecular orbital pictures, so I might just start there. I have been using the old avogadro1 on a windows machine for getting pictures of MO’s <s>because I haven't been able to get Avo2 MO's to work on my linux machine</s> because I was using an old APT version of Avo2 and needed to use the newest AppImage.
Actually, I think that I could work on the input generators as well. Something I noticed is that the input generator for the particular program that I use could use some polishing, since it has mostly basic capabilities. (Of course, anyone can manually specify special methods and basis sets, or call TD calculations, but perhaps it could be useful to have some of this functionality in the UI as well).
Well, I can start looking at example python scripts first, because that is what I know best.
Thanks for the pointers and I will let you know how it goes.
I’ll need to add a bit to enable the “generate MO from a script” part of that. The basic idea is that the various features will register commands like “generate_mesh()” to the app and a bit of dispatch in the app itself to send commands to the right plugins.
Sure. There are a number of places to start depending on your C++ or Python comfort.
Some issues are marked as “help wanted” and are good first issues:
One other thing that’s come up is in the avogadroapp repository. It would be great to have an auto-save feature that calls mainwindow.cpp:saveFileAs(const QString& fileName, Io::FileFormat* writer) using the CJSON writer:
A similar task would be to add a method to mainwindow.cpp / .h to exportFile(const QString& fileName) and determine the format from the extension.
These are options in C++…
In Python, we have code to send messages to the app - it would be great to clean this up into a real class that could be used like from avogadro import connect and methods for the various JSON-RPC calls like openFile and saveGraphic, etc.