Code Monkey home page Code Monkey logo

gaussium's Introduction

Introduction

A basic quantum chemistry program written in Python3 using the numpy and scipy libraries.

Currently this program fully supports RHF, UHF, CIS, TDHF, DFT, CCSD and CCSD(T). My next plans are to implement more DFT functionals.

I used Attlia Szabo and Neil S. Ostlunds Modern Quantum Chemistry: Introduction to Advanced Electronic Structure Theory and David B. Cooks Handbook of Computational Quantum Chemistry as my main references for the theories and methods behind the electronic structure calculations. The developers resources at http://www.psicode.org/developers.php were also invaluable to the success of project and had a number of excellent tutorials and programming examples.

Instructions

Install the Gaussium package using

python setup.py install

you can then run Gaussium using the start function for example

from gaussium import start


def run():
    start('He.mol', '3-21G.gbs', ('DFT', 'S', 'VWN5'), 4)  # -2.80601675458 a.u.


if __name__ == "__main__":
    run()

assuming that the molecule and basis set files are in the working directory. This calculation will start a DFT calculation with the SVWN5 functional with the 3-21G basis set for a Helium atom and will use four processors, see the examples directory for more examples.

Supported Features and Methods

  • Restricted Hartree-Fock
  • Unrestricted Hartree-Fock
  • Density Functional Theory - SVWN and S_X
  • Møller–Plesset Second Order
  • Coupled Cluster Singles and Doubles
  • Coupled Cluster Singles and Doubles with Perturbation Triples
  • Configuration Interaction Singles
  • Time-Dependent Hartree-Fock
  • DIIS for SCF Calculations
  • Multiprocessing during ERI evaluations
  • Reduced ERI evaluations with Symmetry
  • Obara-Saika recursion relation for ERI
  • Nelder-Mead method for geometry optimization

gaussium's People

Contributors

chicheng45 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

gaussium's Issues

Number of Electrons

The number of electron needs to be defined in the mol files and the rest of the program subsequently updated. Need to update the density matrix element class so that the number of electrons are not hard-coded.

Minimal basis set

The program will currently only work for a calculations with a minimal basis set. This needs to be changed. The formation of all matrix's needs changing so that they use the total number of CGFs rather than the number nuclei.

File Input Basis

File input doesn't work for the last element in the .gbs file as there python is looking for # at the end of the file. So it doesn't pick the last element up.

self.end_dic

What is importance of using dict in two electron integral

Change how object store the x, y, z coordinates.

Need to change how the object basis and nuclei store their coordinates. Change to store it into a 3x1 or 1x3 matrix, this just makes the code a bit tidier and It will be easier to calculate the the absolute values using,

vector_x = np.array([1,2,3,4,5])
vector_z = vector_x - vector_y
np.linalg.norm(vector_z)

or something along those lines.

File Input Basis

fileinputbasis needs to be changed for when a minimal basis set is not used. The CGF needs to be grouped up.

Integrals are incorrect for p-orbitals

print([i, j, a, b])
print(self.repulsion_dictionary[(i, j, a, b)] - self.repulsion_dictionary[(a, b, i, j)])

[5, 5, 5, 0]
-0.00660452979902
[5, 5, 5, 1]
0.00443134575288
[5, 5, 5, 2]
-0.0181860365038

The integrals with p-orbitals aren't producing the correct numbers.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.