Documentation | Build Status | License | Citation |
---|---|---|---|
Fermi.jl is a quantum chemistry framework written in pure Julia. This code is developed at the Center for Computational Quantum Chemistry at the University of Georgia under the supervision of Dr. Justin M. Turney and Prof. Henry F. Schaefer.
This work is supported by the U.S. National Science Foundation under grant number CHE-1661604.
For an academic overview of this project, check our paper published in the Journal of Chemical Theory and Computation: Fermi.jl: A Modern Design for Quantum Chemistry
Fermi focuses on post Hartree--Fock methods. Currently, only restricted references are supported. This is intended as a research code with an ever growing collection of methods implemented in the package itself. However, the Fermi API is designed to make high performance pilot implementations of methods achievable.
Currently, we have implementations of:
Method | Conv. | DF |
---|---|---|
RHF | Y | Y |
RMP2 | Y | Y |
RCCSD | Y | Y |
RCCSD(T) | Y | Y |
Install Fermi by running,
pkg> add Fermi
To access the package manager (
pkg>
) start the Julia terminal and hit]
. Alternatively, you can runjulia> using Pkg julia> Pkg.add("Fermi")
If you would like the latest updates, use instead
pkg> add Fermi#master
A minimal example of a computation is provided here. For more info check the documentation.
First, define a molecule
@molecule {
O 1.2091536548 1.7664118189 -0.0171613972
H 2.1984800075 1.7977100627 0.0121161719
H 0.9197881882 2.4580185570 0.6297938830
}
Choose a basis set
@set basis sto-3g
Finally, run a computation
@energy ccsd;
Molecules.jl: A package that deals with Atom
objects. It can parse XYZ files and compute properties related to the position of nuclei.
GaussianBasis.jl: A library for integrals and basis set objects. It can parse .gbs
basis set files and create BasisFunction
and BasisSet
structures. Integrals over Gaussian basis are computed using libcint
.
PR's, issues, and suggestions are very welcome! You might consider reaching out before starting work so that we can avoid duplication of efforts. Besides browsing our issues for things that needs fixing/enhancement you can check the desired features below for ideas of what you can do! Contact Gustavo Aroeira for any inquiries.
1. New Methods for Energy Computations
- Unrestricted MP2
- Unrestricted CC and High order CC methods (e.g. CCSDT, CCSDTQ)
- Configuration Interaction (CID, CISD, FCI, selective CI, etc)
- Relativistic Methods
- Methods beyond Born-Oppenheimer approximation
- Excited States
2. Properties
- Dipole Moments
- Polarizability
- IR intensities
- Harmonic Frequencies
- Anharmonic Frequencies
3. Computational schemes
- GPU Computations
- Distributed Computations