V0.1.0 of mqc released!

I have been writing a new quantum chemistry package that relies on fragmentation for massive parallelism and I am happy to announce that v0.1.0 has been released! after this I will stick to a monthly release schedule.

It is entirely written in Fortran (except using libxc for DFT functionals, because it doesn’t make sense to port this to Fortran). The integrals are evaluated using libfint a Fortan port of libcint which is used by pyscf (a very popular package). Libfint is validated against libcint on every push to ensure correctness.

I support most of the common methods in quantum chemistry: RHF, UHF, RKS-DFT, UKS-DFT, CASSCF, MP2, CCSD(T) - with RHF, RKS-DFT, MP2, and CCSD(T) being able to run under the “density-fitting/resolution of the identity” approximation.

Analytical gradients are available for RHF, RKS-DFT, MP2, CASSCF, RI-RHF, RI-MP2 (including double hybrid DFT). Analytical Hessians are available for the same methods without RI/DF, including double hybrid DFT Hessians (they’ll be slow because they use a full MP2 reference).

Parallelism is done via MPI and OpenMP.

The code is built with CMake but an FPM build is available for some core functionality. The code can be built without MPI to just use OpenMP. For the methods that interest me the most I have verified performance against established quantum chemistry packages, like QChem and I can report that the code is as fast if not faster than said programs while remaining correct.

The idea is that mqc is the frag backend, and Cenzontle is the quantum chemistry backend.

Fortran has long had a history in QC and I am very happy to continue it :slight_smile:

Oh it also has a python interface.

10 Likes

I believe most of the code should build with Lfortran, I am waiting to have a free day to just spend the time testing it with it.

1 Like

@jorgeg and if it doesn’t, we’ll fix it!

2 Likes