Among free software packages, which one has robust CASSCF functionality? The FCI solver can be implemented in either way, e.g., direct solver, DMRG, etc.
I'm surprised that the other two answers were given without yet any mention of OpenMOLCAS yet!
There is a recent paper about it for which I happen to be one of the many co-authors.
MOLCAS has the quality of a commercial software like MOLPRO, since it was a commercial software that people paid big money for since the 1980s, but recently an open source branch called OpenMOLCAS was made freely available.
Furthermore, (Open)MOLCAS is the only program with CAS in its name, suggesting that it caters well to CASSCF calculations. Indeed, it originated in the 1980s in the group of Björn Roos, and Roos in fact described the CASSCF method in the year 1980 and later in the same decade developed the CASPT2 method.
CASSCF, RASSCF, and GASSCF are all implemented well in OpenMOLCAS, as it is used mainly by people who specialize in active-space calculations.
# CASSCF(2,4) example from the manual, # section 184.108.40.206, page 108 ! TZVPP TightSCF %casscf nel 2 norb 4 end * xyz 0 1 Be 0 0 0 *
Some resources for CASSCF:
- General functionality is reported in this tutorial.
- A tutorial dedicated exclusively to dealing with the active space in ORCA.
- A 90-page document from the developers entirely dedicated to CASSCF (free registration required). (This can be found in the Downloads section of the ORCA Forum under "CASSCF Tutorial".)
- The ORCA manual (free registration required). See section 8.1.7 (page 107) for CASSCF, NEVPT2, and DMRG. (This can be found in the Downloads section of the ORCA Forum under "ORCA Manuals".)
Personally I would use pyscf, its not the most efficient or user friendly but it's free.
The code is available through GitHub and has been described in WIRES.
The main advantages of BAGEL is that it has
better memory and parallelization than MOLPRO. For example, MOLPRO (not Free) is restricted to 32 active orbitals. While not a problem for CASSCF, this will severely affect your ability to do CASPT2 calculations. (they have fixed this problem in 2012 and it requires the use of rs2c keyword)
BAGEL also has the added advantage of being able to calculate CASPT2 non-adiabatic couplings.
I should warn, however, that the developers specifically say
BAGEL is intended for use in parallel environments with a large amount
of distributed memory (e.g., hence there is no disk interface). We are NOT going to optimize BAGEL for a stand-alone workstation.
This is good news if you are working on a cluster since that means your calculation will run faster, but is bad news if you're working on a smaller scale.
Columbus is an alternative package for CASSCF and other multireference methods. There is a free and open-source distribution. It is a bit old fashioned but still widely used.
H. Lischka, R. Shepard, T. Müller, P. G. Szalay, R. M. Pitzer, A. J. A. Aquino, M. M. A. do Nascimento, M. Barbatti, L. T. Belcher, J.-P. Blaudeau, et al., J. Chem. Phys. 2020, 152, 134110. DOI: 10.1063/1.5144267
GAMESS (https://www.msg.chem.iastate.edu/GAMESS/) has an MCSCF module, which can perform CASSCF. For generating configurations it can use determinants, or configuration state functions (CSFs). There are first order, quasi-second order, full newton-raphson and other convergers for the iterations. GAMESS can also perform full second order CI.
GAMESS documentation has a section on how to do MCSCF calculations.
GAMESS is free to obtain, and you can also access its source code, but strictly speaking, it is not open-source because its license is proprietary.