{ "cells": [ { "cell_type": "markdown", "id": "3d53de6a", "metadata": {}, "source": [ "## Optimize a water molecule with DFTB\n", "\n", "This example shows how to perform a geometry optimization of a water molecule and compute\n", "the vibrational normal modes using GFN1-xTB. \n", "\n", "If you do not have\n", "a DFTB license, remove the line with DFTB settings and instead set\n", "``settings.input.ForceField.Type = 'UFF'``" ] }, { "cell_type": "markdown", "id": "ae63448e", "metadata": {}, "source": [ "## Initial imports" ] }, { "cell_type": "code", "execution_count": 1, "id": "58ad66cd", "metadata": {}, "outputs": [], "source": [ "import scm.plams as plams" ] }, { "cell_type": "markdown", "id": "fb6d4400", "metadata": {}, "source": [ "## Initial structure" ] }, { "cell_type": "code", "execution_count": 2, "id": "e8566f73", "metadata": {}, "outputs": [], "source": [ "# You could also load the geometry from an xyz file:\n", "# molecule = plams.Molecule('path/my_molecule.xyz')\n", "# or generate a molecule from SMILES:\n", "# molecule = plams.from_smiles('O')\n", "molecule = plams.Molecule()\n", "molecule.add_atom(plams.Atom(symbol=\"O\", coords=(0, 0, 0)))\n", "molecule.add_atom(plams.Atom(symbol=\"H\", coords=(1, 0, 0)))\n", "molecule.add_atom(plams.Atom(symbol=\"H\", coords=(0, 1, 0)))" ] }, { "cell_type": "code", "execution_count": 3, "id": "3d1d09e2", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAy20lEQVR4Ae2dCZQdV3nnq+q9llpba993IRuQmDCYxMvERK0BHIPNcDhEwtgJhpljExiYBGaCM/FMJHESPOfksGQ5jIccPMGEGEmHw4FgDxNiLGF7GGIbDwO2B4ysvVuLF60tdfd79eb/u6++p9ul19rcrbf0vefc993abt366vvV991b9aqiKKSggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCBoIGggaCB82sgPv8qbbFGvGHDhnj16tXx7Nmz6x5zd3d3ZePGjZVNmzalbXHE4SCCBs6jgXjLli0F8nnWG7I4juPokUceKV7sdkMqCRNto4G6V9MWPzrASNavX1+247j99ts75SGWTZkyZfXkyZPnVCqVN4wfP77Y0dERpWl6YtKkSf9Pct/JkyefW7t27S7bTuuhn0TQ4FUqNj/IsaOBtgKEq76BcfPNN098xzvesXbq1KnrBMBvKC+ZOXNmQTISHNG4ceOiYrEYJUkS4TUGBgaiEydOnBYUzwqW7/X19X3rzW9+8w/NFPy6bV6Q7a+BtgAku9Jj6JU777xz6ute97o7pk2b9hH1N1bMmDHDAYG36OzsLAuOCnAwXSgUapCoDrGSJEADMC+//HJ0+vTpH8qrfFF9lwdkCmWtQ7iWsp/2N41whGig2OpqWLduXUEG68Kpu++++/Y5c+Z8euHChUsUSgFEKiDSCRMmJMqxpgvmPYAEQMyDZHqoyHtg/On06dMLgui6/v7+63bv3v37L7300h9qP//IesCkcujMZ0prZ9HSgADH1q1by7fccsvcK6644kuLFi36V/IcgFECCoVTLqsckTXfZbyHDLzeeY0FjOt3AJBSqnUrixcvfrNCte/t2LHjz++///5PaduBEHLVU1/7zatrJa1wmGvWrClu3769dNttt127dOnSv12yZMlrBERJhpyoM57gQehvTJw40WWD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\n", "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plams.view(molecule, guess_bonds=True, width=200, height=200)" ] }, { "cell_type": "markdown", "id": "bc495964", "metadata": {}, "source": [ "## Calculation settings\n", "\n", "The calculation settings are stored in a ``Settings`` object, which is a type of nested dictionary." ] }, { "cell_type": "code", "execution_count": 4, "id": "eac89500", "metadata": {}, "outputs": [], "source": [ "settings = plams.Settings()\n", "settings.input.ams.Task = \"GeometryOptimization\"\n", "settings.input.ams.Properties.NormalModes = \"Yes\"\n", "settings.input.DFTB.Model = \"GFN1-xTB\"\n", "# settings.input.ForceField.Type = 'UFF' # set this instead of DFTB if you do not have a DFTB license. You will then not be able to extract the HOMO and LUMO energies." ] }, { "cell_type": "markdown", "id": "7dcd01c1", "metadata": {}, "source": [ "## Create an AMSJob" ] }, { "cell_type": "code", "execution_count": 5, "id": "ef1764f6", "metadata": {}, "outputs": [], "source": [ "job = plams.AMSJob(molecule=molecule, settings=settings, name=\"water_optimization\")" ] }, { "cell_type": "markdown", "id": "44eda0e7", "metadata": {}, "source": [ "You can check the input to AMS by calling the ``get_input()`` method:" ] }, { "cell_type": "code", "execution_count": 6, "id": "924fcbdd", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-- input to the job --\n", "Properties\n", " NormalModes Yes\n", "End\n", "\n", "Task GeometryOptimization\n", "\n", "System\n", " Atoms\n", " O 0.0000000000 0.0000000000 0.0000000000\n", " H 1.0000000000 0.0000000000 0.0000000000\n", " H 0.0000000000 1.0000000000 0.0000000000\n", " End\n", "End\n", "\n", "Engine DFTB\n", " Model GFN1-xTB\n", "EndEngine\n", "\n", "\n", "-- end of input --\n" ] } ], "source": [ "print(\"-- input to the job --\")\n", "print(job.get_input())\n", "print(\"-- end of input --\")" ] }, { "cell_type": "markdown", "id": "e8a711a2", "metadata": {}, "source": [ "## Run the job" ] }, { "cell_type": "code", "execution_count": 7, "id": "ff0a57ac", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[19.03|15:41:59] JOB water_optimization STARTED\n", "[19.03|15:41:59] JOB water_optimization RUNNING\n", "[19.03|15:42:01] JOB water_optimization FINISHED\n", "[19.03|15:42:01] JOB water_optimization SUCCESSFUL\n" ] } ], "source": [ "job.run();" ] }, { "cell_type": "markdown", "id": "b65ada47", "metadata": {}, "source": [ "## Main results files: ams.rkf and dftb.rkf\n", "\n", "The paths to the main binary results files ``ams.rkf`` and ``dftb.rkf`` can be retrieved as follows:" ] }, { "cell_type": "code", "execution_count": 8, "id": "f00b47c3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/Users/ormrodmorley/Documents/code/ams/amshome/userdoc/PythonExamples/water-optimization/plams_workdir/water_optimization/ams.rkf\n", "/Users/ormrodmorley/Documents/code/ams/amshome/userdoc/PythonExamples/water-optimization/plams_workdir/water_optimization/dftb.rkf\n" ] } ], "source": [ "print(job.results.rkfpath(file=\"ams\"))\n", "print(job.results.rkfpath(file=\"engine\"))" ] }, { "cell_type": "markdown", "id": "8efbce40", "metadata": {}, "source": [ "## Optimized coordinates" ] }, { "cell_type": "code", "execution_count": 9, "id": "d9808515", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Optimized coordinates\n", "---------------------\n", " Atoms: \n", " 1 O 0.066921 0.066921 0.000000\n", " 2 H 1.012042 -0.078963 0.000000\n", " 3 H -0.078963 1.012042 0.000000\n", "\n", "---------------------\n" ] } ], "source": [ "optimized_molecule = job.results.get_main_molecule()\n", "\n", "print(\"Optimized coordinates\")\n", "print(\"---------------------\")\n", "print(optimized_molecule)\n", "print(\"---------------------\")" ] }, { "cell_type": "code", "execution_count": 10, "id": "4492ba0d", "metadata": {}, "outputs": [ { "data": { "image/png": "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lgEJL7zDolKK3aj04bqNdSmNttNFHItQNDtfu6HwV4NF3CjejY6/BWXv1ooou63P/BqBub4tUgAiSJjPX9/LhH9130pgEBOeJub4v8Q0f0b38hfVgH881Bpr4Z/xAkjjJfDzvsB65CuGd7WWvbs1ntQQTks+ko2Bwnc7ugio7wGUN6P3dzB/AaVZUnHg7hRg2OAi6+lQDlM+BVCbeM/uX/H/ju9qZm41VL2Sm5TWH5HkijIiO487bXkJDAJFRwssE4BlEWAsZbI7tyhaT1ToTyanyd9hna1AcYR5lvToiCobNmxodHfrK8TfKIFRLAEBIAU3Jb+C80jlSrH+xSz1FTQ1MqtGCzIych/Ne5XOhLnZuciajId4rdm5x3lRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAlECUQJRAuNQAv8fK21f18wl4i0AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plams.view(optimized_molecule, guess_bonds=True, width=200, height=200)" ] }, { "cell_type": "markdown", "id": "e44aee93", "metadata": {}, "source": [ "## Optimized bond lengths and angle" ] }, { "cell_type": "markdown", "id": "d39cb5cd", "metadata": {}, "source": [ "Unlike python lists, where the index of the first element is 0, \n", "the index of the first atom in the molecule object is 1." ] }, { "cell_type": "code", "execution_count": 11, "id": "030f2093", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "O-H bond length: 0.956 angstrom\n" ] } ], "source": [ "bond_length = optimized_molecule[1].distance_to(optimized_molecule[2])\n", "print(\"O-H bond length: {:.3f} angstrom\".format(bond_length))" ] }, { "cell_type": "code", "execution_count": 12, "id": "638c287c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Bond angle : 107.5 degrees\n" ] } ], "source": [ "bond_angle = optimized_molecule[1].angle(optimized_molecule[2], optimized_molecule[3])\n", "print(\"Bond angle : {:.1f} degrees\".format(plams.Units.convert(bond_angle, \"rad\", \"degree\")))" ] }, { "cell_type": "markdown", "id": "85eb0635", "metadata": {}, "source": [ "## Calculation timing" ] }, { "cell_type": "code", "execution_count": 13, "id": "8c78b754", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Timings\n", "-------\n", "elapsed : 1.261 seconds\n", "system : 0.064 seconds\n", "cpu : 0.924 seconds\n", "-------\n" ] } ], "source": [ "timings = job.results.get_timings()\n", "\n", "print(\"Timings\")\n", "print(\"-------\")\n", "for key, value in timings.items():\n", " print(f\"{key:<20s}: {value:.3f} seconds\")\n", "print(\"-------\")" ] }, { "cell_type": "markdown", "id": "04245d10", "metadata": {}, "source": [ "## Energy" ] }, { "cell_type": "code", "execution_count": 14, "id": "46b25b6d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Energy : -3618.400 kcal/mol\n" ] } ], "source": [ "energy = job.results.get_energy(unit=\"kcal/mol\")\n", "\n", "print(\"Energy : {:.3f} kcal/mol\".format(energy))" ] }, { "cell_type": "markdown", "id": "f12dd7a5", "metadata": {}, "source": [ "## Vibrational frequencies" ] }, { "cell_type": "code", "execution_count": 15, "id": "a65f95ef", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Frequencies\n", "-----------\n", "1427.924 cm^-1\n", "3674.507 cm^-1\n", "3785.960 cm^-1\n", "-----------\n" ] } ], "source": [ "frequencies = job.results.get_frequencies(unit=\"cm^-1\")\n", "\n", "print(\"Frequencies\")\n", "print(\"-----------\")\n", "for freq in frequencies:\n", " print(f\"{freq:.3f} cm^-1\")\n", "print(\"-----------\")" ] }, { "cell_type": "markdown", "id": "1b776f60", "metadata": {}, "source": [ "## Dipole moment" ] }, { "cell_type": "code", "execution_count": 16, "id": "0b67e488", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Dipole moment: 1.830 debye\n" ] } ], "source": [ "import numpy as np\n", "\n", "try:\n", " dipole_moment = np.linalg.norm(np.array(job.results.get_dipolemoment()))\n", " dipole_moment *= plams.Units.convert(1.0, \"au\", \"debye\")\n", " print(\"Dipole moment: {:.3f} debye\".format(dipole_moment))\n", "except KeyError:\n", " print(\"Couldn't extract the dipole moment\")" ] }, { "cell_type": "markdown", "id": "43b24c71", "metadata": {}, "source": [ "## HOMO, LUMO, and HOMO-LUMO gap\n", "\n", "Note: The methods for extracting HOMO, LUMO, and HOMO-LUMO gap only exist in AMS2023 and later." ] }, { "cell_type": "code", "execution_count": 17, "id": "b2b412dd", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "HOMO : -13.593 eV\n", "LUMO : -4.206 eV\n", "HOMO-LUMO gap : 9.387 eV\n" ] } ], "source": [ "try:\n", " homo = job.results.get_homo_energies(unit=\"eV\")[0]\n", " lumo = job.results.get_lumo_energies(unit=\"eV\")[0]\n", " homo_lumo_gap = job.results.get_smallest_homo_lumo_gap(unit=\"eV\")\n", "\n", " print(\"HOMO : {:.3f} eV\".format(homo))\n", " print(\"LUMO : {:.3f} eV\".format(lumo))\n", " print(\"HOMO-LUMO gap : {:.3f} eV\".format(homo_lumo_gap))\n", "except KeyError:\n", " print(\"Couldn't extract the HOMO and LUMO.\")" ] }, { "cell_type": "markdown", "id": "cda4152b", "metadata": {}, "source": [ "## Read results directly from binary .rkf files\n", "\n", "You can also read results directly from the binary .rkf files. Use the \"expert mode\" of the KFbrowser program that comes with AMS to find out which section and variable to read.\n", "\n", "Below, we show how to extract the ``AMSResults%Energy`` variable from the dftb.rkf file. This is the same number that was extracted previously using the ``job.results.get_energy()`` method." ] }, { "cell_type": "code", "execution_count": 18, "id": "00ea368a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Energy from the engine .rkf file (in hartree): -5.766288141081021\n" ] } ], "source": [ "energy = job.results.readrkf(\"AMSResults\", \"Energy\", file=\"engine\")\n", "print(f\"Energy from the engine .rkf file (in hartree): {energy}\")" ] }, { "cell_type": "code", "execution_count": null, "id": "d0e490b4", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.8.16" } }, "nbformat": 4, "nbformat_minor": 5 }