{ "cells": [ { "cell_type": "markdown", "id": "e9a86de2", "metadata": {}, "source": [ "## Initial imports" ] }, { "cell_type": "code", "execution_count": 1, "id": "fc111d08", "metadata": {}, "outputs": [], "source": [ "from scm.plams import *\n", "from scm.plams.interfaces.adfsuite.ase_calculator import AMSCalculator\n", "from ase import Atoms" ] }, { "cell_type": "markdown", "id": "4ba4fc60", "metadata": {}, "source": [ "## Example 1: Total system charge\n", "\n", "### Create the charged molecule (ion)\n", "Create a charged ion using using `ase.Atoms` and setting the `info` dictionary." ] }, { "cell_type": "code", "execution_count": 2, "id": "37052b97", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAgU0lEQVR4Ae2de4wd1X3HZ+7cXXttzHoB4yc2j8QEkxdFQCyiYCcNKCkSDaqdRClCipoIAYkUNWrVENW2mkShVaWSYDUgJUr+a3GVKpCKQGixk5CIVHm0wgESBBg7XmPA79fu3nun38/vzm987vXd3bvru8aNzpHP/s6cOXPmzPd85nfOnDv3OkliiApEBaICUYGoQFQgKhAViApEBaICUYGoQFQgKhAViApEBaICUYGoQFQgKhAViApEBaICUYGoQFQgKhAViApEBaICUYGoQFQgKhAViApEBaICUYGoQFQgKhAViApEBaICUYGoQFQgKhAViApEBaICUYGoQFQgKhAViApEBaICUYGoQFQgKhAViApEBaICUYGoQFQgKhAViApEBaICUYGoQFQgKhAViApEBaICUYGoQFQgKhAViApEBaICUYGowJurQPrmnj6efSIF8iRJtyRJZbvsmqKgrLKThmK6Vftky7CmmZ+rUykTQ1TgpALrkiTbkCRVoDqZO7WUjs2eVB2qpwW8qdVyeqWn3fjTO208uk2BVBBkG5OkHnqbv7nwwoXnV6uX9ef5FQN5/vY5lcqcviQZEC2XZ3l+dFaa/rYqACtpuiNvNHZUKpVnRgYGnvvwCy+MeP0PqV7S61W3550JG8E6EyqPfw4DalOS1LzI55csWT2Upmvn5PmNs5Pk3eem6aBiMqACsxT7FSt5ngiwRGAZNXSivFRyrNHAvqTkLxpp+sSJev0H1+/Zs0PbFrQvU9kzAhhtiuFNUIAhT/Mn6+R1l146uHRk5JPzk2TdOUmy+gJAAp4mQLkAqwMVMAEWXkoRm+OOiOpIHZVk/frbp8gk7GCjcVT20XqeP7hqePgJZanG5vCoshSZsRDBmjFpx60YL5VuUsf+8dDQ4GUDA5+an6Z3L0jTFXPV7Rr28jkCSR4qFUwVRawBBVRAA2AFWHJBTa/FZIqY5jnAABCwZXi1o9o6nue/PJIk9165e7dGxyR5UlWsDTwleb0MEaxeqjlJXS1eavHij59fqXx1YZouP0cdLw9VE1AVIsOevJQNfQaV4ACqFrCU1wkuOlRw6S90iTL9k1tM5ckqI8o/mCQ/fD3P/+qq3bt/rVKwOCNPkREs64KZ/3ODPMQ2eYjrNCFfXq0+sKhSuWW+OlpeqjZXnkUxBSiHysASPKW3Ai5FvJV5LQdLNhgOWx8lAUxRfCUaDhuCLFcd2b5G48ShPN90yfDwV7lyABMIPR0azzRY6YYNG9Irr7wyXbBgwSnnfu211/J169Zp3pnqWv9wgkN1/dKlaxYnybcXa9g7p9GozxNMAqqiaECFUM0WMO6tGM7MY8k6VG6ryjMhZVsCUBGwmtSbVbqh82orw9vtqdcffq6///a1O3Yc0PiYre/hxL6tNdaUnv7RTZJu3LgxE0z5+vXru3oi0TGVrVu3EhubNm3q6Z3U04vrojKH6j1LltyxKEnuW5Sm/fPkpQRVVRP1REOfRYcKC0ingKU8PJZ5rUrFLPMrm7JjCW5JdwILwJqQyX016hoHq/vy/PmdtdqH3v3qqy8JwZ49NQLujAR5pgqeSQGY7HH69ttvn33ttdeunDt37tKBgYFlWndJ+vr6kmq1mo6Ojh6r1+vPHThw4EUds0/HGFBAtmXLlrRbKGfkYqZZqUP1R0uW3HlBpbJ5SIPRLA1JGuaq5RCnum14wwoMmzcF1vLQSXkWHSpZA8mtQ+W2HSyHqmlZ+6o26vXaeZXK5WmW/edzCxd+IO0hXDMBFsNdJk9jMH3mM59ZcPHFF986f/78DwqoqwXUxUon55xzjkOVZFmGi06OHz+eCLA3nnrqqWfGxsYePXLkyMOC7Fn6tfB86f8XD+ZQvU1QnZemm8+VhxBQFWI5Edd1GUiyzJNI44XcZoLGtslTuq+I5JdQhWkdf4rXArAQqrruc7ZlgUu2NpRll6jGEK7TnnP1dCjU/CiTd7Hh7q677nrH8uXL7xJEty5evHjBueeem8yaNctgkm309/c3Cm+V4LlwbZJFyUrKNqBpzjV24sSJx/fv3/+1m2666XF0E2DS2rwgm2drgJP68iVLbl6Wpo8szPP6fF3boLpdQ2DCnMrnVQyFgi0Z0OX78GdWGrhlaJylbWK/bkKpdGpEPvIJJqUsUIVgAVXnSJ9lb9TrL72c59dePTz8xkbVsqkYNbRvyqFnYN1www3Vbdu21d773vcOve9977vnwgsvvHPZsmUDc+bMSRTrWHmrdPbs2RUAE1gGGd6KCEwEgUNo1Gq1XFE3aiXR8Jjs27fv+7t37/7cLbfc8sJDDz2UaWhkqJRyZ13gQvKhiy5atbTReHpZng8MKUNQVYCKeRVQARTzKYtApTQgeQSiEizS0oi8ioPVbrXPgAIqYqeh0KGqaTAhjfW0PJeaUN1Tqz3xjZUrP7Rx2zaWIaatsY49/aChr8rQd9ttt63WsPetFStWvI2hTl6qJptpCEwLsBKBZZ4rBAtn1XRYzbYILADTtddzDY0NeS28WOXVV189sHfv3s8L4m9qv7Vdx51VcBVrVfklixc/pUnke85reqvsXF0aUBHDCbt5KuU5UG4NLIBSnCWIsOatAMojMIVpgCIvDO0ey0EaGzsJlufVamPqiL5XarXPrRge/qcnBdraYn4cVtlN+rTBcqg0Mb/joosuuk+xX0CNKVbnzZuXAljhtfBYJViasLfANFFj5bkSwVUfGRnJBFqyY8eO+1evXv1ZoNKQKXPWwGVDoIb+Ty/IsgcWNhq1+eoceasEb+VDYAgWINkToaxBJTCwJVhARVR+Js1KkByo0AIVcBE9dAILkIjA1QoY6xH54Xr98P4sW7V85849VKPa8FxTCswTpx0cqk984hN3Ll26dLOGv1zwNOSh+hRLoNrB8mGv2xMDoerTiJnlgqh+2WWX3f3Tn/70rT/72c8+ojq0oJwD6ZvtuejNfHDFivl9Y2ObBkS8xK3YRFw78CNhpLDabGtQZkkHURNrmx6glUUAAhwHySFz6/t0nIGFJThYDH2UIXoZ3++WUUDTkHlZNni0Xr9XNdwmUblZphy41mkFJuoMfzfffPOdCxcu3Dw0NGTzKAFQcc/EsEdk2+NUofLGIbrqSFV/VYCNrVy58qZrrrnmn5Xf2Lp167Qu3uvukaUNjdmjo1/U6y2LtITQUKyQicgeDShth1abJwEjrWvV2F+CBmRsl2B0gkvLNlq30ZqFbKeoOa0mtif3UdbLe33Nc9Dk+mCafvyVhQuvVTvr04FrWmD509+aNWtuACo9+dXV6RV5JibnNodigt4eEex0A3XqPPrgPx97y1vecvtjjz325bVr19a0/WbChY71RYsWXaGV8Dv75K3UvXSX3e7sbAfJdTCI0MW1KdKeb4A5VA5AaN1jkRfC0gmuTnl+jNfJudSGgYoeE7Ls6w+tWsXqyJRHg+mAla5atSq/VK96yEt95/zzz2f4S4lMyDtFYFAjXcvTttSn82lZp1LTnO4LDz/88A3qiDpPi6dd+fQqgBvG479VowYEVUMNSduB8tvKIHOQwvMFUBlo6mQHzLbZ75CFNoTKQQktQE207VC5FVSaVNX1eea179q//0901saTqiFs6mTpKRWmMnmriobA+tq1azfKW61QJ9cEU5U1KV+XCq0//U3WkKnsR2zg0kQ+ZbF1cHDwa5rvXbVg+/bU4NqyZSrVnVbZ7Xv3phvXrGlc8sADK0aS5E9TTX4FVdYOVXgSbn93AWUaaIqgiaQnm54shIh9vu0gYMM80mEdLIiy7XnMuwCNfI4l7UsRRT0VXYcakWsN7dOy/75GpU82avLUlMDyIfCKK664Uk97d6tz64qZg8Qkm4h38jT7AKHXgXNwbp4W9eDwzuuuu+4v1n74ww/2+jzd1Ldp27Zk4eLFH9Xkb7Y6pKZurXLF7VftMHmd4bb1YtD5BlewXYLheQ4P2+1QhfuAyI/hxD6Zd6gcSizRJ/lala8JLj2xvv9/liy5PN29+/kNOtOmLgGbElguiKD6ojwFXqomgPRR08lFTibnvo2d7mTdzzWeBVbg7e/rS0f7+nLZTffeffezFbkxfRzEeXN7lPYKeKz2wKM2IcwbLz1J2droaEVrUY2v79nzsVF1mrrGhsDmCZp/TwFI2Q5Si1U+bgGoWvIBg+CAhNYhCq2nKQdIRAKWfSFAvo31yHFKy/vWz8+y/v212i06+u83zhBYfBhcv+CCC1bKU/yZoMrVsTyh0YnmldzS6aQ9ck0zEQzgapWTJ/Oq1UXvWrbsR3Ye7jruSLekJ9puL9deNtwfplUu17be+kyW6dOBZ48eTQY1P/FrpTvHiwaQ9msVrlze9rIhXKSJBlVo29PhNmCEkevxbeAhjfXo217mpNU7gzlPtDeq+n9QtKZwqslC1x5Lq90VfWTT4LM/LXzCVE3g6CHo5PoLJwuHPd83WSOmu5/67YNaea5z5KHmL9SncmTiZRwOQHAYQtueDrfDY8N0WKZIO1j96iTrPp2ezvDgsGDpFY++7fs9H+v7wjR1CoeT3od0t0FtKsHimHB7vLQVSyujun6BdfUPli0bSnft2qe2cQRNnDB0DdYaTVAFFsPPzcW8SV1ol9pyghZRJUa43VKwRxvWBrVjTn9/Olcr/TY3odMngov9YWyHx/d1kQ9YehXG3j5gqHHFHQ5se9q3Q5hOSasu8tTSEkZ95eukaqQ9ktuetu4vyof7TtZwMuX9iA2jtnSL5lr1H7wgz9+qA57WY5E4m/ybPt2ClepJkBX1CzX8vJ0hTsH+kAAe3kYgtqdnGizOT5grQeZptZ/OaIHGIRnPjgdPl+UdLDwn3Uh0SMK057XDAjgevYxeI27mhVZpG2NlS4g8zTXQJ1gHw9Oq/5Tyfhz7Jg91aVtV316pok8v0BkmP6T7tQmjVIufbxdYg6qY16f1ANSEqZPVB8jq37rB1k1DplMmPK8me0m/liDUsO7BQvzxAJoon04k6px6BcMWeICCDgQmItvtMQSo9EQ6xudZvr/Faj/bPG7wdTD7ogTtVtpAIu3RoVJZax/bhLAs6U6xWbLlrz9EWBVJ8s6WnZNsAEw3wVooqC7FWwkq9WkrVA4SHxgT2fZ0NyeYThnaUC/awZ3qwyL2lKh2+yp2abst136sgNKjsNWXA5jmeMv0WpCW/1ugcngcFAetzFd52xda0kWkPtJYPfpbNIi0XcKk/I7p9huDcmFeeBz1hbHoDG5S2qy9eEve7Ok6dDsUeoUXWmeqgROBBFA88hN5G0FPkbYE4ZX0wjLEGsAFxGOyo4qneKx2QV3cTvmd8igfdoKXKfLocN5DP0+fOoTglPDoYg2eyayup6568EwWuT6POoeelJIxbTPP0lDR2ibaqGMtaH/L0x6Z5BHbr729Hi+HVeB6qJn2qy0XkbemmU1ywjBVsC5tB8q9koMUWqAi6nUXe9NhwpZMcafD63AdP3EiyY4dMzFOEbBdUIelU364D+G9TJjvedpfF8y8L6Wvs9vkg07wCCCensw6TFV1aumllHaYMp2LqMlO0s/5AcmjawcQaotBpHItsLGPvKDtliYvjJRT5Ab19lvbkmRhcZomdX7OcexUwTIvATzesSFInnaYeHok6kmyuZjJp+s9CHhNzsH5tBqa4K3GBNXYoUO2uNhRPAR1Yd12yvN949m2YwCLzhxRPsOvuqnsEGDyzvG0bxed1fROKkdHWB4dqohnKodA1Tsmj2Vw6Ty87VClHe1gqQ6DiuE53Ke6Stg4jki7PY3leolFWeXY+c0WbaP6bsNUwXqRztTHKNax7pFCi3dyoEKoWMxEePJOJwAV5yjPqfSYIDt+5Eiid5ibgrpQbkNITifdoT48OJ0O3ExYHSwHJ+wY0uU24EgPg0f5lOepjzw+IwAs91b8CAjDH1+ssPe0dE60zGgPoYChBSrgCgNl/No5LozkE4syeCvOTZuwxcPFq0V1jLmTeq0pgSU49uKpAKulc4shzzvb4cJTAZRDRcP0VoK9AVE0ckrGoeL83gZvx355q5E33rBJtYnmIrpo41kEHm+f509QRl+hSo6ok/cyFMuiuEM1kQUJopcxmLTtMLFdwqR2GFCq3x9KuEa+QtayBEF7AWoij0UZrocYeq3iWpm78tEU7Sjgsh+DEPA7dbpkq2qXUSUTh27BMkL1RPgid6i+plVp71x/i8GHPSxPkETEINBon/wzoWdfN8En6g4R1s9/Au+luO/gweTg66/b67usLYV3YEdw1JZe5NM25j3DagNf0bK26qIAw+74wnoawYkOknkpbZuHwrJPdaKMeypLS0MsSjbVVELl+DiJpRbzNuhJRG+PKmb7VM6sa9MOlrbRbUzXwvkNLh1KO7kBTtg/JboM3YJlhAqGZ44dO3ZQnToouHLZlA4GkvZhz4HqBBVeD+/mMLaXpe0hhF7e5lQ6DrAcLr6LeEJ5rwusPXv3Jn2axxlYCFnchSYoac/rodXCi0HBsod3OB1Bh7RHJgHuocyqHTb0yeKRDCqVMaDcsk9RHwgrRwFgFLjTTSNZ4OI7h+VbpiFUFCaoTKkHdQFWELnhecIdUeRjHMAqo+rTK0H/26you7/dgsV1VF588cW9S5YseUZQXH/06FFW4jPeGHVA3Fsx9LXD4qAACdGPAchwuAREL2sXW5TnGAcLKEuwNGk/oXnfUe1/ac8eWyQtwUJMjxLLAtbz3HbK832hHaccHU+H+E3EeUYV28Fi2z0WEHnEExlUqoe0RxZDAcqB1a5mWvkOlmklqOqKwMVwbO0ArjDomBa4CqjQilGopghQeCt+lQaosPJU2SGdZCxNt1Pda6olrHa8dLdgcTzXy1divq8Ov17fUs4FVou36gQUBwJICAmAtIMFiEQPDpdddABXOI/DWx3RGwXU9+q+ffn2l1/OZ+tNVgOLiiSMRU+3W/b3Ik/1HJenlNcpv9GBRwIunoNDwE4BS8fa/Kmw4GBAAYjyfBtv46jQaqItYKqMLahqP2td/EgI0QCjLsVSB5UljZdFI/rE9JW1IbCwAFVAles60kONxoHhLPsdVa3TabGThamAZRWqw7+rSv9OQ2B2+PDhjmC5twIOByQEC6gcLJ/gdwKLY7nwEC4g8qEQsOQ5m1/N13sNz//+9yn1cdy4YaJ94x40wY7iGuefd15zGC7qpwUaPpq/aSXLMAhoCO6eyq0NfYLBhjztBzSHSpvNYZCbDiC0TXSosAzDQKV37Q0owOIWtadI7W+Hy290jjN9ZQGLJ1Qf/gqv1dCibXY8z3/xl7t27dd5u/7q/VTByvRt5N/qe3P/ps772KFDh2qaX6kvm09/DpSuyTq3E1Tt3io8ttPxXHgIZQiW5nuJPGdD7VA/5MN68/BjJ2q1UXvaaepPU2Y6mCfXVw++oRNdpcgUC2bMUwEXUBERG7hKoJTm4DACgUNlQGibYF5GwBhYAqAhkAwqpVmx5wGC+Zp7KwNLx1l9WJUzbyVLXQamrMHFsYrutYBLQ2ByXEdQ97EkeZwmbG02veceS3U3g2D4kjp7vYal9KAmzT5PGg+M0OO0eysHy5ckwnmK31mdwOKhAW8lr9nQbztUFf9ReT+mDV1duV9Mj6za/S+KVwlw+t4CCfda7Z7KO96hMpjUiaEtqimNQQUUKmfDn67VbAGUQ2XgKo+6Q1BDsGgmUKGtrfQDlvL8iVBeyuZX+xuN0X1p+j0asbXLYZCyU/FYlLe7cefOnds1if+mOvFT8hi8nqxrKiaNKkSjHQpztfI6PvkeDyyAIBKoizq8Hq8Db+Ueq/BWdYFVffnll5//yU9+8o3i9yPKjrXKZv4PfScHkP+r2rlJbWd5iTaQb0+B3P0I7ZGOL4Eq0iUAunYAsKc/NNB+j3gZ3jiwBUustvEo5rFkGfos6hg/h9WrbfNY1EXdACVrxxdgAZcvNXAzqM011ZsdbDT+66+Hh6f0vrsOnzJYHMN1au2ucY/shxSXaihiUs/ctYTBwfKnQIfC51adlicAizoI44HlT4OAJajyPXoSFOifHR4ePqYfJEFP4D/TIVM7dmiK8D1dw3pdO22wmxax6Cg2aJx3uINVehXtsyun49GgsAaC9pke6Ks0HpkIDHgpwAIoOwdp7fP628GiXupysBwu/wSAoZr5lYbB9IQ640iSPKgsAlV2PRjYxdth3f+hcoR8Tb8m8+dq5FYJ2dCQyDXr6bhwr4GXAiqWJXiimwwsmuGAmgCqL4QTsIBKw+CYhr8+/Y7DV/R1+8fxVnonn4exNzNsVps/qgY0746iJVCG1wo7vB2olgPofAHC9SOqwaRtg0Hb4fDHO1rl3Ko4h03alS7hUhkLhbV6lTaoZG0olLUnWVndCPUROYrhen37fw8N/Uc+PKyz2+5mPV38nQ5YVGtD4q5du7ZpSLxLd+lmDQN1/dxQRSZVLIc+oPIlAhZS24dCX8PCW7V7LIfUh1Hq4UlQYI0J5L5XXnnlO4LqnmIIfDOhMj3kNX8sr/VdXdOtarvleR+w5BDCVXoS5bdApW3DQB2M5yJtN5iseyoeBKgcqMxbydr8SnnmFXVcCJXXz3Do9ZV1Ks+9lc2vVIcm68mo7u7DafqlLb/5zejGpsOdkr5+TlU1rQCYNcF1J3BJTGu3Pg+s8ENr/kszfD7oX71vB4vJu0PlYJV3FON/ASlQaXKeCywArgrqx371q199RF9UHdFr03beaV1B7w6yoUJaXK4qf61I/7tjUrK5MSA7p4izZdlmUkYaS2Ttq4yChLQ/WdpPR7KtfMQnlsNgkXao/OT2QKB9BNO2sD6cAilwMQwK/roWQ7PfNxo/37Zy5fVr9AWaTVMYAlWFhdMFi0ocrjsE+X3a7hdgY5pDVbWAWv6MEWD5Kr0Ph0DVDhYVhmDhrQqPV9fwl2n445f+7n/22Wc/q/OpqP1OFmCdDcG00G84fFnX9QXpwF1OXhnwKIAFUB5DqDrBZVAJpBIuHYuHomJiCBYw+ZBL54ZRwjY9lvLR2MGikXjUEWULrvoBDYN70nT1/bt2/XydqtvSdJAq0X3oBViczQTV3bpanf0txbdJVPL5+n3Gj4XwU0ah12Ly7ssUvmLPATrWLhpPpZhrKG1oXpUKqop+1e+AHhQ+ryHwmwBFWYWzBSprvv5U9MNz+iWjsR+pfdeonS1DIoXo+LmKgAVUHh2qdq8FUO61AIpth8rBsiFQ+Q6VeyssoanUSbBsWBVcNA6oiPJWY3oFqG9nvX7P/cPDX3lI1a2fBlSq6pThnbzpBoNLvzs6JCDukaAMj/xMFPXV8UyaY437U5FAQtRxWr+zkAuoKpN1LWkwWf++5lWfE1gvFF/1p+KzCSrXjb5sSIdV0uHnuhz4IXgf2wZiucdywCYDi2Pca7nHAiSDS5YTtIPlHku7LKg9JhriARWRIXBETkCr91VN2J/YPDx8o6CqCKppa9wrj6WmWeC6aGuiJ8Z3CI+7BMutigvsgnRRwCPgGgKNaB9AF3Ms2sIyhj1Z4rEEld6fqz2uu/9rGv4ep16F8hzNzbPyr7VRHvxmXe8junY0od9b9KaQw9XutfBQgBZ6qxIq5QOTR+phOMRyEo8OVbmGpX0+GXWo8FSCqq4ny+y1PH9pl37c9pGz6cdt1T4PXA/XaE8Rmm/oVxOzWyXuB5V3teLFwNUpAJ/AekP7n5F9VPZhLWs8W5R1ncwFdjr+LMuj3+3BRtexeTy4gACo3GuRbh8KfRicECwdR10Ol4vl1l074rm3ooPkrWqCqvqGoNpbr3/gEf3W+wZVtWkaE3ZVVwbOO1OB66R+82CcRHOP2fJAK5VcqriMvCKwRHFM6efkxV7UE98+3yF7Sj3BvrM9WcIlr1w+NRfXVLYdkYAJuLDA5R7LoXJLhQDW4q20DVAOlQtGvd7B7qkcrBCqfQVUPxRU61TNlqDPVMW0gp93Wgd3eRDn4Jq5thKySY5FG6LrMEnxs3q3w3WHWnmfvBf/cxz9Sn5LABigmshrTQSWixaC5SdwsOgAnTzXEFjXRL26X//lyev6L09+3EOoOOeZAMuvzc/HOT2G+0hz/cCE/UMKBpd+x2uNLurbgmuFhnr6GB3goAxs4J06weWeyi2VuqcKvZVX6J0bQqWT1gVVNqIF6QP6T5p+q/+kSZ9eHOiVp/IL8XP7drQzp4DBpV+WXqjh/gENjbfIc/EUjPeCi5a+IMMB82HQLRV57ASWV4T1O1V3K4tquZ78ssP6b+WO6r+Ve7r4b+U29GBOpVO1BG9DS2bcmDEF4MCmA/ro5+OC66vyXssDwHA27nCsEQ4YUE0Elh/oBxdQ8Q0bFnxSffRTOa46juk/wjys/wjzd/qPMAug3KHZ+Xr1J4LVKyW7rwfNiQ39OPCgPu76lOC6m+GxAIyODodJ6yP++BDoNhwKHSyVs6kElSiR8S588ZrxL2Xvfbn4r3tvkNPbVjy5q2jPgzW657XGCrtRoPRe/AK11uw+qYM01Un49MI+fQA0BQPNUmwpOERYKsGqI1nE0XJWMwVdeiv0qIa/R/U54IP6gPwJZeUbmsOekgYgdkZCBGtGZO26UvSHDeZZFoqPxdYKqhuV8W6BMmiwFPvdhKCVec1POV7Svl/oA68n9HsSPzig98R8v2wJc5A3I8kI1ozIOuVKHTCGwJKZYqJ/mSC7QvlXCrC5xX7vN8oqO92hjyt26CeVntHQ+twLL7ygxfQyABPB5nbN5Mz/9QbO/JniGbpVABDolxbIuj24KOd1MCISz3iIYJ1xyad0QvqnmEJ1dRwQ4cVKr9fVUbFQVCAqEBWICkQFogJRgahAVCAqEBWICkQFogJRgahAVCAqEBWICkQFogJRgahAVCAqEBWICkQFogJRgahAVCAqEBWICkQFogJRgahAVCAqEBWICkQFogJRgahAVCAqEBWICkQFogJRgahAVCAqEBWICkQFogJRgahAVCAqEBWICkQFogJRgahAVCAqEBWICkQFogJRgahAVCAqEBWICkQFogJRgahAVCAqEBWICkQFogJRgahAVCAqEBWICkQF/gAV+D+6QIG+qGSFDQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "atoms = Atoms(\"OH\", positions=[[1.0, 0.0, 0.0], [0.0, 0.0, 0.0]])\n", "# define a total charge\n", "atoms.info[\"charge\"] = -1\n", "\n", "view(fromASE(atoms), guess_bonds=True, width=150, height=150)" ] }, { "cell_type": "markdown", "id": "dc427cd6", "metadata": {}, "source": [ "### Set the AMS settings\n", "\n", "First, set the AMS settings as you normally would do in PLAMS:" ] }, { "cell_type": "code", "execution_count": 3, "id": "8b2acb6a", "metadata": {}, "outputs": [], "source": [ "settings = Settings()\n", "settings.input.ADF # Use ADF with the default settings\n", "settings.input.ams.Task = \"SinglePoint\"" ] }, { "cell_type": "markdown", "id": "12841d8c", "metadata": {}, "source": [ "### Run AMS through the ASE Calculator\n", "\n", "Below, the ``amsworker=False`` (default) will cause AMS to run in standalone mode. This means that all input and output files will be stored on disk." ] }, { "cell_type": "code", "execution_count": 4, "id": "136895d3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[18.03|13:58:24] JOB total_charge1 STARTED\n", "[18.03|13:58:25] JOB total_charge1 RUNNING\n", "[18.03|13:58:26] JOB total_charge1 FINISHED\n", "[18.03|13:58:26] JOB total_charge1 SUCCESSFUL\n", "Energy: -8.325 eV\n" ] } ], "source": [ "atoms.calc = AMSCalculator(settings=settings, name=\"total_charge\", amsworker=False)\n", "\n", "energy = atoms.get_potential_energy() # calculate the energy of a charged ion\n", "print(f\"Energy: {energy:.3f} eV\") # ASE uses eV as energy unit" ] }, { "cell_type": "markdown", "id": "1e1bcd52", "metadata": {}, "source": [ "### Access the input file\n", "\n", "``atoms.calc.amsresults`` contains the corresponding PLAMS AMSResults object.\n", "\n", "``atoms.calc.amsresults.job`` contains the corresponding PLAMS AMSJob object. This object has, for example, the ``get_input()`` method to access the input to AMS.\n", "\n", "**Note**: These are actually properties of the Calculator, not the Atoms! So if you run more calculations with the same calculator you will **overwrite** the AMSResults in ``atoms.calc.amsresults``!\n", "\n", "AMS used the following input:" ] }, { "cell_type": "code", "execution_count": 5, "id": "fd41e834", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Task SinglePoint\n", "\n", "System\n", " Atoms\n", " O 1.0000000000 0.0000000000 0.0000000000\n", " H 0.0000000000 0.0000000000 0.0000000000\n", " End\n", " Charge -1.0\n", "End\n", "\n", "Engine ADF\n", "EndEngine\n", "\n", "\n" ] } ], "source": [ "print(atoms.calc.amsresults.job.get_input())" ] }, { "cell_type": "markdown", "id": "b9822701", "metadata": {}, "source": [ "### Access the binary .rkf results files and use PLAMS AMSResults methods\n", "\n", "Access the paths to the binary results files:" ] }, { "cell_type": "code", "execution_count": 6, "id": "7ebe9d67", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/Users/ormrodmorley/Documents/code/ams/amshome/userdoc/ScriptingExamples/charged-ams-calculator/plams_workdir.002/total_charge1/ams.rkf\n" ] } ], "source": [ "ams_rkf = atoms.calc.amsresults.rkfpath(file=\"ams\")\n", "print(ams_rkf)" ] }, { "cell_type": "markdown", "id": "a2114679", "metadata": {}, "source": [ "If you prefer, you can use the PLAMS methods to access results like the energy:" ] }, { "cell_type": "code", "execution_count": 7, "id": "7702ca9c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Energy: -8.325 eV\n" ] } ], "source": [ "energy2 = atoms.calc.amsresults.get_energy(unit=\"eV\")\n", "print(f\"Energy: {energy2:.3f} eV\")" ] }, { "cell_type": "markdown", "id": "ec87e2b6", "metadata": {}, "source": [ "## Example 2: Define atomic charges\n", "\n", "### Construct a charged ion with atomic charges" ] }, { "cell_type": "code", "execution_count": 8, "id": "3fab1214", "metadata": {}, "outputs": [], "source": [ "atoms = Atoms(\"OH\", positions=[[1.0, 0.0, 0.0], [0.0, 0.0, 0.0]], charges=[-1, 0])" ] }, { "cell_type": "markdown", "id": "976e2491", "metadata": {}, "source": [ "### Run AMS " ] }, { "cell_type": "code", "execution_count": 9, "id": "09a30c28", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[18.03|13:58:26] JOB atomic_charges1 STARTED\n", "[18.03|13:58:26] Job atomic_charges1 previously run as total_charge1, using old results\n", "[18.03|13:58:26] JOB atomic_charges1 COPIED\n" ] }, { "data": { "text/plain": [ "-8.32521952681946" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "calc = AMSCalculator(settings=settings, name=\"atomic_charges\")\n", "atoms.calc = calc\n", "\n", "atoms.get_potential_energy() # calculate the energy of a charged ion" ] }, { "cell_type": "markdown", "id": "1b3068e5", "metadata": {}, "source": [ "AMS only considers the total charge of the system and not the individual atomic charges. PLAMS thus reuses the results of the previous calculation since the calculation is for the same chemical system. Both input options are allowed. If both input options are used, the total charge is the sum of both." ] }, { "cell_type": "code", "execution_count": 10, "id": "13a3340e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Task SinglePoint\n", "\n", "System\n", " Atoms\n", " O 1.0000000000 0.0000000000 0.0000000000\n", " H 0.0000000000 0.0000000000 0.0000000000\n", " End\n", " Charge -1.0\n", "End\n", "\n", "Engine ADF\n", "EndEngine\n", "\n", "\n" ] } ], "source": [ "print(calc.amsresults.job.get_input())" ] }, { "cell_type": "markdown", "id": "cc960e8d", "metadata": {}, "source": [ "## Example 3: Set the charge in the AMS System block\n", "\n", "### Set the charge in the AMS System block\n", "A charge can be set for the calculator in the settings object. " ] }, { "cell_type": "code", "execution_count": 11, "id": "f2dfaed8", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[18.03|13:58:26] JOB default_charge1 STARTED\n", "[18.03|13:58:26] JOB default_charge1 RUNNING\n", "[18.03|13:58:28] JOB default_charge1 FINISHED\n", "[18.03|13:58:28] JOB default_charge1 SUCCESSFUL\n", "Task SinglePoint\n", "\n", "System\n", " Atoms\n", " O 1.0000000000 0.0000000000 0.0000000000\n", " H 0.0000000000 0.0000000000 0.0000000000\n", " End\n", " Charge -1\n", "End\n", "\n", "Engine ADF\n", "EndEngine\n", "\n", "\n" ] } ], "source": [ "atoms = Atoms(\"OH\", positions=[[1.0, 0.0, 0.0], [0.0, 0.0, 0.0]])\n", "\n", "settings = Settings()\n", "settings.input.ADF # Use ADF with the default settings\n", "settings.input.ams.Task = \"SinglePoint\"\n", "settings.input.ams.System.Charge = -1\n", "\n", "calc = AMSCalculator(settings=settings, name=\"default_charge\")\n", "atoms.calc = calc\n", "atoms.get_potential_energy() # calculate the energy of a charged ion\n", "print(calc.amsresults.job.get_input())" ] }, { "cell_type": "markdown", "id": "1adc6edd", "metadata": {}, "source": [ "In this case, the charge of the `Atoms` object is no longer used." ] }, { "cell_type": "code", "execution_count": 12, "id": "665fe752", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[18.03|13:58:28] JOB default_charge_overridden1 STARTED\n", "[18.03|13:58:28] Job default_charge_overridden1 previously run as default_charge1, using old results\n", "[18.03|13:58:28] JOB default_charge_overridden1 COPIED\n", "Task SinglePoint\n", "\n", "System\n", " Atoms\n", " O 1.0000000000 0.0000000000 0.0000000000\n", " H 0.0000000000 0.0000000000 0.0000000000\n", " End\n", " Charge -1\n", "End\n", "\n", "Engine ADF\n", "EndEngine\n", "\n", "\n" ] } ], "source": [ "atoms = Atoms(\n", " \"OH\",\n", " positions=[[1.0, 0.0, 0.0], [0.0, 0.0, 0.0]],\n", ")\n", "atoms.info[\"charge\"] = 100\n", "\n", "settings = Settings()\n", "settings.input.ADF # Use ADF with the default settings\n", "settings.input.ams.Task = \"SinglePoint\"\n", "settings.input.ams.System.Charge = -1\n", "\n", "calc = AMSCalculator(settings=settings, name=\"default_charge_overridden\")\n", "atoms.calc = calc\n", "atoms.get_potential_energy() # calculate the energy of a charged ion\n", "print(calc.amsresults.job.get_input())" ] }, { "cell_type": "code", "execution_count": null, "id": "c6a734b4-d508-4086-a565-0593158354d0", "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 }