{ "cells": [ { "cell_type": "markdown", "id": "f7966fcd-8aed-4f34-9b17-1ca35d136a27", "metadata": {}, "source": [ "## Constrained geometry optimizations with the AMSWorker\n", "\n", "The `AMSWorker` class allows geometry optimization of multiple molecules without the overhead of AMS start-up for each molecule.\n", "Here we want to optimize the geometries of three different molecules, with benzene as the common substructure,\n", "but wit different substituents." ] }, { "cell_type": "code", "execution_count": 1, "id": "37e8debd-dcc0-43e1-9f8c-571cc25f80bf", "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "H\n", "" ], "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import os\n", "from scm.plams import Molecule\n", "from scm.plams import plot_grid_molecules\n", "\n", "path = os.path.join(os.environ[\"AMSRESOURCES\"], \"Molecules\", \"TestMols\", \"PLAMS\")\n", "filenames = [\"tbut_benzene.in\", \"o_di_tbut_benzene.in\", \"tri_tbut_benzene.in\"]\n", "filenames = [os.path.join(path, fn) for fn in filenames]\n", "molecules = [Molecule(fn) for fn in filenames]\n", "\n", "plot_grid_molecules(molecules, molsPerRow=3)" ] }, { "cell_type": "markdown", "id": "26ab6f08-abda-4123-8d2c-6863772cc720", "metadata": {}, "source": [ "The structures are unoptimized, as the crowded geometry of the third structure demonstrates." ] }, { "cell_type": "code", "execution_count": 2, "id": "1c6273c6-a1da-4627-b6c9-f63d507d0346", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from scm.plams import plot_molecule\n", "\n", "plot_molecule(molecules[2]);" ] }, { "cell_type": "markdown", "id": "8695d3ae-f625-4dfb-b860-897c7b6dd017", "metadata": {}, "source": [ "The geometry of the three structures can be optimized with the AMSWorker as follows." ] }, { "cell_type": "code", "execution_count": 3, "id": "a6f4cbc3-0a16-4fea-9710-33a16d7ad3c0", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from scm.plams import AMSWorker, Settings\n", "\n", "# Create the general settings object and start upt the amsworker\n", "settings = Settings()\n", "settings.input.ForceField.Type = \"UFF\"\n", "worker = AMSWorker(settings)\n", "\n", "stackmol = Molecule()\n", "for i, mol in enumerate(molecules):\n", " results = worker.GeometryOptimization(\"go%i\" % (i), mol)\n", " stackmol += results.get_main_molecule()\n", "\n", "plot_molecule(stackmol);" ] }, { "cell_type": "markdown", "id": "d44d3545-ec20-4510-8a6b-f5d2044813d5", "metadata": {}, "source": [ "We may prefer to perform the optimization while constraining the positions of the benzene carbon atoms, so that the benzene rings can be stacked directly on top of one another. The constraints can be passed to the `GeometryOptimization()` call as a settings object. The settings object has the same layout as the constraints passed to a regular `AMSJob`." ] }, { "cell_type": "code", "execution_count": 4, "id": "b8eef860-fbd3-41ac-83ac-51f4dcad8930", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "stackmol = Molecule()\n", "s = Settings()\n", "s.input.ams.Constraints.Atom = [1, 2, 3, 4, 5, 6]\n", "for i, mol in enumerate(molecules):\n", " # Pass the constraints to the optimizer\n", " results = worker.GeometryOptimization(\"constrained%i\" % (i), mol, constraints=s)\n", " stackmol += results.get_main_molecule()\n", "\n", "plot_molecule(stackmol);" ] }, { "cell_type": "markdown", "id": "0a3bfbd5-c07f-4137-ba0e-6f3e5464ad01", "metadata": {}, "source": [ "If we use contraints designed for one molecule in a geometry optimization for a different molecule, this may result in an error. We can look at the error message to check." ] }, { "cell_type": "code", "execution_count": 5, "id": "164272f0-c52c-43b4-958c-e7d543deee6a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Atom index 4 read from Constraints%Atom[4] is out of range.\n" ] } ], "source": [ "from scm.plams import JobError\n", "from scm.plams import from_smiles\n", "from scm.amspipe import AMSPipeError\n", "\n", "results = worker.GeometryOptimization(\"water\", from_smiles(\"O\"), constraints=s)\n", "print(results.get_errormsg())" ] }, { "cell_type": "code", "execution_count": 6, "id": "18b4500b-1bb5-454d-99a4-1baa99557436", "metadata": {}, "outputs": [], "source": [ "worker.stop();" ] } ], "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 }