# adcc: Seamlessly connect your program to ADC¶

Note

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.

## 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()
```

Sounds interesting? See Installation and Performing calculations with adcc for installation instructions and some more information to get going.

## Contents¶

- Installation
- Performing calculations with adcc
- Overview of supported features
- General ADC(n) calculations
- Calculation parameters
- 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

- Full adcc reference
- Connecting host programs to adcc
- Developer’s notes
- The adccore C++ layer
- Publications and references
- About this project