{ "cells": [ { "cell_type": "markdown", "id": "61e0c7bb-0ac0-4c61-b9ae-658600a3b8db", "metadata": {}, "source": [ "## Purpose\n", "Example showing the `UseLowestEnergy` feature of the Hybrid engine and the `OptimizeSpinRound` feature of the ADF engine.\n", "\n", "A bond scan is performed on hydrogen peroxide with UFF. The resulting\n", "structures are then recalculated with DFT using four different setups. In\n", "particular, one setup uses the Hybrid engine with DynamicFactors=UseLowestEnergy.\n", "Another uses the ADF engine with `OptimizeSpinRound` in combination with an `ElectronicTemperature`.\n", "\n", "In the end, the results of energy vs. bond length are plotted.\n", "\n", "## Initial imports" ] }, { "cell_type": "code", "execution_count": 1, "id": "ee9b908d-b600-4630-bc6e-baae2b7e7cbd", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "PLAMS working folder: /path/plams/plams_workdir\n" ] } ], "source": [ "import matplotlib.pyplot as plt\n", "from scm.plams import from_smiles, Settings, AMSJob, Units, init\n", "\n", "# this line is not required in AMS2025+\n", "init()" ] }, { "cell_type": "markdown", "id": "4ceaa4a2-5940-4034-b61e-a075bfd06993", "metadata": {}, "source": [ "## Helper functions" ] }, { "cell_type": "code", "execution_count": 2, "id": "375ce1da-7b57-4329-ad43-78cd8627a44e", "metadata": {}, "outputs": [], "source": [ "def initial_pesscan():\n", " \"\"\"Run a bond scan for hydrogen peroxide with UFF. Returns the finished job\"\"\"\n", " mol = from_smiles(\"OO\") # hydrogen peroxide\n", " s = Settings()\n", " s.input.ams.Task = \"PESScan\"\n", " s.input.ams.PESScan.ScanCoordinate.nPoints = 7\n", " # Scan O-O bond length (atoms 1 and 2) between 1.2 and 2.5 Å\n", " s.input.ams.PESScan.ScanCoordinate.Distance = \"2 1 1.2 2.5\"\n", " s.input.ForceField.Type = \"UFF\"\n", " job = AMSJob(settings=s, molecule=mol, name=\"initial_pesscan\")\n", " job.run()\n", " return job\n", "\n", "\n", "def singlet_settings(header=\"\"):\n", " s = Settings()\n", " s.Unrestricted = \"No\"\n", " s.XC.GGA = \"PBE\"\n", " s.Basis.Type = \"DZP\"\n", " s.SCF.Iterations = 100\n", " s._h = header\n", " return s\n", "\n", "\n", "def triplet_settings(header=\"\"):\n", " s = Settings()\n", " s.Unrestricted = \"Yes\"\n", " s.SpinPolarization = 2\n", " s.XC.GGA = \"PBE\"\n", " s.Basis.Type = \"DZP\"\n", " s.SCF.Iterations = 100\n", " s._h = header\n", " return s\n", "\n", "\n", "def hybrid_settings():\n", " \"\"\"Look at the file plams_workdir/hybrid/hybrid.in to see how the below is translated into text input for the hybrid engine\"\"\"\n", " s = Settings()\n", " s.input.Hybrid.Energy.DynamicFactors = \"UseLowestEnergy\"\n", "\n", " s.input.Hybrid.Energy.Term = [\"Region=* EngineID=Singlet\", \"Region=* EngineID=Triplet\"]\n", "\n", " s.input.Hybrid.Engine = [singlet_settings(\"ADF Singlet\"), triplet_settings(\"ADF Triplet\")]\n", " return s\n", "\n", "\n", "def replay_job(rkf, engine=\"hybrid\"):\n", " \"\"\"Replay the structures from the UFF pesscan with ADF. Use three different engines:\n", " Hybrid: This will run all structures with both Singlet and Triplet and pick the lowest energy\n", " Singlet: This runs all structures using the Singlet settings\n", " Triplet: This runs all structures using the Triplet settings\n", "\n", " Returns the finished job\n", " \"\"\"\n", " s = Settings()\n", " if engine == \"hybrid\":\n", " s = hybrid_settings()\n", " elif engine == \"singlet\":\n", " s.input.adf = singlet_settings()\n", " elif engine == \"triplet\":\n", " s.input.adf = triplet_settings()\n", " elif engine == \"optimizespin\":\n", " s.input.adf = triplet_settings()\n", " s.input.adf.Occupations = \"ElectronicTemperature=300 OptimizeSpinRound=0.05\"\n", "\n", " s.input.ams.Task = \"Replay\"\n", " s.input.ams.Replay.File = rkf\n", "\n", " job = AMSJob(settings=s, name=engine)\n", " job.run()\n", " return job\n", "\n", "\n", "def plot_results(singlet_job, triplet_job, hybrid_job, optimizespin_job):\n", " \"\"\"\n", " Generate a plot of the energy vs. bond length for the three different jobs. Saves a plot to pesplot.png.\n", " \"\"\"\n", " bondlengths = singlet_job.results.get_pesscan_results()[\"RaveledPESCoords\"][0]\n", " bondlengths = Units.convert(bondlengths, \"bohr\", \"angstrom\")\n", "\n", " singlet_pes = singlet_job.results.get_pesscan_results()[\"PES\"]\n", " triplet_pes = triplet_job.results.get_pesscan_results()[\"PES\"]\n", " hybrid_pes = hybrid_job.results.get_pesscan_results()[\"PES\"]\n", " hybrid_pes = [x - 0.005 for x in hybrid_pes] # slightly downshift for visual clarity when plotting\n", " optimizespin_pes = optimizespin_job.results.get_pesscan_results()[\"PES\"]\n", " optimizespin_pes = [x - 0.010 for x in optimizespin_pes] # slightly downshift for visual clarity when plotting\n", "\n", " plt.plot(bondlengths, singlet_pes)\n", " plt.plot(bondlengths, triplet_pes)\n", " plt.plot(bondlengths, hybrid_pes)\n", " plt.plot(bondlengths, optimizespin_pes)\n", " plt.title(\"PES Scan for hydrogen peroxide\")\n", " plt.xlabel(\"O-O bond length (Å)\")\n", " plt.ylabel(\"Energy (hartree)\")\n", " plt.legend(\n", " [\"Singlet\", \"Triplet\", \"Hybrid: Lowest energy (slightly shifted)\", \"ADF: optimized spin (slightly shifted)\"]\n", " )\n", " plt.savefig(\"pesplot.png\")\n", " plt.show()" ] }, { "cell_type": "markdown", "id": "03346a9d-b7df-460a-9ace-2fa570b6d255", "metadata": {}, "source": [ "## Run the job" ] }, { "cell_type": "code", "execution_count": 3, "id": "e411258f-f5eb-4148-b1f1-aa6210a5bece", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[04.03|14:01:29] JOB initial_pesscan STARTED\n", "[04.03|14:01:29] JOB initial_pesscan RUNNING\n", "[04.03|14:01:31] JOB initial_pesscan FINISHED\n", "[04.03|14:01:31] Job initial_pesscan reported warnings. Please check the output\n", "[04.03|14:01:31] JOB initial_pesscan SUCCESSFUL\n", "[04.03|14:01:31] Job initial_pesscan reported warnings. Please check the output\n", "[04.03|14:01:31] Job initial_pesscan reported warnings. Please check the output\n", "[04.03|14:01:31] Job initial_pesscan reported warnings. Please check the output\n", "[04.03|14:01:31] JOB singlet STARTED\n", "[04.03|14:01:31] JOB singlet RUNNING\n", "[04.03|14:01:42] JOB singlet FINISHED\n", "[04.03|14:01:42] Job singlet reported warnings. Please check the output\n", "[04.03|14:01:42] JOB singlet SUCCESSFUL\n", "[04.03|14:01:42] Job singlet reported warnings. Please check the output\n", "[04.03|14:01:42] Job singlet reported warnings. Please check the output\n", "[04.03|14:01:42] Job singlet reported warnings. Please check the output\n", "[04.03|14:01:42] JOB triplet STARTED\n", "[04.03|14:01:42] JOB triplet RUNNING\n", "[04.03|14:01:51] JOB triplet FINISHED\n", "[04.03|14:01:51] JOB triplet SUCCESSFUL\n", "[04.03|14:01:51] JOB hybrid STARTED\n", "[04.03|14:01:51] JOB hybrid RUNNING\n", "[04.03|14:02:04] JOB hybrid FINISHED\n", "[04.03|14:02:04] JOB hybrid SUCCESSFUL\n", "[04.03|14:02:04] JOB optimizespin STARTED\n", "[04.03|14:02:04] JOB optimizespin RUNNING\n", "[04.03|14:02:21] JOB optimizespin FINISHED\n", "[04.03|14:02:21] JOB optimizespin SUCCESSFUL\n" ] } ], "source": [ "pesscan_job = initial_pesscan()\n", "rkf = pesscan_job.results.rkfpath()\n", "singlet_job = replay_job(rkf, \"singlet\")\n", "triplet_job = replay_job(rkf, \"triplet\")\n", "hybrid_job = replay_job(rkf, \"hybrid\")\n", "optimizespin_job = replay_job(rkf, \"optimizespin\")\n", "# or load the finished jobs from disk:\n", "# pesscan_job = AMSJob.load_external('plams_workdir.002/initial_pesscan/ams.rkf')\n", "# rkf = pesscan_job.results.rkfpath()\n", "# singlet_job = AMSJob.load_external('plams_workdir.002/singlet/ams.rkf')\n", "# triplet_job = AMSJob.load_external('plams_workdir.002/triplet/ams.rkf')\n", "# hybrid_job = AMSJob.load_external('plams_workdir.002/hybrid/ams.rkf')\n", "# optimizespin_job = AMSJob.load_external('plams_workdir.002/optimizespin/ams.rkf')" ] }, { "cell_type": "markdown", "id": "30eb097a-1a8c-4f04-bd60-a4e9a862e9cb", "metadata": { "tags": [] }, "source": [ "## Plot the result\n", "\n", "Two equivalent to follow the lowest energy of the singlet and the triplet state, with either the Hybrid engine (green) or the optimize spin option (red) from ADF." ] }, { "cell_type": "code", "execution_count": 4, "id": "f8973040-7de7-4c88-a430-578f2948b441", "metadata": {}, "outputs": [ { "data": { "image/png": "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7wATP4GCPPjhCWNgvdd0W0dVbf5vy/9xMOlgxStehk5NOvFk7yfLXScrK4vw8HDr46SkJMaNG4eHhweDBw9m5cqVREVFMXfuXCZNmoSjoyNgfPD+8ccfrFu3jhkzZrB3717A+HDdsGEDrq6urF271rrff/3rX/Tv35/nn3+elStX8vHHH1uXjR49mk8//RR/f/8KX9MHH3wAwJ49ezh48CAjRozg8OHDDBw4kPXr19O6dWscHBysHxwbNmxg6tSprF69miNHjrBlyxaUUowbN45169Zx/vx5/P39WblyJQApKSl4eXnx5ptv8ttvv+Hj41Ps+Hl5eTz00EMsW7YMX19f5s2bxzPPPMPnn38OGC2vLVu2sGrVKv71r3+xZs0aPvvsM7y8vNi6dSs5OTlERkYyYsQIALZs2cLevXtp06YNCxcu5MSJE+zZs4dz587RuXNnZsyYwdChQ3nggQc4f/48vr6+fPHFF0yffunf/saNG7n55psBYwKvuLg46+8lOTm5zPc0Pj6el19+mR07duDh4cHQoUMJCwuzLk9ISGDDhg0cPHiQcePGMXnyZGbNmsXrr79unROm8HdtZ2fH1KlT+fbbb/n73//OmjVrCAsLu+R9fP311/nggw+IjIwkPT3dWhJn586d7Nu3D39/fyIjI9m4cSP9+/e3bvf888/z66+/8vrrr9OrVy9efPFF3N3deeyxxwC45ZZbeOSRR+jfvz+nTp1i5MiRHDhwoNy/v5CQELZu3Vrm+1NZugVS19k7wuTPof0IWPEIRNdeE/pq5erqap2FMDo62vrNHYx+5y+++ALgkg+twg+qgQMHkpqaav2AGjduHK6urpccZ926dUydOhWAMWPG0LhxY+uyVatWVSp5gJEQbrvtNgA6depEq1atOHz4MAMGDGDdunVs2LCBMWPGkJ6eTmZmJidOnKBjx46sXr2a1atX0717d3r06MHBgwc5cuQI3bp1Y82aNTz55JOsX78eLy+vco9/6NAh9u7dy/DhwwkPD+eVV14hNjbWurywZdCzZ09OnDgBGCXuv/76a8LDw+nTpw+JiYkcOXIEgN69e9OmTRvra5syZQp2dna0aNHC2voREW677Ta++eYbkpOT2bRpE6NGjboktoSEBHx9fQEIDg7m2LFjPPTQQ/z44494epY9586WLVsYNGgQTZo0wdHRkSlTphRb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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_results(singlet_job, triplet_job, hybrid_job, optimizespin_job)" ] }, { "cell_type": "code", "execution_count": null, "id": "51791fe4-0e89-4a15-98b1-0c04ed2ff033", "metadata": {}, "outputs": [], "source": [] } ], "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.8.12" } }, "nbformat": 4, "nbformat_minor": 5 }