{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import adcc\n", "import psi4\n", "from matplotlib import pyplot as plt\n", "\n", "adcc.set_n_threads(4) # Set to 4 threads" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Run SCF in Psi4\n", "mol = psi4.geometry(\"\"\"\n", " units au\n", " symmetry c1\n", " O 0 0 0\n", " H 0 0 1.795239827225189\n", " H 1.693194615993441 0 -0.599043184453037\n", "\"\"\")\n", "psi4.core.be_quiet()\n", "psi4.set_options({'basis': \"cc-pvtz\", 'e_convergence': 1e-7})\n", "_, wfn = psi4.energy('SCF', return_wfn=True)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Run ADC(1) on 7 singlets\n", "n_singlets = 7\n", "adc_1 = adcc.adc1(wfn, n_singlets=n_singlets)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Build guess for ADC(2) by appending a zero doubles part to each vector\n", "adc2matrix = adcc.AdcMatrix(\"adc2\", adc_1.ground_state)\n", "def append_doubles_block(adc1_vector):\n", " symmetries = adcc.guess_symmetries(adc2matrix,\n", " spin_block_symmetrisation=\"symmetric\")\n", " return adcc.AmplitudeVector(adc1_vector[\"s\"], adcc.Tensor(symmetries[1]))\n", "guesses_1 = [append_doubles_block(exv) for exv in adc_1.excitation_vectors]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Run ADC(2), ADC(2x) and ADC(3)\n", "adc_2 = adcc.adc2(adc2matrix, n_singlets=n_singlets, guesses=guesses_1)\n", "adc_x = adcc.adc2x(adc_2.ground_state, n_singlets=n_singlets,\n", " guesses=adc_2.excitation_vectors)\n", "adc_3 = adcc.adc3(adc_x.ground_state, n_singlets=n_singlets,\n", " guesses=adc_x.excitation_vectors)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "adc_1.plot_spectrum(label=\"ADC(1)\")\n", "adc_2.plot_spectrum(label=\"ADC(2)\")\n", "adc_x.plot_spectrum(label=\"ADC(2)-x\")\n", "adc_3.plot_spectrum(label=\"ADC(3)\")\n", "plt.legend()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.5" } }, "nbformat": 4, "nbformat_minor": 2 }