Skip to content

Instantly share code, notes, and snippets.

@zarkoivkovicc
Last active August 1, 2023 10:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zarkoivkovicc/c3c54b1dcba202d03cb06c12b0f0f356 to your computer and use it in GitHub Desktop.
Save zarkoivkovicc/c3c54b1dcba202d03cb06c12b0f0f356 to your computer and use it in GitHub Desktop.
"Adding support for nwchem to ccinput" Google Summer of Code project 2023

ccinput_logo gsoc_logo openchemistry_logo



Adding support for NWChem to ccinput

Student Info

  • Name - Žarko Ivković
  • Email - zivkoviv7 AT alumnes.ub.edu
  • GitHub Profile
  • LinkedIn
  • Erasmus Mundus master student of Theoretical Chemistry and Computational Modelling
  • University of Barcelona

Mentors Info

  • Raphaël Robidas
  • Claude Legault
    Université de Sherbrooke

Project Abstract

The necessity of having an application for the automated generation of input files for computational chemistry codes is evident. The ccinput is an open-source command line tool and a python library. NWChem is a popular, open-source software used in computational chemistry for many different areas. It’s free, easy to install, and can perform the vast majority of calculations any chemist might need. Therefore, I contributed to ccinput by adding a possibility to generate input files for NWChem for main calculations.

GitHub Repo

ccinput

GitHub Forked Repo

NWChem branch

PRs

Backbone + essential calculations support
First tests
Improved implementation for contraints
Final PR - everything in the proposal done

Work Summary

All widely used quantum chemistry calculations that can be done in nwchem are supported. The main gist of ccinput is completely respected - The input files for wide variety of calculation types and methods can be specified in the same way, regardless of the software. An extensive set of tests is provided to make sure that future changes and adding support for other packages does not break the nwchem compatibility. Finally, almost all error-catching mechanisms available for Gaussian and ORCA inputs are also implemented. To sum up, the complete support for all calculations that are supported by other pacakges is also available for NWChem.

What's Covered

Calculation types

  • Essential calculations (single point calculations, geometry optimization and frequency calculations)
  • Common calculations with (transition state and constrained optimizations)
  • Minimum energy path calculations (nudge elastic band and freezing string methods)
  • Nuclear magnetic resonance properties calculations

Levels of theory

  • Hartree-Fock (restricted and unrestricted)
  • Density functional theory (any combination of exchange and correlation that's available in NWChem)
  • MP2 (The second order Møller–Plesset perturbation theory)
  • Coupled Cluster (CCSD and CCSD(T))

Features

  • Implicit solvation models
  • Custom solvation radii
  • Custom addition keywords support
  • Dispersion corrections

Additional features implemented that are not in the proposal

  • Density fitting
  • Complete active space self-consisted field calculations

What's removed from the proposal

  • Scans (can't be natively implemented in NWChem)
  • QM/MM calculations support (not widespread and useful for NWChem)

Preliminary work done before Google Summer of Code 2023

Documentation

Documentation on how to use ccinput to generate input files for nwchem (among all the other supported packages) can be found here:
https://ccinput.readthedocs.io/en/latest/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment