adcc: Seamlessly connect your program to ADC¶
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. The design and details of adcc can also be found in our recent paper, see [HSF+20].
Getting a first taste¶
You may interactively try adcc from your browser at https://try.adc-connect.org. Alternatively keep reading for a small code snippet, which shows how to perform an ADC(3) calculation for 3 singlet excited states of water on top of a restricted Hartree-Fock reference computed with 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()
Sounds interesting? See Installation and Performing calculations with adcc for installation instructions and some more information to get going or take a look at our examples folder on github for more ideas what adcc can be used for.
- 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
- Benchmarks and timings
- Overview of adcc
- Connecting host programs to adcc
- Developer’s notes
- API reference
- adccore: C++ core library