Welcome to Polaritonic_adcc’s documentation!
Polaritonic_adcc provides a wide variety of methodologies to determine the electronic structure of molecules and clusters, which are polaritonically coupled to a photon. A calculation can be carried out using an SCF provider, exporting the wfn object, and then executing polaritonic_adcc on top of that, as is done in the following example.
import psi4
import adcc
adcc.set_n_threads(4)
# psi4 SCF calculation
mol = psi4.geometry(f"""
0 1
O 0.00000 0.00000 0.11779
H 0.00000 0.75545 -0.47116
H 0.00000 -0.75545 -0.47116
units angstrom
symmetry c1
no_reorient
""")
# set the number of cores equal to the auto-determined value from
# the adcc ThreadPool
psi4.set_num_threads(adcc.get_n_threads())
psi4.core.be_quiet()
psi4.set_options({'basis': basis,
'd_convergence': 1e-10,
'e_convergence': 1e-12})
scf_e, wfn = psi4.energy('hf', return_wfn=True)
# polaritonic_adcc calculation
exstates = run_qed_adc(wfn, method="adc1", coupl=[0., 0., 0.1], freq=[0., 0., 0.5],
qed_hf=False, qed_coupl_level=False, n_singlets=5, conv_tol=1e-7
)
# since this calculates a full polaritonic matrix, the result is already
# diagonalized and e.g. the energies can be obtained as follows
print(exstates.excitation_energy)
As the name already suggests, this project is based on adcc and adapts its functionalities, so you can for instance freeze ortbials or request only certain spin configurations.
Polaritonic_adcc is also very flexible with its in- and outputs. You can feed it a standard or a polaritonic SCF result, and request the states and energies of the full polaritonic matrix, or the whole matrix, if the matrix is build in a truncated space of states. The latter representation is also quasi-diabatic, making it a great tool for subsequent quantum dynamics simulations.
Sounds interesting? Then check out the Installation and Usage sections of this documentation or get in touch via GitHub .