Repository navigation
Add FOMO-CASCI and CASCI with DFT embedding extensions - #167
Conversation
New Features: - FOMO-SCF: pyscf/mcscf/addons.py - DFT-CASCI: pyscf/mcscf/casci_dft.py - Gradients: pyscf/grad/casci_dft.py - Tests: pyscf/mcscf/test/, pyscf/grad/test/ - Examples: examples/mcscf/, examples/grad/ References: - P. Slavíček, T. J. Martínez, J. Chem. Phys. 132, 234102 (2010) - S. Pijeau, E. G. Hohenstein, J. Chem. Theory Comput. 13, 1130 (2017) Author: Arshad Mehmood <arshad.mehmood@stonybrook.edu>
|
Please don't copy entire mcscf.addons from pyscf. Since FOMO-SCF is still a kind of SCF, I guess it can be placed in some place like scf/fomoscf.py. |
|
I'm not very sure whether CASCI-DFT or DFT-CASCI are formal names of the method you implemented and cited? If not, I think some more formal name like "DFT-corrected CASCI" can be used in the code, comments, outputs and file names, to avoid confusion with other methods like CAS-DFT or CASCI on DFT orbitals (can be referred as DFT-CASCI in some context). |
- Move FOMO-SCF from mcscf/addons.py to scf/fomoscf.py (reviewer comment pyscf#1) - Rename casci_dft -> dft_corrected_casci throughout codebase (reviewer comment pyscf#2) - Update all imports and __init__.py files accordingly - Rename test files to match new module names - Update example files with new naming convention - Use 'DFT-corrected CASCI' terminology consistently in code, comments, and outputs This addresses both reviewer comments from the initial PR review.
|
Hi @jeanwsr, I've addressed both of your review comments: Comment 1: Moved FOMO-SCF code from Changes include:
All local tests pass. Please let me know if you need any further changes. Thank you! |
|
Thank you for your review and catching this! |
Detailed Description
Overview
This PR introduces FOMO-CASCI (Floating Occupation Molecular Orbital CASCI) and DFT-corrected CASCI methods with full nuclear gradient support. These methods are useful for multireference calculations, particularly in photochemistry and excited state dynamics.
New Features
1. FOMO-SCF (
mcscf/addons.py)Implements fractional occupation SCF with:
n_i = 0.5 * erfc((ε_i - μ) / σ)n_i = 1 / (1 + exp((ε_i - μ) / kT))2. DFT-CASCI (
mcscf/casci_dft.py)CASCI with DFT-corrected core energy:
E_core = E_nuc + Tr[D_core * h] + 0.5*Tr[D_core * J] + E_xc[core]3. Nuclear Gradients (
grad/casci_dft.py)Verification Results
All numerical gradients have been verified against numerical differentiation:
Example Usage
References
FOMO-CASCI: P. Slavíček and T. J. Martínez, "Ab initio floating occupation molecular orbital-complete active space configuration interaction: An efficient approximation to CASSCF", J. Chem. Phys. 132, 234102 (2010). https://doi.org/10.1063/1.3436501
DFT Core Embedding: S. Pijeau and E. G. Hohenstein, J. Chem. Theory Comput. 13, 1130-1146 (2017). https://doi.org/10.1021/acs.jctc.6b00893
Files Added
pyscf/mcscf/addons.py- Updated with FOMO-SCF implementationpyscf/mcscf/casci_dft.py- DFT-CASCI energypyscf/grad/casci_dft.py- DFT-CASCI gradientsexamples/mcscf/andexamples/grad/mcscf/test/andgrad/test/Testing
All examples and unit tests pass. I'm happy to address any feedback or make modifications as needed.
Thank you for reviewing!