cyllab / CalcUS

Quantum Chemistry Web Platform
https://calcus.readthedocs.io
GNU General Public License v3.0
66 stars 20 forks source link

GSoC Final Submission - Merging Calcus 2.0 with the flowchart version of CalcUS #15

Closed div-yam closed 2 years ago

div-yam commented 2 years ago

Pull Request for the final submission of the GSoC’22 Project with CalcUS (Open Chemistry)

About CalcUS

CalcUS aims to democratize access to computational chemistry by providing a user-friendly web interface to simplify running and analyzing quantum mechanical calculations. These calculations allow the researchers to understand better the properties of molecules or the underlying mechanisms of chemical reactions. Multiple distinct calculations have to be performed to calculate the molecular geometry, energy, possible vibrations and optical properties, etc, of the molecules. But, Quantum chemistry projects often involve the same series of sequential calculations. Currently, each calculation has to be launched manually, which is often not necessary. This project aims to add the feature to create custom multi-step calculation protocols as well as the underlying mechanics which make the protocols run smoothly.

About my project

My project aimed to implement a multi-step calculation protocol to create the data structures to store these protocols and their progress, integrate the automated launch of subsequent steps using the current calculation handling code, add simple verifications after each step completion, and write relevant unit and/or integration tests. This project aimed to add a way to chain multiple calculations with different parameters. It will enable interfaces with flowchart-like processes.

image

The user creates the above workflow in some web plugin and can then be used on multiple input files at wish. CalcUS will generate two calculations per input, execute them, and will perform additional calculations on them. The motivation to add this is to save time for the user and automatically queue the next steps he would do anyway before analysis. It can also reduce mistakes by automatically tracking the progress of each input and applying the exact same parameters to all inputs.

Some important links

CalcUS GitHub - https://github.com/cyllab/CalcUS My GitHub - https://github.com/div-yam CalcUS Installation Guide - https://calcus.readthedocs.io/en/latest/installation.html

My mentor - Raphaël Robidas

This pull request contains all the progress during my contribution period in Google Summer of Code. All my commits got squashed into this single commit, due to re-reverting my changes. All my original commits can be seen in this branch FlowchartxCalcus2.0.

Goals

Work done in the PR

Additional improvements that could be made to the code

RaphaelRobidas commented 2 years ago

Awesome, the tests all pass except three which seem to not be related to your code (and somehow they pass on my branch?) I will fix those after merging.

The code looks good now, thank you for your contribution throughout this GSoC project!