adcc: Seamlessly connect your program to ADC¶
This documentation page is still under construction.
ADC-connect – or adcc in short – is a Python-based framework to connect to arbitrary programs and perform calculations based on the algebraic-diagrammatic construction approach (ADC) on top of their existing self-consistent field (SCF) procedures. Four SCF codes can be used with adcc out of the box, namely molsturm, psi4, PySCF, and veloxchem.
The range of supported algebraic-diagrammatic construction (ADC) methods includes the ADC(n) family up to level 3, including variants such as spin-flip and core-valence separation. For all methods transition and excited state properties are available. See the Performing calculations with adcc for more details. Recently we submitted a paper about adcc, see [HSF+19].
Getting a first taste¶
The next code snippet should give you an idea, how adcc works in practice. It shows how an ADC(3) calculation for 3 singlet excited states of water can be performed on top of a restricted Hartree-Fock reference computed using PySCF.
from matplotlib import pyplot as plt from pyscf import gto, scf import adcc # Run SCF in pyscf mol = gto.M( atom='O 0 0 0;' 'H 0 0 1.795239827225189;' 'H 1.693194615993441 0 -0.599043184453037', basis='cc-pvtz', unit="Bohr" ) scfres = scf.RHF(mol) scfres.conv_tol = 1e-13 scfres.kernel() # Run an ADC(3) calculation, solving for 3 singlets state = adcc.adc3(scfres, n_singlets=3) # Broaden the peaks and plot the resulting spectrum state.plot_spectrum(broadening='lorentzian') plt.show()
- Performing calculations with adcc
- Overview of supported features
- General ADC(n) calculations
- Calculation parameters
- Parallelisation in adcc
- Plotting spectra
- Reusing intermediate data
- Programmatic access to computed data
- Spin-flip calculations
- Core-valence-separated calculations
- Restricting active orbitals: Frozen core and frozen virtuals
- Further examples and details
- Theoretical review of ADC methods
- adcc reference
- Connecting host programs to adcc
- Developer’s notes
- adccore: C++ core library
- libadcc: Python bindings for adccore