{ "cells": [ { "cell_type": "markdown", "id": "acca80f1-1038-46bb-8ab0-b979b4f86365", "metadata": {}, "source": [ "When running active learning it's usually a good idea to start off \"simple\" and make the system/structures gradually more complicated.\n", "\n", "To train liquid water, we here\n", "\n", "* first train a potential at slightly above room temperature and 1.0 g/cm^3\n", "\n", "* continue with a second active learning loop where the density is explicitly scanned from a low to a high value\n", "\n", "## Initial imports" ] }, { "cell_type": "code", "execution_count": 2, "id": "da56ecd1-21a7-43d9-bfa1-4bf894264bc0", "metadata": {}, "outputs": [], "source": [ "import scm.plams as plams\n", "from scm.simple_active_learning import SimpleActiveLearningJob\n", "import matplotlib.pyplot as plt\n", "from scm.external_engines.core import interface_is_installed\n", "\n", "assert interface_is_installed(\"m3gnet\"), (\n", " \"You must install the m3gnet backend before following this tutorial!\"\n", ")" ] }, { "cell_type": "code", "execution_count": 2, "id": "1c19c997-1ea8-4e2e-99eb-19a1dc13e2af", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "PLAMS working folder: /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003\n" ] } ], "source": [ "plams.init()" ] }, { "cell_type": "markdown", "id": "d9c62716-48bd-4f14-ac67-71369169e04f", "metadata": {}, "source": [ "## Create an initial water box" ] }, { "cell_type": "code", "execution_count": 3, "id": "dd2fce16-c8f5-4947-972c-6c2825fec79c", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "water = plams.from_smiles(\"O\")\n", "for at in water:\n", " at.properties = plams.Settings()\n", "plams.plot_molecule(water)" ] }, { "cell_type": "code", "execution_count": 200, "id": "a6e8d2af-7b6f-4211-a2ce-ee3ef8de9dbd", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "box = plams.packmol(water, n_molecules=48, density=1.0)\n", "plams.plot_molecule(box, rotation=\"-5x,5y,0z\")" ] }, { "cell_type": "markdown", "id": "e9d97d6a-b370-4380-a3ac-e5dfe2f43d88", "metadata": {}, "source": [ "Let's run a short MD simulation with M3GNet-UP-2022 to make the structure more realistic:" ] }, { "cell_type": "code", "execution_count": 5, "id": "ddf81aef-5ca6-4635-9b54-1273126030ff", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[22.02|09:51:37] JOB up_md STARTED\n", "[22.02|09:51:37] JOB up_md RUNNING\n", "[22.02|09:52:19] JOB up_md FINISHED\n", "[22.02|09:52:20] JOB up_md SUCCESSFUL\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "up_s = plams.Settings()\n", "up_s.input.MLPotential.Model = \"M3GNet-UP-2022\"\n", "up_s.runscript.nproc = 1 # always run AMS Driver in serial for MLPotential\n", "up_md = plams.AMSNVTJob(\n", " molecule=box,\n", " settings=up_s,\n", " name=\"up_md\",\n", " nsteps=1000,\n", " timestep=0.5,\n", " temperature=350,\n", ")\n", "up_md.run();" ] }, { "cell_type": "markdown", "id": "b09926c6-4f9c-4f74-b11c-19118f4d3881", "metadata": {}, "source": [ "New structure:" ] }, { "cell_type": "code", "execution_count": 6, "id": "e8478c88-9947-47bb-8890-9c2466475f63", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "starting_structure = up_md.results.get_main_molecule()\n", "plams.plot_molecule(starting_structure, rotation=\"-5x,5y,0z\")" ] }, { "cell_type": "markdown", "id": "97cad19f-4111-4afd-9b98-8fa60b3f196c", "metadata": {}, "source": [ "## Simple Active Learning setup\n", "\n", "### Reference engine settings\n", "\n", "Here, we choose to train against ReaxFF Water-2017.ff, which gives a good water structure." ] }, { "cell_type": "code", "execution_count": 5, "id": "352d3d64-a1ff-43d7-ae62-28da11a3c537", "metadata": {}, "outputs": [], "source": [ "fast_ref_s = plams.Settings()\n", "fast_ref_s.input.ReaxFF.ForceField = \"Water2017.ff\"\n", "fast_ref_s.runscript.nproc = 1\n", "\n", "slow_ref_s = plams.Settings()\n", "slow_ref_s.input.QuantumESPRESSO.Pseudopotentials.Family = \"SSSP-Efficiency\"\n", "slow_ref_s.input.QuantumESPRESSO.Pseudopotentials.Functional = \"PBE\"\n", "slow_ref_s.input.QuantumESPRESSO.K_Points._h = \"gamma\"\n", "slow_ref_s.input.QuantumESPRESSO.System = plams.Settings(\n", " input_dft=\"revpbe\", ecutwfc=40, vdw_corr=\"Grimme-D3\", dftd3_version=4\n", ")" ] }, { "cell_type": "markdown", "id": "bb674ecc-647e-475a-8403-ef2445fa75b4", "metadata": {}, "source": [ "Change to slow_ref_s to train to revPBE-D3(BJ) instead:" ] }, { "cell_type": "code", "execution_count": 9, "id": "baa1af20-0e2b-4b83-ac10-ed7e493a5647", "metadata": {}, "outputs": [], "source": [ "ref_s = fast_ref_s.copy()" ] }, { "cell_type": "markdown", "id": "df211024-dd66-4ade-9020-698fbeff8996", "metadata": {}, "source": [ "### NVT molecular dynamics settings" ] }, { "cell_type": "code", "execution_count": 16, "id": "7a7b3ce8-5b5d-44e3-a414-e0b40a98f81f", "metadata": {}, "outputs": [], "source": [ "nvt_md_s = plams.AMSNVTJob(\n", " nsteps=20000,\n", " timestep=0.5,\n", " temperature=(270, 350, 350),\n", " tau=100,\n", " thermostat=\"Berendsen\",\n", ").settings" ] }, { "cell_type": "markdown", "id": "e9e586f4-00e0-4840-a80c-c5a3bd521951", "metadata": {}, "source": [ "### ParAMS machine learning settings" ] }, { "cell_type": "code", "execution_count": 17, "id": "e967ff55-3ba2-4a83-85e7-c45553162d12", "metadata": {}, "outputs": [], "source": [ "ml_s = plams.Settings()\n", "ml_s.input.ams.MachineLearning.Backend = \"M3GNet\"\n", "ml_s.input.ams.MachineLearning.CommitteeSize = 1\n", "ml_s.input.ams.MachineLearning.M3GNet.Model = \"UniversalPotential\"\n", "ml_s.input.ams.MachineLearning.MaxEpochs = 200" ] }, { "cell_type": "markdown", "id": "1fcac74b-90b1-4cef-97f4-7ee5882e1b9d", "metadata": {}, "source": [ "### Active learning settings\n", "\n", "Liquid water is a \"simple\" homogeneous system, so we can expect the ML method to perform quite well. We therefore decrease the success criteria thresholds a bit compared to the default vvalues, to ensure that we get accurate results.\n", "\n", "Since we will immediately continue with another active learning loop, we disable the \"RerunSimulation\" as we are not interested in the MD simulation per se." ] }, { "cell_type": "code", "execution_count": 18, "id": "142f6258-1af8-46e2-a686-0836ba720b5e", "metadata": {}, "outputs": [], "source": [ "al_s = plams.Settings()\n", "al_s.input.ams.ActiveLearning.Steps.Type = \"Geometric\"\n", "al_s.input.ams.ActiveLearning.Steps.Geometric.Start = 10\n", "al_s.input.ams.ActiveLearning.Steps.Geometric.NumSteps = 8\n", "al_s.input.ams.ActiveLearning.InitialReferenceData.Generate.M3GNetShortMD.Enabled = (\n", " \"Yes\"\n", ")\n", "al_s.input.ams.ActiveLearning.SuccessCriteria.Energy.Relative = 0.003\n", "al_s.input.ams.ActiveLearning.SuccessCriteria.Forces.MaxDeviationForZeroForce = 0.35\n", "al_s.input.ams.ActiveLearning.AtEnd.RerunSimulation = \"No\"" ] }, { "cell_type": "markdown", "id": "bcdc4ce5-10a7-4efd-898a-76c65de77d3c", "metadata": {}, "source": [ "### Complete job" ] }, { "cell_type": "code", "execution_count": 199, "id": "3e20d62c-de17-4de0-a958-9cd35091d16e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ActiveLearning\n", " AtEnd\n", " RerunSimulation False\n", " End\n", " InitialReferenceData\n", " Generate\n", " M3GNetShortMD\n", " Enabled True\n", " End\n", " End\n", " End\n", " Steps\n", " Geometric\n", " NumSteps 8\n", " Start 10\n", " End\n", " Type Geometric\n", " End\n", " SuccessCriteria\n", " Energy\n", " Relative 0.003\n", " End\n", " Forces\n", " MaxDeviationForZeroForce 0.35\n", " End\n", " End\n", "End\n", "MachineLearning\n", " Backend M3GNet\n", " CommitteeSize 1\n", " M3GNet\n", " Model UniversalPotential\n", " End\n", " MaxEpochs 300\n", "End\n", "MolecularDynamics\n", " BinLog\n", " DipoleMoment False\n", " PressureTensor False\n", " Time False\n", " End\n", " CalcPressure False\n", " Checkpoint\n", " Frequency 1000000\n", " End\n", " InitialVelocities\n", " Temperature 270.0\n", " Type Random\n", " End\n", " NSteps 20000\n", " Thermostat\n", " Duration 10000 10000\n", " Tau 100.0\n", " Temperature 270.0 350.0 350.0\n", " Type Berendsen\n", " End\n", " TimeStep 0.5\n", " Trajectory\n", " SamplingFreq 100\n", " WriteBonds True\n", " WriteCharges True\n", " WriteEngineGradients False\n", " WriteMolecules True\n", " WriteVelocities True\n", " End\n", "End\n", "Task MolecularDynamics\n", "\n", "Engine ReaxFF\n", " ForceField Water2017.ff\n", "EndEngine\n", "\n", "System\n", " Atoms\n", " O 1.9484063843 0.7908751554 0.9843784912 region=mol0\n", " H 1.8807066057 1.3557587756 1.7738028426 region=mol0\n", " H 2.7889027904 1.0305350245 0.5431370020 region=mol0\n", " O 10.7118642478 8.8976306276 0.2987670543 region=mol0\n", " H 9.7735425683 8.7703425211 0.4389863434 region=mol0\n", " H 0.0490730208 8.2436480283 0.6736763286 region=mol0\n", " O 5.5379816522 4.8553159199 1.0896272627 region=mol0\n", " H 5.8152715988 5.2600095857 0.2530174079 region=mol0\n", " H 5.3856969801 3.9231930219 0.7837738823 region=mol0\n", " O 8.1383463535 -0.0252513258 4.4154064519 region=mol0\n", " H 8.9092020434 0.3904671903 4.8246346143 region=mol0\n", " H 8.3296344499 10.2836574911 4.5378538323 region=mol0\n", " O -0.2237802569 5.3964041227 3.4588998124 region=mol0\n", " H 0.2735677315 6.0527704434 2.8742969015 region=mol0\n", " H 0.1864265153 5.2716705407 4.3380136317 region=mol0\n", " O 5.7979985111 8.6608860006 2.8872866792 region=mol0\n", " H 5.3230692006 8.3357811182 3.6963798396 region=mol0\n", " H 6.2304519592 7.8097193430 2.6618304707 region=mol0\n", " O 1.7465729422 9.7984310888 8.5729650397 region=mol0\n", " H 1.1081756754 9.7185544079 7.8314320304 region=mol0\n", " H 1.7281866480 10.7605531231 8.7067696629 region=mol0\n", " O 3.3859627493 5.2358110659 2.7644204993 region=mol0\n", " H 4.2756622394 5.0100990681 2.3595053911 region=mol0\n", " H 3.7809970259 6.0920576867 3.1120028311 region=mol0\n", " O 6.5551954935 5.9834566856 4.0403510760 region=mol0\n", " H 6.9205760784 5.3867805500 4.7383618564 region=mol0\n", " H 6.7279509873 5.5159202952 3.1764575315 region=mol0\n", " O 2.1446772691 4.0214207468 6.9655310389 region=mol0\n", " H 2.6116861527 4.7157029507 7.4384031932 region=mol0\n", " H 2.2827327964 3.2738127181 7.6028454725 region=mol0\n", " O 6.3420325249 0.8955181238 1.4744753464 region=mol0\n", " H 5.6081729493 0.1682630206 1.2981618061 region=mol0\n", " H 6.7858052840 0.8452250161 2.3623285661 region=mol0\n", " O 6.8831915161 3.3362109301 7.5093884599 region=mol0\n", " H 7.8965221567 3.3512035495 7.1840347379 region=mol0\n", " H 7.0552475151 2.9923565722 8.4426582910 region=mol0\n", " O 10.0308335945 6.2802046270 6.5694605112 region=mol0\n", " H 9.5798960360 7.1065572264 6.2397756999 region=mol0\n", " H 10.5118249458 6.6949820812 7.3597363700 region=mol0\n", " O 9.7129547100 5.7136665649 10.1368788151 region=mol0\n", " H 9.9673952334 6.3246825730 9.3929360886 region=mol0\n", " H 8.8063687976 5.3665799301 9.8506395004 region=mol0\n", " O 4.4687246863 7.6950388162 4.9302604163 region=mol0\n", " H 4.5595979731 8.1831103937 5.7811621914 region=mol0\n", " H 4.7873145618 6.7993123452 5.1544800711 region=mol0\n", " O 0.3544516880 3.7586426736 10.5192948518 region=mol0\n", " H 0.5248126590 3.8766486830 0.1910900565 region=mol0\n", " H -0.2141780087 4.5406583716 10.3008573354 region=mol0\n", " O 0.8223369899 10.1441664799 3.6106160673 region=mol0\n", " H 0.4258460036 10.7979641055 3.0119932101 region=mol0\n", " H 1.6487744992 10.6842284076 3.7912082295 region=mol0\n", " O 9.2905519872 9.0081204527 6.4038591190 region=mol0\n", " H 10.1747647252 9.4868962812 6.3226135104 region=mol0\n", " H 9.0809852935 9.0572245141 7.3567563333 region=mol0\n", " O 3.0413450497 10.7382450042 4.9759017604 region=mol0\n", " H 3.1608244734 0.3327440895 5.4382250844 region=mol0\n", " H 3.0691865843 10.0060888641 5.6793514850 region=mol0\n", " O 6.7657733210 7.3562284329 7.6661104632 region=mol0\n", " H 6.2172162413 8.1381085687 7.9386357927 region=mol0\n", " H 6.9771139595 6.6872988280 8.3800559698 region=mol0\n", " O 3.0652669342 6.8533765369 0.2891335648 region=mol0\n", " H 2.3922262472 6.4386947915 10.9908945513 region=mol0\n", " H 3.4923218912 6.0766028527 0.7580986071 region=mol0\n", " O 8.0454923801 9.6188895421 9.2485015419 region=mol0\n", " H 8.6709364349 9.5027490269 9.9921650384 region=mol0\n", " H 7.8556440156 10.6011618663 9.2584216000 region=mol0\n", " O 4.6341463295 10.8218558691 9.7128531995 region=mol0\n", " H 4.3444882461 10.7235218757 10.6624569162 region=mol0\n", " H 4.2857850515 10.0087830606 9.3273021663 region=mol0\n", " O 0.3974172500 10.1233659149 6.2433867201 region=mol0\n", " H 1.0402807948 9.7684586165 5.5554216294 region=mol0\n", " H 0.4795164444 -0.1904756624 6.1966190389 region=mol0\n", " O 8.7125277036 9.2910512007 2.4130732974 region=mol0\n", " H 9.0826352271 10.1151333218 1.9382617227 region=mol0\n", " H 7.7800375810 9.5177551641 2.4891406741 region=mol0\n", " O 2.1834447818 1.9643855319 8.7320340410 region=mol0\n", " H 2.8176706384 1.8254861669 9.4543818339 region=mol0\n", " H 1.3940485836 2.1870871599 9.2275320915 region=mol0\n", " O 4.7634645739 2.4619549051 2.7946457603 region=mol0\n", " H 5.2005772532 1.6037329748 2.4696196281 region=mol0\n", " H 5.4648603535 3.0682681640 3.1604048542 region=mol0\n", " O 5.2106522963 5.4189182471 6.8084143089 region=mol0\n", " H 5.8670358508 4.7528489716 7.1646639943 region=mol0\n", " H 5.6046605844 6.3223367634 7.0559528066 region=mol0\n", " O 9.1939716107 4.6045648342 1.7057252679 region=mol0\n", " H 9.9165118827 4.8021369547 2.3359756289 region=mol0\n", " H 8.8334280538 5.5053046584 1.5334092181 region=mol0\n", " O 7.8052239595 6.8459461429 1.4543054288 region=mol0\n", " H 7.3383959442 7.3219392548 0.7690882398 region=mol0\n", " H 8.5058641159 7.5244252255 1.7153226502 region=mol0\n", " O 6.9908370660 1.1511312824 9.5773310697 region=mol0\n", " H 7.5973568624 1.3781347314 10.3470654533 region=mol0\n", " H 6.2394571763 0.5946063673 9.8942315781 region=mol0\n", " O 2.6133509662 9.5367813171 11.3010153702 region=mol0\n", " H 1.8678157185 10.1108049034 0.1994787174 region=mol0\n", " H 2.3741092359 8.6172351672 0.1199279562 region=mol0\n", " O 7.3897353020 3.4076055638 4.1483422555 region=mol0\n", " H 7.9940670068 2.9244492738 3.5377227155 region=mol0\n", " H 7.6510061517 3.1576009675 5.0627895375 region=mol0\n", " O 10.3372163463 2.1283123056 8.7991775476 region=mol0\n", " H 10.7135298158 2.8922324132 9.2858002108 region=mol0\n", " H 10.2027045703 2.3471215979 7.8795824565 region=mol0\n", " O 4.4945515960 9.2921222775 7.3665359059 region=mol0\n", " H 3.4956389364 9.4106307390 7.6173583153 region=mol0\n", " H 4.6735821770 10.1351414419 6.8841105479 region=mol0\n", " O 10.6852973910 1.2918276638 5.8032429011 region=mol0\n", " H 0.2560395323 1.8023341502 5.7977142363 region=mol0\n", " H 9.9804755605 1.9914944362 5.7553500331 region=mol0\n", " O 9.7308300361 2.0256137429 2.4282446471 region=mol0\n", " H 9.4691338194 2.9803619465 2.2156900935 region=mol0\n", " H 10.6888264221 2.0426868723 2.3835585530 region=mol0\n", " O 9.1715375723 0.4552361139 0.1141766212 region=mol0\n", " H 9.9646894851 0.1125749541 10.9342300959 region=mol0\n", " H 9.3114024575 0.8572727756 1.0123718128 region=mol0\n", " O 5.2563461178 3.4314300076 10.1734935125 region=mol0\n", " H 4.3588443194 3.5018995577 9.7288474306 region=mol0\n", " H 5.4775983128 2.4959411282 9.9697178881 region=mol0\n", " O 0.5285143099 7.2849662273 9.4598269621 region=mol0\n", " H 0.3352455340 8.1978263421 9.7317246665 region=mol0\n", " H 0.8230285582 7.3589698822 8.5159121426 region=mol0\n", " O 3.7997495471 2.1778319726 5.5522042461 region=mol0\n", " H 4.4921326245 2.0648168741 4.8410263432 region=mol0\n", " H 4.1035896741 2.6448502506 6.3328055106 region=mol0\n", " O 1.3381862062 7.5952322885 6.3255692554 region=mol0\n", " H 2.0848589848 7.0079545688 6.2279891196 region=mol0\n", " H 0.5579858141 7.1883532100 5.9976368798 region=mol0\n", " O 1.1752556473 7.7742466512 2.0871957638 region=mol0\n", " H 2.1778996443 7.6561563801 1.9754545516 region=mol0\n", " H 1.1068942802 8.4506275352 2.8042953941 region=mol0\n", " O 3.2910727996 5.9485483381 8.5132015484 region=mol0\n", " H 3.0472081448 6.8723141644 8.6685802177 region=mol0\n", " H 4.1792680143 5.7080305780 8.1077723644 region=mol0\n", " O 1.6324974836 3.1940722586 3.1595869733 region=mol0\n", " H 0.9707975843 3.8582940141 2.9078152325 region=mol0\n", " H 2.5642157393 3.5039462070 2.9433511231 region=mol0\n", " O 4.3095788912 10.6839402360 1.5416795239 region=mol0\n", " H 3.5133334567 10.2252994165 1.0386350215 region=mol0\n", " H 4.6756155541 9.9365284457 2.0720526552 region=mol0\n", " O 5.9141464760 7.2978928252 10.5132059627 region=mol0\n", " H 4.9385518779 7.4965442795 10.4069599757 region=mol0\n", " H 6.4037318521 8.1400874090 10.3797618760 region=mol0\n", " O 5.8655279091 0.3548198316 6.3633389765 region=mol0\n", " H 5.6542453628 1.2897618546 6.5826575713 region=mol0\n", " H 6.6825288121 0.2499148707 5.7833120031 region=mol0\n", " End\n", " BondOrders\n", " 1 2 1.0\n", " 1 3 1.0\n", " 4 5 1.0\n", " 4 6 1.0 1 0 0\n", " 7 8 1.0\n", " 7 9 1.0\n", " 10 11 1.0\n", " 10 12 1.0 0 -1 0\n", " 13 14 1.0\n", " 13 15 1.0\n", " 16 17 1.0\n", " 16 18 1.0\n", " 19 20 1.0\n", " 19 21 1.0\n", " 22 23 1.0\n", " 22 24 1.0\n", " 25 26 1.0\n", " 25 27 1.0\n", " 28 29 1.0\n", " 28 30 1.0\n", " 31 32 1.0\n", " 31 33 1.0\n", " 34 35 1.0\n", " 34 36 1.0\n", " 37 38 1.0\n", " 37 39 1.0\n", " 40 41 1.0\n", " 40 42 1.0\n", " 43 44 1.0\n", " 43 45 1.0\n", " 46 47 1.0 0 0 1\n", " 46 48 1.0\n", " 49 50 1.0\n", " 49 51 1.0\n", " 52 53 1.0\n", " 52 54 1.0\n", " 55 56 1.0 0 1 0\n", " 55 57 1.0\n", " 58 59 1.0\n", " 58 60 1.0\n", " 61 62 1.0 0 0 -1\n", " 61 63 1.0\n", " 64 65 1.0\n", " 64 66 1.0\n", " 67 68 1.0\n", " 67 69 1.0\n", " 70 71 1.0\n", " 70 72 1.0 0 1 0\n", " 73 74 1.0\n", " 73 75 1.0\n", " 76 77 1.0\n", " 76 78 1.0\n", " 79 80 1.0\n", " 79 81 1.0\n", " 82 83 1.0\n", " 82 84 1.0\n", " 85 86 1.0\n", " 85 87 1.0\n", " 88 89 1.0\n", " 88 90 1.0\n", " 91 92 1.0\n", " 91 93 1.0\n", " 94 95 1.0 0 0 1\n", " 94 96 1.0 0 0 1\n", " 97 98 1.0\n", " 97 99 1.0\n", " 100 101 1.0\n", " 100 102 1.0\n", " 103 104 1.0\n", " 103 105 1.0\n", " 106 107 1.0 1 0 0\n", " 106 108 1.0\n", " 109 110 1.0\n", " 109 111 1.0\n", " 112 113 1.0 0 0 -1\n", " 112 114 1.0\n", " 115 116 1.0\n", " 115 117 1.0\n", " 118 119 1.0\n", " 118 120 1.0\n", " 121 122 1.0\n", " 121 123 1.0\n", " 124 125 1.0\n", " 124 126 1.0\n", " 127 128 1.0\n", " 127 129 1.0\n", " 130 131 1.0\n", " 130 132 1.0\n", " 133 134 1.0\n", " 133 135 1.0\n", " 136 137 1.0\n", " 136 138 1.0\n", " 139 140 1.0\n", " 139 141 1.0\n", " 142 143 1.0\n", " 142 144 1.0\n", " End\n", " Lattice\n", " 11.2817834662 0.0000000000 0.0000000000\n", " 0.0000000000 11.2817834662 0.0000000000\n", " 0.0000000000 0.0000000000 11.2817834662\n", " End\n", "End\n", "\n" ] } ], "source": [ "settings = ref_s + nvt_md_s + ml_s + al_s\n", "job = SimpleActiveLearningJob(\n", " settings=settings, molecule=starting_structure, name=\"sal\"\n", ")\n", "print(job.get_input())" ] }, { "cell_type": "markdown", "id": "5917bc8d-2e47-4bfa-9333-520766de75f1", "metadata": {}, "source": [ "### Run the simple active learning job" ] }, { "cell_type": "code", "execution_count": 20, "id": "0d930a4e-66ec-4529-9236-32e696ff02e9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[22.02|10:12:07] JOB sal STARTED\n", "[22.02|10:12:07] Renaming job sal to sal.002\n", "[22.02|10:12:07] JOB sal.002 RUNNING\n", "[22.02|10:12:09] Simple Active Learning 2024.101, Nodes: 1, Procs: 1\n", "[22.02|10:12:11] Composition of main system: H96O48\n", "[22.02|10:12:11] All REFERENCE calculations will be performed with the following ReaxFF engine:\n", "[22.02|10:12:11]\n", "Engine reaxff\n", " forcefield Water2017.ff\n", "EndEngine\n", "\n", "\n", "[22.02|10:12:11] The following are the settings for the to-be-trained MACHINE LEARNING model:\n", "[22.02|10:12:11]\n", "MachineLearning\n", " Backend M3GNet\n", " CommitteeSize 1\n", " M3GNet\n", " Model UniversalPotential\n", " End\n", " MaxEpochs 300\n", "End\n", "\n", "ParallelLevels\n", "End\n", "\n", "[22.02|10:12:11] A single model will be trained (no committee).\n", "[22.02|10:12:11] The ACTIVE LEARNING loop will contain 8 steps, using the following schema:\n", "[22.02|10:12:11] Active Learning Step 1: 10 MD Steps (cumulative: 10)\n", "[22.02|10:12:11] Active Learning Step 2: 19 MD Steps (cumulative: 29)\n", "[22.02|10:12:11] Active Learning Step 3: 58 MD Steps (cumulative: 87)\n", "[22.02|10:12:11] Active Learning Step 4: 172 MD Steps (cumulative: 259)\n", "[22.02|10:12:11] Active Learning Step 5: 510 MD Steps (cumulative: 769)\n", "[22.02|10:12:11] Active Learning Step 6: 1510 MD Steps (cumulative: 2279)\n", "[22.02|10:12:11] Active Learning Step 7: 4473 MD Steps (cumulative: 6752)\n", "[22.02|10:12:11] Active Learning Step 8: 13248 MD Steps (cumulative: 20000)\n", "[22.02|10:12:11] Total number of MD Steps: 20000\n", "[22.02|10:12:11] Max attempts per active learning step: 15\n", "[22.02|10:12:11]\n", "[22.02|10:12:11] Tip: create a file called SKIP_STEP to skip an active learning step and move on to the next!\n", "[22.02|10:12:11]\n", "[22.02|10:12:11] Running M3GNet-UP-2022 structure samplers...\n", "[22.02|10:12:11] Running initial_sampler_enhanced_md\n", "[22.02|10:12:32] Running initial_reference_enhanced_md\n", "[22.02|10:12:34] Done!\n", "[22.02|10:12:34] Initial reference data has been created. Storing data in folder: initial_reference_data\n", "[22.02|10:12:34] Running initial ParAMS training in folder: initial_training\n", "[22.02|10:12:38] JOB m3gnet STARTED\n", "[22.02|10:12:38] Starting m3gnet.prerun()\n", "[22.02|10:12:38] m3gnet.prerun() finished\n", "[22.02|10:12:38] JOB m3gnet RUNNING\n", "[22.02|10:12:38] Executing m3gnet.run\n", "[22.02|10:13:05] training_set Optimizer: 001 Epoch: 0 Loss: 0.050981\n", "[22.02|10:13:05] validation_set Optimizer: 001 Epoch: 0 Loss: 0.048436\n", "[22.02|10:13:07] training_set Optimizer: 001 Epoch: 10 Loss: 0.027587\n", "[22.02|10:13:07] validation_set Optimizer: 001 Epoch: 10 Loss: 0.036295\n", "[22.02|10:13:08] training_set Optimizer: 001 Epoch: 20 Loss: 0.018298\n", "[22.02|10:13:08] validation_set Optimizer: 001 Epoch: 20 Loss: 0.031212\n", "[22.02|10:13:09] training_set Optimizer: 001 Epoch: 30 Loss: 0.012385\n", "[22.02|10:13:09] validation_set Optimizer: 001 Epoch: 30 Loss: 0.029071\n", "[22.02|10:13:11] training_set Optimizer: 001 Epoch: 40 Loss: 0.008051\n", "[22.02|10:13:11] validation_set Optimizer: 001 Epoch: 40 Loss: 0.024840\n", "[22.02|10:13:12] training_set Optimizer: 001 Epoch: 50 Loss: 0.005529\n", "[22.02|10:13:12] validation_set Optimizer: 001 Epoch: 50 Loss: 0.020674\n", "[22.02|10:13:14] training_set Optimizer: 001 Epoch: 60 Loss: 0.003920\n", "[22.02|10:13:14] validation_set Optimizer: 001 Epoch: 60 Loss: 0.018257\n", "[22.02|10:13:15] training_set Optimizer: 001 Epoch: 70 Loss: 0.002871\n", "[22.02|10:13:15] validation_set Optimizer: 001 Epoch: 70 Loss: 0.020857\n", "[22.02|10:13:16] training_set Optimizer: 001 Epoch: 80 Loss: 0.002173\n", "[22.02|10:13:16] validation_set Optimizer: 001 Epoch: 80 Loss: 0.015785\n", "[22.02|10:13:18] training_set Optimizer: 001 Epoch: 90 Loss: 0.001765\n", "[22.02|10:13:18] validation_set Optimizer: 001 Epoch: 90 Loss: 0.019991\n", "[22.02|10:13:19] training_set Optimizer: 001 Epoch: 100 Loss: 0.001514\n", "[22.02|10:13:19] validation_set Optimizer: 001 Epoch: 100 Loss: 0.017527\n", "[22.02|10:13:21] training_set Optimizer: 001 Epoch: 110 Loss: 0.001304\n", "[22.02|10:13:21] validation_set Optimizer: 001 Epoch: 110 Loss: 0.020165\n", "[22.02|10:13:22] training_set Optimizer: 001 Epoch: 120 Loss: 0.001139\n", "[22.02|10:13:22] validation_set Optimizer: 001 Epoch: 120 Loss: 0.015130\n", "[22.02|10:13:24] training_set Optimizer: 001 Epoch: 130 Loss: 0.001015\n", "[22.02|10:13:24] validation_set Optimizer: 001 Epoch: 130 Loss: 0.016949\n", "[22.02|10:13:25] training_set Optimizer: 001 Epoch: 140 Loss: 0.000930\n", "[22.02|10:13:25] validation_set Optimizer: 001 Epoch: 140 Loss: 0.015760\n", "[22.02|10:13:26] training_set Optimizer: 001 Epoch: 150 Loss: 0.000839\n", "[22.02|10:13:26] validation_set Optimizer: 001 Epoch: 150 Loss: 0.013017\n", "[22.02|10:13:28] training_set Optimizer: 001 Epoch: 160 Loss: 0.000812\n", "[22.02|10:13:28] validation_set Optimizer: 001 Epoch: 160 Loss: 0.021557\n", "[22.02|10:13:29] training_set Optimizer: 001 Epoch: 170 Loss: 0.000736\n", "[22.02|10:13:29] validation_set Optimizer: 001 Epoch: 170 Loss: 0.016851\n", "[22.02|10:13:31] training_set Optimizer: 001 Epoch: 180 Loss: 0.000666\n", "[22.02|10:13:31] validation_set Optimizer: 001 Epoch: 180 Loss: 0.016886\n", "[22.02|10:13:32] training_set Optimizer: 001 Epoch: 190 Loss: 0.000612\n", "[22.02|10:13:32] validation_set Optimizer: 001 Epoch: 190 Loss: 0.015631\n", "[22.02|10:13:33] training_set Optimizer: 001 Epoch: 200 Loss: 0.000554\n", "[22.02|10:13:33] validation_set Optimizer: 001 Epoch: 200 Loss: 0.015993\n", "[22.02|10:13:35] training_set Optimizer: 001 Epoch: 210 Loss: 0.000548\n", "[22.02|10:13:35] validation_set Optimizer: 001 Epoch: 210 Loss: 0.014056\n", "[22.02|10:13:36] training_set Optimizer: 001 Epoch: 220 Loss: 0.000487\n", "[22.02|10:13:36] validation_set Optimizer: 001 Epoch: 220 Loss: 0.011589\n", "[22.02|10:13:38] training_set Optimizer: 001 Epoch: 230 Loss: 0.000461\n", "[22.02|10:13:38] validation_set Optimizer: 001 Epoch: 230 Loss: 0.011159\n", "[22.02|10:13:39] training_set Optimizer: 001 Epoch: 240 Loss: 0.000444\n", "[22.02|10:13:39] validation_set Optimizer: 001 Epoch: 240 Loss: 0.015881\n", "[22.02|10:13:41] training_set Optimizer: 001 Epoch: 250 Loss: 0.000444\n", "[22.02|10:13:41] validation_set Optimizer: 001 Epoch: 250 Loss: 0.021618\n", "[22.02|10:13:42] training_set Optimizer: 001 Epoch: 260 Loss: 0.000449\n", "[22.02|10:13:42] validation_set Optimizer: 001 Epoch: 260 Loss: 0.012748\n", "[22.02|10:13:43] training_set Optimizer: 001 Epoch: 270 Loss: 0.000383\n", "[22.02|10:13:43] validation_set Optimizer: 001 Epoch: 270 Loss: 0.015571\n", "[22.02|10:13:45] training_set Optimizer: 001 Epoch: 280 Loss: 0.000369\n", "[22.02|10:13:45] validation_set Optimizer: 001 Epoch: 280 Loss: 0.013061\n", "[22.02|10:13:46] training_set Optimizer: 001 Epoch: 290 Loss: 0.000348\n", "[22.02|10:13:46] validation_set Optimizer: 001 Epoch: 290 Loss: 0.011901\n", "[22.02|10:13:48] Execution of m3gnet.run finished with returncode 0\n", "[22.02|10:13:49] JOB m3gnet FINISHED\n", "[22.02|10:13:49] Starting m3gnet.postrun()\n", "[22.02|10:13:49] m3gnet.postrun() finished\n", "[22.02|10:13:49] JOB m3gnet SUCCESSFUL\n", "[22.02|10:14:02] Running all jobs through AMS....\n", "[22.02|10:14:02] Storing results/optimization/training_set_results/best\n", "[22.02|10:14:02] Storing results/optimization/validation_set_results/best\n", "[22.02|10:14:02] PLAMS environment cleaned up successfully\n", "[22.02|10:14:02] PLAMS run finished. Goodbye\n", "[22.02|10:14:03] Initial model has been trained!\n", "[22.02|10:14:03] ParAMSResults training_set validation_set\n", "[22.02|10:14:03] energy MAE 0.1720 0.1230 eV\n", "[22.02|10:14:03] forces MAE 0.0475 0.1148 eV/angstrom\n", "[22.02|10:14:03]\n", "[22.02|10:14:03] Starting active learning loop...\n", "[22.02|10:14:03] ##########################\n", "[22.02|10:14:03] ### Step 1 / Attempt 1 ###\n", "[22.02|10:14:03] ##########################\n", "[22.02|10:14:03] MD Steps: 10 (cumulative: 10)\n", "[22.02|10:14:03] Current engine settings:\n", "[22.02|10:14:03]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/sal.002/initial_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[22.02|10:14:03] Running step1_attempt1_simulation...\n", "[22.02|10:14:16] Job step1_attempt1_simulation finished\n", "[22.02|10:14:16] Deleting files that are no longer needed...\n", "[22.02|10:14:16] Launching reference calculation\n", "[22.02|10:14:18] Reference calculation finished!\n", "[22.02|10:14:18] Checking success for step1_attempt1\n", "[22.02|10:14:18] CheckEnergy: Checking energy for MDStep10, n_atoms = 144\n", "[22.02|10:14:18] CheckEnergy: normalization coefficient = 144\n", "[22.02|10:14:18] CheckEnergy: Actual Threshold\n", "[22.02|10:14:18] CheckEnergy: dE/144 0.0018 0.2000 OK!\n", "[22.02|10:14:18]\n", "[22.02|10:14:18] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[22.02|10:14:18] CheckForces: ------------\n", "[22.02|10:14:18] CheckForces: Reference job from step1_attempt1_reference_calc1\n", "[22.02|10:14:18] CheckForces: Prediction job from final frame (MDStep10) of step1_attempt1_simulation\n", "[22.02|10:14:18] CheckForces: ------------\n", "[22.02|10:14:18] CheckForces: Histogram of forces\n", "[22.02|10:14:18] CheckForces: eV/Ang Ref Pred\n", "[22.02|10:14:18] CheckForces: -5 0 0\n", "[22.02|10:14:18] CheckForces: -4 1 1\n", "[22.02|10:14:18] CheckForces: -3 1 0\n", "[22.02|10:14:18] CheckForces: -2 31 31\n", "[22.02|10:14:18] CheckForces: -1 185 181\n", "[22.02|10:14:18] CheckForces: 0 184 193\n", "[22.02|10:14:18] CheckForces: 1 27 23\n", "[22.02|10:14:18] CheckForces: 2 2 2\n", "[22.02|10:14:18] CheckForces: 3 1 1\n", "[22.02|10:14:18] CheckForces: 4 0 0\n", "[22.02|10:14:18] CheckForces: Threshold for 0 force: 0.35 eV/angstrom\n", "[22.02|10:14:18] CheckForces: Force components with an error exceeding the threshold:\n", "[22.02|10:14:18] CheckForces: Ref Pred Delta Threshold\n", "[22.02|10:14:18] CheckForces: -0.20 0.16 0.37 0.36\n", "[22.02|10:14:18] CheckForces: Maximum deviation: 0.365 eV/angstrom\n", "[22.02|10:14:18] CheckForces: Actual Threshold\n", "[22.02|10:14:18] CheckForces: # > thr. 1 0 Not OK!\n", "[22.02|10:14:18] CheckForces: MAE 0.070 0.30 OK!\n", "[22.02|10:14:18] CheckForces: R^2 0.984 0.80 OK!\n", "[22.02|10:14:18] CheckForces: --------------------\n", "[22.02|10:14:18]\n", "[22.02|10:14:18] Adding results from step1_attempt1_reference_calc1 to training set\n", "[22.02|10:14:18] Current # training set entries: 5\n", "[22.02|10:14:18] Current # validation set entries: 1\n", "[22.02|10:14:18] Storing data in step1_attempt1_reference_data\n", "[22.02|10:14:18] Deleting initial_reference_data\n", "[22.02|10:14:18] Deleting step1_attempt1_reference_calc1\n", "[22.02|10:14:18]\n", "[22.02|10:14:18] Current (cumulative) timings:\n", "[22.02|10:14:18] Time (s) Fraction\n", "[22.02|10:14:18] Ref. calcs 24.09 0.191\n", "[22.02|10:14:18] ML training 88.50 0.702\n", "[22.02|10:14:18] Simulations 13.42 0.106\n", "[22.02|10:14:18]\n", "[22.02|10:14:18]\n", "[22.02|10:14:18]\n", "[22.02|10:14:18] --- Begin summary ---\n", "[22.02|10:14:18] Step Attempt Status Reason finalframe_forces_max_delta\n", "[22.02|10:14:18] 1 1 FAILED Inaccurate 0.3655\n", "[22.02|10:14:18] --- End summary ---\n", "[22.02|10:14:18]\n", "[22.02|10:14:18] Running more reference calculations....\n", "[22.02|10:14:18] Running reference calculations on frames [6] from step1_attempt1_simulation/ams.rkf\n", "[22.02|10:14:18] Calculating 1 frames in total\n", "[22.02|10:14:18] Running step1_attempt1_reference_calc2\n", "[22.02|10:14:19] Reference calculations finished!\n", "[22.02|10:14:19] Adding results from step1_attempt1_reference_calc2 to validation set\n", "[22.02|10:14:19] Current # training set entries: 5\n", "[22.02|10:14:19] Current # validation set entries: 2\n", "[22.02|10:14:19] Storing data in step1_attempt1_reference_data\n", "[22.02|10:14:19] Deleting step1_attempt1_reference_calc2\n", "[22.02|10:14:19] Launching reparametrization job: step1_attempt1_training\n", "[22.02|10:14:23] JOB m3gnet STARTED\n", "[22.02|10:14:23] Starting m3gnet.prerun()\n", "[22.02|10:14:23] m3gnet.prerun() finished\n", "[22.02|10:14:23] JOB m3gnet RUNNING\n", "[22.02|10:14:23] Executing m3gnet.run\n", "[22.02|10:14:51] training_set Optimizer: 001 Epoch: 0 Loss: 0.000445\n", "[22.02|10:14:51] validation_set Optimizer: 001 Epoch: 0 Loss: 0.186209\n", "[22.02|10:14:53] training_set Optimizer: 001 Epoch: 10 Loss: 0.006803\n", "[22.02|10:14:53] validation_set Optimizer: 001 Epoch: 10 Loss: 0.080131\n", "[22.02|10:14:54] training_set Optimizer: 001 Epoch: 20 Loss: 0.002002\n", "[22.02|10:14:54] validation_set Optimizer: 001 Epoch: 20 Loss: 0.012343\n", "[22.02|10:14:56] training_set Optimizer: 001 Epoch: 30 Loss: 0.001448\n", "[22.02|10:14:56] validation_set Optimizer: 001 Epoch: 30 Loss: 0.023333\n", "[22.02|10:14:58] training_set Optimizer: 001 Epoch: 40 Loss: 0.000694\n", "[22.02|10:14:58] validation_set Optimizer: 001 Epoch: 40 Loss: 0.011820\n", "[22.02|10:15:00] training_set Optimizer: 001 Epoch: 50 Loss: 0.000636\n", "[22.02|10:15:00] validation_set Optimizer: 001 Epoch: 50 Loss: 0.008625\n", "[22.02|10:15:01] training_set Optimizer: 001 Epoch: 60 Loss: 0.000502\n", "[22.02|10:15:01] validation_set Optimizer: 001 Epoch: 60 Loss: 0.009943\n", "[22.02|10:15:03] training_set Optimizer: 001 Epoch: 70 Loss: 0.000454\n", "[22.02|10:15:03] validation_set Optimizer: 001 Epoch: 70 Loss: 0.010416\n", "[22.02|10:15:05] training_set Optimizer: 001 Epoch: 80 Loss: 0.000425\n", "[22.02|10:15:05] validation_set Optimizer: 001 Epoch: 80 Loss: 0.009596\n", "[22.02|10:15:07] training_set Optimizer: 001 Epoch: 90 Loss: 0.000407\n", "[22.02|10:15:07] validation_set Optimizer: 001 Epoch: 90 Loss: 0.008762\n", "[22.02|10:15:08] training_set Optimizer: 001 Epoch: 100 Loss: 0.000395\n", "[22.02|10:15:08] validation_set Optimizer: 001 Epoch: 100 Loss: 0.008305\n", "[22.02|10:15:10] training_set Optimizer: 001 Epoch: 110 Loss: 0.000386\n", "[22.02|10:15:10] validation_set Optimizer: 001 Epoch: 110 Loss: 0.008261\n", "[22.02|10:15:12] training_set Optimizer: 001 Epoch: 120 Loss: 0.000378\n", "[22.02|10:15:12] validation_set Optimizer: 001 Epoch: 120 Loss: 0.008219\n", "[22.02|10:15:14] training_set Optimizer: 001 Epoch: 130 Loss: 0.000372\n", "[22.02|10:15:14] validation_set Optimizer: 001 Epoch: 130 Loss: 0.008175\n", "[22.02|10:15:15] training_set Optimizer: 001 Epoch: 140 Loss: 0.000365\n", "[22.02|10:15:15] validation_set Optimizer: 001 Epoch: 140 Loss: 0.008134\n", "[22.02|10:15:17] training_set Optimizer: 001 Epoch: 150 Loss: 0.000360\n", "[22.02|10:15:17] validation_set Optimizer: 001 Epoch: 150 Loss: 0.008104\n", "[22.02|10:15:19] training_set Optimizer: 001 Epoch: 160 Loss: 0.000354\n", "[22.02|10:15:19] validation_set Optimizer: 001 Epoch: 160 Loss: 0.008069\n", "[22.02|10:15:21] training_set Optimizer: 001 Epoch: 170 Loss: 0.000349\n", "[22.02|10:15:21] validation_set Optimizer: 001 Epoch: 170 Loss: 0.008033\n", "[22.02|10:15:22] training_set Optimizer: 001 Epoch: 180 Loss: 0.000344\n", "[22.02|10:15:22] validation_set Optimizer: 001 Epoch: 180 Loss: 0.008000\n", "[22.02|10:15:24] training_set Optimizer: 001 Epoch: 190 Loss: 0.000339\n", "[22.02|10:15:24] validation_set Optimizer: 001 Epoch: 190 Loss: 0.007970\n", "[22.02|10:15:26] training_set Optimizer: 001 Epoch: 200 Loss: 0.000335\n", "[22.02|10:15:26] validation_set Optimizer: 001 Epoch: 200 Loss: 0.007940\n", "[22.02|10:15:28] training_set Optimizer: 001 Epoch: 210 Loss: 0.000330\n", "[22.02|10:15:28] validation_set Optimizer: 001 Epoch: 210 Loss: 0.007911\n", "[22.02|10:15:29] training_set Optimizer: 001 Epoch: 220 Loss: 0.000326\n", "[22.02|10:15:29] validation_set Optimizer: 001 Epoch: 220 Loss: 0.007882\n", "[22.02|10:15:31] training_set Optimizer: 001 Epoch: 230 Loss: 0.000321\n", "[22.02|10:15:31] validation_set Optimizer: 001 Epoch: 230 Loss: 0.007854\n", "[22.02|10:15:33] training_set Optimizer: 001 Epoch: 240 Loss: 0.000317\n", "[22.02|10:15:33] validation_set Optimizer: 001 Epoch: 240 Loss: 0.007826\n", "[22.02|10:15:35] training_set Optimizer: 001 Epoch: 250 Loss: 0.000313\n", "[22.02|10:15:35] validation_set Optimizer: 001 Epoch: 250 Loss: 0.007799\n", "[22.02|10:15:37] training_set Optimizer: 001 Epoch: 260 Loss: 0.000308\n", "[22.02|10:15:37] validation_set Optimizer: 001 Epoch: 260 Loss: 0.007772\n", "[22.02|10:15:38] training_set Optimizer: 001 Epoch: 270 Loss: 0.000304\n", "[22.02|10:15:38] validation_set Optimizer: 001 Epoch: 270 Loss: 0.007746\n", "[22.02|10:15:40] training_set Optimizer: 001 Epoch: 280 Loss: 0.000300\n", "[22.02|10:15:40] validation_set Optimizer: 001 Epoch: 280 Loss: 0.007721\n", "[22.02|10:15:42] training_set Optimizer: 001 Epoch: 290 Loss: 0.000296\n", "[22.02|10:15:42] validation_set Optimizer: 001 Epoch: 290 Loss: 0.007698\n", "[22.02|10:15:44] Execution of m3gnet.run finished with returncode 0\n", "[22.02|10:15:44] JOB m3gnet FINISHED\n", "[22.02|10:15:44] Starting m3gnet.postrun()\n", "[22.02|10:15:44] m3gnet.postrun() finished\n", "[22.02|10:15:44] JOB m3gnet SUCCESSFUL\n", "[22.02|10:15:58] Running all jobs through AMS....\n", "[22.02|10:15:58] Storing results/optimization/training_set_results/best\n", "[22.02|10:15:58] Storing results/optimization/validation_set_results/best\n", "[22.02|10:15:58] PLAMS environment cleaned up successfully\n", "[22.02|10:15:58] PLAMS run finished. Goodbye\n", "[22.02|10:15:58] ParAMSResults training_set validation_set\n", "[22.02|10:15:58] energy MAE 0.0777 0.0507 eV\n", "[22.02|10:15:58] forces MAE 0.0445 0.0806 eV/angstrom\n", "[22.02|10:15:58] Newly created parameter file/dir: step1_attempt1_training/results/optimization/m3gnet/m3gnet\n", "[22.02|10:15:58] Done!\n", "[22.02|10:15:58] Deleting initial_training\n", "[22.02|10:15:58] ##########################\n", "[22.02|10:15:58] ### Step 1 / Attempt 2 ###\n", "[22.02|10:15:58] ##########################\n", "[22.02|10:15:58] MD Steps: 10 (cumulative: 10)\n", "[22.02|10:15:58] Current engine settings:\n", "[22.02|10:15:58]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/sal.002/step1_attempt1_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[22.02|10:15:58] Running step1_attempt2_simulation...\n", "[22.02|10:16:12] Job step1_attempt2_simulation finished\n", "[22.02|10:16:12] Deleting files that are no longer needed...\n", "[22.02|10:16:12] Launching reference calculation\n", "[22.02|10:16:14] Reference calculation finished!\n", "[22.02|10:16:14] Checking success for step1_attempt2\n", "[22.02|10:16:24] CheckEnergy: Checking energy for MDStep10, n_atoms = 144\n", "[22.02|10:16:24] CheckEnergy: normalization coefficient = 144\n", "[22.02|10:16:24] CheckEnergy: Actual Threshold\n", "[22.02|10:16:24] CheckEnergy: dE/144 -0.0002 0.2000 OK!\n", "[22.02|10:16:24] CheckEnergy: ddE/144 -0.0002 0.0030 OK! (relative to step1_attempt1_simulation:MDStep10)\n", "[22.02|10:16:24]\n", "[22.02|10:16:24] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[22.02|10:16:24] CheckForces: ------------\n", "[22.02|10:16:24] CheckForces: Reference job from step1_attempt2_reference_calc1\n", "[22.02|10:16:24] CheckForces: Prediction job from final frame (MDStep10) of step1_attempt2_simulation\n", "[22.02|10:16:24] CheckForces: ------------\n", "[22.02|10:16:24] CheckForces: Histogram of forces\n", "[22.02|10:16:24] CheckForces: eV/Ang Ref Pred\n", "[22.02|10:16:24] CheckForces: -4 0 0\n", "[22.02|10:16:24] CheckForces: -3 2 1\n", "[22.02|10:16:24] CheckForces: -2 32 33\n", "[22.02|10:16:24] CheckForces: -1 184 184\n", "[22.02|10:16:24] CheckForces: 0 182 182\n", "[22.02|10:16:24] CheckForces: 1 30 29\n", "[22.02|10:16:24] CheckForces: 2 2 3\n", "[22.02|10:16:24] CheckForces: 3 0 0\n", "[22.02|10:16:24] CheckForces: Threshold for 0 force: 0.35 eV/angstrom\n", "[22.02|10:16:24] CheckForces: All force components are within the acceptable error!\n", "[22.02|10:16:24] CheckForces: Maximum deviation: 0.450 eV/angstrom\n", "[22.02|10:16:24] CheckForces: Actual Threshold\n", "[22.02|10:16:24] CheckForces: # > thr. 0 0 OK!\n", "[22.02|10:16:24] CheckForces: MAE 0.062 0.30 OK!\n", "[22.02|10:16:24] CheckForces: R^2 0.987 0.80 OK!\n", "[22.02|10:16:24] CheckForces: --------------------\n", "[22.02|10:16:24]\n", "[22.02|10:16:24] Adding results from step1_attempt2_reference_calc1 to validation set\n", "[22.02|10:16:24] Current # training set entries: 5\n", "[22.02|10:16:24] Current # validation set entries: 3\n", "[22.02|10:16:24] Storing data in step1_attempt2_reference_data\n", "[22.02|10:16:24] Deleting step1_attempt1_reference_data\n", "[22.02|10:16:24] Deleting step1_attempt2_reference_calc1\n", "[22.02|10:16:24]\n", "[22.02|10:16:24] Current (cumulative) timings:\n", "[22.02|10:16:24] Time (s) Fraction\n", "[22.02|10:16:24] Ref. calcs 27.48 0.114\n", "[22.02|10:16:24] ML training 187.72 0.776\n", "[22.02|10:16:24] Simulations 26.75 0.111\n", "[22.02|10:16:24]\n", "[22.02|10:16:24]\n", "[22.02|10:16:24] Step 1 finished successfully!\n", "[22.02|10:16:24]\n", "[22.02|10:16:24] --- Begin summary ---\n", "[22.02|10:16:24] Step Attempt Status Reason finalframe_forces_max_delta\n", "[22.02|10:16:24] 1 1 FAILED Inaccurate 0.3655\n", "[22.02|10:16:24] 1 2 SUCCESS Accurate 0.4497\n", "[22.02|10:16:24] --- End summary ---\n", "[22.02|10:16:24]\n", "[22.02|10:16:24] ##########################\n", "[22.02|10:16:24] ### Step 2 / Attempt 1 ###\n", "[22.02|10:16:24] ##########################\n", "[22.02|10:16:24] MD Steps: 19 (cumulative: 29)\n", "[22.02|10:16:24] Current engine settings:\n", "[22.02|10:16:24]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/sal.002/step1_attempt1_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[22.02|10:16:24] Running step2_attempt1_simulation...\n", "[22.02|10:16:38] Job step2_attempt1_simulation finished\n", "[22.02|10:16:38] Deleting files that are no longer needed...\n", "[22.02|10:16:38] Deleting step1_attempt1_simulation\n", "[22.02|10:16:38] Launching reference calculation\n", "[22.02|10:16:40] Reference calculation finished!\n", "[22.02|10:16:40] Checking success for step2_attempt1\n", "[22.02|10:16:50] CheckEnergy: Checking energy for MDStep29, n_atoms = 144\n", "[22.02|10:16:50] CheckEnergy: normalization coefficient = 144\n", "[22.02|10:16:50] CheckEnergy: Actual Threshold\n", "[22.02|10:16:50] CheckEnergy: dE/144 -0.0009 0.2000 OK!\n", "[22.02|10:16:50] CheckEnergy: ddE/144 -0.0007 0.0030 OK! (relative to step1_attempt2_simulation:MDStep10)\n", "[22.02|10:16:50]\n", "[22.02|10:16:50] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[22.02|10:16:50] CheckForces: ------------\n", "[22.02|10:16:50] CheckForces: Reference job from step2_attempt1_reference_calc1\n", "[22.02|10:16:50] CheckForces: Prediction job from final frame (MDStep29) of step2_attempt1_simulation\n", "[22.02|10:16:50] CheckForces: ------------\n", "[22.02|10:16:50] CheckForces: Histogram of forces\n", "[22.02|10:16:50] CheckForces: eV/Ang Ref Pred\n", "[22.02|10:16:50] CheckForces: -4 0 0\n", "[22.02|10:16:50] CheckForces: -3 3 3\n", "[22.02|10:16:50] CheckForces: -2 33 28\n", "[22.02|10:16:50] CheckForces: -1 188 193\n", "[22.02|10:16:50] CheckForces: 0 172 173\n", "[22.02|10:16:50] CheckForces: 1 31 30\n", "[22.02|10:16:50] CheckForces: 2 5 4\n", "[22.02|10:16:50] CheckForces: 3 0 1\n", "[22.02|10:16:50] CheckForces: Threshold for 0 force: 0.35 eV/angstrom\n", "[22.02|10:16:50] CheckForces: All force components are within the acceptable error!\n", "[22.02|10:16:50] CheckForces: Maximum deviation: 0.289 eV/angstrom\n", "[22.02|10:16:50] CheckForces: Actual Threshold\n", "[22.02|10:16:50] CheckForces: # > thr. 0 0 OK!\n", "[22.02|10:16:50] CheckForces: MAE 0.068 0.30 OK!\n", "[22.02|10:16:50] CheckForces: R^2 0.987 0.80 OK!\n", "[22.02|10:16:50] CheckForces: --------------------\n", "[22.02|10:16:50]\n", "[22.02|10:16:50] Adding results from step2_attempt1_reference_calc1 to validation set\n", "[22.02|10:16:50] Current # training set entries: 5\n", "[22.02|10:16:50] Current # validation set entries: 4\n", "[22.02|10:16:50] Storing data in step2_attempt1_reference_data\n", "[22.02|10:16:50] Deleting step1_attempt2_reference_data\n", "[22.02|10:16:50] Deleting step2_attempt1_reference_calc1\n", "[22.02|10:16:50]\n", "[22.02|10:16:50] Current (cumulative) timings:\n", "[22.02|10:16:50] Time (s) Fraction\n", "[22.02|10:16:50] Ref. calcs 28.64 0.112\n", "[22.02|10:16:50] ML training 187.72 0.731\n", "[22.02|10:16:50] Simulations 40.44 0.157\n", "[22.02|10:16:50]\n", "[22.02|10:16:50]\n", "[22.02|10:16:50] Step 2 finished successfully!\n", "[22.02|10:16:50]\n", "[22.02|10:16:50] --- Begin summary ---\n", "[22.02|10:16:50] Step Attempt Status Reason finalframe_forces_max_delta\n", "[22.02|10:16:50] 1 1 FAILED Inaccurate 0.3655\n", "[22.02|10:16:50] 1 2 SUCCESS Accurate 0.4497\n", "[22.02|10:16:50] 2 1 SUCCESS Accurate 0.2893\n", "[22.02|10:16:50] --- End summary ---\n", "[22.02|10:16:50]\n", "[22.02|10:16:50] ##########################\n", "[22.02|10:16:50] ### Step 3 / Attempt 1 ###\n", "[22.02|10:16:50] ##########################\n", "[22.02|10:16:50] MD Steps: 58 (cumulative: 87)\n", "[22.02|10:16:50] Current engine settings:\n", "[22.02|10:16:50]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/sal.002/step1_attempt1_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[22.02|10:16:50] Running step3_attempt1_simulation...\n", "[22.02|10:17:08] Job step3_attempt1_simulation finished\n", "[22.02|10:17:08] Deleting files that are no longer needed...\n", "[22.02|10:17:08] Deleting step1_attempt2_simulation\n", "[22.02|10:17:08] Launching reference calculation\n", "[22.02|10:17:10] Reference calculation finished!\n", "[22.02|10:17:10] Checking success for step3_attempt1\n", "[22.02|10:17:20] CheckEnergy: Checking energy for MDStep87, n_atoms = 144\n", "[22.02|10:17:20] CheckEnergy: normalization coefficient = 144\n", "[22.02|10:17:20] CheckEnergy: Actual Threshold\n", "[22.02|10:17:20] CheckEnergy: dE/144 -0.0001 0.2000 OK!\n", "[22.02|10:17:20] CheckEnergy: ddE/144 0.0008 0.0030 OK! (relative to step2_attempt1_simulation:MDStep29)\n", "[22.02|10:17:20]\n", "[22.02|10:17:20] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[22.02|10:17:20] CheckForces: ------------\n", "[22.02|10:17:20] CheckForces: Reference job from step3_attempt1_reference_calc1\n", "[22.02|10:17:20] CheckForces: Prediction job from final frame (MDStep87) of step3_attempt1_simulation\n", "[22.02|10:17:20] CheckForces: ------------\n", "[22.02|10:17:20] CheckForces: Histogram of forces\n", "[22.02|10:17:20] CheckForces: eV/Ang Ref Pred\n", "[22.02|10:17:20] CheckForces: -4 0 0\n", "[22.02|10:17:20] CheckForces: -3 3 3\n", "[22.02|10:17:20] CheckForces: -2 27 26\n", "[22.02|10:17:20] CheckForces: -1 191 185\n", "[22.02|10:17:20] CheckForces: 0 181 185\n", "[22.02|10:17:20] CheckForces: 1 28 30\n", "[22.02|10:17:20] CheckForces: 2 2 3\n", "[22.02|10:17:20] CheckForces: 3 0 0\n", "[22.02|10:17:20] CheckForces: Threshold for 0 force: 0.35 eV/angstrom\n", "[22.02|10:17:20] CheckForces: All force components are within the acceptable error!\n", "[22.02|10:17:20] CheckForces: Maximum deviation: 0.348 eV/angstrom\n", "[22.02|10:17:20] CheckForces: Actual Threshold\n", "[22.02|10:17:20] CheckForces: # > thr. 0 0 OK!\n", "[22.02|10:17:20] CheckForces: MAE 0.062 0.30 OK!\n", "[22.02|10:17:20] CheckForces: R^2 0.987 0.80 OK!\n", "[22.02|10:17:20] CheckForces: --------------------\n", "[22.02|10:17:20]\n", "[22.02|10:17:20] Adding results from step3_attempt1_reference_calc1 to validation set\n", "[22.02|10:17:20] Current # training set entries: 5\n", "[22.02|10:17:20] Current # validation set entries: 5\n", "[22.02|10:17:20] Storing data in step3_attempt1_reference_data\n", "[22.02|10:17:20] Deleting step2_attempt1_reference_data\n", "[22.02|10:17:20] Deleting step3_attempt1_reference_calc1\n", "[22.02|10:17:20]\n", "[22.02|10:17:20] Current (cumulative) timings:\n", "[22.02|10:17:20] Time (s) Fraction\n", "[22.02|10:17:20] Ref. calcs 30.30 0.110\n", "[22.02|10:17:20] ML training 187.72 0.680\n", "[22.02|10:17:20] Simulations 58.11 0.210\n", "[22.02|10:17:20]\n", "[22.02|10:17:20]\n", "[22.02|10:17:20] Step 3 finished successfully!\n", "[22.02|10:17:20]\n", "[22.02|10:17:20] --- Begin summary ---\n", "[22.02|10:17:20] Step Attempt Status Reason finalframe_forces_max_delta\n", "[22.02|10:17:20] 1 1 FAILED Inaccurate 0.3655\n", "[22.02|10:17:20] 1 2 SUCCESS Accurate 0.4497\n", "[22.02|10:17:20] 2 1 SUCCESS Accurate 0.2893\n", "[22.02|10:17:20] 3 1 SUCCESS Accurate 0.3478\n", "[22.02|10:17:20] --- End summary ---\n", "[22.02|10:17:20]\n", "[22.02|10:17:20] ##########################\n", "[22.02|10:17:20] ### Step 4 / Attempt 1 ###\n", "[22.02|10:17:20] ##########################\n", "[22.02|10:17:20] MD Steps: 172 (cumulative: 259)\n", "[22.02|10:17:20] Current engine settings:\n", "[22.02|10:17:20]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/sal.002/step1_attempt1_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[22.02|10:17:20] Running step4_attempt1_simulation...\n", "[22.02|10:17:38] Job step4_attempt1_simulation finished\n", "[22.02|10:17:38] Deleting files that are no longer needed...\n", "[22.02|10:17:38] Deleting step2_attempt1_simulation\n", "[22.02|10:17:38] Launching reference calculation\n", "[22.02|10:17:39] Reference calculation finished!\n", "[22.02|10:17:39] Checking success for step4_attempt1\n", "[22.02|10:17:49] CheckEnergy: Checking energy for MDStep259, n_atoms = 144\n", "[22.02|10:17:49] CheckEnergy: normalization coefficient = 144\n", "[22.02|10:17:49] CheckEnergy: Actual Threshold\n", "[22.02|10:17:49] CheckEnergy: dE/144 -0.0026 0.2000 OK!\n", "[22.02|10:17:49] CheckEnergy: ddE/144 -0.0026 0.0030 OK! (relative to step3_attempt1_simulation:MDStep87)\n", "[22.02|10:17:49]\n", "[22.02|10:17:49] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[22.02|10:17:49] CheckForces: ------------\n", "[22.02|10:17:49] CheckForces: Reference job from step4_attempt1_reference_calc1\n", "[22.02|10:17:49] CheckForces: Prediction job from final frame (MDStep259) of step4_attempt1_simulation\n", "[22.02|10:17:49] CheckForces: ------------\n", "[22.02|10:17:49] CheckForces: Histogram of forces\n", "[22.02|10:17:49] CheckForces: eV/Ang Ref Pred\n", "[22.02|10:17:49] CheckForces: -3 3 4\n", "[22.02|10:17:49] CheckForces: -2 46 44\n", "[22.02|10:17:49] CheckForces: -1 151 157\n", "[22.02|10:17:49] CheckForces: 0 190 186\n", "[22.02|10:17:49] CheckForces: 1 38 39\n", "[22.02|10:17:49] CheckForces: 2 4 2\n", "[22.02|10:17:49] CheckForces: Threshold for 0 force: 0.35 eV/angstrom\n", "[22.02|10:17:49] CheckForces: Force components with an error exceeding the threshold:\n", "[22.02|10:17:49] CheckForces: Ref Pred Delta Threshold\n", "[22.02|10:17:49] CheckForces: 0.87 0.46 0.41 0.40\n", "[22.02|10:17:49] CheckForces: Maximum deviation: 0.407 eV/angstrom\n", "[22.02|10:17:49] CheckForces: Actual Threshold\n", "[22.02|10:17:49] CheckForces: # > thr. 1 0 Not OK!\n", "[22.02|10:17:49] CheckForces: MAE 0.066 0.30 OK!\n", "[22.02|10:17:49] CheckForces: R^2 0.988 0.80 OK!\n", "[22.02|10:17:49] CheckForces: --------------------\n", "[22.02|10:17:49]\n", "[22.02|10:17:49] Adding results from step4_attempt1_reference_calc1 to training set\n", "[22.02|10:17:49] Current # training set entries: 6\n", "[22.02|10:17:49] Current # validation set entries: 5\n", "[22.02|10:17:49] Storing data in step4_attempt1_reference_data\n", "[22.02|10:17:50] Deleting step3_attempt1_reference_data\n", "[22.02|10:17:50] Deleting step4_attempt1_reference_calc1\n", "[22.02|10:17:50]\n", "[22.02|10:17:50] Current (cumulative) timings:\n", "[22.02|10:17:50] Time (s) Fraction\n", "[22.02|10:17:50] Ref. calcs 31.44 0.107\n", "[22.02|10:17:50] ML training 187.72 0.636\n", "[22.02|10:17:50] Simulations 75.88 0.257\n", "[22.02|10:17:50]\n", "[22.02|10:17:50]\n", "[22.02|10:17:50]\n", "[22.02|10:17:50] --- Begin summary ---\n", "[22.02|10:17:50] Step Attempt Status Reason finalframe_forces_max_delta\n", "[22.02|10:17:50] 1 1 FAILED Inaccurate 0.3655\n", "[22.02|10:17:50] 1 2 SUCCESS Accurate 0.4497\n", "[22.02|10:17:50] 2 1 SUCCESS Accurate 0.2893\n", "[22.02|10:17:50] 3 1 SUCCESS Accurate 0.3478\n", "[22.02|10:17:50] 4 1 FAILED Inaccurate 0.4066\n", "[22.02|10:17:50] --- End summary ---\n", "[22.02|10:17:50]\n", "[22.02|10:17:50] Running more reference calculations....\n", "[22.02|10:17:50] Running reference calculations on frames [47, 49, 52] from step4_attempt1_simulation/ams.rkf\n", "[22.02|10:17:50] Calculating 3 frames in total\n", "[22.02|10:17:50] Running step4_attempt1_reference_calc2\n", "[22.02|10:17:51] Running step4_attempt1_reference_calc3\n", "[22.02|10:17:52] Running step4_attempt1_reference_calc4\n", "[22.02|10:17:54] Reference calculations finished!\n", "[22.02|10:17:54] Adding results from step4_attempt1_reference_calc2 to validation set\n", "[22.02|10:17:54] Adding results from step4_attempt1_reference_calc3 to training set\n", "[22.02|10:17:54] Adding results from step4_attempt1_reference_calc4 to training set\n", "[22.02|10:17:54] Current # training set entries: 8\n", "[22.02|10:17:54] Current # validation set entries: 6\n", "[22.02|10:17:54] Storing data in step4_attempt1_reference_data\n", "[22.02|10:17:54] Deleting step4_attempt1_reference_calc2\n", "[22.02|10:17:54] Deleting step4_attempt1_reference_calc3\n", "[22.02|10:17:54] Deleting step4_attempt1_reference_calc4\n", "[22.02|10:17:54] Launching reparametrization job: step4_attempt1_training\n", "[22.02|10:17:58] JOB m3gnet STARTED\n", "[22.02|10:17:58] Starting m3gnet.prerun()\n", "[22.02|10:17:58] m3gnet.prerun() finished\n", "[22.02|10:17:58] JOB m3gnet RUNNING\n", "[22.02|10:17:58] Executing m3gnet.run\n", "[22.02|10:18:45] training_set Optimizer: 001 Epoch: 0 Loss: 0.011639\n", "[22.02|10:18:45] validation_set Optimizer: 001 Epoch: 0 Loss: 0.039009\n", "[22.02|10:18:49] training_set Optimizer: 001 Epoch: 10 Loss: 0.000860\n", "[22.02|10:18:49] validation_set Optimizer: 001 Epoch: 10 Loss: 0.033613\n", "[22.02|10:18:52] training_set Optimizer: 001 Epoch: 20 Loss: 0.000567\n", "[22.02|10:18:52] validation_set Optimizer: 001 Epoch: 20 Loss: 0.015872\n", "[22.02|10:18:56] training_set Optimizer: 001 Epoch: 30 Loss: 0.000469\n", "[22.02|10:18:56] validation_set Optimizer: 001 Epoch: 30 Loss: 0.009318\n", "[22.02|10:18:59] training_set Optimizer: 001 Epoch: 40 Loss: 0.000398\n", "[22.02|10:18:59] validation_set Optimizer: 001 Epoch: 40 Loss: 0.007477\n", "[22.02|10:19:03] training_set Optimizer: 001 Epoch: 50 Loss: 0.000399\n", "[22.02|10:19:03] validation_set Optimizer: 001 Epoch: 50 Loss: 0.006340\n", "[22.02|10:19:06] training_set Optimizer: 001 Epoch: 60 Loss: 0.000381\n", "[22.02|10:19:06] validation_set Optimizer: 001 Epoch: 60 Loss: 0.006127\n", "[22.02|10:19:10] training_set Optimizer: 001 Epoch: 70 Loss: 0.000364\n", "[22.02|10:19:10] validation_set Optimizer: 001 Epoch: 70 Loss: 0.005775\n", "[22.02|10:19:13] training_set Optimizer: 001 Epoch: 80 Loss: 0.000350\n", "[22.02|10:19:13] validation_set Optimizer: 001 Epoch: 80 Loss: 0.005872\n", "[22.02|10:19:17] training_set Optimizer: 001 Epoch: 90 Loss: 0.000340\n", "[22.02|10:19:17] validation_set Optimizer: 001 Epoch: 90 Loss: 0.005895\n", "[22.02|10:19:21] training_set Optimizer: 001 Epoch: 100 Loss: 0.000317\n", "[22.02|10:19:21] validation_set Optimizer: 001 Epoch: 100 Loss: 0.005510\n", "[22.02|10:19:25] training_set Optimizer: 001 Epoch: 110 Loss: 0.000314\n", "[22.02|10:19:25] validation_set Optimizer: 001 Epoch: 110 Loss: 0.005493\n", "[22.02|10:19:28] training_set Optimizer: 001 Epoch: 120 Loss: 0.000311\n", "[22.02|10:19:28] validation_set Optimizer: 001 Epoch: 120 Loss: 0.005458\n", "[22.02|10:19:32] training_set Optimizer: 001 Epoch: 130 Loss: 0.000294\n", "[22.02|10:19:32] validation_set Optimizer: 001 Epoch: 130 Loss: 0.005654\n", "[22.02|10:19:35] training_set Optimizer: 001 Epoch: 140 Loss: 0.000291\n", "[22.02|10:19:35] validation_set Optimizer: 001 Epoch: 140 Loss: 0.005434\n", "[22.02|10:19:39] training_set Optimizer: 001 Epoch: 150 Loss: 0.000280\n", "[22.02|10:19:39] validation_set Optimizer: 001 Epoch: 150 Loss: 0.005775\n", "[22.02|10:19:42] training_set Optimizer: 001 Epoch: 160 Loss: 0.000279\n", "[22.02|10:19:42] validation_set Optimizer: 001 Epoch: 160 Loss: 0.005568\n", "[22.02|10:19:46] training_set Optimizer: 001 Epoch: 170 Loss: 0.000277\n", "[22.02|10:19:46] validation_set Optimizer: 001 Epoch: 170 Loss: 0.005398\n", "[22.02|10:19:50] training_set Optimizer: 001 Epoch: 180 Loss: 0.000271\n", "[22.02|10:19:50] validation_set Optimizer: 001 Epoch: 180 Loss: 0.005413\n", "[22.02|10:19:53] training_set Optimizer: 001 Epoch: 190 Loss: 0.000265\n", "[22.02|10:19:53] validation_set Optimizer: 001 Epoch: 190 Loss: 0.005323\n", "[22.02|10:19:57] training_set Optimizer: 001 Epoch: 200 Loss: 0.000255\n", "[22.02|10:19:57] validation_set Optimizer: 001 Epoch: 200 Loss: 0.005657\n", "[22.02|10:20:00] training_set Optimizer: 001 Epoch: 210 Loss: 0.000252\n", "[22.02|10:20:00] validation_set Optimizer: 001 Epoch: 210 Loss: 0.005557\n", "[22.02|10:20:04] training_set Optimizer: 001 Epoch: 220 Loss: 0.000244\n", "[22.02|10:20:04] validation_set Optimizer: 001 Epoch: 220 Loss: 0.005980\n", "[22.02|10:20:07] training_set Optimizer: 001 Epoch: 230 Loss: 0.000234\n", "[22.02|10:20:07] validation_set Optimizer: 001 Epoch: 230 Loss: 0.005280\n", "[22.02|10:20:11] training_set Optimizer: 001 Epoch: 240 Loss: 0.000235\n", "[22.02|10:20:11] validation_set Optimizer: 001 Epoch: 240 Loss: 0.005609\n", "[22.02|10:20:14] training_set Optimizer: 001 Epoch: 250 Loss: 0.000229\n", "[22.02|10:20:14] validation_set Optimizer: 001 Epoch: 250 Loss: 0.005275\n", "[22.02|10:20:18] training_set Optimizer: 001 Epoch: 260 Loss: 0.000229\n", "[22.02|10:20:18] validation_set Optimizer: 001 Epoch: 260 Loss: 0.005242\n", "[22.02|10:20:21] training_set Optimizer: 001 Epoch: 270 Loss: 0.000222\n", "[22.02|10:20:21] validation_set Optimizer: 001 Epoch: 270 Loss: 0.005470\n", "[22.02|10:20:25] training_set Optimizer: 001 Epoch: 280 Loss: 0.000216\n", "[22.02|10:20:25] validation_set Optimizer: 001 Epoch: 280 Loss: 0.005648\n", "[22.02|10:20:28] training_set Optimizer: 001 Epoch: 290 Loss: 0.000215\n", "[22.02|10:20:28] validation_set Optimizer: 001 Epoch: 290 Loss: 0.006321\n", "[22.02|10:20:33] Execution of m3gnet.run finished with returncode 0\n", "[22.02|10:20:33] JOB m3gnet FINISHED\n", "[22.02|10:20:33] Starting m3gnet.postrun()\n", "[22.02|10:20:33] m3gnet.postrun() finished\n", "[22.02|10:20:34] JOB m3gnet SUCCESSFUL\n", "[22.02|10:20:47] Running all jobs through AMS....\n", "[22.02|10:20:47] Storing results/optimization/training_set_results/best\n", "[22.02|10:20:47] Storing results/optimization/validation_set_results/best\n", "[22.02|10:20:47] PLAMS environment cleaned up successfully\n", "[22.02|10:20:47] PLAMS run finished. Goodbye\n", "[22.02|10:20:48] ParAMSResults training_set validation_set\n", "[22.02|10:20:48] energy MAE 0.0810 0.0653 eV\n", "[22.02|10:20:48] forces MAE 0.0376 0.0575 eV/angstrom\n", "[22.02|10:20:48] Newly created parameter file/dir: step4_attempt1_training/results/optimization/m3gnet/m3gnet\n", "[22.02|10:20:48] Done!\n", "[22.02|10:20:48] Deleting step1_attempt1_training\n", "[22.02|10:20:48] ##########################\n", "[22.02|10:20:48] ### Step 4 / Attempt 2 ###\n", "[22.02|10:20:48] ##########################\n", "[22.02|10:20:48] MD Steps: 172 (cumulative: 259)\n", "[22.02|10:20:48] Current engine settings:\n", "[22.02|10:20:48]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/sal.002/step4_attempt1_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[22.02|10:20:48] Running step4_attempt2_simulation...\n", "[22.02|10:21:06] Job step4_attempt2_simulation finished\n", "[22.02|10:21:06] Deleting files that are no longer needed...\n", "[22.02|10:21:06] Launching reference calculation\n", "[22.02|10:21:08] Reference calculation finished!\n", "[22.02|10:21:08] Checking success for step4_attempt2\n", "[22.02|10:21:18] CheckEnergy: Checking energy for MDStep259, n_atoms = 144\n", "[22.02|10:21:18] CheckEnergy: normalization coefficient = 144\n", "[22.02|10:21:18] CheckEnergy: Actual Threshold\n", "[22.02|10:21:18] CheckEnergy: dE/144 -0.0005 0.2000 OK!\n", "[22.02|10:21:18] CheckEnergy: ddE/144 0.0005 0.0030 OK! (relative to step4_attempt1_simulation:MDStep259)\n", "[22.02|10:21:18]\n", "[22.02|10:21:18] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[22.02|10:21:18] CheckForces: ------------\n", "[22.02|10:21:18] CheckForces: Reference job from step4_attempt2_reference_calc1\n", "[22.02|10:21:18] CheckForces: Prediction job from final frame (MDStep259) of step4_attempt2_simulation\n", "[22.02|10:21:18] CheckForces: ------------\n", "[22.02|10:21:18] CheckForces: Histogram of forces\n", "[22.02|10:21:18] CheckForces: eV/Ang Ref Pred\n", "[22.02|10:21:18] CheckForces: -4 0 0\n", "[22.02|10:21:18] CheckForces: -3 4 4\n", "[22.02|10:21:18] CheckForces: -2 44 42\n", "[22.02|10:21:18] CheckForces: -1 157 159\n", "[22.02|10:21:18] CheckForces: 0 185 184\n", "[22.02|10:21:18] CheckForces: 1 37 39\n", "[22.02|10:21:18] CheckForces: 2 5 4\n", "[22.02|10:21:18] CheckForces: 3 0 0\n", "[22.02|10:21:18] CheckForces: Threshold for 0 force: 0.35 eV/angstrom\n", "[22.02|10:21:18] CheckForces: All force components are within the acceptable error!\n", "[22.02|10:21:18] CheckForces: Maximum deviation: 0.337 eV/angstrom\n", "[22.02|10:21:18] CheckForces: Actual Threshold\n", "[22.02|10:21:18] CheckForces: # > thr. 0 0 OK!\n", "[22.02|10:21:18] CheckForces: MAE 0.048 0.30 OK!\n", "[22.02|10:21:18] CheckForces: R^2 0.993 0.80 OK!\n", "[22.02|10:21:18] CheckForces: --------------------\n", "[22.02|10:21:18]\n", "[22.02|10:21:18] Adding results from step4_attempt2_reference_calc1 to training set\n", "[22.02|10:21:18] Current # training set entries: 9\n", "[22.02|10:21:18] Current # validation set entries: 6\n", "[22.02|10:21:18] Storing data in step4_attempt2_reference_data\n", "[22.02|10:21:18] Deleting step4_attempt1_reference_data\n", "[22.02|10:21:18] Deleting step4_attempt2_reference_calc1\n", "[22.02|10:21:18]\n", "[22.02|10:21:18] Current (cumulative) timings:\n", "[22.02|10:21:18] Time (s) Fraction\n", "[22.02|10:21:18] Ref. calcs 36.71 0.075\n", "[22.02|10:21:18] ML training 361.62 0.735\n", "[22.02|10:21:18] Simulations 93.59 0.190\n", "[22.02|10:21:18]\n", "[22.02|10:21:18]\n", "[22.02|10:21:18] Step 4 finished successfully!\n", "[22.02|10:21:18]\n", "[22.02|10:21:18] --- Begin summary ---\n", "[22.02|10:21:18] Step Attempt Status Reason finalframe_forces_max_delta\n", "[22.02|10:21:18] 1 1 FAILED Inaccurate 0.3655\n", "[22.02|10:21:18] 1 2 SUCCESS Accurate 0.4497\n", "[22.02|10:21:18] 2 1 SUCCESS Accurate 0.2893\n", "[22.02|10:21:18] 3 1 SUCCESS Accurate 0.3478\n", "[22.02|10:21:18] 4 1 FAILED Inaccurate 0.4066\n", "[22.02|10:21:18] 4 2 SUCCESS Accurate 0.3371\n", "[22.02|10:21:18] --- End summary ---\n", "[22.02|10:21:18]\n", "[22.02|10:21:18] ##########################\n", "[22.02|10:21:18] ### Step 5 / Attempt 1 ###\n", "[22.02|10:21:18] ##########################\n", "[22.02|10:21:18] MD Steps: 510 (cumulative: 769)\n", "[22.02|10:21:18] Current engine settings:\n", "[22.02|10:21:18]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/sal.002/step4_attempt1_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[22.02|10:21:18] Running step5_attempt1_simulation...\n", "[22.02|10:21:45] Job step5_attempt1_simulation finished\n", "[22.02|10:21:45] Deleting files that are no longer needed...\n", "[22.02|10:21:45] Deleting step3_attempt1_simulation\n", "[22.02|10:21:45] Deleting step4_attempt1_simulation\n", "[22.02|10:21:45] Launching reference calculation\n", "[22.02|10:21:47] Reference calculation finished!\n", "[22.02|10:21:47] Checking success for step5_attempt1\n", "[22.02|10:21:57] CheckEnergy: Checking energy for MDStep769, n_atoms = 144\n", "[22.02|10:21:57] CheckEnergy: normalization coefficient = 144\n", "[22.02|10:21:57] CheckEnergy: Actual Threshold\n", "[22.02|10:21:57] CheckEnergy: dE/144 0.0004 0.2000 OK!\n", "[22.02|10:21:57] CheckEnergy: ddE/144 0.0008 0.0030 OK! (relative to step4_attempt2_simulation:MDStep259)\n", "[22.02|10:21:57]\n", "[22.02|10:21:57] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[22.02|10:21:57] CheckForces: ------------\n", "[22.02|10:21:57] CheckForces: Reference job from step5_attempt1_reference_calc1\n", "[22.02|10:21:57] CheckForces: Prediction job from final frame (MDStep769) of step5_attempt1_simulation\n", "[22.02|10:21:57] CheckForces: ------------\n", "[22.02|10:21:57] CheckForces: Histogram of forces\n", "[22.02|10:21:57] CheckForces: eV/Ang Ref Pred\n", "[22.02|10:21:57] CheckForces: -3 3 3\n", "[22.02|10:21:57] CheckForces: -2 20 21\n", "[22.02|10:21:57] CheckForces: -1 191 189\n", "[22.02|10:21:57] CheckForces: 0 189 189\n", "[22.02|10:21:57] CheckForces: 1 28 29\n", "[22.02|10:21:57] CheckForces: 2 1 1\n", "[22.02|10:21:57] CheckForces: Threshold for 0 force: 0.35 eV/angstrom\n", "[22.02|10:21:57] CheckForces: All force components are within the acceptable error!\n", "[22.02|10:21:57] CheckForces: Maximum deviation: 0.255 eV/angstrom\n", "[22.02|10:21:57] CheckForces: Actual Threshold\n", "[22.02|10:21:57] CheckForces: # > thr. 0 0 OK!\n", "[22.02|10:21:57] CheckForces: MAE 0.051 0.30 OK!\n", "[22.02|10:21:57] CheckForces: R^2 0.990 0.80 OK!\n", "[22.02|10:21:57] CheckForces: --------------------\n", "[22.02|10:21:57]\n", "[22.02|10:21:57] Adding results from step5_attempt1_reference_calc1 to training set\n", "[22.02|10:21:57] Current # training set entries: 10\n", "[22.02|10:21:57] Current # validation set entries: 6\n", "[22.02|10:21:57] Storing data in step5_attempt1_reference_data\n", "[22.02|10:21:57] Deleting step4_attempt2_reference_data\n", "[22.02|10:21:57] Deleting step5_attempt1_reference_calc1\n", "[22.02|10:21:57]\n", "[22.02|10:21:57] Current (cumulative) timings:\n", "[22.02|10:21:57] Time (s) Fraction\n", "[22.02|10:21:57] Ref. calcs 37.78 0.073\n", "[22.02|10:21:57] ML training 361.62 0.696\n", "[22.02|10:21:57] Simulations 120.30 0.231\n", "[22.02|10:21:57]\n", "[22.02|10:21:57]\n", "[22.02|10:21:57] Step 5 finished successfully!\n", "[22.02|10:21:57]\n", "[22.02|10:21:57] --- Begin summary ---\n", "[22.02|10:21:57] Step Attempt Status Reason finalframe_forces_max_delta\n", "[22.02|10:21:57] 1 1 FAILED Inaccurate 0.3655\n", "[22.02|10:21:57] 1 2 SUCCESS Accurate 0.4497\n", "[22.02|10:21:57] 2 1 SUCCESS Accurate 0.2893\n", "[22.02|10:21:57] 3 1 SUCCESS Accurate 0.3478\n", "[22.02|10:21:57] 4 1 FAILED Inaccurate 0.4066\n", "[22.02|10:21:57] 4 2 SUCCESS Accurate 0.3371\n", "[22.02|10:21:57] 5 1 SUCCESS Accurate 0.2552\n", "[22.02|10:21:57] --- End summary ---\n", "[22.02|10:21:57]\n", "[22.02|10:21:57] ##########################\n", "[22.02|10:21:57] ### Step 6 / Attempt 1 ###\n", "[22.02|10:21:57] ##########################\n", "[22.02|10:21:57] MD Steps: 1510 (cumulative: 2279)\n", "[22.02|10:21:57] Current engine settings:\n", "[22.02|10:21:57]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/sal.002/step4_attempt1_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[22.02|10:21:57] Running step6_attempt1_simulation...\n", "[22.02|10:22:49] Job step6_attempt1_simulation finished\n", "[22.02|10:22:49] Deleting files that are no longer needed...\n", "[22.02|10:22:49] Deleting step4_attempt2_simulation\n", "[22.02|10:22:50] Launching reference calculation\n", "[22.02|10:22:51] Reference calculation finished!\n", "[22.02|10:22:51] Checking success for step6_attempt1\n", "[22.02|10:23:01] CheckEnergy: Checking energy for MDStep2279, n_atoms = 144\n", "[22.02|10:23:01] CheckEnergy: normalization coefficient = 144\n", "[22.02|10:23:01] CheckEnergy: Actual Threshold\n", "[22.02|10:23:01] CheckEnergy: dE/144 -0.0038 0.2000 OK!\n", "[22.02|10:23:01] CheckEnergy: ddE/144 -0.0042 0.0030 Not OK! (relative to step5_attempt1_simulation:MDStep769)\n", "[22.02|10:23:01]\n", "[22.02|10:23:01] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[22.02|10:23:01] CheckForces: ------------\n", "[22.02|10:23:01] CheckForces: Reference job from step6_attempt1_reference_calc1\n", "[22.02|10:23:01] CheckForces: Prediction job from final frame (MDStep2279) of step6_attempt1_simulation\n", "[22.02|10:23:01] CheckForces: ------------\n", "[22.02|10:23:01] CheckForces: Histogram of forces\n", "[22.02|10:23:01] CheckForces: eV/Ang Ref Pred\n", "[22.02|10:23:01] CheckForces: -3 0 0\n", "[22.02|10:23:01] CheckForces: -2 30 28\n", "[22.02|10:23:01] CheckForces: -1 183 190\n", "[22.02|10:23:01] CheckForces: 0 189 186\n", "[22.02|10:23:01] CheckForces: 1 28 26\n", "[22.02|10:23:01] CheckForces: 2 2 2\n", "[22.02|10:23:01] CheckForces: 3 0 0\n", "[22.02|10:23:01] CheckForces: Threshold for 0 force: 0.35 eV/angstrom\n", "[22.02|10:23:01] CheckForces: All force components are within the acceptable error!\n", "[22.02|10:23:01] CheckForces: Maximum deviation: 0.378 eV/angstrom\n", "[22.02|10:23:01] CheckForces: Actual Threshold\n", "[22.02|10:23:01] CheckForces: # > thr. 0 0 OK!\n", "[22.02|10:23:01] CheckForces: MAE 0.059 0.30 OK!\n", "[22.02|10:23:01] CheckForces: R^2 0.987 0.80 OK!\n", "[22.02|10:23:01] CheckForces: --------------------\n", "[22.02|10:23:01]\n", "[22.02|10:23:01] Adding results from step6_attempt1_reference_calc1 to training set\n", "[22.02|10:23:01] Current # training set entries: 11\n", "[22.02|10:23:01] Current # validation set entries: 6\n", "[22.02|10:23:01] Storing data in step6_attempt1_reference_data\n", "[22.02|10:23:01] Deleting step5_attempt1_reference_data\n", "[22.02|10:23:01] Deleting step6_attempt1_reference_calc1\n", "[22.02|10:23:01]\n", "[22.02|10:23:01] Current (cumulative) timings:\n", "[22.02|10:23:01] Time (s) Fraction\n", "[22.02|10:23:01] Ref. calcs 38.81 0.068\n", "[22.02|10:23:01] ML training 361.62 0.631\n", "[22.02|10:23:01] Simulations 172.73 0.301\n", "[22.02|10:23:01]\n", "[22.02|10:23:01]\n", "[22.02|10:23:01]\n", "[22.02|10:23:01] --- Begin summary ---\n", "[22.02|10:23:01] Step Attempt Status Reason finalframe_forces_max_delta\n", "[22.02|10:23:01] 1 1 FAILED Inaccurate 0.3655\n", "[22.02|10:23:01] 1 2 SUCCESS Accurate 0.4497\n", "[22.02|10:23:01] 2 1 SUCCESS Accurate 0.2893\n", "[22.02|10:23:01] 3 1 SUCCESS Accurate 0.3478\n", "[22.02|10:23:01] 4 1 FAILED Inaccurate 0.4066\n", "[22.02|10:23:01] 4 2 SUCCESS Accurate 0.3371\n", "[22.02|10:23:01] 5 1 SUCCESS Accurate 0.2552\n", "[22.02|10:23:01] 6 1 FAILED Inaccurate 0.3781\n", "[22.02|10:23:01] --- End summary ---\n", "[22.02|10:23:01]\n", "[22.02|10:23:01] Running more reference calculations....\n", "[22.02|10:23:02] Running reference calculations on frames [70, 73, 77] from step6_attempt1_simulation/ams.rkf\n", "[22.02|10:23:02] Calculating 3 frames in total\n", "[22.02|10:23:02] Running step6_attempt1_reference_calc2\n", "[22.02|10:23:03] Running step6_attempt1_reference_calc3\n", "[22.02|10:23:04] Running step6_attempt1_reference_calc4\n", "[22.02|10:23:06] Reference calculations finished!\n", "[22.02|10:23:06] Adding results from step6_attempt1_reference_calc2 to validation set\n", "[22.02|10:23:06] Adding results from step6_attempt1_reference_calc3 to training set\n", "[22.02|10:23:07] Adding results from step6_attempt1_reference_calc4 to training set\n", "[22.02|10:23:07] Current # training set entries: 13\n", "[22.02|10:23:07] Current # validation set entries: 7\n", "[22.02|10:23:07] Storing data in step6_attempt1_reference_data\n", "[22.02|10:23:07] Deleting step6_attempt1_reference_calc2\n", "[22.02|10:23:07] Deleting step6_attempt1_reference_calc3\n", "[22.02|10:23:07] Deleting step6_attempt1_reference_calc4\n", "[22.02|10:23:07] Launching reparametrization job: step6_attempt1_training\n", "[22.02|10:23:11] JOB m3gnet STARTED\n", "[22.02|10:23:11] Starting m3gnet.prerun()\n", "[22.02|10:23:11] m3gnet.prerun() finished\n", "[22.02|10:23:11] JOB m3gnet RUNNING\n", "[22.02|10:23:11] Executing m3gnet.run\n", "[22.02|10:24:19] training_set Optimizer: 001 Epoch: 0 Loss: 0.007601\n", "[22.02|10:24:19] validation_set Optimizer: 001 Epoch: 0 Loss: 0.066206\n", "[22.02|10:24:24] training_set Optimizer: 001 Epoch: 10 Loss: 0.000822\n", "[22.02|10:24:24] validation_set Optimizer: 001 Epoch: 10 Loss: 0.012345\n", "[22.02|10:24:29] training_set Optimizer: 001 Epoch: 20 Loss: 0.000347\n", "[22.02|10:24:29] validation_set Optimizer: 001 Epoch: 20 Loss: 0.008667\n", "[22.02|10:24:34] training_set Optimizer: 001 Epoch: 30 Loss: 0.000310\n", "[22.02|10:24:34] validation_set Optimizer: 001 Epoch: 30 Loss: 0.005950\n", "[22.02|10:24:38] training_set Optimizer: 001 Epoch: 40 Loss: 0.000297\n", "[22.02|10:24:38] validation_set Optimizer: 001 Epoch: 40 Loss: 0.005687\n", "[22.02|10:24:43] training_set Optimizer: 001 Epoch: 50 Loss: 0.000273\n", "[22.02|10:24:43] validation_set Optimizer: 001 Epoch: 50 Loss: 0.005624\n", "[22.02|10:24:48] training_set Optimizer: 001 Epoch: 60 Loss: 0.000274\n", "[22.02|10:24:48] validation_set Optimizer: 001 Epoch: 60 Loss: 0.005693\n", "[22.02|10:24:53] training_set Optimizer: 001 Epoch: 70 Loss: 0.000265\n", "[22.02|10:24:53] validation_set Optimizer: 001 Epoch: 70 Loss: 0.005727\n", "[22.02|10:24:58] training_set Optimizer: 001 Epoch: 80 Loss: 0.000257\n", "[22.02|10:24:58] validation_set Optimizer: 001 Epoch: 80 Loss: 0.005562\n", "[22.02|10:25:03] training_set Optimizer: 001 Epoch: 90 Loss: 0.000260\n", "[22.02|10:25:03] validation_set Optimizer: 001 Epoch: 90 Loss: 0.006442\n", "[22.02|10:25:08] training_set Optimizer: 001 Epoch: 100 Loss: 0.000245\n", "[22.02|10:25:08] validation_set Optimizer: 001 Epoch: 100 Loss: 0.006416\n", "[22.02|10:25:13] training_set Optimizer: 001 Epoch: 110 Loss: 0.000248\n", "[22.02|10:25:13] validation_set Optimizer: 001 Epoch: 110 Loss: 0.005638\n", "[22.02|10:25:18] training_set Optimizer: 001 Epoch: 120 Loss: 0.000246\n", "[22.02|10:25:18] validation_set Optimizer: 001 Epoch: 120 Loss: 0.007367\n", "[22.02|10:25:23] training_set Optimizer: 001 Epoch: 130 Loss: 0.000230\n", "[22.02|10:25:23] validation_set Optimizer: 001 Epoch: 130 Loss: 0.005574\n", "[22.02|10:25:28] training_set Optimizer: 001 Epoch: 140 Loss: 0.000222\n", "[22.02|10:25:28] validation_set Optimizer: 001 Epoch: 140 Loss: 0.005490\n", "[22.02|10:25:33] training_set Optimizer: 001 Epoch: 150 Loss: 0.000226\n", "[22.02|10:25:33] validation_set Optimizer: 001 Epoch: 150 Loss: 0.006009\n", "[22.02|10:25:38] training_set Optimizer: 001 Epoch: 160 Loss: 0.000222\n", "[22.02|10:25:38] validation_set Optimizer: 001 Epoch: 160 Loss: 0.005711\n", "[22.02|10:25:42] training_set Optimizer: 001 Epoch: 170 Loss: 0.000215\n", "[22.02|10:25:42] validation_set Optimizer: 001 Epoch: 170 Loss: 0.007090\n", "[22.02|10:25:46] training_set Optimizer: 001 Epoch: 180 Loss: 0.000206\n", "[22.02|10:25:46] validation_set Optimizer: 001 Epoch: 180 Loss: 0.006598\n", "[22.02|10:25:50] training_set Optimizer: 001 Epoch: 190 Loss: 0.000212\n", "[22.02|10:25:50] validation_set Optimizer: 001 Epoch: 190 Loss: 0.005998\n", "[22.02|10:25:54] training_set Optimizer: 001 Epoch: 200 Loss: 0.000211\n", "[22.02|10:25:54] validation_set Optimizer: 001 Epoch: 200 Loss: 0.008127\n", "[22.02|10:25:59] training_set Optimizer: 001 Epoch: 210 Loss: 0.000210\n", "[22.02|10:25:59] validation_set Optimizer: 001 Epoch: 210 Loss: 0.007694\n", "[22.02|10:26:03] training_set Optimizer: 001 Epoch: 220 Loss: 0.000202\n", "[22.02|10:26:03] validation_set Optimizer: 001 Epoch: 220 Loss: 0.005654\n", "[22.02|10:26:07] training_set Optimizer: 001 Epoch: 230 Loss: 0.000216\n", "[22.02|10:26:07] validation_set Optimizer: 001 Epoch: 230 Loss: 0.006818\n", "[22.02|10:26:12] training_set Optimizer: 001 Epoch: 240 Loss: 0.000191\n", "[22.02|10:26:12] validation_set Optimizer: 001 Epoch: 240 Loss: 0.005579\n", "[22.02|10:26:16] training_set Optimizer: 001 Epoch: 250 Loss: 0.000193\n", "[22.02|10:26:16] validation_set Optimizer: 001 Epoch: 250 Loss: 0.005051\n", "[22.02|10:26:20] training_set Optimizer: 001 Epoch: 260 Loss: 0.000186\n", "[22.02|10:26:20] validation_set Optimizer: 001 Epoch: 260 Loss: 0.005409\n", "[22.02|10:26:24] training_set Optimizer: 001 Epoch: 270 Loss: 0.000193\n", "[22.02|10:26:24] validation_set Optimizer: 001 Epoch: 270 Loss: 0.005468\n", "[22.02|10:26:28] training_set Optimizer: 001 Epoch: 280 Loss: 0.000198\n", "[22.02|10:26:28] validation_set Optimizer: 001 Epoch: 280 Loss: 0.005069\n", "[22.02|10:26:32] training_set Optimizer: 001 Epoch: 290 Loss: 0.000196\n", "[22.02|10:26:32] validation_set Optimizer: 001 Epoch: 290 Loss: 0.005147\n", "[22.02|10:26:37] Execution of m3gnet.run finished with returncode 0\n", "[22.02|10:26:38] JOB m3gnet FINISHED\n", "[22.02|10:26:38] Starting m3gnet.postrun()\n", "[22.02|10:26:38] m3gnet.postrun() finished\n", "[22.02|10:26:38] JOB m3gnet SUCCESSFUL\n", "[22.02|10:26:51] Running all jobs through AMS....\n", "[22.02|10:26:51] Storing results/optimization/training_set_results/best\n", "[22.02|10:26:51] Storing results/optimization/validation_set_results/best\n", "[22.02|10:26:51] PLAMS environment cleaned up successfully\n", "[22.02|10:26:51] PLAMS run finished. Goodbye\n", "[22.02|10:26:52] ParAMSResults training_set validation_set\n", "[22.02|10:26:52] energy MAE 0.1587 0.2397 eV\n", "[22.02|10:26:52] forces MAE 0.0335 0.0522 eV/angstrom\n", "[22.02|10:26:52] Newly created parameter file/dir: step6_attempt1_training/results/optimization/m3gnet/m3gnet\n", "[22.02|10:26:52] Done!\n", "[22.02|10:26:52] Deleting step4_attempt1_training\n", "[22.02|10:26:52] ##########################\n", "[22.02|10:26:52] ### Step 6 / Attempt 2 ###\n", "[22.02|10:26:52] ##########################\n", "[22.02|10:26:52] MD Steps: 1510 (cumulative: 2279)\n", "[22.02|10:26:52] Current engine settings:\n", "[22.02|10:26:52]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/sal.002/step6_attempt1_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[22.02|10:26:52] Running step6_attempt2_simulation...\n", "[22.02|10:27:43] Job step6_attempt2_simulation finished\n", "[22.02|10:27:43] Deleting files that are no longer needed...\n", "[22.02|10:27:44] Launching reference calculation\n", "[22.02|10:27:44] Reference calculation finished!\n", "[22.02|10:27:44] Checking success for step6_attempt2\n", "[22.02|10:27:54] CheckEnergy: Checking energy for MDStep2279, n_atoms = 144\n", "[22.02|10:27:54] CheckEnergy: normalization coefficient = 144\n", "[22.02|10:27:54] CheckEnergy: Actual Threshold\n", "[22.02|10:27:54] CheckEnergy: dE/144 0.0009 0.2000 OK!\n", "[22.02|10:27:54] CheckEnergy: ddE/144 0.0019 0.0030 OK! (relative to step6_attempt1_simulation:MDStep2279)\n", "[22.02|10:27:54]\n", "[22.02|10:27:54] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[22.02|10:27:54] CheckForces: ------------\n", "[22.02|10:27:54] CheckForces: Reference job from step6_attempt2_reference_calc1\n", "[22.02|10:27:54] CheckForces: Prediction job from final frame (MDStep2279) of step6_attempt2_simulation\n", "[22.02|10:27:54] CheckForces: ------------\n", "[22.02|10:27:54] CheckForces: Histogram of forces\n", "[22.02|10:27:54] CheckForces: eV/Ang Ref Pred\n", "[22.02|10:27:54] CheckForces: -4 0 0\n", "[22.02|10:27:54] CheckForces: -3 3 4\n", "[22.02|10:27:54] CheckForces: -2 28 26\n", "[22.02|10:27:54] CheckForces: -1 186 188\n", "[22.02|10:27:54] CheckForces: 0 182 180\n", "[22.02|10:27:54] CheckForces: 1 31 33\n", "[22.02|10:27:54] CheckForces: 2 2 1\n", "[22.02|10:27:54] CheckForces: 3 0 0\n", "[22.02|10:27:54] CheckForces: Threshold for 0 force: 0.35 eV/angstrom\n", "[22.02|10:27:54] CheckForces: All force components are within the acceptable error!\n", "[22.02|10:27:54] CheckForces: Maximum deviation: 0.225 eV/angstrom\n", "[22.02|10:27:54] CheckForces: Actual Threshold\n", "[22.02|10:27:54] CheckForces: # > thr. 0 0 OK!\n", "[22.02|10:27:54] CheckForces: MAE 0.045 0.30 OK!\n", "[22.02|10:27:54] CheckForces: R^2 0.992 0.80 OK!\n", "[22.02|10:27:54] CheckForces: --------------------\n", "[22.02|10:27:54]\n", "[22.02|10:27:54] Adding results from step6_attempt2_reference_calc1 to validation set\n", "[22.02|10:27:54] Current # training set entries: 13\n", "[22.02|10:27:54] Current # validation set entries: 8\n", "[22.02|10:27:54] Storing data in step6_attempt2_reference_data\n", "[22.02|10:27:54] Deleting step6_attempt1_reference_data\n", "[22.02|10:27:54] Deleting step6_attempt2_reference_calc1\n", "[22.02|10:27:54]\n", "[22.02|10:27:54] Current (cumulative) timings:\n", "[22.02|10:27:54] Time (s) Fraction\n", "[22.02|10:27:54] Ref. calcs 44.32 0.052\n", "[22.02|10:27:54] ML training 587.09 0.687\n", "[22.02|10:27:54] Simulations 223.55 0.261\n", "[22.02|10:27:54]\n", "[22.02|10:27:54]\n", "[22.02|10:27:55] Step 6 finished successfully!\n", "[22.02|10:27:55]\n", "[22.02|10:27:55] --- Begin summary ---\n", "[22.02|10:27:55] Step Attempt Status Reason finalframe_forces_max_delta\n", "[22.02|10:27:55] 1 1 FAILED Inaccurate 0.3655\n", "[22.02|10:27:55] 1 2 SUCCESS Accurate 0.4497\n", "[22.02|10:27:55] 2 1 SUCCESS Accurate 0.2893\n", "[22.02|10:27:55] 3 1 SUCCESS Accurate 0.3478\n", "[22.02|10:27:55] 4 1 FAILED Inaccurate 0.4066\n", "[22.02|10:27:55] 4 2 SUCCESS Accurate 0.3371\n", "[22.02|10:27:55] 5 1 SUCCESS Accurate 0.2552\n", "[22.02|10:27:55] 6 1 FAILED Inaccurate 0.3781\n", "[22.02|10:27:55] 6 2 SUCCESS Accurate 0.2249\n", "[22.02|10:27:55] --- End summary ---\n", "[22.02|10:27:55]\n", "[22.02|10:27:55] ##########################\n", "[22.02|10:27:55] ### Step 7 / Attempt 1 ###\n", "[22.02|10:27:55] ##########################\n", "[22.02|10:27:55] MD Steps: 4473 (cumulative: 6752)\n", "[22.02|10:27:55] Current engine settings:\n", "[22.02|10:27:55]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/sal.002/step6_attempt1_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[22.02|10:27:55] Running step7_attempt1_simulation...\n", "[22.02|10:30:03] Job step7_attempt1_simulation finished\n", "[22.02|10:30:03] Deleting files that are no longer needed...\n", "[22.02|10:30:03] Deleting step5_attempt1_simulation\n", "[22.02|10:30:03] Deleting step6_attempt1_simulation\n", "[22.02|10:30:03] Launching reference calculation\n", "[22.02|10:30:04] Reference calculation finished!\n", "[22.02|10:30:04] Checking success for step7_attempt1\n", "[22.02|10:30:13] CheckEnergy: Checking energy for MDStep6752, n_atoms = 144\n", "[22.02|10:30:13] CheckEnergy: normalization coefficient = 144\n", "[22.02|10:30:13] CheckEnergy: Actual Threshold\n", "[22.02|10:30:13] CheckEnergy: dE/144 0.0006 0.2000 OK!\n", "[22.02|10:30:13] CheckEnergy: ddE/144 -0.0003 0.0030 OK! (relative to step6_attempt2_simulation:MDStep2279)\n", "[22.02|10:30:13]\n", "[22.02|10:30:13] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[22.02|10:30:13] CheckForces: ------------\n", "[22.02|10:30:13] CheckForces: Reference job from step7_attempt1_reference_calc1\n", "[22.02|10:30:13] CheckForces: Prediction job from final frame (MDStep6752) of step7_attempt1_simulation\n", "[22.02|10:30:13] CheckForces: ------------\n", "[22.02|10:30:13] CheckForces: Histogram of forces\n", "[22.02|10:30:13] CheckForces: eV/Ang Ref Pred\n", "[22.02|10:30:13] CheckForces: -3 2 3\n", "[22.02|10:30:13] CheckForces: -2 32 31\n", "[22.02|10:30:13] CheckForces: -1 184 187\n", "[22.02|10:30:13] CheckForces: 0 179 176\n", "[22.02|10:30:13] CheckForces: 1 32 32\n", "[22.02|10:30:13] CheckForces: 2 3 3\n", "[22.02|10:30:13] CheckForces: 3 0 0\n", "[22.02|10:30:13] CheckForces: Threshold for 0 force: 0.35 eV/angstrom\n", "[22.02|10:30:13] CheckForces: All force components are within the acceptable error!\n", "[22.02|10:30:13] CheckForces: Maximum deviation: 0.281 eV/angstrom\n", "[22.02|10:30:13] CheckForces: Actual Threshold\n", "[22.02|10:30:13] CheckForces: # > thr. 0 0 OK!\n", "[22.02|10:30:13] CheckForces: MAE 0.052 0.30 OK!\n", "[22.02|10:30:13] CheckForces: R^2 0.991 0.80 OK!\n", "[22.02|10:30:13] CheckForces: --------------------\n", "[22.02|10:30:13]\n", "[22.02|10:30:14] Adding results from step7_attempt1_reference_calc1 to training set\n", "[22.02|10:30:14] Current # training set entries: 14\n", "[22.02|10:30:14] Current # validation set entries: 8\n", "[22.02|10:30:14] Storing data in step7_attempt1_reference_data\n", "[22.02|10:30:14] Deleting step6_attempt2_reference_data\n", "[22.02|10:30:14] Deleting step7_attempt1_reference_calc1\n", "[22.02|10:30:14]\n", "[22.02|10:30:14] Current (cumulative) timings:\n", "[22.02|10:30:14] Time (s) Fraction\n", "[22.02|10:30:14] Ref. calcs 45.23 0.046\n", "[22.02|10:30:14] ML training 587.09 0.597\n", "[22.02|10:30:14] Simulations 351.46 0.357\n", "[22.02|10:30:14]\n", "[22.02|10:30:14]\n", "[22.02|10:30:14] Step 7 finished successfully!\n", "[22.02|10:30:14]\n", "[22.02|10:30:14] --- Begin summary ---\n", "[22.02|10:30:14] Step Attempt Status Reason finalframe_forces_max_delta\n", "[22.02|10:30:14] 1 1 FAILED Inaccurate 0.3655\n", "[22.02|10:30:14] 1 2 SUCCESS Accurate 0.4497\n", "[22.02|10:30:14] 2 1 SUCCESS Accurate 0.2893\n", "[22.02|10:30:14] 3 1 SUCCESS Accurate 0.3478\n", "[22.02|10:30:14] 4 1 FAILED Inaccurate 0.4066\n", "[22.02|10:30:14] 4 2 SUCCESS Accurate 0.3371\n", "[22.02|10:30:14] 5 1 SUCCESS Accurate 0.2552\n", "[22.02|10:30:14] 6 1 FAILED Inaccurate 0.3781\n", "[22.02|10:30:14] 6 2 SUCCESS Accurate 0.2249\n", "[22.02|10:30:14] 7 1 SUCCESS Accurate 0.2808\n", "[22.02|10:30:14] --- End summary ---\n", "[22.02|10:30:14]\n", "[22.02|10:30:14] ##########################\n", "[22.02|10:30:14] ### Step 8 / Attempt 1 ###\n", "[22.02|10:30:14] ##########################\n", "[22.02|10:30:14] MD Steps: 13248 (cumulative: 20000)\n", "[22.02|10:30:14] Current engine settings:\n", "[22.02|10:30:14]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/sal.002/step6_attempt1_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[22.02|10:30:14] Running step8_attempt1_simulation...\n", "[22.02|10:36:03] Job step8_attempt1_simulation finished\n", "[22.02|10:36:03] Deleting files that are no longer needed...\n", "[22.02|10:36:03] Deleting step6_attempt2_simulation\n", "[22.02|10:36:04] Launching reference calculation\n", "[22.02|10:36:05] Reference calculation finished!\n", "[22.02|10:36:05] Checking success for step8_attempt1\n", "[22.02|10:36:14] CheckEnergy: Checking energy for MDStep20000, n_atoms = 144\n", "[22.02|10:36:14] CheckEnergy: normalization coefficient = 144\n", "[22.02|10:36:14] CheckEnergy: Actual Threshold\n", "[22.02|10:36:14] CheckEnergy: dE/144 0.0015 0.2000 OK!\n", "[22.02|10:36:14] CheckEnergy: ddE/144 0.0008 0.0030 OK! (relative to step7_attempt1_simulation:MDStep6752)\n", "[22.02|10:36:14]\n", "[22.02|10:36:14] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[22.02|10:36:14] CheckForces: ------------\n", "[22.02|10:36:14] CheckForces: Reference job from step8_attempt1_reference_calc1\n", "[22.02|10:36:14] CheckForces: Prediction job from final frame (MDStep20000) of step8_attempt1_simulation\n", "[22.02|10:36:14] CheckForces: ------------\n", "[22.02|10:36:14] CheckForces: Histogram of forces\n", "[22.02|10:36:14] CheckForces: eV/Ang Ref Pred\n", "[22.02|10:36:14] CheckForces: -3 5 4\n", "[22.02|10:36:14] CheckForces: -2 35 35\n", "[22.02|10:36:14] CheckForces: -1 181 180\n", "[22.02|10:36:14] CheckForces: 0 170 172\n", "[22.02|10:36:14] CheckForces: 1 34 34\n", "[22.02|10:36:14] CheckForces: 2 7 6\n", "[22.02|10:36:14] CheckForces: 3 0 1\n", "[22.02|10:36:14] CheckForces: Threshold for 0 force: 0.35 eV/angstrom\n", "[22.02|10:36:14] CheckForces: All force components are within the acceptable error!\n", "[22.02|10:36:14] CheckForces: Maximum deviation: 0.310 eV/angstrom\n", "[22.02|10:36:14] CheckForces: Actual Threshold\n", "[22.02|10:36:14] CheckForces: # > thr. 0 0 OK!\n", "[22.02|10:36:14] CheckForces: MAE 0.056 0.30 OK!\n", "[22.02|10:36:14] CheckForces: R^2 0.991 0.80 OK!\n", "[22.02|10:36:14] CheckForces: --------------------\n", "[22.02|10:36:14]\n", "[22.02|10:36:14] Adding results from step8_attempt1_reference_calc1 to validation set\n", "[22.02|10:36:14] Current # training set entries: 14\n", "[22.02|10:36:14] Current # validation set entries: 9\n", "[22.02|10:36:14] Storing data in step8_attempt1_reference_data\n", "[22.02|10:36:15] Deleting step7_attempt1_reference_data\n", "[22.02|10:36:15] Deleting step8_attempt1_reference_calc1\n", "[22.02|10:36:15]\n", "[22.02|10:36:15] Current (cumulative) timings:\n", "[22.02|10:36:15] Time (s) Fraction\n", "[22.02|10:36:15] Ref. calcs 46.19 0.035\n", "[22.02|10:36:15] ML training 587.09 0.440\n", "[22.02|10:36:15] Simulations 700.76 0.525\n", "[22.02|10:36:15]\n", "[22.02|10:36:15]\n", "[22.02|10:36:15] Step 8 finished successfully!\n", "[22.02|10:36:15]\n", "[22.02|10:36:15] --- Begin summary ---\n", "[22.02|10:36:15] Step Attempt Status Reason finalframe_forces_max_delta\n", "[22.02|10:36:15] 1 1 FAILED Inaccurate 0.3655\n", "[22.02|10:36:15] 1 2 SUCCESS Accurate 0.4497\n", "[22.02|10:36:15] 2 1 SUCCESS Accurate 0.2893\n", "[22.02|10:36:15] 3 1 SUCCESS Accurate 0.3478\n", "[22.02|10:36:15] 4 1 FAILED Inaccurate 0.4066\n", "[22.02|10:36:15] 4 2 SUCCESS Accurate 0.3371\n", "[22.02|10:36:15] 5 1 SUCCESS Accurate 0.2552\n", "[22.02|10:36:15] 6 1 FAILED Inaccurate 0.3781\n", "[22.02|10:36:15] 6 2 SUCCESS Accurate 0.2249\n", "[22.02|10:36:15] 7 1 SUCCESS Accurate 0.2808\n", "[22.02|10:36:15] 8 1 SUCCESS Accurate 0.3104\n", "[22.02|10:36:15] --- End summary ---\n", "[22.02|10:36:15]\n", "[22.02|10:36:15] The engine settings for the final trained ML engine are:\n", "[22.02|10:36:15]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/sal.002/step6_attempt1_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "\n", "[22.02|10:36:15] Active learning finished!\n", "[22.02|10:36:15] Goodbye!\n", "[22.02|10:36:15] JOB sal.002 FINISHED\n", "[22.02|10:36:15] JOB sal.002 SUCCESSFUL\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "job.run(watch=True);" ] }, { "cell_type": "markdown", "id": "ace38a02-ed35-459a-b27b-929faf42a9f5", "metadata": {}, "source": [ "## Validate trained model by RDF and MSD\n", "\n", "Note: You should skip this part if you trained to DFT since the reference MD calculation will take a very long time!" ] }, { "cell_type": "code", "execution_count": 23, "id": "bfef48ef-5fb0-4977-b955-37886ad2f10b", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAH4AAAB2CAYAAAAOcCflAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAA+a0lEQVR4nO19d5RURfr2UzdX3bq3w5CGnJGkAqKsiGQQFBRBQAXWrGtgzbprQnfRVTEj5pxwzQlEURcxACqKKwoiSDCAkmam03R6vz9uz2zTdPf0wLD7/Y6+59Q5M33vrfRUeOtNxYgIv9Nvj5T/dQV+p/8N/Q78b5R+B/43Sr8D/xul34H/jdLvwP9G6Xfgf6Ok/a8r8H+ZGGMcwEQXGKYAahXwSQp4jIi2/6/rVhexvRXgMMZ8pmleyjnvHAqFliWTyduJKNFA9fv/lhTGJpnAg/1UFcdpmtQBvJ1KRV5LJhUFuDECXEv/P0vHiGiPEwAppVw7derU2IMPPkiDBw8Ou677DgBlD/MzAbQDYO9NvfZ1UoAJASCyXAgix9kl/WDb1EVRQgKY+b+uZ9G+3kvgTxs+fHiYMhSPx6lVq1ZVAA7dg7xGWpZVVVZWFjIMI6br+pl73TiguQn8XQKbdaDaBrbbwBwAnXPeswBYJeapC2D7kjyg16TNtk0ciAJo/r8GuFDaW+Yu2K1bN6PmH13X0bZt2xSAYL6XGWOiwO/NhRAvvP3223Lr1q32ypUrTSnlrYyxfntaMcbYIA6snqbrFy8WoulWKY3lth041zBOk8DnGmNTGWO2z+d7Q9O0kKZpIZ/P91Jm3y5GY7ooinaIqhZ8oami4ERdhwn8aU/rX19iHuXt37zvZ0bxnhZ2aDAYfPvTTz8V7dq1w0cffYThw4eHI5FIFyL6MefdFgBmw1vOl2V+vgbAtQA6t27d+tiTTz7ZBIAZM2bg4IMPTn/yySfvAPgoK5ua93chIprBGJuR9VNAA85KAsY1hpH7OiZpGnpFIom0rm/q0KFD2/HjxytEhOuvvx66rn+eSCReLZQ/A4YOVJTDBmoaro3HcZqmIQpAAChnDIwxAMC18TgsYGMMeKSOuta3bYXe7wjgaCJy8ry7O+3tkmFZ1nmGYcSaNGlSZVlWCMDoPMtjCwCnADgKQKc8zw9r06ZNVSKRqNk1aMSIEWEAp5e4/PoAdM6Uw2xgzqWGES+0FJPj0MOWRbZtp9atW1db5qpVq8hxnF+LlaUBN8zQdbrDNKk9Y9SFMTpcUagdY9SeMbrHNCktJb1sWVTG2Pv7esmGdyQfDmACgONK/q6BCnczHc/zPGuaAb0zgKHIs/8DUF3XXTRixIjwo48+SieddFLMtu3vAcg6yu3jA14zgepyxiolEPUBazSgel2RPZgch8JSkus49NFHH9UC/95775HP56uoo8zxzRlL/EFRaIkQlJaSyHEoLSV9wDn1UhQ6R9fpVFWN6sBjmcG+T/b6DOiDAUwEYAC44r8KfJGKNQNwas0sz/w9scC7hmEYVwQCgZcty7oJgL9Y3gpwrATCt5tmemem81NS0pucUw9FoRM1jZKZ3wulxoxR69at6emnn6Ynn3ySysvLSQjxaR1tOqkLYxQukHellNSVMbKFSLdp0yZ02GGH7eSchwAMzzfgAQwDMDnfSlhHPVhmItWAzgC8icz2vc+AzxTUF8AYAG0zs74JAC3zvBzAacjioAHYaICjGoB2AgjnO06R41BUSjpcUegm0ywIelpKasQYDRgwgMaMGUNjxoyhdu3aRXVdP69Y2T5g1eucFx1QJ5gmDRs6lGq2rkWLFpFlWZUAjKw26K7r/qtDhw5Vo0ePrrRtO6Kq6gn16INhGdDNrN8a71PgASiu685t2rRp6LDDDovYQqR1xpI2EDWBsOkxNJdg92PTzPosR4USB247X9eri3X+50JQK8YoUWBmfsA5NQboMEVJc8bI1rSkbduPo4gMAkC5DcTqWkkm+f30+OOPUzYFAoEwgLY1eSmKcv6gQYPCNYPj3//+N1mWFalrpcua6ROQcwQFkKqZeHWlPT3OndimTZuj1q1bZy9evJgvXbaMOZalrrVta5Vti5NUdYoOXA0gkPPdzfA4+70iFZhyuq7vzq5n0YGqijLG8HEqtduzOBGujMdxpWlisW2zNUJgIFFCCYfbeNkXJCkZS6gZzr0QtUkk8M4779T+v2bNGoTDYcMHvCwYq5SMbZeMXdCrVy+haZ7UvEePHmjatGkCQJtC+TLvyDAQQBmA14golvNKO3jg1017MuMMw7jl+uuv32VE9+valRZnLYGvcU4c2AnAlzUiJwOYXCxvxtjxfr9/reu6PzuOcx/yCFYMoHpnHbOOHIcGqipdbxi1DBg5Dn0pBA1XVRqnabusBgkp6Q+KEmbA2UVmm88EqivqKHuNEGQLQSNHjoycd955cb/Pl+6gqrEXLYt+sm363rbpFsNIl2sanXPaaZRKpWjt2rVkWVYUQFmR8ocDOB1ZW0bO838WerZbP2c+qBcxxi4YMnjwrQvfeQeMMcyZMwdXX3klegA4PRbDiZlRPDYSSbyeSr1DwNLMp+8D+COA73OyrDmTduGcjz/uuON0KSUWLFiQXLt2rYb/nFcDJnCIztghH3KO/YsIUQCgWzKJkG1DxuNoFIlgZzqNbUQ4R9dxqWFAy5m57yaTOCYaragCbqcC52cBXHODYdB00yw47a+vrsbf4/HvosAqHTjqOFVNP8m5wnLKqyDCwFgMerduWLNhA6Kh0I/xVKoFCp/nVwD4jojG5ys3U9+ZVIqupD4zHQAzDOMC0zQrG9k2De3Xj0YMHUrNy8vppZdeopdeeok6lJfT/ZmZ/zbnFAC+zvq+I3L2/ewUDAbfffrpp2tXkXA4TKqqJgGYOnCmDUQu0PXqzoZB59TBYC0Tgto1bUrxeJw+/PBDsm2bnjBNiheZrWkpSXqi1vIifXCwA4S/LMBYfiIE2UAYwAEARnRkrCpdpMx1tk0+gOZbFg1T1bADvIwSGbQ8dRuBEvf4emWsadopbdq0CV1zzTU0xXHoUcuilq67y1n4o48+oq6uS+Q49K1tkwNsyarYBQD+Wij/srKy95599tnavKLRaA3w48oYC6+xbSLHoStNk6Si0EcFOr9KSuqpKHTsMcek3333XRo7dmzUFSJVDICa1IixELKYsLzLJDDRBsKXGkZ8jW1TREpaZdt0oa7HhQf6WCKCH3jtHtNM11XmKFWlpyyLolJSS6/8wwsAO7Mm7wLP1wFwGhz4srKyJa+88go9//zzdEQgQOQ41M5xaPXq1bVgffvtt9Q208H/4pz8wLel5s8Ym9isWbPwkiVLaP369TRu3Lio67qv+4BVr2XN8ISUNIhzshmj6wyDNmcGRFxKes6yqCNjIQm84vP53gwGgyuklLMNIPJD5r1C6UfbJhOIII8gKk8nd7KBuwWwUwWSAtghgNsBtK95Jwh8/WEdgiRyHLrUMOh6wyByHLrDNNM+j3HLV+YAAB33ZDXYW+A/eO6556iqqooCQtBG26bpjkNjhg2jiooKqqyspDHDhtF5mQYdr2lhDbgsq+JnF5vx5K0qp7mu+6Nt29td130KwCGNGQvlHqHSUtI8zmmcqpIDUGPGyADIDyyHd77dZbmUwENXGEaiGABXGUZSAo/WqwOB8T6fb62U8lefz/dM9owLAp+8UceWRI5DZ+g63Z6ROayybXKBzQXKGgqgW5G6fIU6joN7BDyAcY0aNQovWLCApk6cSEfqOoVtm06WkkxVJVNV6WTHE6As8rj6KgCNsmcJgB71LPPoIaq6s1jHxaSkr4QgA4gUyacDB6oKATGfcxJefacFg8EPgsHgF0KIqwCoRfIc7vf7wwsXLqQ1a9bQ5MmTY67rvlsz6FTgouM0LVys7t8JQRKg6wyDNtk2rS4O/F8BjClSnyNRIldf7yWCMTY5EAh847ruBkdRfhigKOEPOKeEbVNSStoqJd1omqnMXjcsp2L9AIyoJ/Aj+yhKUeDJcWi9bZMAdtaR1x84sHOMqobe5JxWCkFvck5jNS3EgQoA5zqOE3nqqado4cKF1Ldv37CU8r6s75sB6AGgBREhEAg8f++991INxeNxsiyrGpkjGYCgVcBggxyHVghBfs7puPHjaer48dSEc7pM19N+4I0C9deLMW8ALkKJktF6A59TkKECFzjAjwEg3IKxKhNIu8Bz+WY2gGNRosYt6xvHAiKb6tifrzeMpAs8U0J+PgU4NwB86Xr1/rcCnAfAFwwGFzz00EO1QG7fvr2GuRzjB5YJINaasQoJRP3ACtd1l9x33327AM85r85e5RRgvAtEnrOsXeQG26WkTo5DDzzwQO33Dz/0EAUdJwVgUIG63wfgrCJtexpAYJ8Dn1WgAk9qtD+A3kXeE/DkyScC+DOAQ0rJXwDPTtW0dCGufLNtU9BbYQ7am3aUlZW9/+KLL9YCkUgkyFCUVFPGws9YFlVnyk9ISS9aFjUGYgG/P/Huu+/S2rVr6YQTToi5rvuvXP4CwBA/8GUQiA5RVRququQDKGDblK0WXr9+PdlCxAsd5+CpnYNF+rdxsa2pQYHPLD/jfcAzAWCBAXwGYL8C716sadrWQw89NHTGGWdEA4FA2LKsc+vInwkhNrVt3JjOsm3akjXz01LSEiGoHWMhAfx9b9ui6/qZHTt2DK9fv56i0SgdddRRiUaMpX7MlPmyZdGZjkMX2Datsm3aKiWVMRZ1XXeLlHKrz+d7FoBbpC09AFxlAJU9GKvq6Th084031gI/a9astM/nW1rk+2nIo+XLev5jzTa0T4EHcKgAtvZWlMq7TZOesiy6WNdTLhB1gddz9xtVVa8dPXp0NJ1OExHRunXrasSUxUZxU9u2ozt37qTTp0whP+c03LbpGE1LdvJ08JuNem4fxQYZ53yGYRhRVVWTflXd8UCG275dCGrfrBnNnj2brrriCmrMOf1bCHrOssgPLK9nORqAY23gJVuI2B/69Yv179+/SgjxC4oc1+ApZvKe8TPPy4vxAA0CPIBeAgjl45JjUtJETYs6noi2dunhnC+cNGkSZVPz5s0rAVwRAF4pA97iwG3YVZXLdV2Pb968mYi8fXfSpEkp0zQ/BDAIe2jRW9cAACB1IB6SklJSkq3ruyzLt86aRZN9PopLSQKIAWi2h2X5AYwFcDTq1sy1LzajATwIoMk+Bd4PfHBfEX13QkraT1GqkHX8YIzd1qNHj1iNKvLOO+8kC6DBqlr1iGXRc5ZFl+h63AUiLvA8MgoaIcTM9u3bhx944AG64oorUpzzShQR/TYQ+M0cIEKOZ61jqCrVrFRERG+88QaNyAixmjNWCaDrvqxPpk43A5he5PmF+5S5A9DBASJRKSktJS0Vgv5uGHSlYdAjlkWhDBP0mLcMfqBp2kV+v/9ZTdPmcM4/a9euXVWfPn1CDmN5xa4RKekoVY04wLzM7GOMsSl+v/9Z27bnFFsOG7CTuQ7Ea7SAvRyHbp01i4iIIpEIDR8wgK61bYpKSdyb8Y33dZ1KqPPg3O21oYE/driqVvxbCDooY2h4ia7TtYZBR2saBQGaaRj0gxAkGEsMGDAg/MADD1D//v0TmqZVABjtAD+9ZFlFhTKtGKsqtqft6+QDXr3dNNMpKekqwyBXCGrSqBE5tk1lnFN3xuh0XScf8ME+ALGPz+d7JhgMvqGq6rTMBLgYwKlFvvkYWSLjfQH8uEMUpaoJY/SwZVEq55j1vW3TQYpCZ2oa2YxRdXU11dCoUaPCAG4oZyyU+11ESroxwznfapp0i2GkfcArmTJ7uK67Utf1mOM46wEctq+BB9DPBcLHahr9QVHofc5ptRD0o21TWkpayDm1Y4wE8GIDl3uwECI8a9as9BNPPEHt2rULWZZ1FYA+qKfks6GBb+MCqbsyioV8aZuU1IQxamzbtTbTzz77LPXq1SsN4MUTNS1UJSXdaZp0hWnSc5ZF/R2Hjh01imbPnk2jBw2iw6QkF9gEICiE2PbAAw+kd+zYQa+88goJIUL/jSVfBR7prigFjSu3SUktPI3abmble5oCgcCb2RLBjRs3kqZp1QAOA3BwEVwWlcr77CnwnV0gFatDzXm1YZBQlOQHH3xARJ7K1u/3RwHcOEFVQwdISeOOOIJmXHMNdWrdmtq3alXLQCWTSdq/Y0eygS0AxvTv37+CsmjatGkRAOdk6tMSnnXPWJSgWatHO5kP+G5BHYqWRz1epsFs6MvKypbNmzevtq3JZLJGgng2gGlF6jsY+0Itm1XASePrUD6Q49AXQpAP+MWyrKqmTZtW6bperarqwwB6cKB64tixtY3btm0bua5L33//fe1vR48aRSbwAYBRvXv33gX4CRMmhAGcBWCgEKJq1KhRlX369KmUUq4pJhcooW02gKkAzgEw0gdEcrekfMyoBiQaatBxzq/s169fuKKigtLpNF1xxRVJ13WXwxOW6UXqfjaApvsS+FMna1qsLuC/9oD/EQCH51BxJICLiQhC13+5MUtqRUTUqWNHAkABIei4sWOJc07w/M+Ot23718svvzyxfPlyuu2221Kc8x0Amgkhfp0/fz4REaXTaTrzzDOrbdt+GsAfMnuiWY92BaSU6wYNGhQ65ZRToo7jRBsxFqmrneQ4JAAC0KchgAegSikf1XU9IYSIOY6zEp649joA1xT57i4A7fYl8NNbKArVZdFyr2mm/cCCrO94zWxUFOWN/fbbjyorK4mIaNmyZRTknLbYNm20bTpN08gHkAPEh6tqRX9FqXRtO+V33ajP51uaGUhcVdVUzfbw6aef0oDevUkA6W6KsrM9YxUcqOTArFKWQNu27zj11FNrOdEVK1aQYRi0sw4F0c+edywJ4CcUEdnuQT878HwVamwjmxQ7NsKT1e8btWymg+5rHQzS/CJ7X0JK6uAdx0ZkVWwiPEvQnq7rhgcOHEh+n4/69ehBZZzTK5n83uecGjNGD5omZfMRISnpFtNMc6ASQE94ItYd9913H1100UXkmibdZRhUlfXNatumSZoWk8Aq1CEZCwaDC+bOnUvZ5DpOalYRJpYch2YYBh2rqjRGVUNKEQFLKYkxNjkYDK4IBoPfcM7/gizJJIBjAEwoAvzyUledPaqcZVm3TZ48OV0uBH2RRwATl5JO8ES2i3MqzuHZ2v/1qKOOSpw+dSqdZ5r0Xmamk+NQdcbD5c0ig+pxy0o7nn0Z45w/GQwG6eixY6ljy5Z0suPsthKlpaQzdD3mA54v1i4hxD/Gjx8fTaVSRES0ePFiMk0z7AOiqwvM+mVCkI8x+jfn9C/OyQd8vzegN2nSJPzGG2/QokWLqGfPnmEhxD+y+m8EgCOLAN+oGA+w18AD6Mo5D5126qlpn2nSMYZBL1gWLeCcZhpGqgljIRd4BzlOjwAOBfCEBUTbt2xJjmnSzzkdepauU19VLTrD0lJSG281Ocnv94e3bNlCRJ5Ebf8OHejlPIKh7Z6ELVqM+QFgO47zedeuXStHjhxZkTkyHqECt7oAXWsYtNG2KSElrbFtuljXKQDQK5nyQh6TF99T4IPB4Io33niDamj9+vVkWVYoq36tiu3hAG5BAc1ogwCfKaR3IBB4x+/3f23o+qIg8EEZsMzyuNu+Bb45RgXiMw2DRgtBNmO7AVSu61RMB1CTrjWMtAq8OmjQoBhl0XnnnENBgJoyRn0Uhe4yTapxgDha00IATqmjXXpmZh0HoHXmt8GdGas8S9cpCJCSyf9CXafvsgbu5oyx5l4A//WiRYtq27Jt2zbSdT2WVbeLAfytSN1PBdBynwK/BwOlC7esaN9evejIww+nFkKQDlAkZ1luqmn0bBFRbk260zSJM7YyGAzS1q1biYgoFotR986d6XbDoB9tm97hnI7TNGrFGH0lBJ2t6zEA5+9B3aUFhDdmQC7E1N7pWcjmNZsqJXHOL+/Ro0d4/fr1tHXrVs8s3HWfrUc9B6CIJ84+BR6epeduOmGfz7f0T3/6E02bNo2IiO649VZq6XjCj+zOO1jX6fI8zFRaSrpVCDo4EKA/BALUX9Pi3DS3n3LKKdSqVSs64fjjqXu7dnRCHmAetyxqyRgdqiiVACbtSbskcN/JmlbQUXOHlNSMsbRlWat9Pt8ngUBgjeM4T5ZymsjqO0UIcYNlWSHDMGKu6z4LQGQ9PxlZVst5vn8JRSR7+xr4E5FHR27b9vb169dTDa1du5aa2TZ1ZIy2ZQG1nHMqY6zWzKkm/V0I6tWlCy1atIjefvttal5eTpzzbR9//DF1b9eOztI0ms95wdl4oqaRAVRnd2Q92+WXwNqzdb16e04ZK4WgnrpORw4fToFAgG6//XZavHgxTZo0iRzbjgE4AyWaRNVRh24NJivYi0ooAEb6gTf9wIYA8J3wBAh/KzDjP7vggguoxhDjvnvuoYE+H11mGNRdUejtLNCOVVWamhPYoIVt0zfffFM7cN577z3y+/2/tm7dOtyc8zqDIHwkBDlA5V52fNAFXuBA9ChVrTpZ0yK9FaVKMEY3zZxJ1157LU2fPr22jslkktqVl9N+jEUcYH6pHHeR8nsBGFzk+YsA+u8z4AH4HGBpR8aq7jPN9AohaIkQdJGuV9tAysojXQLQ07Ks2MD+/WnikUdSs4zpUlpKesyyqGdGvTtAVakcSDtAvKuixJ7IeJg25pw2btxY26nLli0jv9//vaqqD/5BVet0U9pbjjunLU3giXX/BODspk2bhjKiVbr66qspm3p17EinaRo1ZiwtgYgfWK16rmQlGUzklDsBwJ+LPO+3z/Z4AMwFPj5N1/MGCPjRtqkNY2ET+FOeb49WgcTVhrHbMS4tJS3lnDoyFlWBWzPc9TEB4EMBVEjLqh46ZEhq8+bNtGHDBurdu3dYCHEdgIE9SrC7/14IMoFQfdtbQn/otm1vm3HNNbRw4UJq3LgxLV26lKqrq+muO+4gKQSdrGn0oRC0zrbpXc5pvGfHvxNAv/qWhSIiaHieyCVpLPekoUPaMlZVbGn9QggSwI7cpQ2eB+lcGwjfZJqprZk8klLSK5xTV0UJOcDcfDwCANNxnEdM04xYlhWybfsWeEEMOAeq1hYQsFRLSac4DumqSqqqpl3XXVAfhiun0/OKYx3g+z6OQ6aqUtAwqJEQpDJGPtumuQVOKK95njuVANrUow5nA7inyPNrAfTaJ8D7gVfuKuIBmsyYY/VWlAp4cdd2AS+zTB7gAM/pQCwIhDhQ7QNWApiCPXARFsBtx2laNB9jd6mUNPLww6mqqopisRhNmjQp5rrui/BEvp3rKg8Zy1tN0xKGYSQcx1mNHCGKBLauyxl4E1W11h+uUDpf11MCmF0P4AMoYtQJT1Zfkoaw3sAHgG/zhfOskJLGuy4ZqkpC16mvZSWR0cRlVWwgPMvbNo7jrOacV2ualhRC3LcngGflazvAl5M1Lbopx+6+s89Hn332GdXQzz//TJZlpVu2bFkZDAbDGQcIkVk9hmf27VOQcZVWVXVqmzZtQrfccgvdeeeddMEFF6SklOuyVyU/sGZRloh5u5TkA6iuqB3rbJssIF4qxw9gCIDTijyfhxINQuodA4cB1RGvkF3oNEWBHD0aO6uq8P0PPyDVpYtqGMagnNc+BnCM4zgLLr/88g7hcNjYvHmz2q5duymGYZxd37rUEBGFq4BDX08mH+8UDkcPDYcrx0QiVR3D4apfgOSWLVtq392yZQscx2GbNm1yNm/eLIYOHXqILcQrEvhpP0V54SRNmzVe0+60gW/8jL0rhDg5Ho/bixcvxsqVK/HEE08o6XS6BYDmNXmGgAfvTSQiNf//kE6jhaLAV0esnHaKAsWzsfeV2NQIPMfOQnQiPFF53VTf2WUCfz9d13fRxaelJEvTqKLiP7YS7733HgUCgTXwAvWcDuBKAH8H8KhlWdXZpsrPPvsslZWVLQTQVtO0mZZl3YECHiPwLG7/6PP5njBN82bkRK+Ap8o8Cp5FzmEAJgSDwfCTTz5Jzz//PLVo0YJuv/322rLff/99KvP5Uh/nrGJhKenvhpGUtp286KKLat9fsmQJmaZJyOLKATTiQNU7mVm/xrapFWN1qq3j3kkjjRJlC/CcNgvK4uGFlPlDSXntwbLaggPR73KWVJ9pUraAZu7cueQzjF8tIHqMpoUuN4zUOFWNGkDCZiy9Zs2a2ndnzZqVdl13Pue84vzzz0/eeOON1Lhx47Cu67s5CEop7+7atWtozpw5dO655yaEEL/mgp9TXx+AMwOBwL/KysoWGYYR+fzzz2vLnj17No30+WqZ0nN0nYaqKh2hqvQPw6COPl86W3GSTqdJ07Q0chhEAAMFEJphGMmfhKDWBUzHs9NzlkU+YFU9+n4KgPuKPJ8EoMs+AZ6IoANnN2Us/EGW0GWGbVOvLl3ozTffpKeffppcTUsdqarVv2YNkO1S0huWRWfqetJvGOlHHnmEbr755rQQImTb9sIbbrghVdPBq1evJt2TrWerdZtxzmPbt2+vBeLss89OmKZ5IzzzYz+y7MoNwzjNNM1Y8+bNK03TjKiqOlFV1WmBQCB844030mWXXZZ2OaelnNPxmkYtGKMZhkELOKdXOaepmkaOadKUKVNqbQHnzZtHnPOtyMOTANjPAR43gaip6+khRQRLESmpC2MR7KEIuQDwh2Bf+86pwPES+LkzY5V/1PXkZMsi17KoVfPm1KpVK+qlKOnc4IKfC0FHqiqlpaTxmpaQprku42h4QFlZ2ZLXXnuNFixYQLfddhvdeeedNQaGdlbDujVv3rySsujuu+8madtfCmC7CVRrQMIHfAvgWtd1w99++y0REX3++edk23YYXgCmwZzz2UJVt//TsmiiptE4TaNoHpA+E4JcIahbt27xIUOGVHDOqwAMqAMACSA9vH9/Gud4vvvZeX4jBPXzjq7P5xtARfIdC2BWkef3oYi+vkGAzxSkABjGOd/yl7/8hWo6+aAuXaiusJ9f5Zz1DV1/KWAY1Nt16Twp6VTOKchY2gesAHBApjyLc769xpV527Zt1LlTJ+qvqvGaKFQpKWk+59RXUarbNmmSikajtYNk9OjRlQBOdBznTtd1f/QpSuIZ06Q2jFExi+HFnJPp6fInFNtWspMQYuuCBQvokunTKWjbNMAT3CR6K0oFByoEMAP1lN/DCx1b70sgGhz4muTz+V69+uqrE0SeMYSuKHmXuC+FoEFZRhbNPWOKbhpwaiMgsjhHyZKQkh6yrHQmpEqvTOMPFkJsKy8vr+KWRSM5z+s3n5CSjtZ1OiOjDUwmk9SpU6eEaZrLBg8eHPnyyy9pwIEH0hBVpRvqMK0ix6EeihIGcFQ9QBpp23b4lFNOiY4ePTpsGMZOeL5to1EPA9CcPPdD8VAo9wMY918DHkArIcTPQ4cOrRo9enTCAPJ2XoWUtJhzL1yKYZAPSKtAygRojKrSBwVWiccsK+0Cq/Efo0MLwLndGasqBtZWKclWFJo1axYdOXQodZWSVEWhnTt3EhHRq6++Sk0VZZeInIXSBboeB3DpHgB1XuZUUwagk8/nW26aZsR13e8BDKxnfoMBzCjy/ECUGCK9QYDPFOoHcDyAMwSwc0UejvZnIWiyqlJjxmiKptESISgqJW22bbrdNKk1Y3RFTgjSmuW7meetUivbDgALHinBYOM4TaNDLYtutiwK2zYZqkqhUKh2FWhiGPRuCcCfrevVAC7ci/5xbdvecscdd6S2bt1Kr776KgkhwqVy4Zk89GJHP3hWQweWkleDXThIRDuJ6BkAlySAp26Nx6uzn6eJcAqAF1IpzDJNPME5DlFVWIyhqaLgz4aBz4TAy8kkHkzsGpFTYQzHa5qZGfEAAAaUt6tDQAIAnRUFI9NpXKzrEIqC44TAlIkTsWHDBqxYsQJxXU/8M5ksmkeKCC8kkwl4zh17Sod07tzZnD59ulJWVoYxY8bgpJNO0uCFfS+VxgJ4ssjzFvAmYJ3UoDdNMsYam8BbGjDluWTSnBOP1z6bm0zia8fBCCkxTdfzft9IUfCgZeHGeBxp2lU6KABV17RxZWVlXweDwffSQGJzzjv56Gci+LMGyP1EaLJ4MXp064ZBgwbtqIrF/v54IhH7KZ0umMc/k0lEiX4A8EmdBRamZDwe3yV2cCQSIZQabdqjBfA8fArREwA+LSmnBlzq2wvglz9qWnKlEPStbVNnxqifotBjlkUnaRo19/upZR4Dy1wp4AGKQotylt/+qprs06dP9eLFi+nee+9N67oeO1xVQ8XyqpKSAgBtzKO5G69pVcj4oVnAlW0ZC38sBH0uBG3LRMH4F+d0lme5EwNwxF72D5dSrr3kkkviK1asoHvuuSedCfDQuh559EERPgPePQFFjUkbdI8HoErg+ztNM5XduTHbpimWRc1clwKuS6ai0Jcl7KeTNI2eztq/V9s2ccZqvW6IiC677LI0B6L5TKlrBtB0XaeJmpb3+UBVrQAwvqYNpqY9a5kmtWvdmixdp7LM5UITNC09SlXDHIj5gNdQ4nGuQD818/v9r/l8vk1+v/8jAD1z+xHA4fCW/92YNHimVwWBhSeuLu3+vAYCfnRXRanM7dwZtk19u3enpUuX0uLFi6lFixbUU1HqBH6YqtKrmQHys21TB8YiAceJZcv3Z82aRYZhPC+AyhmGkcyOhvVvIegETaMDFYVy7ePI8cygLe9cHsjUv7fP5wt/9913dMctt1Bbzun9nKNlhZT0V8NI2MDmfKDUo6+62MAcB9jCgUo/sEbxQr81cRzng7Zt21Ydfvjhee+xgXcyOLBI3uejRO1cgwDvB166N4/uuYVt7xLgeN68eeSvgxPflAnjvcCy6AJdr5ZAhAMzbdv+fubMmclYLEbLly+nYDAYhhfbtZMDPGkB0daMVZR7oc/oXF2nyjygp6WkkzUt5gCPZ3XYmVOmTAl/9913VMb5bpK27HSFYSR8wPw96ScdOMsGIpcaRnylEPSzbdN7nNPRmhYSQKR///7RZDJJRAXvsRkO4IViExBF4gw2OPBljC3J50fXTIhd3J7ff/99EpxTIXektBctK+UCOwPAN8IwlgQCgdXBYPBjAFNd112uKEqKc76TMfZXeKZGozNLpAvPuKKrCpwRBMIvWdYugqQNtk1T/uNH58vqsPEHHnhg1UXnnUeX1OEgWelFuYqiRJl4VhlHlTEW+a5A/o9ZFjWWkrZt21bbX5l7bNrUo4xeADr8N2f8qw/mmfEXSEnD+ven77//nlavXk3du3Qhzjm1EIKezwnxuca2aYLnb7cCgC2lvO/ggw8Ov/feezR37lxyXbdmhjPDME5xHCcyfvz4qv3226/Kdd3FyPESBTDaD3xVxli4n6JUNLXthGEYJISI6bp+Yc67uuM4nzThPP1JCWHGx6hqFYCTUA85uw9YWYgfqeVtTLM24OGqVavIMIwYsixqAPRH1kqVB/i/oUjghAYHHsC4A/Ps8XEp6QIpqZkQ1MK2SRoGrVq1iubPn0+dmjWjAGOpfoqys6snv64Snu+XDUBXVTWxY8eO2tH/yCOPkN/vXwFgpqZpiRdeeIGIPCHM4MGDI4yx6Zm6KJlV4LQMF9zdcZxVp59+enz79u20YsUKKi8vDyuKMiGnDZYDVH5TAvCTNS3NGEubphku5fJjAN3KGAuXYgLeyLLS5513XrXf7w8bhnFqTj7NUCDObb0xayDgNQH89Jhl5bXFS0tJ5+l6tVSUkKZpqXbt2lVIKTfAE8iMgOf6Y2XlZ6mqmozH47XAv/TSS9TS50teruupc3SdWts2HdK9O3355Zd0xx13kJTyQQCa67pvd+nSpWry5MmhTMjUqy3Lqq7ZO4mIHnvsMQoGg7u5OgWAD5+pY1ampaTulkULFiygr7/+mho3bhzOPuoBsF3XfdR13Z/8fv9qeEKXUf3rCL1Ojnf81IAkPB+53TxiALQGcHwRHK5HkSDHDQ58ptD9BRC7MONRWtOYFULQBE2LSk9V2iIzEw+q69jhuu6i0047rTocDtO6deuoe/v29EAWH5H0FDjUxHGoX79+UcbYBQBOOfjgg0M1ARQ3bdpEtm1HdV2PRyKRWuDvuece8vv9u0WqAjCht6JUFrOc+Thz102NK/Xtt99OUsoHM993lFIuGzduXPXKlStp3rx55PP5wgAuLMUE/AfvtFHQBByelfJtRZ7vVypP0GDASykf7dOnT2TCmDHkM01qxhg1YiwqgO2GF8LDhaenvrLEgRR0XfdDVVXJNQyamXWPa3aaY5rkU5QQAFPTtH9cd911lE0HHnjgTsuyFg0fPjyybNkyev7558lxnAjyKEgA6BJYfYVhJPKVtcm2qQVj9EBWqPIrr7wybRjGK35ghQuELdPcJbzbvffeS36//2UOVOVj7OJS0tdC0FrbphsNI+UCzxXpEw1FTMMzW9yA/xrwACxN05I1NneRSIT+9re/keM47yLLnSoD/iOl5iuAuy7StKK3QldLSX7PCLEbgJMPOuigUM0WsXHjRrJtOwKgo+M4dwQCge8CgcByACOLtKVcAqv7KErVXMuiNbZNy4WgSw0jLoGIMIxVRxxxRGThwoU0e/bsNOe82gdEbzMMOtpxSFgWZd+K/eCDD1IgEHhVALdNyDEBX2/b1F1K6tC0KTXz+8knRArFgxT3B/BhkefTkGPSvq+Bl7quJ7L30YwB5Ts576mo44an7BQAvs01gsyXpmpaGMA1HLjdZ9tbO3bokBg/fnzU7/eHhRD11qjB04IdFwA+doAtPmCjDdwNoAsAS0o5q6ys7HOfz/ehAKLvcE6NOadbZ82ivn370tSpU2nTpk30wQcfUONgkHTPScR2gBWTNS1asxUOcF2a+be/UTqdpng8TmPHjk04jjMnqx4CQBAZgw146uhiQYyD2Bd30hRLrut+dNZZZ8XD4TCtWbOG2rZtG9J1/Y85FfOjjutDspMfWPdZCcCfqmkpC4hfahjxZ0yTztd16sBY1PQMOIbtSXvgWbucCs9HLq+fmwQevsYwEpdyTpdfcgkREe3cuZMmTZpEthDUwXHoRtMk4blLGQBsCdxjAeGDGatQFYWyLYQWL15MgUDgawAXmMAPimerEDOBsA3cA8+u/oYidf4HgL/8V4EHUObz+d5RVTWVcXO6DLvf1KAU6sR8yQe8emcd97alPaNFmpeHG3+P85rL/+plrgTgMM55aOLEiaEhQ4ZUmaa5LcOd7zKbOFCxzrbpXCnp1ltvpWzqVF5OKzODtqvnVXR4Vv4SwJGc8/Dy5ctrv7nnnnvSXFW3SyFo+jnn0GnTplFTzmkh53SJYcS515Zbi9RbYF950pTQab1RwGMTXvCj1ws8G6Lr+o2MsSuQUYQAGNSGsapCN0KT40XI6sjYbvF0a9JTXtTJFfVpg5Ry08MPP0xn/vGP5OecenBOnRUlYQFRx9OHtyEi6ED1V0LQFYZBjVyX3nzzTUqlUnTHrbdSJ9uu9fEfoKo7kcdsS1XVPwaDwfCsWbPoyiuvTFuaVu237fRbb71VOxjuvO02Oipj/r3Au9krjAIhz+AJlabuU+CRCSee5/cXAQwp8I0O4KLc33VdP6tRo0bha6+9Nn366afHOefb4d2qzBzgX8drWjTf1aCrbZvKGaN/Fjl7JzKqWV3XI6ZpXlxKuxhjqZbBIF3GOf2UE+PmCsNIZoxEj/QB1QGAjtY0OlJVyQXIZYw6Z9TSNStSuWdbmFeGDmCobdv3mKZ5uwAqLE2jqqqqWuCXLVtGvfz+2jpM0rSUXmA5hycPaXj/+Mw+Nc0PfKUASQVI+oF/Z7jJOgPrZZi7CZm/97OBeyWwRdd1ynawuPLKK5Ou6z6ZeU+6wMJmjIVuNIzUe5zTG5zTiZoWsYDaGxqLpeP9frr55pupVatWYVVVT6gLeEdR4ncVUR8/aJppG0jP0vV0KGtAxqSkhy2LGjFG/8p8/w7n5HqXKOdue7tMHABDuylKxSGuS/fcfTcRec4bfz7rLJqWubKVHIc+9KKFfl+g7t1QYnTr+oDuOsCnBytK6FXOKSolRTPuzX09G/FP4emDH0aBqA2ZgbPaBM6XQORyw4h/yDk5lkXZ9NJLL1FZWdminE46xAWeDgIryoBlOvBXCWwppPDJTpP8fnrqqafoySefpGAwOK8Y6ADOaMFYolj82rSU1JUxWlhgcCzknMoZo41CUCvGwgw4MasMzXGce3Vdr9Y0Le667jOZLfD4o1S18hshqI1t04ADDqDenTpRL8ehbKeUn7z79SoK1H86gAsaFHgf8NZJmhbL1yEpKWmapsV8wJvw/NVaCCGul1L+KqX81bbtG5A5kijAhKaMhddnLYXtbZueeeYZIiKqrq6mYcOGpTnnN5VQp5dvq4P5i0lJTTinb7/9lmbPnk1+v/+VrI5qCc9WfiSAA11glQ+IX1fCKnKzYdCfdL3g88MUhSQQE8C12XWWUt586KGHhn/55RfasWMHjRo1KuK67qMAjuitKBXkeLr/hZzTIs53s/f/VAhygR9KxW2vgAfQ1QdEcgMS5Xaw6wlSpnPO5/Tq1Sv89ddf0zfffFMTvWJmhqtP5YYBXy4EtRCCDurcmdo0bkwtbTvNLesnv9//FoDuRep1WDljoVCRes0xTTqke3d64oknyLFtquExAAzlnIeGDx9e0b59+xBnLPWQaaZP0bSS4uw9bll0YgHrHnIcesA0yQX+lVtnv9+/Mdt3b8OGDSSE2AnA4kDlmjpWsDM0LW4B1xfojwsBXF0KpiUZW1rAyWcYhmYUsWo1GcPpuq7pwERN0yY99thjomvXrthvv/3w+OOPC1VVTwXQOwhUD1PVXb7tpar4RlFw1w8/4NVQCKfE48y1rPITTzxxGOf8Y8ZYuwLFfhgien1EJILtXsNriYjwz0QCf6muRmzjRjx13nnoFI3GAKxnjCmWZb04b948+6233nI7lZfb/zAM5RTDYM0VBd8VMbysoe/SaTQr0h8uY9A93/ddiDFWvXPnztr/d+7cCUVREkQUY8CcP8VikUROW2ro01QKTySTLAbMKVDsS/Bum6yTSgKeA+27Kkqtaex36TSeSCTwajKJ6qxKdlNV3QZ+YYxVp1L/MR5NeubLBKCNy1jeMh3GcJCi4Apdx/xOnXDkscdi3rx57MADD5SKokzLfZ8xpgMYWwW882U6XdUuFMKpsRjujMcxs7oaB0QiuDoexztC4AsAbyST+InIgqfaLFMUxRw0aBDWrl2L5cuX44yM5e8UXcdjOe3KpSQRHkokMLWAtTAAfJFOJ6OeE8guVFlZef3xxx8fee2117BgwQKMGzcunEgkbgKACHDVslRqycBIJPJBMlkzi1FJhLvicRociUSjwB/Js/jNR63hSRfrplKWBQk8cFNmL32Vc2pk2zT5qKPo0P33p4MdpzZa9D8MI20C6wzDeKZr167hTz75hD799FPq3r17yLKsqwGMDgDxQozT45ZFh/XqVSvr/vXXX6msrIxUVb0/Z0kzHcdZ2rNnz6rJkyeHXNeNd1XV2CzTpHN0nS7WdVqYYzM3n3Pq1KwZ+f3+LwCopmmGly9fTk888QRNzjoukePQMZpGZ+p6XtlAWkr6U8aVutBynKU/yLtNqap6YjAY/LSsrOxzXdf/hF25e00F/uwAPwSBcGvGKiwg5gfegBe9em2RrW8sGvIcD2BYB8aqqm2bgqZJS5YsISLvuDH1uOPor5nLedp559XxAKRlWX/1+XwbfT7fRsuyroS3urgGEP0hI9HaZNs0wzBovKbRRE2jUapKF/75z5RNffv2JeRwqoqiXDxixIhIjWp09erVZFkW3WQYqXxArLNtam3bdPNNN5Hf71+XyWOClDJy2GGHxSfkMHM7paRDFYWGqSrNz7g6p6SktzmngaqacBhL9VeUdD7v2oSUdLymRd0S7fLgKa7OZYxdjSz5B7wTRgd45mTBzG86gFZF8vIj60LjhgBekcD620wz3cRxdgFm7ty5ND4QoIctKy298+oF8Dj7vDdAAkidqCixSzKRn8/RdXrWsugpy6LjNI04Y3TnbbcRkcf42LZdjRw7Mtd1H509e/Yu9WjdunWVBfwyRFWrXuecNtg2rRCCLjJNasQ53X7LLXTEEUdEHMe5K6suPQHc1ISx3U4rUSnpQdOk3opCSiZwcetAgPbv2TMthPjZBl5vw1hojmmmN9g2bbJtesyyqKuiVDmex43M1/5coGzbXj9mzJjI5ZdfnmrSpEmYc35JkfebALi3yPPzAdzRYMBnMu3OgZ22adJnn31G69evp2effZYG9u9PfXQ9nYnb1g3AlVLKzYyxtG3bm5EjxQPQWgA7eisKbc0zY9bYNjVTFOrZvXvUdd0w5/z83LooinLx8OHDIzXawG+++abmjtrmAE4JAF/awHYX+NnW9Z8Nw4gbhhF3HOdl5BiAwLtwaHUhe7hNtk0Bzunnn3+uHWTjx48nxtidAIb6gTdtYDsHdvq8+PxjUaL7s2EYM6dNm1arvN+0aROZplmNAvqMzIwuFsvWwr6Q1QNobwLLXVUlV1VphGHQCFUlP5D0ecGLj+Kch1544QVKJBK0YMGCGsfADll5vMuB2LYiR7AvhSDu7ZEHFqiH6brux126dAn1798/wjmP6rpe7CK+AIrf8jzMBcL5DC0/5pw6t2tH2XTLLbeQZVnLM99K13VfU1U1qapqMhO4uKTrQfx+/9z7779/l7ybNWtWhcK3cVsoYnOX4QFKuiGjvsD3EEDFLYaRzr6HLS4lPWlZZAKxIUOG/McKgYhOOOGEMIBag0QVWHiGpiXrOidnIk0Xsy8byDmPHHLIIZG2bduGXdf9uNTRXqjTLCA0WlVDcy2L3uCc/mYYyTIgwi2LPvzwQyIiqqqqogMOOIAYY68QEVzXffnYY4+NR6NRqqyspMGDB0eklCUtt6qq/vnQQw8Nx2JeyP3333+fLMuqQgGPWHi3Ra8s0obeKHLN+B4BD09hsubhAgaV5Dh0vWFQ7969dxnBo0aNCsE7goCIIICN/yxBQDLTMMgA8krvACic8201d7Mlk0k65phjIkKIG/cU+Ey+DgPOCgLvNmLsI8cTPx9iWdYG13WpX79+1KRJE7JtOwFglA+YzzmnH374oba9X3zxBfl8vp9LLE9zXff1pk2bhvr27VvjPTNiL+rfAQUuidgb4Pu3ZKyqmAw7LCUFhEhPnz49tWjRIrrqqqsSQojN2XuWClQ/XgLw1xkGacDdBerSSAixy80UL7zwApWVlb23N8AXaXsjx3HmCSG2SSnXc86/EIwlbzCMdBspKVun/tZbb5HPddMo8QrUDPfeG56XTNE74+C5UBW8qx5eiLeZDQq8BtxwlWHUGSX6TtMknxBbgsHgSp/P9yJyrsrQgNenlAB8b0UhE/g593QAT9FzrK7ria+++qq2w88///y44zgP5rw7CMAVAM5Eibcs19Hx/YQQ4baNG9NDGWZwNufUqUULevHFF2nu3LnUqqyMLtd14sD2Uvf6epRvoh7hWBoEeA7cNasEwF60LAoCnxap/AYTSOdzXa5J73NOrRmjLt697MdKKe8KBoPLbMNYLoDKgxSlcqimxQOuS9OnT6ejx45NCSG2ZM8YzvmlTZo0CV9yySXJkSNHhqWU3xVj8EpJgUDg9QsvvJC6OLvegvG4ZdHoQICOCgSo5obsgz0eZWIDA8+Rx54h6/kUAHNKyqvUQhkwfbKm1Xnr4lVeYN5iqs8BGvBqO8Yon0LiA86pGWP0Kuc0xzDIse2dkydPjk4+9ljqZpq15kzkOLRUCLrOMGiUqqa4dwdtjeVOmWmasU2bNlENTZ48Oabr+oy96fiysrJFx44dSzNKCMFyv2mSv+FvmZYo7jTZHEDXUvIqOSIGAU+/nEyyrUUUGAkizEkkqiNeKK9CNCgJfL2fouCQcBhHR6O4NR7HjdXVGBCJYGIshvstC2M0DQkAZY0bOxdeeKG1eMECLNI0dMtS8BysqrjKNDFPCGW6YQTd/ygvyhs3bhxv2bJl7bsDBgwwOecdSm1vPqqqqnruw/ffT/ipsBy/hvyMQfWAakgKw9u2ClE5vABIdVLpwBNt1YGHxsVikXxBjFNEODkWq64GtgLomy8PxpiEx8iwcsaqN0qJsaqKTek0fiHC+bqO9baNMZoGANhMhLJgMH3Prbfi3HQajZTC1b3MMLQEcARjrAmA9Vu3blWWLFkCAKiursaTTz4ZCYVCy0ptbz6Kx+N3bw+FPv4sVXf0ki9TqVQE2MoYM/amzBySANYXed4TnslanbRLTJY6X2ZMc4CnXMaOvNQwxFGaxjQA/0ql8I94PPRDOv1llRf5agcRVeV8KwHMUBTlbE3T9FQyqR3DGHpkZvC18TiuMXbto4fi8fh2IZJKMilOIkJZlho03/uPJhLVG4hOALA/gE6aph3XtGnTdEVFhRIKhXR4Hj27NJiIZjDGZuRp7jXwAv/n0v0asPEiXVetAvVJEWFWIgFFiARjbHs4HH4BwK+l5F9Hfa6DZ+VUmef9ZgCaAlhNRJfn+X63guq7zzAAA33AaxLYagPbA56ocgw8m7pTkROED95IvcgwjMjSpUuJiOiTTz4hv23TqgJM3nzPonQHgP42Y+lNJZhYHemFN5mcVW45gCPgrUB7HA8/N7nAoyNVNZwvGmZSSppqGHTkoEFERHT//fenbdve1BDlwzvR/DPP7wfAu5rMX3JeDcl8ZCoxGll27BnQpwCYMW7cuP+YjxLR+PHj0/1VNZF9u8MOKelm00wLzxniUCJCAPjsxToYqqxYeA1yPVddADjAGx0Yq3rQNOkn26Yttk3PeJcqJffv2HGXeD2c8xhK1JrVUa6GHFMueMEQTqoP6PsK+P0AtM/8bWdA7wfgmN69e1fWxLFJp9PUt2/fkA7Mt4BQB8Yq9lOUnRyI+oBXkKXLBnDiHxSlqpgX6+vehb7fNuTMrqOdCoAj/J7uoZIDVX5gqWVZ719zzTWpGtA3bdpEmqbF0QBn+sxqOyrr/wMyoNf/Rqt90CEz4MViswGcgEzgfHjGE18df/zx0blz59KUKVNiUspvkNEowXOd7oc8zgIATAl8+9cCXqwrhaCAp9QpKXLzPh4QHTnnFZdccknqrrvuolatWoUty/prAw62zZm/D4QXCia4J3nVi7krlRhjNoCjAWwgog+zfneEENdYltUzFoutjEQiM4iosnBOu+TZzAHeba0oLS82DGd/RUElER5PJGJzk0mKA2cliR5v8MbsATHG2lmWdZ5hGMHKysrXiOiFBs7/AHhL/CtEtGOP8mho4BljV8GLCX8vEX3cwHmr8My3/kxAewWIhoF/VgP3E9HPDVnW/6/EGPsRwFUAXtpT0AGPWWhomg/PzHckY2wk9uzYkvd9eA3GDs/CpSau7Ax4bk97nf//kfebwwt8vMegA/tgxv9O/zeoQYMY/07/d+h34H+j9Dvwv1H6HfjfKP0O/G+Ufgf+N0q/A/8bpd+B/43S/wPkViJUpzryvwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "mol = job.results.get_main_molecule()\n", "plams.plot_molecule(mol, rotation=\"-5x,5y,0z\")" ] }, { "cell_type": "code", "execution_count": 57, "id": "8211a515-8ec5-4a42-b8d2-1f413564efaf", "metadata": {}, "outputs": [], "source": [ "retrained_model_settings = (\n", " job.results.get_params_job().results.get_production_engine_settings()\n", ")\n", "retrained_model_settings.runscript.nproc = 1" ] }, { "cell_type": "markdown", "id": "e91d63ba-cd7e-45db-a5c8-cb82c4f0c987", "metadata": {}, "source": [ "### Equilibration and production MD settings" ] }, { "cell_type": "code", "execution_count": 62, "id": "99c2849f-77b9-451e-a0bb-27cbcecd8d68", "metadata": {}, "outputs": [], "source": [ "eq_md_settings = plams.AMSNVTJob(\n", " nsteps=8000,\n", " timestep=0.5,\n", " thermostat=\"Berendsen\",\n", " tau=100,\n", " temperature=300,\n", " samplingfreq=100,\n", ").settings\n", "\n", "prod_md_settings = plams.AMSNVTJob(\n", " nsteps=50000,\n", " timestep=0.5,\n", " thermostat=\"NHC\",\n", " tau=200,\n", " temperature=300,\n", " samplingfreq=100,\n", ").settings" ] }, { "cell_type": "markdown", "id": "f4253870-2a81-4b04-8a3a-1ac6288478cf", "metadata": {}, "source": [ "### Retrained model equilibration" ] }, { "cell_type": "code", "execution_count": 63, "id": "823bd728-407b-4807-88d4-bf2230eb7b2c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[22.02|13:39:24] JOB eq_md_dens_1 STARTED\n", "[22.02|13:39:24] Renaming job eq_md_dens_1 to eq_md_dens_1.003\n", "[22.02|13:39:24] JOB eq_md_dens_1.003 RUNNING\n", "[22.02|13:42:58] JOB eq_md_dens_1.003 FINISHED\n", "[22.02|13:42:58] JOB eq_md_dens_1.003 SUCCESSFUL\n" ] } ], "source": [ "retrained_model_eq_md_job = plams.AMSJob(\n", " settings=eq_md_settings + retrained_model_settings,\n", " molecule=mol,\n", " name=\"retrained_model_eq_md_dens_1\",\n", ")\n", "retrained_model_eq_md_job.run();" ] }, { "cell_type": "markdown", "id": "882199bb-1656-477b-988e-ab1384add567", "metadata": {}, "source": [ "### Retrained model production simulation" ] }, { "cell_type": "markdown", "id": "e4ae2fde-f703-4cce-8743-1411cb2b2da8", "metadata": {}, "source": [ "Let's then run a production simulation from the final structure of the above equilibration MD using both the retrained model and the reference engine:" ] }, { "cell_type": "code", "execution_count": 70, "id": "7603d2ea-d52b-491d-a4a3-5c20d3f293e6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[22.02|13:46:22] JOB retrained_model_prod_md_dens_1 STARTED\n", "[22.02|13:46:22] Renaming job retrained_model_prod_md_dens_1 to retrained_model_prod_md_dens_1.005\n", "[22.02|13:46:22] JOB retrained_model_prod_md_dens_1.005 RUNNING\n", "[22.02|14:07:30] JOB retrained_model_prod_md_dens_1.005 FINISHED\n", "[22.02|14:07:30] JOB retrained_model_prod_md_dens_1.005 SUCCESSFUL\n" ] } ], "source": [ "retrained_model_prod_md_job = plams.AMSJob(\n", " settings=prod_md_settings + retrained_model_settings,\n", " name=\"retrained_model_prod_md_dens_1\",\n", " molecule=retrained_model_eq_md_job.results.get_main_molecule(),\n", ")\n", "retrained_model_prod_md_job.run();" ] }, { "cell_type": "markdown", "id": "9c146631-7b6c-430a-ba0b-f69a3686122a", "metadata": {}, "source": [ "### Reference equilibration MD" ] }, { "cell_type": "code", "execution_count": 76, "id": "d35c5ce0-4c7d-43ba-8c7d-aac26fb1f851", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[22.02|14:08:55] JOB reference_eq_md_dens_1 STARTED\n", "[22.02|14:08:55] JOB reference_eq_md_dens_1 RUNNING\n", "[22.02|14:09:19] JOB reference_eq_md_dens_1 FINISHED\n", "[22.02|14:09:19] JOB reference_eq_md_dens_1 SUCCESSFUL\n" ] } ], "source": [ "reference_eq_md_job = plams.AMSJob(\n", " settings=eq_md_settings + ref_s,\n", " molecule=mol,\n", " name=\"reference_eq_md_dens_1\",\n", ")\n", "reference_eq_md_job.run();" ] }, { "cell_type": "markdown", "id": "749ef253-6b94-4285-84a3-3ea68dd30c6b", "metadata": {}, "source": [ "### Reference production MD" ] }, { "cell_type": "code", "execution_count": 77, "id": "7ae0f1ab-58d1-4f40-99a9-99c1c7166aee", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[22.02|14:09:19] JOB reference_prod_md_dens_1 STARTED\n", "[22.02|14:09:19] Renaming job reference_prod_md_dens_1 to reference_prod_md_dens_1.003\n", "[22.02|14:09:19] JOB reference_prod_md_dens_1.003 RUNNING\n", "[22.02|14:11:59] JOB reference_prod_md_dens_1.003 FINISHED\n", "[22.02|14:11:59] JOB reference_prod_md_dens_1.003 SUCCESSFUL\n" ] } ], "source": [ "reference_prod_md_job = plams.AMSJob(\n", " settings=prod_md_settings + ref_s,\n", " name=\"reference_prod_md_dens_1\",\n", " molecule=reference_eq_md_job.results.get_main_molecule(),\n", ")\n", "reference_prod_md_job.run();" ] }, { "cell_type": "markdown", "id": "922a0182-9002-43fb-aa48-b402789cd9ac", "metadata": {}, "source": [ "### Mean squared displacement (MSD) helper functions" ] }, { "cell_type": "markdown", "id": "577d1d9f-3081-44c6-af28-be79d29977ae", "metadata": {}, "source": [ "For a detailed explanation of the MSD and RDF jobs, see the \"Molecular dynamics with Python\" tutorial" ] }, { "cell_type": "code", "execution_count": 182, "id": "f4fd0a5f-7494-4936-9b22-715a0505a149", "metadata": {}, "outputs": [], "source": [ "def get_msd_job(job: plams.AMSJob, symbol: str = \"O\"):\n", " atom_indices = [\n", " i\n", " for i, at in enumerate(job.results.get_main_molecule(), 1)\n", " if at.symbol == symbol\n", " ]\n", "\n", " msd_job = plams.AMSMSDJob(\n", " job,\n", " name=\"msd-\" + job.name,\n", " atom_indices=atom_indices, # indices start with 1 for the first atom\n", " max_correlation_time_fs=4000, # max correlation time must be set before running the job\n", " start_time_fit_fs=2000, # start_time_fit can also be changed later in the postanalysis\n", " )\n", " msd_job.run()\n", "\n", " return msd_job\n", "\n", "\n", "def plot_msd(job, start_time_fit_fs=None):\n", " \"\"\"job: an AMSMSDJob\"\"\"\n", " time, msd = job.results.get_msd()\n", " fit_result, fit_x, fit_y = job.results.get_linear_fit(\n", " start_time_fit_fs=start_time_fit_fs\n", " )\n", " # the diffusion coefficient can also be calculated as fit_result.slope/6 (ang^2/fs)\n", " diffusion_coefficient = job.results.get_diffusion_coefficient(\n", " start_time_fit_fs=start_time_fit_fs\n", " ) # m^2/s\n", " plt.figure(figsize=(5, 3))\n", " plt.plot(time, msd, label=\"MSD\")\n", " plt.plot(\n", " fit_x, fit_y, label=\"Linear fit slope={:.5f} ang^2/fs\".format(fit_result.slope)\n", " )\n", " plt.legend()\n", " plt.xlabel(\"Correlation time (fs)\")\n", " plt.ylabel(\"Mean square displacement (ang^2)\")\n", " plt.title(\"MSD: Diffusion coefficient = {:.2e} m^2/s\".format(diffusion_coefficient))" ] }, { "cell_type": "markdown", "id": "b2a35559-dbc7-4989-b071-700727c350b2", "metadata": {}, "source": [ "### Temporarily turn off PLAMS logging\n", "\n", "Technically, the MSD and RDF jobs are normal PLAMS jobs. However, they are very fast to run. We can turn off the PLAMS logging to keep the Jupyter notebook a bit more tidy:" ] }, { "cell_type": "code", "execution_count": 190, "id": "0041e91e-51b2-429b-b37b-7622070fd9ba", "metadata": {}, "outputs": [], "source": [ "plams.config.log.stdout = 0" ] }, { "cell_type": "markdown", "id": "d48bf8e8-6a41-43c4-ba75-451e195e5790", "metadata": {}, "source": [ "### Retrained model MSD, diffusion coefficient" ] }, { "cell_type": "code", "execution_count": 191, "id": "cbbb0b99-cab4-4af6-997d-e2eba954a536", "metadata": {}, "outputs": [ { "data": { "image/png": "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8cwzz+h1112nGzdu1KZNm+r69euTzy1YsEDPnj2rqqpTpkzR66+/PvlcdHS0tmvXTlXTfg78kdp7BESoF1uXbgT4D7ACmAK87m7/9pJ5RrdAGMR/zozUuo/O0JfmbM72vLObvGoQfV+0zp076yOPPKLt2rXTRo0a6ZIlS1RVNT4+Xh966CENDw/XVq1a6VtvvaWqqqdPn9Zu3bppWFiYtmzZUr/77jtVVd21a5c2bdpU77jjDg0NDdWoqKhkee+++65WrFhRg4ODddiwYbpr1y5t0aKFnj9/XmvXrq1VqlTR1q1b6xdffHGBnr/++qu2a9dOW7dura1atdKtW7decE2JiYn60EMPaYsWLbRly5bJ6RcuXKhXXnmlDhgwQJs1a6ajR49ONtA//vijdujQQcPCwnTw4MF6+vRpT/fxtttu088//zz5uHHjxrp///4L4iQmJmrlypU1Li5OVVVXrFih3bt395Q+6Z6k9T+lRWJiolaqVEljYmIuOjd+/HgNDw/XFi1a6KhRozQxMVFV0/7Pz549q9ddd522atVKr7/+em3fvr2uXr1aVVU/+ugjveGGG5KvbevWrdq+fXvdvXv3RXLXrl2rf/nLX5KPZ82apQ8//PBFz8H+/fv1yiuv1NatW2uLFi2S9UhJVgyilzbEcJzB2fnOdcmbi3bw9pKdDO9Qlwe7N85tdTLG7DFwcGP25nlZK+j1QpaziY+PZ9WqVcyaNYvx48czf/583n//fcqXL8/q1as5f/48HTt2pHv37tSuXZtp06ZRrlw5jh49SocOHejXrx8AW7Zs4cMPP2TKlCkX5H/rrbeybNky+vbty+DBg4mKigKgWLFiTJgwgYiICCZPvthp+1tvvcV9993HjTfeSGxsLAkJCRec//bbb1m3bh3r16/n6NGjtGvXjquuugqAVatWERkZSd26denZsyfffvstXbp04dlnn2X+/PmULl2aiRMnMmnSJMaOHcv999/PwoULL9JhyJAhjBkzhn379lG79p/DuYKCgti3bx81avzZkXfs2DEqVKhAkSJFLogDeEqfGpMnT+aTTz4hPDycV155hYoVK15w/ptvviEsLIzixS9eA+juu+9m7Fhn1eHhw4czY8YMrr32WiD1/3zKlClUrFiRDRs28OuvvxIaGpqc180338zNN9+cfNyoUSN+/vnnVHV+//336dWr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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "retrained_model_msd_job = get_msd_job(retrained_model_prod_md_job, \"O\")\n", "retrained_model_D = (\n", " retrained_model_msd_job.results.get_diffusion_coefficient()\n", ") # diffusion coefficient, m^2/s\n", "plot_msd(retrained_model_msd_job)" ] }, { "cell_type": "markdown", "id": "597c9023-cea4-4b75-9a09-ab7bf07c03e8", "metadata": {}, "source": [ "### Reference MSD, diffusion coefficient" ] }, { "cell_type": "code", "execution_count": 124, "id": "51eb8022-76b6-4f06-857d-a0d72c638f73", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUQAAADgCAYAAAB7EB+KAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAA9qUlEQVR4nO2dd3gUVdfAfyf03kEgQOg9BAgIglIEKSKiogKKvqKIvbx2faWpnx0bYsWuiAUUaSrSFakiHYQQIPQWCIFAkj3fH3cSNyHZTMpmU+7veebZKffec2Z25sxtc46oKhaLxWKBoEArYLFYLHkFaxAtFovFwRpEi8VicbAG0WKxWBysQbRYLBYHaxAtFovFwRpEi8VicbAGMYcRkTkicrPX9rMickREDjjbV4nIHhE5JSJtsyFno4h0z77G/kdESonITyJyQkS+dfYlXxcRqetcjyIZlHOxiGzNHa0t/kBESorIkyLSP9C6pImq5ukFiATOAVVT7V8LKBDibAcD3wNHgBPAeuA/zrEQJ+0pZzkIzAR6Z1IXBWKdMo4CvwHX+0hfBzgDVPfatwO4MtDXNZf/w+HACqBoetclQPdVLz+UezmwFIgGDgAfAOUyyHM/sNO5tzYDTbJaVgZyQoAFwGlgi/f5AwI8BewGTgJfA+Vz+NoUAX4EVjrPaN9Ux5s4xw8Dx4CfgaZplPMLcJk/7ov8UkPcCQxN2hCR1kCpVGk+B/YA9YAqwE0Yw+dNRVUtC7QBfgWmi8h/MqlLG6eMpsAnwEQRGZNO2nrAUVU9lGrfxkzKzO/UA7apaoLXdurrUlCoADwL1AKaY17UL6eXWERuA27FGL+ywADMSz3TZblgCvAX5vl4CvhORKo5x27CvLi6OPJKAW9lQ1ZavA+UAC4BBgIfi0hHr+MVgRmYZ6sG5iX6o3cBIlIGaA8symHdDIF6Q2firRIJ/A9Y6bXvFcwf6l1DPAWE+XgzKk4NxWv/wxijGeRSFwUapdo3GIgDqjjbC4HbgF6YWpDH0W2K85tUy9yRVpkYI/uss14VU5ONxrwxlyTpilcNB3OTvQ7sc5bXgRLOse5AFPAQcAjYD9zi4xwrAx875RwHfvA6NhLY7ugyA6jldawZ5iVzDNgKXOfsH4ep4cc75z8q1XX5JPX/k54OSefiJbMWplVwGPPSvM/r2FjgG+AzIAbzEgp3jn3uyD/j6PCoH+/fq4H16RwLwrzEL81KWRiDOdn5T/dijGeRdPI2Ac7iVcN07qc7nPXvgEe8jl2Eua9L+3guHwHWYe7nyRgjNse53vOASl7pn8cYtxJe+zo799N5tUCv+0Bxni1n30BghrPeEViFqdEeBCZk+//y142QgzdUJMa4bMW8JYvwb03Q2yDOA34HhgB1U5WR4oHz2t/A2d/c2Z4ETPKhS1oGsRiQAPRzthcCtznrKR7gtMpIY/sT/jWIzwPvOjKKARcD4n1dnPXxwJ9AdaAa8AfwjJcOCU6aYkB/TJOpUjrnOAuYClRy0ndz9vfE1FzaYQzwW8Bi51gZ5z+5BSjqpDkCtHSOjwW+8JKR4rqk/n986JCcD2NMVgOjgeLOfxkB9PGSGeecbxHnWv6Z+r7y8V/XxbyI0luGubx/Xwe+9iFDMU3mPRijPo50XtCpywJ+AN5zrn91TI1qVDp5rwI2p9o3EXjLWf8erxcDpqaomBZRes/lnxgjWBvzsl0DtHXuj/nAmGw++4OA/an2vZt0jsAyYLizXhbolB15qkpR8g+fY6r1izD9H3tTHb8WeAx4GmgmIuuBkaq60keZ+5zfygCqeldmlVLVeBE5klRGDhMP1ATqqep2zBs9LW4A7lWnCSoi4zAPytNe5YxX02SdLSKnMM2SP70LEZGaQD/MG/m4szupaXID8JGqrnHSPgEcF5EQ4EIgUlU/dtKuEZHvMbXnTHUPZKCDNx2Aaqo63tmOEJEPMC/En519S1V1tlPu58ADbvVQ1d2YJlyWEZHewM2Y65MWwc7vZUBrR94vmBr9B77KEpEamOtUUVXPALEi8hpwO+a/T01ZTL+dNycwxgxMze5REfkGUyt/zNlf2scpvqWqBx19lgCHVPUvZ3s6cKmPvD4RkWDgbeC/qQ71A55z1uOBRiJSVVWPkOp+zgr5pQ8RjEEcBvwH0wxKgaoeV9XHVbUl5q21FvhBRMRHmUk3w7GsKiUixTC1siyX4YOXMU2KX0QkQkQeTyddLWCX1/YuZ18SR/Xf/jswNcSyaZRTBzjmZYjSlaGqSQNLtTG19QtFJDppwRjQC3ydXDr40sGbekCtVDKfxPz3SRzwWj8NlBSRXKkEiEgn4CtgsKpuSyfZGef3JVWNVtVIjDFLMQKbTln1MLXn/V7n/x6mppg0C+GUs1yM6Roon0p+eUzzFuAjTLfOQsxLbIGzP8rHaXr30Z9JYzuteyxDnH7NXzCttSle+1sDJ1V1j7PrVkxXwBYRWSkiA7Iiz5t8YxBVdRemSdEfmJZB2iOYfsZa+K65XYWp6mdnKseVmCbpiizmP03Kt3CyEVHVGFV9SFUbAFcA/xWRtN66+zAPSBJ1+bf2mxn2AJVFpGJGMpzO7SqYmvoeYJGqVvRayqrqnTmsQ+p0O1PJLKeqbqdzqK+DXlOB0ltu8JG3LaaPdYSq/uZDzFZM/2q6uvgoaw+mT7Cq1/mXdyoEqGpL5z8oq6pLMEaugYiU8yqjjbMfVfWo6hhVDVHVYGf/Xs5vifkVEamEMYYzVPW5VIf7Y7pTAFDVf1R1KOYl8CJmkKhMduT7NIjOnKHBIvKGiHwrIp+JyKMi0jI7QrPBrUBPVY1NfUBEXhSRViJS1PnT7wS2q+rRNNLWEJF7gDHAE6rqyawiIlLZeSjeBl5MS45L1gLDRKSIiPQFunnJGCAijZxa7kkg0VlSMwX4n4hUE5GqmH61LzKriKruxzSdJolIJREpJiKXOIe/Am4RkTARKQH8H7DcqdXMBJqIyHAnTzER6SAizXNYB29WACdF5DFnnmMR5//v4FLUQUy/Y3p67PYyKGktX6aVT0RaAXMxXRg/ZXCupzF9pY+KSDmnmTgScz19luVcp1+AV0WkvIgEiUhDEelGGjg1y7XAGOe5vgoIxfQdJt3PDcXQApiA6WbJ9LORVUSkPKa743dVTas1dDkw2yv9jSJSzdEx2tmd1vPhmnQNooiMxQxSdAaWY6rj32BqQy+IyK8iEpod4ZlFVXeo6qp0DpcGpmMuTASmNjMwVZpoEYnFzFHsD1yrqh8lHRSRd0Xk3QzU+FtMH9x2zGjyg6o6OtMn8y/3Y2p/0Zhm5g9exxpjBotOYTqQJ6nqwjTKeBYz2rYOc25rnH1ZYTimb2YLpvb8AIBTO3ka8wDtBxpi+utQ1RhMP9gQTE3yAOaNXSIndfBGVRMx1y0M03I4AnyIGXl1w/OYl0i0iDycRT3T4iFMF8pkr9pkcj9qGvfYPZj/dx/mP/4K03zNsCxMn3pxYBOm3+87TJ9zegwBwp20L2Ca4IedY1UxxiYW80L6SFXfz/TZZ4+rMH3Dt6SqjdcVkQqYQdU/vNL3BTY6z+MbwBBVjcuOAkkjlucfELlcVWeledAcr44ZzU3PQFksFkuOICLXYQz4dX6Vk55BtFgslryCiFwGxKjqMr/K8VFDLIJpEgYDc1X1d69j/1PVrDbJLBaLJU/ia1DlPUwH/1HgTRGZ4HXsar9qZbFYLAHAl0HsqKrDVPV1zGTQsiIyzRlh9DW3z2KxWPIlviapFk9acSb13i4iozGf5GRpwmVGVK1aVUNCQvxRtMViKcSsXr36iKpWyyidL4O4SkT6qurcpB2qOl5E9gHv5ISSqQkJCWHVKjtobbFYchYR2ZVxKh9NZlW90dsYeu3/UFWLZUc5i8ViyYtk+OmeZODF2GKxWAoKGX26V45UDhrdIiJNRWSt13JSRB7ISlkWi8WSG6TbhyjGDdMP/OtqJ1Oo6lbMZ1VJtcy9mE/rLBaLJU/iq4a4BHhBVWfkgJxLMR6iXXVsWiwWS2pOnIln4uxV/LR0jd9k+BplPs6//gKzyxCMRxaLxWLJFDFx8XyxeBNn/3iH/+gMoip3gq4+PQBmGV8GsTvwjYioqr6dVQEiUhzjdeaJdI7fjvHyS926dbMqxmKxFDDi4hP5culWji1+j/94plFNThJTrxet+mXHuZRv0jWIqhorIgNJ2x15ZugHrElyNZ6GnPcx0bgIDw+3niYslkJOfKKH71ZEsGvee9yc8B015RgxtbtCv7GUq+PW3WXW8OlO3fE5d1s2ZQzFNpctFksGeDzKrL/3sGHO+9wY9zVDgw5zsnp76P8p5eqn5SM45/FrfAkRKQ30xoSetFgsljRZsu0gf/z4AYNjvuCKoP2crNIK7f8O5Rv1Ap9hkXKWDA2iiMRwfsyHExgPzQ+pakR6eR0X6VWypaHFYimwbIiK5tfpH9H38Ec8FrSHExUak9jvC8o3H5CrhjAJNzXECRj35l9hvNwMwQRC2opxdd7dX8pZLJaCSdSxWGZO+4LOu9/lwaAIosvWI/6yD6gQOhiCAhf7zo1B7Kuq3nFl3xeRPx1HD0/6SzGLxVLwOHE6np9mfEOzTW9wR9BWTpSsyZleb1Kx/Q1QJPBh4t1o4HHiGXznbA/2OmZHhS0WS4acS/Aw9+efqL7yZW5kPSeKVyX64heo2OVWKFo84wJyCTcG8QZMRKtJGAP4J3CjiJTCRAyzWCyWNFFVli5ZQNDC5xjoWcXJoArs7/A0NXvdDcVKBVq988jQIDqDJlekc3hpzqpjsVgKCuv+WkHM3HFcfHYpMVKGnW3+S0j//1K+RLlAq5YubkaZq2GCZ4d4p1fVEf5Ty2Kx5Fci/1nPvh/HcWHMPOKkBJsaj6LpVU9Qv3SlQKuWIW6azD9iHD3MAxL9q47FYsmvHInaTsS0sbQ7OosaFOXvOsNpPvhpWlSsHmjVXOPGIJZW1cf8ronFYsmXxB6NYtu342i5fxphwOrqV9P4mjG0uyD/+SZwYxBnikh/VZ3td20sFku+4dzJw2yb9iyNIr+itSawvEI/6l09hgtDmgZatSzjxiDeDzwpImeBeMzkbFXV8n7VzGKx5En0zHH++fFFgrd8TAs9y++le1B1wBi6tAwLtGrZxs0oc94dErJYLLnH2VPsnvsalda+SxM9xeKiXSje+ym6drwICcBndv7A1dRwEakENAZKJu1T1cX+UspiseQh4uM48NvblF7xJnU90fwe1J7TXR+nZ4/eFAkqGIYwCTfTbm7DNJuDgbVAJ2AZ0NNF3orAh0ArzKTuEaq6LOvqWiyWXCPhHMeWTiZo6StckHCEP2nNgXav0bfflZQsVjCDcbrtQ+wA/KmqPUSkGTDOZflvAHNVdbDjObt0FvW0WCy5RWICJ1d8SeKC56l8bj9rtAlbW4yj/8Dr6VSqYIdkd2MQ41Q1TkQQkRKqukVEMhxGEpHywCXAfwBU9RxwLlvaWiwW/+HxcGbtt5z55Vkqx+1mvac+PzR8hf6DbqRdhbz3mZ0/cGMQo5ym7w/AryJyHOMOLCMaAIeBj0WkDbAauF9VY7Ooq8Vi8QeqnNs4k1Nzx1H51D/s8tThu9rj6XXVCG6pXrjGVEXVvcMaEekGVMA0g33W9kQkHOMIoouqLheRN4CTqvp0qnTeQaba79plI5VaLLmCKon/zOPErDFUPrGRCM8FzKl2CxcPup3QOpUDrV2OIiKrVTU8w3TpGUQRKauqpzIQkm4aEbkA0+8Y4mxfDDyuqpenV154eLiuWrUqI50tFks28UQsIXrWGCofXU2UVmVauRtpP/BOujS5INCq+QW3BtFXk/lHEVmL+ZZ5dVJTV0QaAD2A64AP+NdPYgpU9YCI7BGRpqq6FROsflPmTsNiseQkumclx2eOpvLBP4jXirxZ6g6a9r+be1vXKTBzCbODrzCkl4pIf0yAqC7OXMQETOiAWcDNqnogg/LvBb50RpgjgFtyRm2LxZIp9q/j+KyxVIr6DdVyvFXsPwRfdi93hzcscHMJs0NGYUhnA1n+hllV1wIZVlMtFoufOLyV47PGUSlyFkFamklFhlGpx72M6tyM4kUDF7skrxL4IAYWiyXnORbB8dnPUGH7DxTT4rwfNJiSl9zHiItbFdhJ1TmBNYgWS0Eieg/H5/4f5bd8TUktyqcyAE+X+7ihW1vKlLCPe0bYK2SxFARiDhL9y/OU2fAFpT3KVLmM2Asf4Pqe4ZQvWbC/LslJ3HzL/LmqDs9on8ViCQCxR4me9zKl135EWU880+nBsfb3M6TXRVQobQ1hZnFTQ2zpvSEiRYD2/lHHYrG44kw0J+a/QYnV71I+8QwztSv7wu7juj7dqVwm74T1zG+kaxBF5AngSaCUiJxM2o35Hvn9XNDNYrGk5uwpTiyaSLHlE6mQGMNcT0d2tn6AwX17Ua1ciUBrl+/xNQ/xeeB5EXleVZ/IRZ0sFktq4uOIXvIeRf94jQoJx1ngacu2FvcxqH9/+pYvmXF+iyvceMx+QkRqA/VIGYbUOoi1WPxNwjmO/z6ZoKWvUjH+ML97WrG+yfNcecUgehQSDzS5iZtBlReAIZjP7pLCkCpgDaLF4i8SEziy7DOCFr1E5fj9rPY0YW3jp+l7xXV0qWgNob9wM6hyFdBUVc/6WxmLpdDj8XBg2RRk0QvUOLeb9dqAWQ1fodfAG2hf0fpX9jduDGIEUAywBtFi8Req7Fn2LUELn6f2uQi2aR0WNXqB7gP/w3DbNM413BjE08BaEfkNL6Ooqvf5TSuLpbCgSsTyGcj856h/biuRWpOfmoznooG3c105awhzGzcGcYazZBoRiQRiMH2PCW78kVkshYV/VvyM57dnaHp2PXupxq+NnqbjoLu5oqw1hIHCzSjzpyJSCqjr+DXMLD1U9UgW8lksBZJtqxdw7tfxtIpbwyEqsbDx47QfdB+9y5QJtGqFHjejzFcArwDFgfoiEgaMV9WBftbNYilQ/PP3H5yaO562Z5ZxnHL83vBB2lz1EN3LFq64JXkZN03msUBHYCEYH4ciUt9l+Qr8IiIKvKeq9gsXS6Hjn42riJ49ng6xizhJGf4MuZtW1zxKl3IVA62aJRVuDGKCqp5I5V7cbWSqLqq6T0SqYyL2bUk9oTtVkCmXxVoseZ+Ires5NHMcHU7OI05KsKLObTS/5gk6VawaaNUs6eDGIG4QkWFAERFpDNwH/OGmcFXd5/weEpHpmJrm4lRp3sf5Njo8PNx9CECLJY8SGbGVvT+O58Lo2dSkKH/VvoEm1zxNxyoFM4BTQcKNQbwXeAoz5WYK8DPwTEaZRKQMEKSqMc76ZcD4bOhqseRpdu+KIPKHZ7jw2AxqAX/XHEzDq54mvIZt+eQX3Iwyn8YYxKcyWXYNYLrT1C4KfKWqczOtocWSx9kTtYft05+j05HvqUUC66tfQchVY2hfq2GgVbNkEjejzOEYN2AhpHTuEOorn6pGAG2yqZ/FkmeJ2n+AzdOep9OhqXQjjo1VLqPWoHG0rds80KpZsoibJvOXwCPAesDjX3UslrzP3oOHWT/9JTrt/5LeEsvGSj24YOBYWjcIC7RqlmzixiAeVtUsfalisRQk9h45zl/TJtBp7yf0lZNsrdCFhAFjadmkY6BVs+QQbgziGBH5EEj9LfM0v2llseQh9h87wcppb9Jxz0cMkGNsLxeOXj6Ops27Blo1Sw7jxiDeAjTDeLxJajIrYA2ipUBzMPoUy6ZPon3k+wyUw0SWac3hfu/TqHXvQKtm8RNuDGIbVW3td00sljzCoZOnWTL9A9pFvMMg2U9U6aYc7v06IW0vh5QfKFgKGG4M4p8i0kJVN/ldG4slgByNiWPBjE9ove1trpHd7C9Zn8OXfkRwh6utISwkuDGIXYGbRWQnpg9RAM1o2o3Fkl+Ijj3LLz9NofnmNxgsERwqEczh7m9Ts9MwCAoKtHqWXMSNQezrdy0slgBwMi6en2d9R4N1r3OdbOFosRocvHgCNbreDEXcPBqWgoabL1V2iUhXoLGqfiwi1YCy/lfNYvEPp88lMGfuTGqteZVrWUd00Soc7PwcNbqPhKI2tnFhxs2XKmOAcKAp8DFmtPkLoIt/VbNYcpa4+ETmzvuFyite4RpdRUxQBfaH/4+ave+BYtZLtcV91L22wBowHmxExHq0tOQbEhI9/LJoMSWWvsggzx+ckrLsbfcwtfs8SLkStrFj+Rc3BvGcqqrj5DXJi43FkufxeJSFfy4nYf7z9IlfxLmgkuxudTd1L3+UsqUqBlo9Sx7EjUH8RkTeAyqKyEhgBPCBf9WyWLKOqrJ87Tqi5z5Hr7hfSZCi7G42gpCBT1K3jHXOakkfN4Mqr4hIb+Akph9xtKr+6laAiBQBVgF7VXVAljW1WFywYes2omY8S49TswgS2NVgCCGDRlO/Qs1Aq2bJB7gZVKkPLEkygiJSSkRCVDXSpYz7gc1A+SxrabFkwM49u9n2/XNccnwazSSBiNpXUu/qsTSsGhJo1Sz5CDdN5m+Bi7y2E519HTLKKCLBwOXAc8B/s6KgxeKLg4cOseG75+h4cCr1iGNr9b7UvXo8TWo2CbRqlnyIG4NYVFXPJW2o6jkRKe6y/NeBR4F0R6VtkClLVoiOPs5f379E292fcqnjk7DWoHE0D7E+iS1Zx5U/RBEZmOQTUUSuBDIMPC8iA4BDqrpaRLqnl84GmbJkhjPnEvn4j518u3A1s3QyO8u1I27AWFo26xRo1SwFADcG8Q7gSxGZiPmOeQ9wk4t8XYCBItIfKAmUF5EvVPXGLGtrKbQkJHr4ZlUUr8/bxqGYs1zarAH7ui6hZaOmgVbNUoBwM8q8A+gkImUBUdUYNwWr6hPAEwBODfFhawwtmUVV+XnjAV76eSsRh2NpX68Sb9/Qjg4hlQOtmqUA4uoLdhG5HGgJlEwKWK+qNqSoxa+s3nWM52ZtZs3uaBpVL8sHN4XTq3l1xLrisvgJN9Nu3gVKAz2AD4HBwIrMCFHVhcDCzKtnKYzsPBLLi3O2MHfjAaqXK8ELV7dmcPtgihaxrrgs/sVNDfEiVQ0VkXWqOk5EXsWGD7D4gWOx53jzt3/44s9dlCgaxH97N+G2i+tTurh1xWXJHdzcaWec39MiUgs4CtT3n0qWwkZcfCKf/BHJ2/O3E3sugaEd6/JAryZUK2ddcVlyFzcGcaaIVARexni8UUzT2WLJFqrKT+v28+KcLeyNPkOPptV4sn9zGtewzpQsgcHNKPMzzur3IjITKKmqJ/yrlqWgsyryGM/O2szaPdE0r1melwaH0qWRdbxgCSzpGkQRudrHMRuX2ZIldh2N5YU5W5izwQyYvDQ4lGvaBVMkyI4cWwKPrxriFT6O2bjMlkxxPPYcb83fzud/RlI0KIgHezVh5CV2wMSSt0j3blTVW3JTEUvB5GxCIp/+EcnE+ds5dTaBa9vX4aHLmlC9fMlAq2axnIebeYhVgDGYcKQKLAXGq+pRP+tmycd4PMpP6/bx8s9biTp+hu5Nq/FEv+Y0vcAOmFjyLm7aK18Di4FrnO0bgKlAL38pZcnfLI84ynOzN7Mu6gQtapbni1tD6drYDphY8j5uDGJlr5FmgGdFZJCf9LHkYyKPxPL8nM38vPEgF5QvyavXtuGqtrUJsgMmlnyCG4O4QESGAN8424OBWf5TyZLfOBkXz1u//cMnf0RSrEgQD/Vuwm0XN6BU8SKBVs1iyRRuDOIojLfrzzHuv4KAWBH5L6CqakMDFFISPcq3q/bw8s9bOXb6HIPbBfNwn6bUsAMmlnyKm4nZWeoFF5GSmL7HEo6c71R1TFbKsuQ9Vu86xugfN7Jx30nC61Xikys60jq4QqDVsliyhZtR5i7AWlWNFZEbgXbA66q6O4OsZ4GeqnpKRIoBS0Vkjqr+mX21LYHiUEwcL8zZwrQ1e7mgfEneGBLGwDa1rEsuS4HATZP5HaCNiLTBxEeZjGk+d/OVSVUVOOVsFnMWGyIgnxKf6OGzZbt4/ddtxCUkclf3htzdoxFlStiJ1ZaCg5u7OUFV1Yml8oaqThaRm90U7sRkXg00At5W1eVppLFBpvI4yyOOMvrHjWw9GEO3JtUYc0ULGlQrG2i1LJYcx41BjBGRJ4AbgUscI1fMTeGqmgiEOd5ypotIK1XdkCqNDTKVRzl0Mo7/m72ZH9buo3bFUrw/vD29W9SwzWNLgcWNQbweGAbcqqoHRKQuxhWYa1Q1WkQWAn2BDRkktwSY+EQPn/4Ryevz/uFcoof7ejbizu6N7DQaS4HHzSjzAWCC1/Zu4LOM8olINSDeMYalMF+2vJgNXS25wLIdRxkzYwPbDp6iR9NqjB3YknpVygRaLYslV/Dl/mupqnYVkRhSDoYI7uYf1gQ+dZrYQcA3qjoz2xpb/MKBE3E8N3szP/29j+BKtnlsKZz48nbT1fnN0jxEVV0HtM2iXpZc4mxCIpOX7mTi/O0kepQHejXmjm4NKVnMNo8thQ9fNUSfgW9V9VjOq2PJTeZvOcj4nzYRefQ0l7WowdMDWlCnculAq2WxBAxffYirMU1lAeoCx531isBubKCpfMv2Q6d4ZuYmFm07TMNqZfhsREcuaVIt0GpZLAHHV5O5PiTHZZ6hqrOd7X5Y11/5khOn43njt3/4bFkkpYoX4X+XN+emziEUL2rjHVss4G7aTQdVvSNpQ1XniMgzvjJY8hbxiR6+Wr6b1+dtI/pMPEM61OWhy5pQtawN82mxeOPGIB4Rkf8BX2Ca0DdiYjNb8jiqyvwth/i/2ZvZcTiWixpW4X+Xt6BFLeugyGJJCzcGcSgmhMB0jEFc7Oyz5GE27D3Bc7M2syziKPWrluGDm8Lp1by6nUZjsfjAzcTsY8D9uaCLJQeIOn6aV3/ZxvS/9lKpdDHGDWzJsAvrUqyI7Se0WDLCuiopIByPPcfbC7bz2bJdiMAd3RpyV4+GlC/p6rNzi8WCNYj5nrj4RD7+PZJJC7cTezaBwe2DeaBXE2pVLBVo1SyWfIc1iPmURI/y/ZooXvt1G/tPxHFps+o82reZDfNpsWQDNx6zm2CcxNZQ1VYiEgoMVNVn/a6d5TxUlYXbDvPC7C1sPRhDmzoVee36MDo1qBJo1SyWfI+bGuIHwCPAe2C+URaRrwBrEHOZDXtP8H+zN/PHjqPUq1Kat4e1o3/rC+zIscWSQ7gxiKVVdUWqhy4ho0wiUgfjJuwCwAO8r6pvZEnLQs7+E2d4+eetTP9rLxVLFWPMFS244cJ69gsTiyWHcTsxuyGOCzARGQzsd5EvAXhIVdeISDlgtYj8qqqbsq5u4SL2bALvLtrBB0si8Hjg9ksacFf3RlQoZUeOLRZ/4MYg3o1x8d9MRPYCO4EbMsqkqvtxDKeqxojIZqA2YA1iBng8yndronjl560cijnLFW1q8WifptYTjcXiZ3waRMe5652q2ktEygBBqhqTWSEiEoLxjWiDTGXAyshjjPtpIxv2niSsTkXeubE97etVCrRaFkuhwKdBVNVEEWnvrMdmRYCIlAW+Bx5Q1ZNpyLBBpoC90Wd4fvZmZq7bT80KNt6xxRII3DSZ/xKRGcC3QLJRVNVpGWV0AtR/D3zpJn1hJC4+kfcWRfDOou0A3H+p8VhtAzpZLLmPG4NYGePdpqfXPgV8GjgxVZvJwGZVneArbWFEVfll00GembmJqONnuDy0Jk/2b05t+4WJxRIw3Dh3uCWLZXcBhgPrRWSts+/JJEezhZmIw6cY+9MmFm87TNMa5fhq5IVc1LBqoNWyWAo9br5UKQncCrQESibtV9URvvKp6lJMyAGLw+lzCUycv50Pl+ykRNEgnh7Qgps617OeaCyWPIKbJvPnwBagDzAeM+Vmsz+VKmioKj9vPMD4nzax70Qc17QL5rF+TalermTGmS0WS67hxiA2UtVrReRKVf3U+WzvZ38rVlDYeSSWMTM2snjbYZpdUI43hralQ4jPgIYWiyVAuDGI8c5vtIi0Ag4AIX7TqIAQF5/IpIU7eHfhDooXDWK00zwuapvHFkuexY1BfF9EKgFPAzOAssBov2qVz1mw9RBjftzI7mOnuTKsFk/1b0718rZ5bLHkddyMMn/orC4CGvhXnfzNwZNxjPtpI7PXH6BBtTJ8dduFXNTIjh5bLPkFN6PMadYGVXV8zquTP0n0KJ8vi+SVX7YRn+jh4cuacPslDa03Gosln+Gmyez9yV5JYAB2lDmZLQdO8tj36/l7TzQXN67Ks4NaUa9KmSyVFR8fT1RUFHFxcTmspcVSOChZsiTBwcEUK5Y1j1Bumsyvem+LyCuYvsRCzdmERCbO3847C3dQvlQxXr8+jCvDsvftcVRUFOXKlSMkJMR+w2yxZBJV5ejRo0RFRVG/fv0slZGVmCqlKeR9ieujTvDfb9byz6FTXN22Nv8b0ILKZYpnu9y4uDhrDC2WLCIiVKlShcOHD2e5DDd9iOtxnMMCRYBqmAnahY5zCR4mzv+HtxfuoGrZ4nx8Swd6NK2eozKsMbRYsk52nx83vf4DgCuc5TKglqpOzJbUfMiOw6e4+p3feXP+dq4Mq8UvD3TLcWOYFxARhg8fnrydkJBAtWrVGDBgAAAHDx5kwIABtGnThhYtWtC/f38AIiMjKVWqFG3btqV58+Z07NiRTz/9NCDnYLFkFTdN5tQOYct7W2FVPZajGuUxVJWvV+5h/E+bKFksiPeGt6dPywsCrZbfKFOmDBs2bODMmTOUKlWKX3/9ldq1aycfHz16NL179+b+++8HYN26dcnHGjZsyF9//QVAREQEV199NR6Ph1tuyap/EIsld3FTQ1wDHAa2Af8466udZVV6mUTkIxE5JCIbckLRQBATF8/dX63hiWnraV+vEnMfuKRAG8Mk+vXrx6xZswCYMmUKQ4cOTT62f/9+goODk7dDQ0PTLKNBgwZMmDCBN99807/KWiw5iJsa4lxgRpLbLhHpB/RS1YcyyPcJMBETeS/fsfVADHd8sZrdx07zRL9mjLy4AUFBude/N+6njWzad56D8WzRolZ5xlzRMsN0Q4YMYfz48QwYMIB169YxYsQIlixZAsDdd9/N9ddfz8SJE+nVqxe33HILtWrVSrOcdu3asWXLlhw9B4vFn7ipIXbw9mGoqnOAbhllUtXFQL5sTv+4di+D3v6dU2cTmDKyE6O6NcxVYxhoQkNDiYyMZMqUKcl9hEn06dOHiIgIRo4cyZYtW2jbtm26o3qqhTYihCWf4jYM6f+ALzCjzTdiPGjnCHkpyJTHo0z4dRsTF2ynY0hlJg5rG7BvkN3U5PzJwIEDefjhh1m4cCFHj6b8uytXrsywYcMYNmwYAwYMYPHixbRv3/68Mv766y+aN2+eWypbLNnGTQ1xKGaqzXTgB2d9qK8MmUFV31fVcFUNr1atWk4Vm2ni4hO5f+paJi7YzvXhdfhy5IWF2iHDiBEjGD16NK1bt06xf/78+Zw+fRqAmJgYduzYkeaLLDIykocffph77703V/S1WHICN1+qHAPuh+SwpGXSip6Xn4k+fY5bP13F6l3HeaxvM+7o1qDQzwcMDg5OHkn2ZvXq1dxzzz0ULVoUj8fDbbfdRocOHYiMjGTHjh20bduWuLg4ypUrx7333mtHmC35Csmon8dxCHsHkIgZWa4ATFDVlzMs3MRjnqmqrdwoEx4erqtWpTtw7RcOx5xl+OTlRByJ5bXrwrg8tGauyvdm8+bNtolpsWSTtJ4jEVmtquEZ5XXTZG7h1AgHAbOBupjgUT4RkSnAMqCpiESJyK0uZOUq+6LPcN17y9h19DQf/6dDQI2hxWIJPG4GVYo58ZUHARNVNV5EMhw+VNUc62f0B7uOxjLsg+WcPBPP57d2JNy69bdYCj1uaojvAZFAGWCxiNQD8nUf4t7oMwz7YDmx5xKYcnsnawwtFgvgwiCq6puqWltV+6vpcNwN9PC/av7h4Mk4hn3wJyfj4vni1gtpVbtCoFWyWCx5hEy7/3KMYoIfdPE7R06dZdgHf3Ik5iyf32aNocViSUlW/CHmS07GxXPzRyvYG32GT27pSLu6lQKtksViyWMUiqAfcfGJ3P7ZKrYeiOGdG9vTqUGVQKuUZylbtux5+959910++yx3P0lfsmQJLVu2JCwsjL179zJ48GAA1q5dy+zZszPInZK0zsnfqCr33XcfjRo1IjQ0lDVr1qSZbufOnVx44YU0btyY66+/nnPnzmWYf8SIEVSvXp1WrVLOZhs7diy1a9cmLCyMsLCw5Ov05ZdfJu8LCwsjKCiItWvX+ufEUzFq1CjKlCnD/PnzU+yfMGECLVq0IDQ0lEsvvZRdu3alON63b1/27t2b4j44c+aM/xVW1QwX4CJgGHBT0uImX2aX9u3ba06TkOjRUZ+t0nqPzdTpa6JyvPycZNOmTYFWQcuUKZPrMj0ejyYmJqbYN2rUKP3oo4/OS/vxxx/r3XffnanyA3FOs2bN0r59+6rH49Fly5Zpx44d00x37bXX6pQpU1TVnPOkSZMyzL9o0SJdvXq1tmzZMkVZY8aM0ZdfftmnXuvWrdP69etn59Rc88wzz+i1116r69ev12bNmunff/+dfGz+/PkaGxurqqqTJk3S6667LvnY6dOntUOHDqqa/n3gi7SeI2CVurF1GSaAz4E/gEnAW87yppvCM7vktEH0eDz6+PfrtN5jM3XykogcLdsf5FWD6P2gdevWTR999FHt0KGDNm7cWBcvXqyqqgkJCfrwww9reHi4tm7dWt99911VVY2JidGePXtq27ZttVWrVvrDDz+oqurOnTu1WbNmeuedd2pYWJhGRkYmy/vggw+0UqVKGhISosOGDdOdO3dqy5Yt9ezZs1qnTh2tWrWqtmnTRr/++usUem7YsEE7dOigbdq00datW+u2bdtSnJPH49GHH35YW7Zsqa1atUrOv2DBAr344ot10KBB2rx5cx01alSygf7555+1U6dO2rZtWx08eLDGxMS4uo633367fvXVV8nbTZo00X379qVI4/F4tEqVKhofH6+qqn/88YdedtllrvInXZP0/qf0eOKJJ/TJJ59M89i4ceM0PDxcW7ZsqSNHjlSPx6Oq6f/nsbGxeu2112rr1q31uuuu044dO+rKlStVVfWTTz7R66+/Pvnctm3bph07dtTdu3efJ3fNmjV60UUXJW/Pnj1bH3nkkfPug3379unFF1+sbdq00ZYtWybrkZrsGEQ3fYjhmMnZ+c51yWu/bmPKit3c1b0hI7pmLehMwJjzOBxYn7NlXtAa+r2Q7WISEhJYsWIFs2fPZty4ccybN4/JkydToUIFVq5cydmzZ+nSpQuXXXYZderUYfr06ZQvX54jR47QqVMnBg4cCMDWrVv5+OOPmTRpUoryb7vtNpYuXcqAAQMYPHgwkZGRABQvXpzx48ezatUqJk4832n7u+++y/33388NN9zAuXPnSExMTHF82rRprF27lr///psjR47QoUMHLrnkEgBWrFjBpk2bqFevHn379mXatGl0796dZ599lnnz5lGmTBlefPFFJkyYwOjRo3nwwQdZsGDBeToMGTKExx9/nL1791KnTp3k/cHBwezdu5eaNf+d/H/06FEq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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "reference_msd_job = get_msd_job(reference_prod_md_job, \"O\")\n", "reference_D = (\n", " reference_msd_job.results.get_diffusion_coefficient()\n", ") # diffusion coefficient, m^2/s\n", "plot_msd(reference_msd_job)" ] }, { "cell_type": "markdown", "id": "209ce1a2-c576-4c79-b43e-26482752a6ac", "metadata": {}, "source": [ "**Conclusion for diffusion coefficient**: In this case, the retrained model gives 2.53e-9 m^2/s and the reference method 2.62e-9 m^2/s. That is very good agreement! Note: your results may be somewhat different." ] }, { "cell_type": "markdown", "id": "87c79915-66df-48c8-80cb-3a05bc6ba1de", "metadata": {}, "source": [ "### Retrained model and reference RDF\n", "\n", "Let's compare the calculated O-O, O-H, and H-H radial distribution functions (rdf):" ] }, { "cell_type": "code", "execution_count": 185, "id": "4ac2e5f3-8117-4337-ab53-ec5e9ffa3c28", "metadata": {}, "outputs": [], "source": [ "def get_rdf(job, atom_indices, atom_indices_to, rmin, rmax, rstep):\n", " rdf = plams.AMSRDFJob(\n", " job,\n", " atom_indices=atom_indices,\n", " atom_indices_to=atom_indices_to,\n", " rmin=rmin,\n", " rmax=rmax,\n", " rstep=rstep,\n", " )\n", " rdf.run()\n", "\n", " return rdf.results.get_rdf()\n", "\n", "\n", "final_frame = (\n", " retrained_model_prod_md_job.results.get_main_molecule()\n", ") # doesn't matter if retrained model or reference\n", "O_ind = [i for i, at in enumerate(final_frame, 1) if at.symbol == \"O\"]\n", "H_ind = [i for i, at in enumerate(final_frame, 1) if at.symbol == \"H\"]\n", "rmax = final_frame.lattice[0][0] / 2\n", "rstep = 0.05" ] }, { "cell_type": "markdown", "id": "59ae8777-490b-4116-a685-ba3a59afe47d", "metadata": {}, "source": [ "### O-O rdf" ] }, { "cell_type": "code", "execution_count": 186, "id": "c485e57d-6d55-49a8-85c0-8f2519a72d4a", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "atom_indices, atom_indices_to = O_ind, O_ind\n", "rmin = 2.0\n", "pred_x, pred_y = get_rdf(\n", " retrained_model_prod_md_job, atom_indices, atom_indices_to, rmin, rmax, rstep\n", ")\n", "ref_x, ref_y = get_rdf(\n", " reference_prod_md_job, atom_indices, atom_indices_to, rmin, rmax, rstep\n", ")\n", "plt.plot(pred_x, pred_y, label=\"Retrained model\")\n", "plt.plot(ref_x, ref_y, label=\"Reference\")\n", "plt.xlabel(\"r (angstrom)\")\n", "plt.legend()\n", "plt.title(\"O-O rdf\");" ] }, { "cell_type": "markdown", "id": "3aa7b927-7d2c-4865-9444-d9f38e3dcbe8", "metadata": {}, "source": [ "### O-H rdf" ] }, { "cell_type": "code", "execution_count": 128, "id": "188914f0-c816-49da-9d0e-1092954d4d58", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "atom_indices, atom_indices_to = O_ind, H_ind\n", "rmin = 1.3\n", "pred_x, pred_y = get_rdf(\n", " retrained_model_prod_md_job, atom_indices, atom_indices_to, rmin, rmax, rstep\n", ")\n", "ref_x, ref_y = get_rdf(\n", " reference_prod_md_job, atom_indices, atom_indices_to, rmin, rmax, rstep\n", ")\n", "plt.plot(pred_x, pred_y, label=\"Retrained model\")\n", "plt.plot(ref_x, ref_y, label=\"Reference\")\n", "plt.xlabel(\"r (angstrom)\")\n", "plt.legend()\n", "plt.title(\"O-H rdf\");" ] }, { "cell_type": "markdown", "id": "7e86e2da-8291-49a4-8d86-020aaac2cf44", "metadata": {}, "source": [ "### H-H rdf" ] }, { "cell_type": "code", "execution_count": 129, "id": "8a7d353c-5761-48db-9971-bd20653cfd56", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEWCAYAAAB2X2wCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAA6U0lEQVR4nO3dd3hb5dnH8e+t7T1iZ2+yyN6DEAglhBXCDGF0BNqXVeiADlooUDoplJfSQCkvq1AKbZlhlTBCIOwssgkJSYgzHcdL1pae9w/JaYZjy7ZsWdL9uS5fkXUenXPbhp+PH51zP2KMQSmlVOqzJLsApZRSiaGBrpRSaUIDXSml0oQGulJKpQkNdKWUShMa6EoplSY00JVKIBF5TER+fdDnV4vIHhFxi0inZNam0p8Gukp5IrJVRGYc9tw8EVnSyGtuE5G/N/C8EZEBCarLDtwNzDTG5BpjKhKxX6WORgNdqRYSEWsTQ7oALmBtO5SjFLZkF6BUqhCRxwAv0Ac4EThbRCqAh4GBwKuAiY0dBKyIvbRKRD4xxnyt3YtWGUXP0JVqnkuA3wB5wCfAC8ATQDHwb+B8AGPMRmBY7DWFGuaqPegZukoXL4hI6KDPHcDyJl5zoYjMauZxXjTGvA8gIqMBO3CPiTZFekZErm/m/pRKGD1DV+niHGNMYf0HcE39BhG5NHaViVtEXjvoNf86+DWx1zVl+0GPuwM7zKEd7ra15otQqjU00FXaM8Y8GbvKJNcYc3prd3fQ411ADxGRg57r3cr9K9ViGuhKtdyHQAj4nojYROQ8YGKSa1IZTANdqRYyxgSA84B5QCUwF3gumTWpzCa6wIVSSqUHPUNXSqk0oYGulFJpQgNdKaXShAa6UkqliaTdKVpSUmL69u2brMMrpVRKWrZs2T5jTGlD25IW6H379mXp0qXJOrxSSqUkETnq3cg65aKUUmlCA10ppdKEBrpSSqUJbZ+rVBoIBoOUlZXh8/mSXYpKEJfLRc+ePbHb7XG/RgNdqTRQVlZGXl4effv25dDmjyoVGWOoqKigrKyMfv36xf06nXJRKg34fD46deqkYZ4mRIROnTo1+y8uDXSl0oSGeXppyc8zYwO9si7AS5/tTHYZSimVMBkb6M+t2MF1T61gn9uf7FKUSgtWq5XRo0czfPhwzjrrLKqqqhod/8ILL7Bu3bpmH2fBggX8/ve/b2GVh7rtttu46667ErKvo3nssce49tprWz0mHhkb6FWeABA9U1dKtV5WVhYrV65kzZo1FBcXc9999zU6vrFAD4VCDT4PMHv2bG688cZW1ZquMjbQa7xBACo9wSRXolT6mTJlCjt27ABg8+bNnHbaaYwbN45p06axYcMGPvjgAxYsWMCPf/xjRo8ezebNm5k+fTo///nPOfHEE/nTn/7ESy+9xKRJkxgzZgwzZsxgz549wKFns/PmzeN73/sexx13HP379+eZZ545UMOdd97JhAkTGDlyJLfeeuuB53/zm98wePBgZsyYweeff95g/fPmzePqq6/mpJNOon///ixevJjLL7+cY489lnnz5h0Y99RTTzFixAiGDx/OT3/60wPPP/roowwaNIgTTzyR999//8Dz5eXlnH/++UyYMIEJEyYcsi0RMvayxRpf9Ayg0qNn6Cq9/PKltazbWZPQfQ7tns+tZw2La2w4HOatt97i29/+NgBXXHEFDzzwAAMHDuTjjz/mmmuu4e2332b27NnMmjWLCy644MBrq6qqWLx4MQCVlZV89NFHiAgPPfQQf/jDH/jjH/94xPF27drFkiVL2LBhA7Nnz+aCCy5g4cKFfPHFF3zyyScYY5g9ezbvvvsuOTk5PP3006xYsYJQKMTYsWMZN25cg19HZWUlb7/9NgsWLOCss87i/fff56GHHmLChAmsXLmSzp0789Of/pRly5ZRVFTEzJkzeeGFF5g0aRK33nory5Yto6CggJNOOokxY8YA8P3vf58f/vCHHH/88Xz11VeceuqprF+/vlk/i8ZkbqDHztCrNNCVSgiv18vo0aPZunUr48aN45RTTsHtdvPBBx8wZ86cA+P8/qO/bzV37twDj8vKypg7dy67du0iEAgc9Xrsc845B4vFwtChQw+cxS9cuJCFCxceCFK3280XX3xBbW0t5557LtnZ2UB0+uZozjrrLESEESNG0KVLF0aMGAHAsGHD2Lp1K9u2bWP69OmUlkYbH1566aW8++67AIc8P3fuXDZu3AjAm2++ecg0U01NDbW1tUetobkyNtBDnkq+ZllOlWdIsktRKqHiPZNOtPo59OrqambNmsV9993HvHnzKCwsZOXKlXHtIycn58Dj6667juuvv57Zs2fzzjvvcNtttzX4GqfTeeBx/RrJxhh+9rOfceWVVx4y9p57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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "atom_indices, atom_indices_to = H_ind, H_ind\n", "rmin = 1.3\n", "pred_x, pred_y = get_rdf(\n", " retrained_model_prod_md_job, atom_indices, atom_indices_to, rmin, rmax, rstep\n", ")\n", "ref_x, ref_y = get_rdf(\n", " reference_prod_md_job, atom_indices, atom_indices_to, rmin, rmax, rstep\n", ")\n", "plt.plot(pred_x, pred_y, label=\"Retrained model\")\n", "plt.plot(ref_x, ref_y, label=\"Reference\")\n", "plt.xlabel(\"r (angstrom)\")\n", "plt.legend()\n", "plt.title(\"H-H rdf\");" ] }, { "cell_type": "markdown", "id": "8a4d2c2f-cd5b-4e4f-85c8-4647c88255a7", "metadata": {}, "source": [ "### Turn PLAMS logging back on" ] }, { "cell_type": "code", "execution_count": 187, "id": "96a52fda-523c-4f21-afab-7e528eb3f913", "metadata": {}, "outputs": [], "source": [ "plams.config.log.stdout = 3 # default value" ] }, { "cell_type": "markdown", "id": "dfa79fa2-2c4a-4088-8187-6c8f885917be", "metadata": {}, "source": [ "## Density and NPT\n", "\n", "### Check the predicted vs. reference density" ] }, { "cell_type": "code", "execution_count": 135, "id": "a7d49976-9f4f-4655-a519-7d8dbf997ff2", "metadata": {}, "outputs": [], "source": [ "npt_md_s = plams.AMSNPTJob(\n", " nsteps=100000,\n", " timestep=0.5,\n", " thermostat=\"NHC\",\n", " tau=100,\n", " temperature=300,\n", " barostat=\"MTK\",\n", " barostat_tau=1000,\n", " equal=\"XYZ\",\n", " pressure=1e5,\n", ").settings" ] }, { "cell_type": "code", "execution_count": 136, "id": "e1dc9e21-663e-47df-8d39-5dc3cc18e259", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[22.02|15:25:22] JOB retrained_model_npt STARTED\n", "[22.02|15:25:22] JOB retrained_model_npt RUNNING\n", "[22.02|16:06:01] JOB retrained_model_npt FINISHED\n", "[22.02|16:06:01] JOB retrained_model_npt SUCCESSFUL\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 136, "metadata": {}, "output_type": "execute_result" } ], "source": [ "retrained_model_npt_job = plams.AMSJob(\n", " settings=npt_md_s + retrained_model_settings,\n", " name=\"retrained_model_npt\",\n", " molecule=retrained_model_prod_md_job.results.get_main_molecule(),\n", ")\n", "\n", "retrained_model_npt_job.run();" ] }, { "cell_type": "code", "execution_count": 147, "id": "646e7b86-4c42-4e40-98c3-fe25f398c576", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Retrained model water density at 300 K: 0.95 g/cm^3\n" ] } ], "source": [ "retrained_model_density = (\n", " plams.AMSNPTJob.load_external(retrained_model_npt_job.results.rkfpath())\n", " .results.get_equilibrated_molecule()\n", " .get_density()\n", ")\n", "print(\n", " f\"Retrained model water density at 300 K: {retrained_model_density * 1e-3:.2f} g/cm^3\"\n", ")" ] }, { "cell_type": "code", "execution_count": 176, "id": "63858883-e21b-4a71-a591-277c47378fce", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[22.02|18:53:54] JOB reference_npt STARTED\n", "[22.02|18:53:54] Renaming job reference_npt to reference_npt.002\n", "[22.02|18:53:54] JOB reference_npt.002 RUNNING\n", "[22.02|18:58:13] JOB reference_npt.002 FINISHED\n", "[22.02|18:58:13] JOB reference_npt.002 SUCCESSFUL\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 176, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plams.config.jobmanager.hashing = None\n", "reference_npt_job = plams.AMSJob(\n", " settings=npt_md_s + ref_s,\n", " name=\"reference_npt\",\n", " molecule=reference_prod_md_job.results.get_main_molecule(),\n", ")\n", "\n", "reference_npt_job.run()" ] }, { "cell_type": "code", "execution_count": 177, "id": "63f55b67-2720-47b3-ab7c-bda31d5af04d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Reference model water density at 300 K: 1.01 g/cm^3\n" ] } ], "source": [ "reference_density = (\n", " plams.AMSNPTJob.load_external(reference_npt_job.results.rkfpath())\n", " .results.get_equilibrated_molecule()\n", " .get_density()\n", ")\n", "print(f\"Reference model water density at 300 K: {reference_density * 1e-3:.2f} g/cm^3\")" ] }, { "cell_type": "markdown", "id": "d612bb61-a59e-435f-ac87-7c42afb20fbe", "metadata": {}, "source": [ "The above reference value for ReaxFF Water-2017.ff agrees exactly with the published reference value of 1.01 g/cm^3.\n", "\n", "However, the retrained M3GNet model predicts a density of 0.95 g/cm^3. The agreement is reasonable but not excellent. This can be explained by the fact that almost all training data points were at 1.00 g/cm^3. Only a few points (from the \"M3GNetShortMD\" initial reference data generator) were taken at other densities.\n", "\n", "Let's continue the active learning while sampling more densities. There are two strategies:\n", "\n", "* Use an NPT simulation during the active learning\n", "* Scan the density during the active learning\n", "\n", "Here, we choose the second approach in order to ensure that multiple different densities are sampled." ] }, { "cell_type": "markdown", "id": "b80179c3-06a3-4e71-b34b-20974f58c867", "metadata": {}, "source": [ "### Initial structure for scanning density\n", "\n", "Get the final frame from one of the previous MD simulations, and linearly scale the density to 800 kg/m^3 = 0.8 g/cm^3. This will stretch out the O-H bonds so follow up with a short UFF preoptimization." ] }, { "cell_type": "code", "execution_count": 203, "id": "009d8a1b-4fc8-423c-98cf-5cc03c031aab", "metadata": {}, "outputs": [], "source": [ "new_structure = final_frame.copy()\n", "new_structure.set_density(850)\n", "new_structure = plams.preoptimize(new_structure, model=\"uff\", maxiterations=20)" ] }, { "cell_type": "code", "execution_count": 204, "id": "e2c2d032-862d-40f0-acb4-ea47c4c14f10", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plams.plot_molecule(new_structure)" ] }, { "cell_type": "markdown", "id": "9ab8e44d-6752-4ca6-9b88-1359dce06d1e", "metadata": {}, "source": [ "### Second active learning job: scanning density\n", "\n", "Here we set Steps.Type = \"Linear\" to run reference calculations every 5000 MD steps.\n", "\n", "To get an accurate density it's very important that the predicted energy is accurate. It is not enough to just get a good fit for the forces.\n", "\n", "Here, we decrease the success criteria for both the energy and forces compared to default values." ] }, { "cell_type": "code", "execution_count": 205, "id": "7ac619b4-f0dc-4173-9a28-a945d6549689", "metadata": {}, "outputs": [], "source": [ "nsteps = 80000\n", "scan_density_md_s = plams.AMSMDScanDensityJob(\n", " molecule=new_structure,\n", " scan_density_upper=1.15,\n", " nsteps=nsteps,\n", " tau=100,\n", " thermostat=\"Berendsen\",\n", " temperature=300,\n", ").settings\n", "# we must explicitly set the StopStep, since the AL divides the simulation into multiple segments\n", "scan_density_md_s.input.ams.MolecularDynamics.Deformation.StopStep = nsteps" ] }, { "cell_type": "code", "execution_count": 207, "id": "b9606d5c-5f67-4ab4-8990-4b16c4dd9836", "metadata": {}, "outputs": [], "source": [ "# job = SimpleActiveLearningJob.load_external(plams.config.default_jobmanager.workdir + \"/sal.002\")\n", "scan_density_ml_s = ml_s.copy()\n", "scan_density_ml_s.input.ams.MachineLearning.LoadModel = (\n", " job.results.get_params_results_directory()\n", ")\n", "scan_density_ml_s.input.ams.MachineLearning.Target.Forces.MAE = 0.02\n", "scan_density_ml_s.input.ams.MachineLearning.MaxEpochs = 200" ] }, { "cell_type": "code", "execution_count": 218, "id": "058069a4-a6f7-40b8-badc-d2efcf538def", "metadata": {}, "outputs": [], "source": [ "scan_density_al_s = plams.Settings()\n", "\n", "scan_density_al_s.input.ams.ActiveLearning.Steps.Type = \"Linear\"\n", "scan_density_al_s.input.ams.ActiveLearning.Steps.Linear.Start = 500\n", "scan_density_al_s.input.ams.ActiveLearning.Steps.Linear.StepSize = 5000\n", "scan_density_al_s.input.ams.ActiveLearning.InitialReferenceData.Load.FromPreviousModel = \"Yes\"\n", "\n", "scan_density_al_s.input.ams.ActiveLearning.SuccessCriteria.Energy.Relative = 0.001\n", "scan_density_al_s.input.ams.ActiveLearning.SuccessCriteria.Energy.Total = 0.002\n", "# because we do not set Normalization, the above Energy criteria are energies per atom\n", "# scan_density_al_s.input.ams.ActiveLearning.SuccessCriteria.Energy.Normalization =\n", "\n", "scan_density_al_s.input.ams.ActiveLearning.SuccessCriteria.Forces.MaxDeviationForZeroForce = 0.30\n", "\n", "scan_density_al_s.input.ams.ActiveLearning.AtEnd.RerunSimulation = \"No\"\n", "scan_density_al_s.input.ams.ActiveLearning.MaxReferenceCalculationsPerAttempt = 2" ] }, { "cell_type": "code", "execution_count": 215, "id": "4ad5d479-eae7-434d-9cc6-b910a3aecce4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[23.02|13:01:42] Simple Active Learning 2024.101, Nodes: 1, Procs: 1\n", "[23.02|13:01:44] Composition of main system: H96O48\n", "[23.02|13:01:44] All REFERENCE calculations will be performed with the following ReaxFF engine:\n", "[23.02|13:01:44]\n", "Engine reaxff\n", " forcefield Water2017.ff\n", "EndEngine\n", "\n", "\n", "[23.02|13:01:44] The following are the settings for the to-be-trained MACHINE LEARNING model:\n", "[23.02|13:01:44]\n", "MachineLearning\n", " Backend M3GNet\n", " CommitteeSize 1\n", " LoadModel /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/sal.002/step6_attempt1_training/results\n", " M3GNet\n", " Model UniversalPotential\n", " End\n", " MaxEpochs 300\n", " Target\n", " Forces\n", " MAE 0.02\n", " End\n", " End\n", "End\n", "\n", "ParallelLevels\n", "End\n", "\n", "[23.02|13:01:44] A single model will be trained (no committee).\n", "[23.02|13:01:44] The ACTIVE LEARNING loop will contain 17 steps, using the following schema:\n", "[23.02|13:01:44] Active Learning Step 1: 500 MD Steps (cumulative: 500)\n", "[23.02|13:01:44] Active Learning Step 2: 5000 MD Steps (cumulative: 5500)\n", "[23.02|13:01:44] Active Learning Step 3: 5000 MD Steps (cumulative: 10500)\n", "[23.02|13:01:44] Active Learning Step 4: 5000 MD Steps (cumulative: 15500)\n", "[23.02|13:01:44] Active Learning Step 5: 5000 MD Steps (cumulative: 20500)\n", "[23.02|13:01:44] Active Learning Step 6: 5000 MD Steps (cumulative: 25500)\n", "[23.02|13:01:44] Active Learning Step 7: 5000 MD Steps (cumulative: 30500)\n", "[23.02|13:01:44] Active Learning Step 8: 5000 MD Steps (cumulative: 35500)\n", "[23.02|13:01:44] Active Learning Step 9: 5000 MD Steps (cumulative: 40500)\n", "[23.02|13:01:44] Active Learning Step 10: 5000 MD Steps (cumulative: 45500)\n", "[23.02|13:01:44] Active Learning Step 11: 5000 MD Steps (cumulative: 50500)\n", "[23.02|13:01:44] Active Learning Step 12: 5000 MD Steps (cumulative: 55500)\n", "[23.02|13:01:44] Active Learning Step 13: 5000 MD Steps (cumulative: 60500)\n", "[23.02|13:01:44] Active Learning Step 14: 5000 MD Steps (cumulative: 65500)\n", "[23.02|13:01:44] Active Learning Step 15: 5000 MD Steps (cumulative: 70500)\n", "[23.02|13:01:44] Active Learning Step 16: 5000 MD Steps (cumulative: 75500)\n", "[23.02|13:01:44] Active Learning Step 17: 4500 MD Steps (cumulative: 80000)\n", "[23.02|13:01:44] Total number of MD Steps: 80000\n", "[23.02|13:01:44] Max attempts per active learning step: 15\n", "[23.02|13:01:44]\n", "[23.02|13:01:44] Tip: create a file called SKIP_STEP to skip an active learning step and move on to the next!\n", "[23.02|13:01:44]\n", "[23.02|13:01:44] The directory /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/sal.002/step6_attempt1_training/results is of type RestartDirectoryType.PARAMS_RESULTS\n", "[23.02|13:01:44] Successfully loaded previous ParAMS Job: from /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/sal.002/step6_attempt1_training/results\n", "[23.02|13:01:45] Starting active learning loop...\n", "[23.02|13:01:45] ##########################\n", "[23.02|13:01:45] ### Step 1 / Attempt 1 ###\n", "[23.02|13:01:45] ##########################\n", "[23.02|13:01:45] MD Steps: 500 (cumulative: 500)\n", "[23.02|13:01:45] Current engine settings:\n", "[23.02|13:01:45]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/scan_density_al.007/loaded_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[23.02|13:01:45] Running step1_attempt1_simulation...\n", "[23.02|13:02:10] Job step1_attempt1_simulation finished\n", "[23.02|13:02:10] Deleting files that are no longer needed...\n", "[23.02|13:02:11] Launching reference calculation\n", "[23.02|13:02:12] Reference calculation finished!\n", "[23.02|13:02:12] Checking success for step1_attempt1\n", "[23.02|13:02:12] CheckEnergy: Checking energy for MDStep500, n_atoms = 144\n", "[23.02|13:02:12] CheckEnergy: normalization coefficient = 144\n", "[23.02|13:02:12] CheckEnergy: Actual Threshold\n", "[23.02|13:02:12] CheckEnergy: dE/144 0.0003 0.0020 OK!\n", "[23.02|13:02:12]\n", "[23.02|13:02:12] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[23.02|13:02:12] CheckForces: ------------\n", "[23.02|13:02:12] CheckForces: Reference job from step1_attempt1_reference_calc1\n", "[23.02|13:02:12] CheckForces: Prediction job from final frame (MDStep500) of step1_attempt1_simulation\n", "[23.02|13:02:12] CheckForces: ------------\n", "[23.02|13:02:12] CheckForces: Histogram of forces\n", "[23.02|13:02:12] CheckForces: eV/Ang Ref Pred\n", "[23.02|13:02:12] CheckForces: -5 1 1\n", "[23.02|13:02:12] CheckForces: -4 1 0\n", "[23.02|13:02:12] CheckForces: -3 0 1\n", "[23.02|13:02:12] CheckForces: -2 30 30\n", "[23.02|13:02:12] CheckForces: -1 187 185\n", "[23.02|13:02:12] CheckForces: 0 181 185\n", "[23.02|13:02:12] CheckForces: 1 28 27\n", "[23.02|13:02:12] CheckForces: 2 3 3\n", "[23.02|13:02:12] CheckForces: 3 1 0\n", "[23.02|13:02:12] CheckForces: Threshold for 0 force: 0.30 eV/angstrom\n", "[23.02|13:02:12] CheckForces: Force components with an error exceeding the threshold:\n", "[23.02|13:02:12] CheckForces: Ref Pred Delta Threshold\n", "[23.02|13:02:12] CheckForces: -1.49 -1.04 0.45 0.39\n", "[23.02|13:02:12] CheckForces: 2.10 1.49 0.61 0.45\n", "[23.02|13:02:12] CheckForces: 3.34 2.69 0.65 0.63\n", "[23.02|13:02:12] CheckForces: -1.26 -0.81 0.45 0.37\n", "[23.02|13:02:12] CheckForces: -3.07 -2.48 0.60 0.58\n", "[23.02|13:02:12] CheckForces: Maximum deviation: 0.654 eV/angstrom\n", "[23.02|13:02:12] CheckForces: Actual Threshold\n", "[23.02|13:02:12] CheckForces: # > thr. 5 0 Not OK!\n", "[23.02|13:02:12] CheckForces: MAE 0.049 0.30 OK!\n", "[23.02|13:02:12] CheckForces: R^2 0.989 0.80 OK!\n", "[23.02|13:02:12] CheckForces: --------------------\n", "[23.02|13:02:12]\n", "[23.02|13:02:12] Adding results from step1_attempt1_reference_calc1 to training set\n", "[23.02|13:02:12] Current # training set entries: 14\n", "[23.02|13:02:12] Current # validation set entries: 7\n", "[23.02|13:02:12] Storing data in step1_attempt1_reference_data\n", "[23.02|13:02:12] Deleting initial_reference_data\n", "[23.02|13:02:12] Deleting step1_attempt1_reference_calc1\n", "[23.02|13:02:12]\n", "[23.02|13:02:12] Current (cumulative) timings:\n", "[23.02|13:02:12] Time (s) Fraction\n", "[23.02|13:02:12] Ref. calcs 1.07 0.041\n", "[23.02|13:02:12] ML training 0.00 0.000\n", "[23.02|13:02:12] Simulations 25.35 0.959\n", "[23.02|13:02:12]\n", "[23.02|13:02:12]\n", "[23.02|13:02:13]\n", "[23.02|13:02:13] --- Begin summary ---\n", "[23.02|13:02:13] Step Attempt Status Reason finalframe_forces_max_delta\n", "[23.02|13:02:13] 1 1 FAILED Inaccurate 0.6537\n", "[23.02|13:02:13] --- End summary ---\n", "[23.02|13:02:13]\n", "[23.02|13:02:13] Running more reference calculations....\n", "[23.02|13:02:13] Running reference calculations on frames [6] from step1_attempt1_simulation/ams.rkf\n", "[23.02|13:02:13] Calculating 1 frames in total\n", "[23.02|13:02:13] Running step1_attempt1_reference_calc2\n", "[23.02|13:02:14] Reference calculations finished!\n", "[23.02|13:02:14] Adding results from step1_attempt1_reference_calc2 to validation set\n", "[23.02|13:02:14] Current # training set entries: 14\n", "[23.02|13:02:14] Current # validation set entries: 8\n", "[23.02|13:02:14] Storing data in step1_attempt1_reference_data\n", "[23.02|13:02:14] Deleting step1_attempt1_reference_calc2\n", "[23.02|13:02:14] Launching reparametrization job: step1_attempt1_training\n", "[23.02|13:02:19] JOB m3gnet STARTED\n", "[23.02|13:02:19] Starting m3gnet.prerun()\n", "[23.02|13:02:19] m3gnet.prerun() finished\n", "[23.02|13:02:19] JOB m3gnet RUNNING\n", "[23.02|13:02:19] Executing m3gnet.run\n", "[23.02|13:03:26] training_set Optimizer: 001 Epoch: 0 Loss: 0.004650\n", "[23.02|13:03:26] validation_set Optimizer: 001 Epoch: 0 Loss: 0.077072\n", "[23.02|13:03:30] training_set Optimizer: 001 Epoch: 10 Loss: 0.000513\n", "[23.02|13:03:30] validation_set Optimizer: 001 Epoch: 10 Loss: 0.014438\n", "[23.02|13:03:34] training_set Optimizer: 001 Epoch: 20 Loss: 0.000234\n", "[23.02|13:03:34] validation_set Optimizer: 001 Epoch: 20 Loss: 0.007946\n", "[23.02|13:03:39] training_set Optimizer: 001 Epoch: 30 Loss: 0.000202\n", "[23.02|13:03:39] validation_set Optimizer: 001 Epoch: 30 Loss: 0.004903\n", "[23.02|13:03:43] training_set Optimizer: 001 Epoch: 40 Loss: 0.000189\n", "[23.02|13:03:43] validation_set Optimizer: 001 Epoch: 40 Loss: 0.005216\n", "[23.02|13:03:47] training_set Optimizer: 001 Epoch: 50 Loss: 0.000185\n", "[23.02|13:03:47] validation_set Optimizer: 001 Epoch: 50 Loss: 0.005106\n", "[23.02|13:03:51] training_set Optimizer: 001 Epoch: 60 Loss: 0.000185\n", "[23.02|13:03:51] validation_set Optimizer: 001 Epoch: 60 Loss: 0.005151\n", "[23.02|13:03:55] training_set Optimizer: 001 Epoch: 70 Loss: 0.000181\n", "[23.02|13:03:55] validation_set Optimizer: 001 Epoch: 70 Loss: 0.005095\n", "[23.02|13:04:00] training_set Optimizer: 001 Epoch: 80 Loss: 0.000179\n", "[23.02|13:04:00] validation_set Optimizer: 001 Epoch: 80 Loss: 0.004864\n", "[23.02|13:04:04] training_set Optimizer: 001 Epoch: 90 Loss: 0.000172\n", "[23.02|13:04:04] validation_set Optimizer: 001 Epoch: 90 Loss: 0.005587\n", "[23.02|13:04:08] training_set Optimizer: 001 Epoch: 100 Loss: 0.000174\n", "[23.02|13:04:08] validation_set Optimizer: 001 Epoch: 100 Loss: 0.006889\n", "[23.02|13:04:13] training_set Optimizer: 001 Epoch: 110 Loss: 0.000167\n", "[23.02|13:04:13] validation_set Optimizer: 001 Epoch: 110 Loss: 0.005299\n", "[23.02|13:04:17] training_set Optimizer: 001 Epoch: 120 Loss: 0.000170\n", "[23.02|13:04:17] validation_set Optimizer: 001 Epoch: 120 Loss: 0.007555\n", "[23.02|13:04:21] training_set Optimizer: 001 Epoch: 130 Loss: 0.000162\n", "[23.02|13:04:21] validation_set Optimizer: 001 Epoch: 130 Loss: 0.006832\n", "[23.02|13:04:26] training_set Optimizer: 001 Epoch: 140 Loss: 0.000162\n", "[23.02|13:04:26] validation_set Optimizer: 001 Epoch: 140 Loss: 0.005656\n", "[23.02|13:04:30] training_set Optimizer: 001 Epoch: 150 Loss: 0.000159\n", "[23.02|13:04:30] validation_set Optimizer: 001 Epoch: 150 Loss: 0.005022\n", "[23.02|13:04:35] training_set Optimizer: 001 Epoch: 160 Loss: 0.000161\n", "[23.02|13:04:35] validation_set Optimizer: 001 Epoch: 160 Loss: 0.005064\n", "[23.02|13:04:39] training_set Optimizer: 001 Epoch: 170 Loss: 0.000156\n", "[23.02|13:04:39] validation_set Optimizer: 001 Epoch: 170 Loss: 0.005446\n", "[23.02|13:04:43] training_set Optimizer: 001 Epoch: 180 Loss: 0.000166\n", "[23.02|13:04:43] validation_set Optimizer: 001 Epoch: 180 Loss: 0.004793\n", "[23.02|13:04:48] training_set Optimizer: 001 Epoch: 190 Loss: 0.000149\n", "[23.02|13:04:48] validation_set Optimizer: 001 Epoch: 190 Loss: 0.005387\n", "[23.02|13:04:52] training_set Optimizer: 001 Epoch: 200 Loss: 0.000155\n", "[23.02|13:04:52] validation_set Optimizer: 001 Epoch: 200 Loss: 0.004907\n", "[23.02|13:04:56] training_set Optimizer: 001 Epoch: 210 Loss: 0.000148\n", "[23.02|13:04:56] validation_set Optimizer: 001 Epoch: 210 Loss: 0.005151\n", "[23.02|13:05:01] training_set Optimizer: 001 Epoch: 220 Loss: 0.000155\n", "[23.02|13:05:01] validation_set Optimizer: 001 Epoch: 220 Loss: 0.006620\n", "[23.02|13:05:05] training_set Optimizer: 001 Epoch: 230 Loss: 0.000152\n", "[23.02|13:05:05] validation_set Optimizer: 001 Epoch: 230 Loss: 0.006390\n", "[23.02|13:05:10] training_set Optimizer: 001 Epoch: 240 Loss: 0.000149\n", "[23.02|13:05:10] validation_set Optimizer: 001 Epoch: 240 Loss: 0.004810\n", "[23.02|13:05:14] training_set Optimizer: 001 Epoch: 250 Loss: 0.000147\n", "[23.02|13:05:14] validation_set Optimizer: 001 Epoch: 250 Loss: 0.005164\n", "[23.02|13:05:19] training_set Optimizer: 001 Epoch: 260 Loss: 0.000140\n", "[23.02|13:05:19] validation_set Optimizer: 001 Epoch: 260 Loss: 0.006953\n", "[23.02|13:05:23] training_set Optimizer: 001 Epoch: 270 Loss: 0.000141\n", "[23.02|13:05:23] validation_set Optimizer: 001 Epoch: 270 Loss: 0.006485\n", "[23.02|13:05:27] training_set Optimizer: 001 Epoch: 280 Loss: 0.000140\n", "[23.02|13:05:27] validation_set Optimizer: 001 Epoch: 280 Loss: 0.005240\n", "[23.02|13:05:32] training_set Optimizer: 001 Epoch: 290 Loss: 0.000140\n", "[23.02|13:05:32] validation_set Optimizer: 001 Epoch: 290 Loss: 0.005553\n", "[23.02|13:05:38] Execution of m3gnet.run finished with returncode 0\n", "[23.02|13:05:38] JOB m3gnet FINISHED\n", "[23.02|13:05:38] Starting m3gnet.postrun()\n", "[23.02|13:05:38] m3gnet.postrun() finished\n", "[23.02|13:05:38] JOB m3gnet SUCCESSFUL\n", "[23.02|13:05:52] Running all jobs through AMS....\n", "[23.02|13:05:52] Storing results/optimization/training_set_results/best\n", "[23.02|13:05:52] Storing results/optimization/validation_set_results/best\n", "[23.02|13:05:52] PLAMS environment cleaned up successfully\n", "[23.02|13:05:52] PLAMS run finished. Goodbye\n", "[23.02|13:05:53] ParAMSResults training_set validation_set\n", "[23.02|13:05:53] energy MAE 0.0912 0.0665 eV\n", "[23.02|13:05:53] forces MAE 0.0306 0.0478 eV/angstrom\n", "[23.02|13:05:53] Newly created parameter file/dir: step1_attempt1_training/results/optimization/m3gnet/m3gnet\n", "[23.02|13:05:53] Done!\n", "[23.02|13:05:53] ##########################\n", "[23.02|13:05:53] ### Step 1 / Attempt 2 ###\n", "[23.02|13:05:53] ##########################\n", "[23.02|13:05:53] MD Steps: 500 (cumulative: 500)\n", "[23.02|13:05:53] Current engine settings:\n", "[23.02|13:05:53]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/scan_density_al.007/step1_attempt1_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[23.02|13:05:53] Running step1_attempt2_simulation...\n", "[23.02|13:06:16] Job step1_attempt2_simulation finished\n", "[23.02|13:06:16] Deleting files that are no longer needed...\n", "[23.02|13:06:17] Launching reference calculation\n", "[23.02|13:06:18] Reference calculation finished!\n", "[23.02|13:06:18] Checking success for step1_attempt2\n", "[23.02|13:06:27] CheckEnergy: Checking energy for MDStep500, n_atoms = 144\n", "[23.02|13:06:27] CheckEnergy: normalization coefficient = 144\n", "[23.02|13:06:27] CheckEnergy: Actual Threshold\n", "[23.02|13:06:27] CheckEnergy: dE/144 -0.0010 0.0020 OK!\n", "[23.02|13:06:27] CheckEnergy: ddE/144 -0.0006 0.0010 OK! (relative to step1_attempt1_simulation:MDStep500)\n", "[23.02|13:06:27]\n", "[23.02|13:06:27] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[23.02|13:06:27] CheckForces: ------------\n", "[23.02|13:06:27] CheckForces: Reference job from step1_attempt2_reference_calc1\n", "[23.02|13:06:27] CheckForces: Prediction job from final frame (MDStep500) of step1_attempt2_simulation\n", "[23.02|13:06:27] CheckForces: ------------\n", "[23.02|13:06:27] CheckForces: Histogram of forces\n", "[23.02|13:06:27] CheckForces: eV/Ang Ref Pred\n", "[23.02|13:06:27] CheckForces: -4 1 0\n", "[23.02|13:06:27] CheckForces: -3 3 4\n", "[23.02|13:06:27] CheckForces: -2 15 14\n", "[23.02|13:06:27] CheckForces: -1 191 196\n", "[23.02|13:06:27] CheckForces: 0 197 196\n", "[23.02|13:06:27] CheckForces: 1 25 22\n", "[23.02|13:06:27] CheckForces: 2 0 0\n", "[23.02|13:06:27] CheckForces: Threshold for 0 force: 0.30 eV/angstrom\n", "[23.02|13:06:27] CheckForces: All force components are within the acceptable error!\n", "[23.02|13:06:27] CheckForces: Maximum deviation: 0.311 eV/angstrom\n", "[23.02|13:06:27] CheckForces: Actual Threshold\n", "[23.02|13:06:27] CheckForces: # > thr. 0 0 OK!\n", "[23.02|13:06:27] CheckForces: MAE 0.040 0.30 OK!\n", "[23.02|13:06:27] CheckForces: R^2 0.992 0.80 OK!\n", "[23.02|13:06:27] CheckForces: --------------------\n", "[23.02|13:06:27]\n", "[23.02|13:06:27] Adding results from step1_attempt2_reference_calc1 to training set\n", "[23.02|13:06:27] Current # training set entries: 15\n", "[23.02|13:06:27] Current # validation set entries: 8\n", "[23.02|13:06:27] Storing data in step1_attempt2_reference_data\n", "[23.02|13:06:27] Deleting step1_attempt1_reference_data\n", "[23.02|13:06:27] Deleting step1_attempt2_reference_calc1\n", "[23.02|13:06:27]\n", "[23.02|13:06:27] Current (cumulative) timings:\n", "[23.02|13:06:27] Time (s) Fraction\n", "[23.02|13:06:27] Ref. calcs 3.02 0.011\n", "[23.02|13:06:27] ML training 218.53 0.808\n", "[23.02|13:06:27] Simulations 48.83 0.181\n", "[23.02|13:06:27]\n", "[23.02|13:06:27]\n", "[23.02|13:06:28] Step 1 finished successfully!\n", "[23.02|13:06:28]\n", "[23.02|13:06:28] --- Begin summary ---\n", "[23.02|13:06:28] Step Attempt Status Reason finalframe_forces_max_delta\n", "[23.02|13:06:28] 1 1 FAILED Inaccurate 0.6537\n", "[23.02|13:06:28] 1 2 SUCCESS Accurate 0.3114\n", "[23.02|13:06:28] --- End summary ---\n", "[23.02|13:06:28]\n", "[23.02|13:06:28] ##########################\n", "[23.02|13:06:28] ### Step 2 / Attempt 1 ###\n", "[23.02|13:06:28] ##########################\n", "[23.02|13:06:28] MD Steps: 5000 (cumulative: 5500)\n", "[23.02|13:06:28] Current engine settings:\n", "[23.02|13:06:28]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/scan_density_al.007/step1_attempt1_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[23.02|13:06:28] Running step2_attempt1_simulation...\n", "[23.02|13:08:38] Job step2_attempt1_simulation finished\n", "[23.02|13:08:38] Deleting files that are no longer needed...\n", "[23.02|13:08:38] Deleting step1_attempt1_simulation\n", "[23.02|13:08:39] Launching reference calculation\n", "[23.02|13:08:40] Reference calculation finished!\n", "[23.02|13:08:40] Checking success for step2_attempt1\n", "[23.02|13:08:49] CheckEnergy: Checking energy for MDStep5500, n_atoms = 144\n", "[23.02|13:08:49] CheckEnergy: normalization coefficient = 144\n", "[23.02|13:08:49] CheckEnergy: Actual Threshold\n", "[23.02|13:08:49] CheckEnergy: dE/144 -0.0024 0.0020 Not OK!\n", "[23.02|13:08:49] CheckEnergy: ddE/144 -0.0014 0.0010 Not OK! (relative to step1_attempt2_simulation:MDStep500)\n", "[23.02|13:08:49]\n", "[23.02|13:08:49] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[23.02|13:08:49] CheckForces: ------------\n", "[23.02|13:08:49] CheckForces: Reference job from step2_attempt1_reference_calc1\n", "[23.02|13:08:49] CheckForces: Prediction job from final frame (MDStep5500) of step2_attempt1_simulation\n", "[23.02|13:08:49] CheckForces: ------------\n", "[23.02|13:08:49] CheckForces: Histogram of forces\n", "[23.02|13:08:49] CheckForces: eV/Ang Ref Pred\n", "[23.02|13:08:49] CheckForces: -3 2 2\n", "[23.02|13:08:49] CheckForces: -2 26 29\n", "[23.02|13:08:49] CheckForces: -1 194 192\n", "[23.02|13:08:49] CheckForces: 0 178 180\n", "[23.02|13:08:49] CheckForces: 1 31 28\n", "[23.02|13:08:49] CheckForces: 2 1 1\n", "[23.02|13:08:49] CheckForces: 3 0 0\n", "[23.02|13:08:49] CheckForces: Threshold for 0 force: 0.30 eV/angstrom\n", "[23.02|13:08:49] CheckForces: All force components are within the acceptable error!\n", "[23.02|13:08:49] CheckForces: Maximum deviation: 0.248 eV/angstrom\n", "[23.02|13:08:49] CheckForces: Actual Threshold\n", "[23.02|13:08:49] CheckForces: # > thr. 0 0 OK!\n", "[23.02|13:08:49] CheckForces: MAE 0.047 0.30 OK!\n", "[23.02|13:08:49] CheckForces: R^2 0.992 0.80 OK!\n", "[23.02|13:08:49] CheckForces: --------------------\n", "[23.02|13:08:49]\n", "[23.02|13:08:49] Adding results from step2_attempt1_reference_calc1 to training set\n", "[23.02|13:08:49] Current # training set entries: 16\n", "[23.02|13:08:49] Current # validation set entries: 8\n", "[23.02|13:08:49] Storing data in step2_attempt1_reference_data\n", "[23.02|13:08:49] Deleting step1_attempt2_reference_data\n", "[23.02|13:08:49] Deleting step2_attempt1_reference_calc1\n", "[23.02|13:08:49]\n", "[23.02|13:08:49] Current (cumulative) timings:\n", "[23.02|13:08:49] Time (s) Fraction\n", "[23.02|13:08:49] Ref. calcs 3.81 0.009\n", "[23.02|13:08:49] ML training 218.53 0.544\n", "[23.02|13:08:49] Simulations 179.34 0.446\n", "[23.02|13:08:49]\n", "[23.02|13:08:49]\n", "[23.02|13:08:49]\n", "[23.02|13:08:49] --- Begin summary ---\n", "[23.02|13:08:49] Step Attempt Status Reason finalframe_forces_max_delta\n", "[23.02|13:08:49] 1 1 FAILED Inaccurate 0.6537\n", "[23.02|13:08:49] 1 2 SUCCESS Accurate 0.3114\n", "[23.02|13:08:49] 2 1 FAILED Inaccurate 0.2480\n", "[23.02|13:08:49] --- End summary ---\n", "[23.02|13:08:49]\n", "[23.02|13:08:49] Running more reference calculations....\n", "[23.02|13:08:50] Running reference calculations on frames [36] from step2_attempt1_simulation/ams.rkf\n", "[23.02|13:08:50] Calculating 1 frames in total\n", "[23.02|13:08:50] Running step2_attempt1_reference_calc2\n", "[23.02|13:08:50] Reference calculations finished!\n", "[23.02|13:08:51] Adding results from step2_attempt1_reference_calc2 to validation set\n", "[23.02|13:08:51] Current # training set entries: 16\n", "[23.02|13:08:51] Current # validation set entries: 9\n", "[23.02|13:08:51] Storing data in step2_attempt1_reference_data\n", "[23.02|13:08:51] Deleting step2_attempt1_reference_calc2\n", "[23.02|13:08:51] Launching reparametrization job: step2_attempt1_training\n", "[23.02|13:08:55] JOB m3gnet STARTED\n", "[23.02|13:08:55] Starting m3gnet.prerun()\n", "[23.02|13:08:55] m3gnet.prerun() finished\n", "[23.02|13:08:55] JOB m3gnet RUNNING\n", "[23.02|13:08:55] Executing m3gnet.run\n", "[23.02|13:09:58] training_set Optimizer: 001 Epoch: 0 Loss: 0.005181\n", "[23.02|13:09:58] validation_set Optimizer: 001 Epoch: 0 Loss: 0.092099\n", "[23.02|13:10:03] training_set Optimizer: 001 Epoch: 10 Loss: 0.000306\n", "[23.02|13:10:03] validation_set Optimizer: 001 Epoch: 10 Loss: 0.014201\n", "[23.02|13:10:08] training_set Optimizer: 001 Epoch: 20 Loss: 0.000155\n", "[23.02|13:10:08] validation_set Optimizer: 001 Epoch: 20 Loss: 0.005534\n", "[23.02|13:10:13] training_set Optimizer: 001 Epoch: 30 Loss: 0.000147\n", "[23.02|13:10:13] validation_set Optimizer: 001 Epoch: 30 Loss: 0.004735\n", "[23.02|13:10:18] training_set Optimizer: 001 Epoch: 40 Loss: 0.000150\n", "[23.02|13:10:18] validation_set Optimizer: 001 Epoch: 40 Loss: 0.004815\n", "[23.02|13:10:23] training_set Optimizer: 001 Epoch: 50 Loss: 0.000138\n", "[23.02|13:10:23] validation_set Optimizer: 001 Epoch: 50 Loss: 0.004652\n", "[23.02|13:10:28] training_set Optimizer: 001 Epoch: 60 Loss: 0.000139\n", "[23.02|13:10:28] validation_set Optimizer: 001 Epoch: 60 Loss: 0.005051\n", "[23.02|13:10:33] training_set Optimizer: 001 Epoch: 70 Loss: 0.000147\n", "[23.02|13:10:33] validation_set Optimizer: 001 Epoch: 70 Loss: 0.004521\n", "[23.02|13:10:38] training_set Optimizer: 001 Epoch: 80 Loss: 0.000176\n", "[23.02|13:10:38] validation_set Optimizer: 001 Epoch: 80 Loss: 0.006159\n", "[23.02|13:10:43] training_set Optimizer: 001 Epoch: 90 Loss: 0.000144\n", "[23.02|13:10:43] validation_set Optimizer: 001 Epoch: 90 Loss: 0.005048\n", "[23.02|13:10:49] training_set Optimizer: 001 Epoch: 100 Loss: 0.000153\n", "[23.02|13:10:49] validation_set Optimizer: 001 Epoch: 100 Loss: 0.006563\n", "[23.02|13:10:54] training_set Optimizer: 001 Epoch: 110 Loss: 0.000134\n", "[23.02|13:10:54] validation_set Optimizer: 001 Epoch: 110 Loss: 0.005537\n", "[23.02|13:10:59] training_set Optimizer: 001 Epoch: 120 Loss: 0.000156\n", "[23.02|13:10:59] validation_set Optimizer: 001 Epoch: 120 Loss: 0.006106\n", "[23.02|13:11:04] training_set Optimizer: 001 Epoch: 130 Loss: 0.000143\n", "[23.02|13:11:04] validation_set Optimizer: 001 Epoch: 130 Loss: 0.004727\n", "[23.02|13:11:09] training_set Optimizer: 001 Epoch: 140 Loss: 0.000132\n", "[23.02|13:11:09] validation_set Optimizer: 001 Epoch: 140 Loss: 0.004666\n", "[23.02|13:11:14] training_set Optimizer: 001 Epoch: 150 Loss: 0.000148\n", "[23.02|13:11:14] validation_set Optimizer: 001 Epoch: 150 Loss: 0.006829\n", "[23.02|13:11:19] training_set Optimizer: 001 Epoch: 160 Loss: 0.000144\n", "[23.02|13:11:19] validation_set Optimizer: 001 Epoch: 160 Loss: 0.007166\n", "[23.02|13:11:24] training_set Optimizer: 001 Epoch: 170 Loss: 0.000128\n", "[23.02|13:11:24] validation_set Optimizer: 001 Epoch: 170 Loss: 0.007459\n", "[23.02|13:11:29] training_set Optimizer: 001 Epoch: 180 Loss: 0.000144\n", "[23.02|13:11:29] validation_set Optimizer: 001 Epoch: 180 Loss: 0.006733\n", "[23.02|13:11:34] training_set Optimizer: 001 Epoch: 190 Loss: 0.000134\n", "[23.02|13:11:34] validation_set Optimizer: 001 Epoch: 190 Loss: 0.005596\n", "[23.02|13:11:39] training_set Optimizer: 001 Epoch: 200 Loss: 0.000175\n", "[23.02|13:11:39] validation_set Optimizer: 001 Epoch: 200 Loss: 0.005531\n", "[23.02|13:11:44] training_set Optimizer: 001 Epoch: 210 Loss: 0.000129\n", "[23.02|13:11:44] validation_set Optimizer: 001 Epoch: 210 Loss: 0.005266\n", "[23.02|13:11:49] training_set Optimizer: 001 Epoch: 220 Loss: 0.000126\n", "[23.02|13:11:49] validation_set Optimizer: 001 Epoch: 220 Loss: 0.007299\n", "[23.02|13:11:54] training_set Optimizer: 001 Epoch: 230 Loss: 0.000138\n", "[23.02|13:11:54] validation_set Optimizer: 001 Epoch: 230 Loss: 0.004846\n", "[23.02|13:12:00] training_set Optimizer: 001 Epoch: 240 Loss: 0.000136\n", "[23.02|13:12:00] validation_set Optimizer: 001 Epoch: 240 Loss: 0.004617\n", "[23.02|13:12:05] training_set Optimizer: 001 Epoch: 250 Loss: 0.000141\n", "[23.02|13:12:05] validation_set Optimizer: 001 Epoch: 250 Loss: 0.007719\n", "[23.02|13:12:10] training_set Optimizer: 001 Epoch: 260 Loss: 0.000156\n", "[23.02|13:12:10] validation_set Optimizer: 001 Epoch: 260 Loss: 0.004924\n", "[23.02|13:12:15] training_set Optimizer: 001 Epoch: 270 Loss: 0.000161\n", "[23.02|13:12:15] validation_set Optimizer: 001 Epoch: 270 Loss: 0.008522\n", "[23.02|13:12:20] training_set Optimizer: 001 Epoch: 280 Loss: 0.000178\n", "[23.02|13:12:20] validation_set Optimizer: 001 Epoch: 280 Loss: 0.008947\n", "[23.02|13:12:25] training_set Optimizer: 001 Epoch: 290 Loss: 0.000457\n", "[23.02|13:12:25] validation_set Optimizer: 001 Epoch: 290 Loss: 0.010013\n", "[23.02|13:12:31] Execution of m3gnet.run finished with returncode 0\n", "[23.02|13:12:31] JOB m3gnet FINISHED\n", "[23.02|13:12:31] Starting m3gnet.postrun()\n", "[23.02|13:12:31] m3gnet.postrun() finished\n", "[23.02|13:12:32] JOB m3gnet SUCCESSFUL\n", "[23.02|13:12:45] Running all jobs through AMS....\n", "[23.02|13:12:45] Storing results/optimization/training_set_results/best\n", "[23.02|13:12:45] Storing results/optimization/validation_set_results/best\n", "[23.02|13:12:45] PLAMS environment cleaned up successfully\n", "[23.02|13:12:45] PLAMS run finished. Goodbye\n", "[23.02|13:12:46] ParAMSResults training_set validation_set\n", "[23.02|13:12:46] energy MAE 0.6409 0.6951 eV\n", "[23.02|13:12:46] forces MAE 0.0303 0.0429 eV/angstrom\n", "[23.02|13:12:46] Newly created parameter file/dir: step2_attempt1_training/results/optimization/m3gnet/m3gnet\n", "[23.02|13:12:46] Done!\n", "[23.02|13:12:46] Deleting step1_attempt1_training\n", "[23.02|13:12:46] ##########################\n", "[23.02|13:12:46] ### Step 2 / Attempt 2 ###\n", "[23.02|13:12:46] ##########################\n", "[23.02|13:12:46] MD Steps: 5000 (cumulative: 5500)\n", "[23.02|13:12:46] Current engine settings:\n", "[23.02|13:12:46]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/scan_density_al.007/step2_attempt1_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[23.02|13:12:46] Running step2_attempt2_simulation...\n", "[23.02|13:14:58] Job step2_attempt2_simulation finished\n", "[23.02|13:14:58] Deleting files that are no longer needed...\n", "[23.02|13:14:59] Launching reference calculation\n", "[23.02|13:15:00] Reference calculation finished!\n", "[23.02|13:15:00] Checking success for step2_attempt2\n", "[23.02|13:15:09] CheckEnergy: Checking energy for MDStep5500, n_atoms = 144\n", "[23.02|13:15:09] CheckEnergy: normalization coefficient = 144\n", "[23.02|13:15:09] CheckEnergy: Actual Threshold\n", "[23.02|13:15:09] CheckEnergy: dE/144 0.0047 0.0020 Not OK!\n", "[23.02|13:15:09] CheckEnergy: ddE/144 0.0018 0.0010 Not OK! (relative to step2_attempt1_simulation:MDStep5500)\n", "[23.02|13:15:09]\n", "[23.02|13:15:09] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[23.02|13:15:09] CheckForces: ------------\n", "[23.02|13:15:09] CheckForces: Reference job from step2_attempt2_reference_calc1\n", "[23.02|13:15:09] CheckForces: Prediction job from final frame (MDStep5500) of step2_attempt2_simulation\n", "[23.02|13:15:09] CheckForces: ------------\n", "[23.02|13:15:09] CheckForces: Histogram of forces\n", "[23.02|13:15:09] CheckForces: eV/Ang Ref Pred\n", "[23.02|13:15:09] CheckForces: -4 0 0\n", "[23.02|13:15:09] CheckForces: -3 4 4\n", "[23.02|13:15:09] CheckForces: -2 21 21\n", "[23.02|13:15:09] CheckForces: -1 183 181\n", "[23.02|13:15:09] CheckForces: 0 202 205\n", "[23.02|13:15:09] CheckForces: 1 19 18\n", "[23.02|13:15:09] CheckForces: 2 3 3\n", "[23.02|13:15:09] CheckForces: 3 0 0\n", "[23.02|13:15:09] CheckForces: Threshold for 0 force: 0.30 eV/angstrom\n", "[23.02|13:15:09] CheckForces: All force components are within the acceptable error!\n", "[23.02|13:15:09] CheckForces: Maximum deviation: 0.196 eV/angstrom\n", "[23.02|13:15:09] CheckForces: Actual Threshold\n", "[23.02|13:15:09] CheckForces: # > thr. 0 0 OK!\n", "[23.02|13:15:09] CheckForces: MAE 0.030 0.30 OK!\n", "[23.02|13:15:09] CheckForces: R^2 0.996 0.80 OK!\n", "[23.02|13:15:09] CheckForces: --------------------\n", "[23.02|13:15:09]\n", "[23.02|13:15:09] Adding results from step2_attempt2_reference_calc1 to training set\n", "[23.02|13:15:09] Current # training set entries: 17\n", "[23.02|13:15:09] Current # validation set entries: 9\n", "[23.02|13:15:09] Storing data in step2_attempt2_reference_data\n", "[23.02|13:15:09] Deleting step2_attempt1_reference_data\n", "[23.02|13:15:09] Deleting step2_attempt2_reference_calc1\n", "[23.02|13:15:09]\n", "[23.02|13:15:09] Current (cumulative) timings:\n", "[23.02|13:15:09] Time (s) Fraction\n", "[23.02|13:15:09] Ref. calcs 5.64 0.007\n", "[23.02|13:15:09] ML training 453.91 0.589\n", "[23.02|13:15:09] Simulations 311.13 0.404\n", "[23.02|13:15:09]\n", "[23.02|13:15:09]\n", "[23.02|13:15:10]\n", "[23.02|13:15:10] --- Begin summary ---\n", "[23.02|13:15:10] Step Attempt Status Reason finalframe_forces_max_delta\n", "[23.02|13:15:10] 1 1 FAILED Inaccurate 0.6537\n", "[23.02|13:15:10] 1 2 SUCCESS Accurate 0.3114\n", "[23.02|13:15:10] 2 1 FAILED Inaccurate 0.2480\n", "[23.02|13:15:10] 2 2 FAILED Inaccurate 0.1961\n", "[23.02|13:15:10] --- End summary ---\n", "[23.02|13:15:10]\n", "[23.02|13:15:10] Running more reference calculations....\n", "[23.02|13:15:10] Running reference calculations on frames [36] from step2_attempt2_simulation/ams.rkf\n", "[23.02|13:15:10] Calculating 1 frames in total\n", "[23.02|13:15:10] Running step2_attempt2_reference_calc2\n", "[23.02|13:15:11] Reference calculations finished!\n", "[23.02|13:15:11] Adding results from step2_attempt2_reference_calc2 to validation set\n", "[23.02|13:15:11] Current # training set entries: 17\n", "[23.02|13:15:11] Current # validation set entries: 10\n", "[23.02|13:15:11] Storing data in step2_attempt2_reference_data\n", "[23.02|13:15:11] Deleting step2_attempt2_reference_calc2\n", "[23.02|13:15:11] Launching reparametrization job: step2_attempt2_training\n", "[23.02|13:15:15] JOB m3gnet STARTED\n", "[23.02|13:15:15] Starting m3gnet.prerun()\n", "[23.02|13:15:15] m3gnet.prerun() finished\n", "[23.02|13:15:15] JOB m3gnet RUNNING\n", "[23.02|13:15:15] Executing m3gnet.run\n", "[23.02|13:16:19] training_set Optimizer: 001 Epoch: 0 Loss: 0.003812\n", "[23.02|13:16:19] validation_set Optimizer: 001 Epoch: 0 Loss: 0.071777\n", "[23.02|13:16:24] training_set Optimizer: 001 Epoch: 10 Loss: 0.000226\n", "[23.02|13:16:24] validation_set Optimizer: 001 Epoch: 10 Loss: 0.009449\n", "[23.02|13:16:29] training_set Optimizer: 001 Epoch: 20 Loss: 0.000124\n", "[23.02|13:16:29] validation_set Optimizer: 001 Epoch: 20 Loss: 0.004462\n", "[23.02|13:16:34] training_set Optimizer: 001 Epoch: 30 Loss: 0.000118\n", "[23.02|13:16:34] validation_set Optimizer: 001 Epoch: 30 Loss: 0.004269\n", "[23.02|13:16:40] training_set Optimizer: 001 Epoch: 40 Loss: 0.000111\n", "[23.02|13:16:40] validation_set Optimizer: 001 Epoch: 40 Loss: 0.004495\n", "[23.02|13:16:45] training_set Optimizer: 001 Epoch: 50 Loss: 0.000108\n", "[23.02|13:16:45] validation_set Optimizer: 001 Epoch: 50 Loss: 0.004333\n", "[23.02|13:16:50] training_set Optimizer: 001 Epoch: 60 Loss: 0.000115\n", "[23.02|13:16:50] validation_set Optimizer: 001 Epoch: 60 Loss: 0.004434\n", "[23.02|13:16:55] training_set Optimizer: 001 Epoch: 70 Loss: 0.000109\n", "[23.02|13:16:55] validation_set Optimizer: 001 Epoch: 70 Loss: 0.004656\n", "[23.02|13:17:01] training_set Optimizer: 001 Epoch: 80 Loss: 0.000110\n", "[23.02|13:17:01] validation_set Optimizer: 001 Epoch: 80 Loss: 0.004783\n", "[23.02|13:17:06] training_set Optimizer: 001 Epoch: 90 Loss: 0.000106\n", "[23.02|13:17:06] validation_set Optimizer: 001 Epoch: 90 Loss: 0.005066\n", "[23.02|13:17:11] training_set Optimizer: 001 Epoch: 100 Loss: 0.000102\n", "[23.02|13:17:11] validation_set Optimizer: 001 Epoch: 100 Loss: 0.006718\n", "[23.02|13:17:16] training_set Optimizer: 001 Epoch: 110 Loss: 0.000100\n", "[23.02|13:17:16] validation_set Optimizer: 001 Epoch: 110 Loss: 0.005038\n", "[23.02|13:17:22] training_set Optimizer: 001 Epoch: 120 Loss: 0.000107\n", "[23.02|13:17:22] validation_set Optimizer: 001 Epoch: 120 Loss: 0.005421\n", "[23.02|13:17:27] training_set Optimizer: 001 Epoch: 130 Loss: 0.000107\n", "[23.02|13:17:27] validation_set Optimizer: 001 Epoch: 130 Loss: 0.004292\n", "[23.02|13:17:32] training_set Optimizer: 001 Epoch: 140 Loss: 0.000109\n", "[23.02|13:17:32] validation_set Optimizer: 001 Epoch: 140 Loss: 0.005376\n", "[23.02|13:17:38] training_set Optimizer: 001 Epoch: 150 Loss: 0.000109\n", "[23.02|13:17:38] validation_set Optimizer: 001 Epoch: 150 Loss: 0.004401\n", "[23.02|13:17:43] training_set Optimizer: 001 Epoch: 160 Loss: 0.000113\n", "[23.02|13:17:43] validation_set Optimizer: 001 Epoch: 160 Loss: 0.005881\n", "[23.02|13:17:48] training_set Optimizer: 001 Epoch: 170 Loss: 0.000104\n", "[23.02|13:17:48] validation_set Optimizer: 001 Epoch: 170 Loss: 0.004462\n", "[23.02|13:17:53] training_set Optimizer: 001 Epoch: 180 Loss: 0.000103\n", "[23.02|13:17:53] validation_set Optimizer: 001 Epoch: 180 Loss: 0.006891\n", "[23.02|13:17:59] training_set Optimizer: 001 Epoch: 190 Loss: 0.000121\n", "[23.02|13:17:59] validation_set Optimizer: 001 Epoch: 190 Loss: 0.005956\n", "[23.02|13:18:04] training_set Optimizer: 001 Epoch: 200 Loss: 0.000097\n", "[23.02|13:18:04] validation_set Optimizer: 001 Epoch: 200 Loss: 0.006153\n", "[23.02|13:18:09] training_set Optimizer: 001 Epoch: 210 Loss: 0.000109\n", "[23.02|13:18:09] validation_set Optimizer: 001 Epoch: 210 Loss: 0.004813\n", "[23.02|13:18:14] training_set Optimizer: 001 Epoch: 220 Loss: 0.000108\n", "[23.02|13:18:14] validation_set Optimizer: 001 Epoch: 220 Loss: 0.005047\n", "[23.02|13:18:20] training_set Optimizer: 001 Epoch: 230 Loss: 0.000101\n", "[23.02|13:18:20] validation_set Optimizer: 001 Epoch: 230 Loss: 0.005860\n", "[23.02|13:18:26] training_set Optimizer: 001 Epoch: 240 Loss: 0.000103\n", "[23.02|13:18:26] validation_set Optimizer: 001 Epoch: 240 Loss: 0.004133\n", "[23.02|13:18:31] training_set Optimizer: 001 Epoch: 250 Loss: 0.000208\n", "[23.02|13:18:31] validation_set Optimizer: 001 Epoch: 250 Loss: 0.006404\n", "[23.02|13:18:36] training_set Optimizer: 001 Epoch: 260 Loss: 0.000106\n", "[23.02|13:18:36] validation_set Optimizer: 001 Epoch: 260 Loss: 0.006800\n", "[23.02|13:18:42] training_set Optimizer: 001 Epoch: 270 Loss: 0.000093\n", "[23.02|13:18:42] validation_set Optimizer: 001 Epoch: 270 Loss: 0.006832\n", "[23.02|13:18:47] training_set Optimizer: 001 Epoch: 280 Loss: 0.000102\n", "[23.02|13:18:47] validation_set Optimizer: 001 Epoch: 280 Loss: 0.006178\n", "[23.02|13:18:52] training_set Optimizer: 001 Epoch: 290 Loss: 0.000100\n", "[23.02|13:18:52] validation_set Optimizer: 001 Epoch: 290 Loss: 0.004143\n", "[23.02|13:18:59] Execution of m3gnet.run finished with returncode 0\n", "[23.02|13:18:59] JOB m3gnet FINISHED\n", "[23.02|13:18:59] Starting m3gnet.postrun()\n", "[23.02|13:18:59] m3gnet.postrun() finished\n", "[23.02|13:19:00] JOB m3gnet SUCCESSFUL\n", "[23.02|13:19:13] Running all jobs through AMS....\n", "[23.02|13:19:13] Storing results/optimization/training_set_results/best\n", "[23.02|13:19:13] Storing results/optimization/validation_set_results/best\n", "[23.02|13:19:13] PLAMS environment cleaned up successfully\n", "[23.02|13:19:13] PLAMS run finished. Goodbye\n", "[23.02|13:19:14] ParAMSResults training_set validation_set\n", "[23.02|13:19:14] energy MAE 0.1216 0.1699 eV\n", "[23.02|13:19:14] forces MAE 0.0239 0.0393 eV/angstrom\n", "[23.02|13:19:14] Newly created parameter file/dir: step2_attempt2_training/results/optimization/m3gnet/m3gnet\n", "[23.02|13:19:14] Done!\n", "[23.02|13:19:14] Deleting step2_attempt1_training\n", "[23.02|13:19:14] ##########################\n", "[23.02|13:19:14] ### Step 2 / Attempt 3 ###\n", "[23.02|13:19:14] ##########################\n", "[23.02|13:19:14] MD Steps: 5000 (cumulative: 5500)\n", "[23.02|13:19:14] Current engine settings:\n", "[23.02|13:19:14]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/scan_density_al.007/step2_attempt2_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[23.02|13:19:14] Running step2_attempt3_simulation...\n", "[23.02|13:21:25] Job step2_attempt3_simulation finished\n", "[23.02|13:21:25] Deleting files that are no longer needed...\n", "[23.02|13:21:26] Launching reference calculation\n", "[23.02|13:21:27] Reference calculation finished!\n", "[23.02|13:21:27] Checking success for step2_attempt3\n", "[23.02|13:21:36] CheckEnergy: Checking energy for MDStep5500, n_atoms = 144\n", "[23.02|13:21:36] CheckEnergy: normalization coefficient = 144\n", "[23.02|13:21:36] CheckEnergy: Actual Threshold\n", "[23.02|13:21:36] CheckEnergy: dE/144 0.0009 0.0020 OK!\n", "[23.02|13:21:36] CheckEnergy: ddE/144 0.0000 0.0010 OK! (relative to step2_attempt2_simulation:MDStep5500)\n", "[23.02|13:21:36]\n", "[23.02|13:21:36] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[23.02|13:21:36] CheckForces: ------------\n", "[23.02|13:21:36] CheckForces: Reference job from step2_attempt3_reference_calc1\n", "[23.02|13:21:36] CheckForces: Prediction job from final frame (MDStep5500) of step2_attempt3_simulation\n", "[23.02|13:21:36] CheckForces: ------------\n", "[23.02|13:21:36] CheckForces: Histogram of forces\n", "[23.02|13:21:36] CheckForces: eV/Ang Ref Pred\n", "[23.02|13:21:36] CheckForces: -3 1 1\n", "[23.02|13:21:36] CheckForces: -2 30 30\n", "[23.02|13:21:36] CheckForces: -1 184 187\n", "[23.02|13:21:36] CheckForces: 0 185 183\n", "[23.02|13:21:36] CheckForces: 1 29 28\n", "[23.02|13:21:36] CheckForces: 2 3 3\n", "[23.02|13:21:36] CheckForces: Threshold for 0 force: 0.30 eV/angstrom\n", "[23.02|13:21:36] CheckForces: All force components are within the acceptable error!\n", "[23.02|13:21:36] CheckForces: Maximum deviation: 0.141 eV/angstrom\n", "[23.02|13:21:36] CheckForces: Actual Threshold\n", "[23.02|13:21:36] CheckForces: # > thr. 0 0 OK!\n", "[23.02|13:21:36] CheckForces: MAE 0.028 0.30 OK!\n", "[23.02|13:21:36] CheckForces: R^2 0.997 0.80 OK!\n", "[23.02|13:21:36] CheckForces: --------------------\n", "[23.02|13:21:36]\n", "[23.02|13:21:36] Adding results from step2_attempt3_reference_calc1 to training set\n", "[23.02|13:21:36] Current # training set entries: 18\n", "[23.02|13:21:36] Current # validation set entries: 10\n", "[23.02|13:21:36] Storing data in step2_attempt3_reference_data\n", "[23.02|13:21:36] Deleting step2_attempt2_reference_data\n", "[23.02|13:21:36] Deleting step2_attempt3_reference_calc1\n", "[23.02|13:21:36]\n", "[23.02|13:21:36] Current (cumulative) timings:\n", "[23.02|13:21:36] Time (s) Fraction\n", "[23.02|13:21:36] Ref. calcs 7.38 0.006\n", "[23.02|13:21:36] ML training 697.00 0.608\n", "[23.02|13:21:36] Simulations 442.03 0.386\n", "[23.02|13:21:36]\n", "[23.02|13:21:36]\n", "[23.02|13:21:37] Step 2 finished successfully!\n", "[23.02|13:21:37]\n", "[23.02|13:21:37] --- Begin summary ---\n", "[23.02|13:21:37] Step Attempt Status Reason finalframe_forces_max_delta\n", "[23.02|13:21:37] 1 1 FAILED Inaccurate 0.6537\n", "[23.02|13:21:37] 1 2 SUCCESS Accurate 0.3114\n", "[23.02|13:21:37] 2 1 FAILED Inaccurate 0.2480\n", "[23.02|13:21:37] 2 2 FAILED Inaccurate 0.1961\n", "[23.02|13:21:37] 2 3 SUCCESS Accurate 0.1409\n", "[23.02|13:21:37] --- End summary ---\n", "[23.02|13:21:37]\n", "[23.02|13:21:37] ##########################\n", "[23.02|13:21:37] ### Step 3 / Attempt 1 ###\n", "[23.02|13:21:37] ##########################\n", "[23.02|13:21:37] MD Steps: 5000 (cumulative: 10500)\n", "[23.02|13:21:37] Current engine settings:\n", "[23.02|13:21:37]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/scan_density_al.007/step2_attempt2_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[23.02|13:21:37] Running step3_attempt1_simulation...\n", "[23.02|13:23:47] Job step3_attempt1_simulation finished\n", "[23.02|13:23:47] Deleting files that are no longer needed...\n", "[23.02|13:23:47] Deleting step1_attempt2_simulation\n", "[23.02|13:23:47] Deleting step2_attempt1_simulation\n", "[23.02|13:23:47] Deleting step2_attempt2_simulation\n", "[23.02|13:23:48] Launching reference calculation\n", "[23.02|13:23:49] Reference calculation finished!\n", "[23.02|13:23:49] Checking success for step3_attempt1\n", "[23.02|13:23:58] CheckEnergy: Checking energy for MDStep10500, n_atoms = 144\n", "[23.02|13:23:58] CheckEnergy: normalization coefficient = 144\n", "[23.02|13:23:58] CheckEnergy: Actual Threshold\n", "[23.02|13:23:58] CheckEnergy: dE/144 0.0004 0.0020 OK!\n", "[23.02|13:23:58] CheckEnergy: ddE/144 -0.0006 0.0010 OK! (relative to step2_attempt3_simulation:MDStep5500)\n", "[23.02|13:23:58]\n", "[23.02|13:23:58] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[23.02|13:23:58] CheckForces: ------------\n", "[23.02|13:23:58] CheckForces: Reference job from step3_attempt1_reference_calc1\n", "[23.02|13:23:58] CheckForces: Prediction job from final frame (MDStep10500) of step3_attempt1_simulation\n", "[23.02|13:23:58] CheckForces: ------------\n", "[23.02|13:23:58] CheckForces: Histogram of forces\n", "[23.02|13:23:58] CheckForces: eV/Ang Ref Pred\n", "[23.02|13:23:58] CheckForces: -4 0 0\n", "[23.02|13:23:58] CheckForces: -3 3 3\n", "[23.02|13:23:58] CheckForces: -2 20 19\n", "[23.02|13:23:58] CheckForces: -1 186 190\n", "[23.02|13:23:58] CheckForces: 0 194 191\n", "[23.02|13:23:58] CheckForces: 1 24 24\n", "[23.02|13:23:58] CheckForces: 2 5 5\n", "[23.02|13:23:58] CheckForces: 3 0 0\n", "[23.02|13:23:58] CheckForces: Threshold for 0 force: 0.30 eV/angstrom\n", "[23.02|13:23:58] CheckForces: All force components are within the acceptable error!\n", "[23.02|13:23:58] CheckForces: Maximum deviation: 0.183 eV/angstrom\n", "[23.02|13:23:58] CheckForces: Actual Threshold\n", "[23.02|13:23:58] CheckForces: # > thr. 0 0 OK!\n", "[23.02|13:23:58] CheckForces: MAE 0.032 0.30 OK!\n", "[23.02|13:23:58] CheckForces: R^2 0.996 0.80 OK!\n", "[23.02|13:23:58] CheckForces: --------------------\n", "[23.02|13:23:58]\n", "[23.02|13:23:58] Adding results from step3_attempt1_reference_calc1 to validation set\n", "[23.02|13:23:58] Current # training set entries: 18\n", "[23.02|13:23:58] Current # validation set entries: 11\n", "[23.02|13:23:58] Storing data in step3_attempt1_reference_data\n", "[23.02|13:23:58] Deleting step2_attempt3_reference_data\n", "[23.02|13:23:58] Deleting step3_attempt1_reference_calc1\n", "[23.02|13:23:58]\n", "[23.02|13:23:58] Current (cumulative) timings:\n", "[23.02|13:23:58] Time (s) Fraction\n", "[23.02|13:23:58] Ref. calcs 8.16 0.006\n", "[23.02|13:23:58] ML training 697.00 0.546\n", "[23.02|13:23:58] Simulations 572.52 0.448\n", "[23.02|13:23:58]\n", "[23.02|13:23:58]\n", "[23.02|13:23:59] Step 3 finished successfully!\n", "[23.02|13:23:59]\n", "[23.02|13:23:59] --- Begin summary ---\n", "[23.02|13:23:59] Step Attempt Status Reason finalframe_forces_max_delta\n", "[23.02|13:23:59] 1 1 FAILED Inaccurate 0.6537\n", "[23.02|13:23:59] 1 2 SUCCESS Accurate 0.3114\n", "[23.02|13:23:59] 2 1 FAILED Inaccurate 0.2480\n", "[23.02|13:23:59] 2 2 FAILED Inaccurate 0.1961\n", "[23.02|13:23:59] 2 3 SUCCESS Accurate 0.1409\n", "[23.02|13:23:59] 3 1 SUCCESS Accurate 0.1832\n", "[23.02|13:23:59] --- End summary ---\n", "[23.02|13:23:59]\n", "[23.02|13:23:59] ##########################\n", "[23.02|13:23:59] ### Step 4 / Attempt 1 ###\n", "[23.02|13:23:59] ##########################\n", "[23.02|13:23:59] MD Steps: 5000 (cumulative: 15500)\n", "[23.02|13:23:59] Current engine settings:\n", "[23.02|13:23:59]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/scan_density_al.007/step2_attempt2_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[23.02|13:23:59] Running step4_attempt1_simulation...\n", "[23.02|13:26:10] Job step4_attempt1_simulation finished\n", "[23.02|13:26:10] Deleting files that are no longer needed...\n", "[23.02|13:26:10] Deleting step2_attempt3_simulation\n", "[23.02|13:26:11] Launching reference calculation\n", "[23.02|13:26:12] Reference calculation finished!\n", "[23.02|13:26:12] Checking success for step4_attempt1\n", "[23.02|13:26:21] CheckEnergy: Checking energy for MDStep15500, n_atoms = 144\n", "[23.02|13:26:21] CheckEnergy: normalization coefficient = 144\n", "[23.02|13:26:21] CheckEnergy: Actual Threshold\n", "[23.02|13:26:21] CheckEnergy: dE/144 0.0005 0.0020 OK!\n", "[23.02|13:26:21] CheckEnergy: ddE/144 0.0001 0.0010 OK! (relative to step3_attempt1_simulation:MDStep10500)\n", "[23.02|13:26:21]\n", "[23.02|13:26:21] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[23.02|13:26:21] CheckForces: ------------\n", "[23.02|13:26:21] CheckForces: Reference job from step4_attempt1_reference_calc1\n", "[23.02|13:26:21] CheckForces: Prediction job from final frame (MDStep15500) of step4_attempt1_simulation\n", "[23.02|13:26:21] CheckForces: ------------\n", "[23.02|13:26:21] CheckForces: Histogram of forces\n", "[23.02|13:26:21] CheckForces: eV/Ang Ref Pred\n", "[23.02|13:26:21] CheckForces: -3 3 3\n", "[23.02|13:26:21] CheckForces: -2 27 27\n", "[23.02|13:26:21] CheckForces: -1 179 173\n", "[23.02|13:26:21] CheckForces: 0 199 204\n", "[23.02|13:26:21] CheckForces: 1 23 24\n", "[23.02|13:26:21] CheckForces: 2 1 1\n", "[23.02|13:26:21] CheckForces: 3 0 0\n", "[23.02|13:26:21] CheckForces: Threshold for 0 force: 0.30 eV/angstrom\n", "[23.02|13:26:21] CheckForces: All force components are within the acceptable error!\n", "[23.02|13:26:21] CheckForces: Maximum deviation: 0.272 eV/angstrom\n", "[23.02|13:26:21] CheckForces: Actual Threshold\n", "[23.02|13:26:21] CheckForces: # > thr. 0 0 OK!\n", "[23.02|13:26:21] CheckForces: MAE 0.033 0.30 OK!\n", "[23.02|13:26:21] CheckForces: R^2 0.995 0.80 OK!\n", "[23.02|13:26:21] CheckForces: --------------------\n", "[23.02|13:26:21]\n", "[23.02|13:26:22] Adding results from step4_attempt1_reference_calc1 to validation set\n", "[23.02|13:26:22] Current # training set entries: 18\n", "[23.02|13:26:22] Current # validation set entries: 12\n", "[23.02|13:26:22] Storing data in step4_attempt1_reference_data\n", "[23.02|13:26:22] Deleting step3_attempt1_reference_data\n", "[23.02|13:26:22] Deleting step4_attempt1_reference_calc1\n", "[23.02|13:26:22]\n", "[23.02|13:26:22] Current (cumulative) timings:\n", "[23.02|13:26:22] Time (s) Fraction\n", "[23.02|13:26:22] Ref. calcs 9.05 0.006\n", "[23.02|13:26:22] ML training 697.00 0.494\n", "[23.02|13:26:22] Simulations 704.17 0.499\n", "[23.02|13:26:22]\n", "[23.02|13:26:22]\n", "[23.02|13:26:22] Step 4 finished successfully!\n", "[23.02|13:26:22]\n", "[23.02|13:26:22] --- Begin summary ---\n", "[23.02|13:26:22] Step Attempt Status Reason finalframe_forces_max_delta\n", "[23.02|13:26:22] 1 1 FAILED Inaccurate 0.6537\n", "[23.02|13:26:22] 1 2 SUCCESS Accurate 0.3114\n", "[23.02|13:26:22] 2 1 FAILED Inaccurate 0.2480\n", "[23.02|13:26:22] 2 2 FAILED Inaccurate 0.1961\n", "[23.02|13:26:22] 2 3 SUCCESS Accurate 0.1409\n", "[23.02|13:26:22] 3 1 SUCCESS Accurate 0.1832\n", "[23.02|13:26:22] 4 1 SUCCESS Accurate 0.2718\n", "[23.02|13:26:22] --- End summary ---\n", "[23.02|13:26:22]\n", "[23.02|13:26:22] ##########################\n", "[23.02|13:26:22] ### Step 5 / Attempt 1 ###\n", "[23.02|13:26:22] ##########################\n", "[23.02|13:26:22] MD Steps: 5000 (cumulative: 20500)\n", "[23.02|13:26:22] Current engine settings:\n", "[23.02|13:26:22]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/scan_density_al.007/step2_attempt2_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[23.02|13:26:22] Running step5_attempt1_simulation...\n", "[23.02|13:28:36] Job step5_attempt1_simulation finished\n", "[23.02|13:28:36] Deleting files that are no longer needed...\n", "[23.02|13:28:36] Deleting step3_attempt1_simulation\n", "[23.02|13:28:37] Launching reference calculation\n", "[23.02|13:28:38] Reference calculation finished!\n", "[23.02|13:28:38] Checking success for step5_attempt1\n", "[23.02|13:28:47] CheckEnergy: Checking energy for MDStep20500, n_atoms = 144\n", "[23.02|13:28:47] CheckEnergy: normalization coefficient = 144\n", "[23.02|13:28:47] CheckEnergy: Actual Threshold\n", "[23.02|13:28:47] CheckEnergy: dE/144 -0.0003 0.0020 OK!\n", "[23.02|13:28:47] CheckEnergy: ddE/144 -0.0008 0.0010 OK! (relative to step4_attempt1_simulation:MDStep15500)\n", "[23.02|13:28:47]\n", "[23.02|13:28:47] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[23.02|13:28:47] CheckForces: ------------\n", "[23.02|13:28:47] CheckForces: Reference job from step5_attempt1_reference_calc1\n", "[23.02|13:28:47] CheckForces: Prediction job from final frame (MDStep20500) of step5_attempt1_simulation\n", "[23.02|13:28:47] CheckForces: ------------\n", "[23.02|13:28:47] CheckForces: Histogram of forces\n", "[23.02|13:28:47] CheckForces: eV/Ang Ref Pred\n", "[23.02|13:28:47] CheckForces: -3 3 3\n", "[23.02|13:28:47] CheckForces: -2 28 26\n", "[23.02|13:28:47] CheckForces: -1 190 188\n", "[23.02|13:28:47] CheckForces: 0 182 186\n", "[23.02|13:28:47] CheckForces: 1 24 25\n", "[23.02|13:28:47] CheckForces: 2 4 3\n", "[23.02|13:28:47] CheckForces: 3 1 1\n", "[23.02|13:28:47] CheckForces: Threshold for 0 force: 0.30 eV/angstrom\n", "[23.02|13:28:47] CheckForces: All force components are within the acceptable error!\n", "[23.02|13:28:47] CheckForces: Maximum deviation: 0.217 eV/angstrom\n", "[23.02|13:28:47] CheckForces: Actual Threshold\n", "[23.02|13:28:47] CheckForces: # > thr. 0 0 OK!\n", "[23.02|13:28:47] CheckForces: MAE 0.037 0.30 OK!\n", "[23.02|13:28:47] CheckForces: R^2 0.996 0.80 OK!\n", "[23.02|13:28:47] CheckForces: --------------------\n", "[23.02|13:28:47]\n", "[23.02|13:28:47] Adding results from step5_attempt1_reference_calc1 to validation set\n", "[23.02|13:28:47] Current # training set entries: 18\n", "[23.02|13:28:47] Current # validation set entries: 13\n", "[23.02|13:28:47] Storing data in step5_attempt1_reference_data\n", "[23.02|13:28:48] Deleting step4_attempt1_reference_data\n", "[23.02|13:28:48] Deleting step5_attempt1_reference_calc1\n", "[23.02|13:28:48]\n", "[23.02|13:28:48] Current (cumulative) timings:\n", "[23.02|13:28:48] Time (s) Fraction\n", "[23.02|13:28:48] Ref. calcs 9.85 0.006\n", "[23.02|13:28:48] ML training 697.00 0.451\n", "[23.02|13:28:48] Simulations 837.89 0.542\n", "[23.02|13:28:48]\n", "[23.02|13:28:48]\n", "[23.02|13:28:48] Step 5 finished successfully!\n", "[23.02|13:28:48]\n", "[23.02|13:28:48] --- Begin summary ---\n", "[23.02|13:28:48] Step Attempt Status Reason finalframe_forces_max_delta\n", "[23.02|13:28:48] 1 1 FAILED Inaccurate 0.6537\n", "[23.02|13:28:48] 1 2 SUCCESS Accurate 0.3114\n", "[23.02|13:28:48] 2 1 FAILED Inaccurate 0.2480\n", "[23.02|13:28:48] 2 2 FAILED Inaccurate 0.1961\n", "[23.02|13:28:48] 2 3 SUCCESS Accurate 0.1409\n", "[23.02|13:28:48] 3 1 SUCCESS Accurate 0.1832\n", "[23.02|13:28:48] 4 1 SUCCESS Accurate 0.2718\n", "[23.02|13:28:48] 5 1 SUCCESS Accurate 0.2173\n", "[23.02|13:28:48] --- End summary ---\n", "[23.02|13:28:48]\n", "[23.02|13:28:48] ##########################\n", "[23.02|13:28:48] ### Step 6 / Attempt 1 ###\n", "[23.02|13:28:48] ##########################\n", "[23.02|13:28:48] MD Steps: 5000 (cumulative: 25500)\n", "[23.02|13:28:48] Current engine settings:\n", "[23.02|13:28:48]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/scan_density_al.007/step2_attempt2_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[23.02|13:28:48] Running step6_attempt1_simulation...\n", "[23.02|13:31:05] Job step6_attempt1_simulation finished\n", "[23.02|13:31:05] Deleting files that are no longer needed...\n", "[23.02|13:31:05] Deleting step4_attempt1_simulation\n", "[23.02|13:31:06] Launching reference calculation\n", "[23.02|13:31:07] Reference calculation finished!\n", "[23.02|13:31:07] Checking success for step6_attempt1\n", "[23.02|13:31:16] CheckEnergy: Checking energy for MDStep25500, n_atoms = 144\n", "[23.02|13:31:16] CheckEnergy: normalization coefficient = 144\n", "[23.02|13:31:16] CheckEnergy: Actual Threshold\n", "[23.02|13:31:16] CheckEnergy: dE/144 0.0004 0.0020 OK!\n", "[23.02|13:31:16] CheckEnergy: ddE/144 0.0007 0.0010 OK! (relative to step5_attempt1_simulation:MDStep20500)\n", "[23.02|13:31:16]\n", "[23.02|13:31:16] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[23.02|13:31:16] CheckForces: ------------\n", "[23.02|13:31:16] CheckForces: Reference job from step6_attempt1_reference_calc1\n", "[23.02|13:31:16] CheckForces: Prediction job from final frame (MDStep25500) of step6_attempt1_simulation\n", "[23.02|13:31:16] CheckForces: ------------\n", "[23.02|13:31:16] CheckForces: Histogram of forces\n", "[23.02|13:31:16] CheckForces: eV/Ang Ref Pred\n", "[23.02|13:31:16] CheckForces: -4 0 0\n", "[23.02|13:31:16] CheckForces: -3 2 3\n", "[23.02|13:31:16] CheckForces: -2 29 30\n", "[23.02|13:31:16] CheckForces: -1 176 171\n", "[23.02|13:31:16] CheckForces: 0 191 193\n", "[23.02|13:31:16] CheckForces: 1 31 31\n", "[23.02|13:31:16] CheckForces: 2 3 4\n", "[23.02|13:31:16] CheckForces: Threshold for 0 force: 0.30 eV/angstrom\n", "[23.02|13:31:16] CheckForces: All force components are within the acceptable error!\n", "[23.02|13:31:16] CheckForces: Maximum deviation: 0.157 eV/angstrom\n", "[23.02|13:31:16] CheckForces: Actual Threshold\n", "[23.02|13:31:16] CheckForces: # > thr. 0 0 OK!\n", "[23.02|13:31:16] CheckForces: MAE 0.033 0.30 OK!\n", "[23.02|13:31:16] CheckForces: R^2 0.997 0.80 OK!\n", "[23.02|13:31:16] CheckForces: --------------------\n", "[23.02|13:31:16]\n", "[23.02|13:31:17] Adding results from step6_attempt1_reference_calc1 to validation set\n", "[23.02|13:31:17] Current # training set entries: 18\n", "[23.02|13:31:17] Current # validation set entries: 14\n", "[23.02|13:31:17] Storing data in step6_attempt1_reference_data\n", "[23.02|13:31:17] Deleting step5_attempt1_reference_data\n", "[23.02|13:31:17] Deleting step6_attempt1_reference_calc1\n", "[23.02|13:31:17]\n", "[23.02|13:31:17] Current (cumulative) timings:\n", "[23.02|13:31:17] Time (s) Fraction\n", "[23.02|13:31:17] Ref. calcs 10.65 0.006\n", "[23.02|13:31:17] ML training 697.00 0.414\n", "[23.02|13:31:17] Simulations 975.44 0.580\n", "[23.02|13:31:17]\n", "[23.02|13:31:17]\n", "[23.02|13:31:17] Step 6 finished successfully!\n", "[23.02|13:31:17]\n", "[23.02|13:31:17] --- Begin summary ---\n", "[23.02|13:31:17] Step Attempt Status Reason finalframe_forces_max_delta\n", "[23.02|13:31:17] 1 1 FAILED Inaccurate 0.6537\n", "[23.02|13:31:17] 1 2 SUCCESS Accurate 0.3114\n", "[23.02|13:31:17] 2 1 FAILED Inaccurate 0.2480\n", "[23.02|13:31:17] 2 2 FAILED Inaccurate 0.1961\n", "[23.02|13:31:17] 2 3 SUCCESS Accurate 0.1409\n", "[23.02|13:31:17] 3 1 SUCCESS Accurate 0.1832\n", "[23.02|13:31:17] 4 1 SUCCESS Accurate 0.2718\n", "[23.02|13:31:17] 5 1 SUCCESS Accurate 0.2173\n", "[23.02|13:31:17] 6 1 SUCCESS Accurate 0.1572\n", "[23.02|13:31:17] --- End summary ---\n", "[23.02|13:31:17]\n", "[23.02|13:31:17] ##########################\n", "[23.02|13:31:17] ### Step 7 / Attempt 1 ###\n", "[23.02|13:31:17] ##########################\n", "[23.02|13:31:17] MD Steps: 5000 (cumulative: 30500)\n", "[23.02|13:31:17] Current engine settings:\n", "[23.02|13:31:17]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/scan_density_al.007/step2_attempt2_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[23.02|13:31:17] Running step7_attempt1_simulation...\n", "[23.02|13:33:32] Job step7_attempt1_simulation finished\n", "[23.02|13:33:32] Deleting files that are no longer needed...\n", "[23.02|13:33:32] Deleting step5_attempt1_simulation\n", "[23.02|13:33:33] Launching reference calculation\n", "[23.02|13:33:34] Reference calculation finished!\n", "[23.02|13:33:34] Checking success for step7_attempt1\n", "[23.02|13:33:43] CheckEnergy: Checking energy for MDStep30500, n_atoms = 144\n", "[23.02|13:33:43] CheckEnergy: normalization coefficient = 144\n", "[23.02|13:33:43] CheckEnergy: Actual Threshold\n", "[23.02|13:33:43] CheckEnergy: dE/144 0.0005 0.0020 OK!\n", "[23.02|13:33:43] CheckEnergy: ddE/144 0.0001 0.0010 OK! (relative to step6_attempt1_simulation:MDStep25500)\n", "[23.02|13:33:43]\n", "[23.02|13:33:43] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[23.02|13:33:43] CheckForces: ------------\n", "[23.02|13:33:43] CheckForces: Reference job from step7_attempt1_reference_calc1\n", "[23.02|13:33:43] CheckForces: Prediction job from final frame (MDStep30500) of step7_attempt1_simulation\n", "[23.02|13:33:43] CheckForces: ------------\n", "[23.02|13:33:43] CheckForces: Histogram of forces\n", "[23.02|13:33:43] CheckForces: eV/Ang Ref Pred\n", "[23.02|13:33:43] CheckForces: -4 2 2\n", "[23.02|13:33:43] CheckForces: -3 1 1\n", "[23.02|13:33:43] CheckForces: -2 32 34\n", "[23.02|13:33:43] CheckForces: -1 172 170\n", "[23.02|13:33:43] CheckForces: 0 194 193\n", "[23.02|13:33:43] CheckForces: 1 29 30\n", "[23.02|13:33:43] CheckForces: 2 2 2\n", "[23.02|13:33:43] CheckForces: Threshold for 0 force: 0.30 eV/angstrom\n", "[23.02|13:33:43] CheckForces: All force components are within the acceptable error!\n", "[23.02|13:33:43] CheckForces: Maximum deviation: 0.294 eV/angstrom\n", "[23.02|13:33:43] CheckForces: Actual Threshold\n", "[23.02|13:33:43] CheckForces: # > thr. 0 0 OK!\n", "[23.02|13:33:43] CheckForces: MAE 0.034 0.30 OK!\n", "[23.02|13:33:43] CheckForces: R^2 0.996 0.80 OK!\n", "[23.02|13:33:43] CheckForces: --------------------\n", "[23.02|13:33:43]\n", "[23.02|13:33:43] Adding results from step7_attempt1_reference_calc1 to validation set\n", "[23.02|13:33:43] Current # training set entries: 18\n", "[23.02|13:33:43] Current # validation set entries: 15\n", "[23.02|13:33:43] Storing data in step7_attempt1_reference_data\n", "[23.02|13:33:43] Deleting step6_attempt1_reference_data\n", "[23.02|13:33:43] Deleting step7_attempt1_reference_calc1\n", "[23.02|13:33:43]\n", "[23.02|13:33:43] Current (cumulative) timings:\n", "[23.02|13:33:43] Time (s) Fraction\n", "[23.02|13:33:43] Ref. calcs 11.45 0.006\n", "[23.02|13:33:43] ML training 697.00 0.383\n", "[23.02|13:33:43] Simulations 1110.36 0.610\n", "[23.02|13:33:43]\n", "[23.02|13:33:43]\n", "[23.02|13:33:44] Step 7 finished successfully!\n", "[23.02|13:33:44]\n", "[23.02|13:33:44] --- Begin summary ---\n", "[23.02|13:33:44] Step Attempt Status Reason finalframe_forces_max_delta\n", "[23.02|13:33:44] 1 1 FAILED Inaccurate 0.6537\n", "[23.02|13:33:44] 1 2 SUCCESS Accurate 0.3114\n", "[23.02|13:33:44] 2 1 FAILED Inaccurate 0.2480\n", "[23.02|13:33:44] 2 2 FAILED Inaccurate 0.1961\n", "[23.02|13:33:44] 2 3 SUCCESS Accurate 0.1409\n", "[23.02|13:33:44] 3 1 SUCCESS Accurate 0.1832\n", "[23.02|13:33:44] 4 1 SUCCESS Accurate 0.2718\n", "[23.02|13:33:44] 5 1 SUCCESS Accurate 0.2173\n", "[23.02|13:33:44] 6 1 SUCCESS Accurate 0.1572\n", "[23.02|13:33:44] 7 1 SUCCESS Accurate 0.2936\n", "[23.02|13:33:44] --- End summary ---\n", "[23.02|13:33:44]\n", "[23.02|13:33:44] ##########################\n", "[23.02|13:33:44] ### Step 8 / Attempt 1 ###\n", "[23.02|13:33:44] ##########################\n", "[23.02|13:33:44] MD Steps: 5000 (cumulative: 35500)\n", "[23.02|13:33:44] Current engine settings:\n", "[23.02|13:33:44]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/scan_density_al.007/step2_attempt2_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[23.02|13:33:44] Running step8_attempt1_simulation...\n", "[23.02|13:36:01] Job step8_attempt1_simulation finished\n", "[23.02|13:36:01] Deleting files that are no longer needed...\n", "[23.02|13:36:01] Deleting step6_attempt1_simulation\n", "[23.02|13:36:02] Launching reference calculation\n", "[23.02|13:36:03] Reference calculation finished!\n", "[23.02|13:36:03] Checking success for step8_attempt1\n", "[23.02|13:36:12] CheckEnergy: Checking energy for MDStep35500, n_atoms = 144\n", "[23.02|13:36:12] CheckEnergy: normalization coefficient = 144\n", "[23.02|13:36:12] CheckEnergy: Actual Threshold\n", "[23.02|13:36:12] CheckEnergy: dE/144 0.0003 0.0020 OK!\n", "[23.02|13:36:12] CheckEnergy: ddE/144 -0.0002 0.0010 OK! (relative to step7_attempt1_simulation:MDStep30500)\n", "[23.02|13:36:12]\n", "[23.02|13:36:12] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[23.02|13:36:12] CheckForces: ------------\n", "[23.02|13:36:12] CheckForces: Reference job from step8_attempt1_reference_calc1\n", "[23.02|13:36:12] CheckForces: Prediction job from final frame (MDStep35500) of step8_attempt1_simulation\n", "[23.02|13:36:12] CheckForces: ------------\n", "[23.02|13:36:12] CheckForces: Histogram of forces\n", "[23.02|13:36:12] CheckForces: eV/Ang Ref Pred\n", "[23.02|13:36:12] CheckForces: -3 2 2\n", "[23.02|13:36:12] CheckForces: -2 28 27\n", "[23.02|13:36:12] CheckForces: -1 188 187\n", "[23.02|13:36:12] CheckForces: 0 188 191\n", "[23.02|13:36:12] CheckForces: 1 23 22\n", "[23.02|13:36:12] CheckForces: 2 3 3\n", "[23.02|13:36:12] CheckForces: 3 0 0\n", "[23.02|13:36:12] CheckForces: Threshold for 0 force: 0.30 eV/angstrom\n", "[23.02|13:36:12] CheckForces: All force components are within the acceptable error!\n", "[23.02|13:36:12] CheckForces: Maximum deviation: 0.181 eV/angstrom\n", "[23.02|13:36:12] CheckForces: Actual Threshold\n", "[23.02|13:36:12] CheckForces: # > thr. 0 0 OK!\n", "[23.02|13:36:12] CheckForces: MAE 0.032 0.30 OK!\n", "[23.02|13:36:12] CheckForces: R^2 0.996 0.80 OK!\n", "[23.02|13:36:12] CheckForces: --------------------\n", "[23.02|13:36:12]\n", "[23.02|13:36:12] Adding results from step8_attempt1_reference_calc1 to validation set\n", "[23.02|13:36:12] Current # training set entries: 18\n", "[23.02|13:36:12] Current # validation set entries: 16\n", "[23.02|13:36:12] Storing data in step8_attempt1_reference_data\n", "[23.02|13:36:13] Deleting step7_attempt1_reference_data\n", "[23.02|13:36:13] Deleting step8_attempt1_reference_calc1\n", "[23.02|13:36:13]\n", "[23.02|13:36:13] Current (cumulative) timings:\n", "[23.02|13:36:13] Time (s) Fraction\n", "[23.02|13:36:13] Ref. calcs 12.27 0.006\n", "[23.02|13:36:13] ML training 697.00 0.356\n", "[23.02|13:36:13] Simulations 1247.69 0.638\n", "[23.02|13:36:13]\n", "[23.02|13:36:13]\n", "[23.02|13:36:13] Step 8 finished successfully!\n", "[23.02|13:36:13]\n", "[23.02|13:36:13] --- Begin summary ---\n", "[23.02|13:36:13] Step Attempt Status Reason finalframe_forces_max_delta\n", "[23.02|13:36:13] 1 1 FAILED Inaccurate 0.6537\n", "[23.02|13:36:13] 1 2 SUCCESS Accurate 0.3114\n", "[23.02|13:36:13] 2 1 FAILED Inaccurate 0.2480\n", "[23.02|13:36:13] 2 2 FAILED Inaccurate 0.1961\n", "[23.02|13:36:13] 2 3 SUCCESS Accurate 0.1409\n", "[23.02|13:36:13] 3 1 SUCCESS Accurate 0.1832\n", "[23.02|13:36:13] 4 1 SUCCESS Accurate 0.2718\n", "[23.02|13:36:13] 5 1 SUCCESS Accurate 0.2173\n", "[23.02|13:36:13] 6 1 SUCCESS Accurate 0.1572\n", "[23.02|13:36:13] 7 1 SUCCESS Accurate 0.2936\n", "[23.02|13:36:13] 8 1 SUCCESS Accurate 0.1810\n", "[23.02|13:36:13] --- End summary ---\n", "[23.02|13:36:13]\n", "[23.02|13:36:13] ##########################\n", "[23.02|13:36:13] ### Step 9 / Attempt 1 ###\n", "[23.02|13:36:13] ##########################\n", "[23.02|13:36:13] MD Steps: 5000 (cumulative: 40500)\n", "[23.02|13:36:13] Current engine settings:\n", "[23.02|13:36:13]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/scan_density_al.007/step2_attempt2_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[23.02|13:36:13] Running step9_attempt1_simulation...\n", "[23.02|13:38:33] Job step9_attempt1_simulation finished\n", "[23.02|13:38:33] Deleting files that are no longer needed...\n", "[23.02|13:38:33] Deleting step7_attempt1_simulation\n", "[23.02|13:38:34] Launching reference calculation\n", "[23.02|13:38:35] Reference calculation finished!\n", "[23.02|13:38:35] Checking success for step9_attempt1\n", "[23.02|13:38:45] CheckEnergy: Checking energy for MDStep40500, n_atoms = 144\n", "[23.02|13:38:45] CheckEnergy: normalization coefficient = 144\n", "[23.02|13:38:45] CheckEnergy: Actual Threshold\n", "[23.02|13:38:45] CheckEnergy: dE/144 0.0003 0.0020 OK!\n", "[23.02|13:38:45] CheckEnergy: ddE/144 0.0001 0.0010 OK! (relative to step8_attempt1_simulation:MDStep35500)\n", "[23.02|13:38:45]\n", "[23.02|13:38:45] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[23.02|13:38:45] CheckForces: ------------\n", "[23.02|13:38:45] CheckForces: Reference job from step9_attempt1_reference_calc1\n", "[23.02|13:38:45] CheckForces: Prediction job from final frame (MDStep40500) of step9_attempt1_simulation\n", "[23.02|13:38:45] CheckForces: ------------\n", "[23.02|13:38:45] CheckForces: Histogram of forces\n", "[23.02|13:38:45] CheckForces: eV/Ang Ref Pred\n", "[23.02|13:38:45] CheckForces: -4 0 0\n", "[23.02|13:38:45] CheckForces: -3 4 4\n", "[23.02|13:38:45] CheckForces: -2 26 30\n", "[23.02|13:38:45] CheckForces: -1 180 178\n", "[23.02|13:38:45] CheckForces: 0 192 189\n", "[23.02|13:38:45] CheckForces: 1 26 28\n", "[23.02|13:38:45] CheckForces: 2 4 3\n", "[23.02|13:38:45] CheckForces: 3 0 0\n", "[23.02|13:38:45] CheckForces: Threshold for 0 force: 0.30 eV/angstrom\n", "[23.02|13:38:45] CheckForces: All force components are within the acceptable error!\n", "[23.02|13:38:45] CheckForces: Maximum deviation: 0.221 eV/angstrom\n", "[23.02|13:38:45] CheckForces: Actual Threshold\n", "[23.02|13:38:45] CheckForces: # > thr. 0 0 OK!\n", "[23.02|13:38:45] CheckForces: MAE 0.033 0.30 OK!\n", "[23.02|13:38:45] CheckForces: R^2 0.996 0.80 OK!\n", "[23.02|13:38:45] CheckForces: --------------------\n", "[23.02|13:38:45]\n", "[23.02|13:38:45] Adding results from step9_attempt1_reference_calc1 to training set\n", "[23.02|13:38:45] Current # training set entries: 19\n", "[23.02|13:38:45] Current # validation set entries: 16\n", "[23.02|13:38:45] Storing data in step9_attempt1_reference_data\n", "[23.02|13:38:45] Deleting step8_attempt1_reference_data\n", "[23.02|13:38:45] Deleting step9_attempt1_reference_calc1\n", "[23.02|13:38:45]\n", "[23.02|13:38:45] Current (cumulative) timings:\n", "[23.02|13:38:45] Time (s) Fraction\n", "[23.02|13:38:45] Ref. calcs 13.18 0.006\n", "[23.02|13:38:45] ML training 697.00 0.332\n", "[23.02|13:38:45] Simulations 1388.16 0.662\n", "[23.02|13:38:45]\n", "[23.02|13:38:45]\n", "[23.02|13:38:46] Step 9 finished successfully!\n", "[23.02|13:38:46]\n", "[23.02|13:38:46] --- Begin summary ---\n", "[23.02|13:38:46] Step Attempt Status Reason finalframe_forces_max_delta\n", "[23.02|13:38:46] 1 1 FAILED Inaccurate 0.6537\n", "[23.02|13:38:46] 1 2 SUCCESS Accurate 0.3114\n", "[23.02|13:38:46] 2 1 FAILED Inaccurate 0.2480\n", "[23.02|13:38:46] 2 2 FAILED Inaccurate 0.1961\n", "[23.02|13:38:46] 2 3 SUCCESS Accurate 0.1409\n", "[23.02|13:38:46] 3 1 SUCCESS Accurate 0.1832\n", "[23.02|13:38:46] 4 1 SUCCESS Accurate 0.2718\n", "[23.02|13:38:46] 5 1 SUCCESS Accurate 0.2173\n", "[23.02|13:38:46] 6 1 SUCCESS Accurate 0.1572\n", "[23.02|13:38:46] 7 1 SUCCESS Accurate 0.2936\n", "[23.02|13:38:46] 8 1 SUCCESS Accurate 0.1810\n", "[23.02|13:38:46] 9 1 SUCCESS Accurate 0.2209\n", "[23.02|13:38:46] --- End summary ---\n", "[23.02|13:38:46]\n", "[23.02|13:38:46] ###########################\n", "[23.02|13:38:46] ### Step 10 / Attempt 1 ###\n", "[23.02|13:38:46] ###########################\n", "[23.02|13:38:46] MD Steps: 5000 (cumulative: 45500)\n", "[23.02|13:38:46] Current engine settings:\n", "[23.02|13:38:46]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/scan_density_al.007/step2_attempt2_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[23.02|13:38:46] Running step10_attempt1_simulation...\n", "[23.02|13:41:05] Job step10_attempt1_simulation finished\n", "[23.02|13:41:05] Deleting files that are no longer needed...\n", "[23.02|13:41:05] Deleting step8_attempt1_simulation\n", "[23.02|13:41:06] Launching reference calculation\n", "[23.02|13:41:07] Reference calculation finished!\n", "[23.02|13:41:07] Checking success for step10_attempt1\n", "[23.02|13:41:16] CheckEnergy: Checking energy for MDStep45500, n_atoms = 144\n", "[23.02|13:41:16] CheckEnergy: normalization coefficient = 144\n", "[23.02|13:41:16] CheckEnergy: Actual Threshold\n", "[23.02|13:41:16] CheckEnergy: dE/144 0.0013 0.0020 OK!\n", "[23.02|13:41:16] CheckEnergy: ddE/144 0.0009 0.0010 OK! (relative to step9_attempt1_simulation:MDStep40500)\n", "[23.02|13:41:16]\n", "[23.02|13:41:16] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[23.02|13:41:16] CheckForces: ------------\n", "[23.02|13:41:16] CheckForces: Reference job from step10_attempt1_reference_calc1\n", "[23.02|13:41:16] CheckForces: Prediction job from final frame (MDStep45500) of step10_attempt1_simulation\n", "[23.02|13:41:16] CheckForces: ------------\n", "[23.02|13:41:16] CheckForces: Histogram of forces\n", "[23.02|13:41:16] CheckForces: eV/Ang Ref Pred\n", "[23.02|13:41:16] CheckForces: -3 3 3\n", "[23.02|13:41:16] CheckForces: -2 21 21\n", "[23.02|13:41:16] CheckForces: -1 197 194\n", "[23.02|13:41:16] CheckForces: 0 180 182\n", "[23.02|13:41:16] CheckForces: 1 30 31\n", "[23.02|13:41:16] CheckForces: 2 1 1\n", "[23.02|13:41:16] CheckForces: 3 0 0\n", "[23.02|13:41:16] CheckForces: Threshold for 0 force: 0.30 eV/angstrom\n", "[23.02|13:41:16] CheckForces: All force components are within the acceptable error!\n", "[23.02|13:41:16] CheckForces: Maximum deviation: 0.198 eV/angstrom\n", "[23.02|13:41:16] CheckForces: Actual Threshold\n", "[23.02|13:41:16] CheckForces: # > thr. 0 0 OK!\n", "[23.02|13:41:16] CheckForces: MAE 0.037 0.30 OK!\n", "[23.02|13:41:16] CheckForces: R^2 0.995 0.80 OK!\n", "[23.02|13:41:16] CheckForces: --------------------\n", "[23.02|13:41:16]\n", "[23.02|13:41:17] Adding results from step10_attempt1_reference_calc1 to validation set\n", "[23.02|13:41:17] Current # training set entries: 19\n", "[23.02|13:41:17] Current # validation set entries: 17\n", "[23.02|13:41:17] Storing data in step10_attempt1_reference_data\n", "[23.02|13:41:17] Deleting step9_attempt1_reference_data\n", "[23.02|13:41:17] Deleting step10_attempt1_reference_calc1\n", "[23.02|13:41:17]\n", "[23.02|13:41:17] Current (cumulative) timings:\n", "[23.02|13:41:17] Time (s) Fraction\n", "[23.02|13:41:17] Ref. calcs 13.97 0.006\n", "[23.02|13:41:17] ML training 697.00 0.311\n", "[23.02|13:41:17] Simulations 1527.64 0.682\n", "[23.02|13:41:17]\n", "[23.02|13:41:17]\n", "[23.02|13:41:17] Step 10 finished successfully!\n", "[23.02|13:41:17]\n", "[23.02|13:41:17] --- Begin summary ---\n", "[23.02|13:41:17] Step Attempt Status Reason finalframe_forces_max_delta\n", "[23.02|13:41:17] 1 1 FAILED Inaccurate 0.6537\n", "[23.02|13:41:17] 1 2 SUCCESS Accurate 0.3114\n", "[23.02|13:41:17] 2 1 FAILED Inaccurate 0.2480\n", "[23.02|13:41:17] 2 2 FAILED Inaccurate 0.1961\n", "[23.02|13:41:17] 2 3 SUCCESS Accurate 0.1409\n", "[23.02|13:41:17] 3 1 SUCCESS Accurate 0.1832\n", "[23.02|13:41:17] 4 1 SUCCESS Accurate 0.2718\n", "[23.02|13:41:17] 5 1 SUCCESS Accurate 0.2173\n", "[23.02|13:41:17] 6 1 SUCCESS Accurate 0.1572\n", "[23.02|13:41:17] 7 1 SUCCESS Accurate 0.2936\n", "[23.02|13:41:17] 8 1 SUCCESS Accurate 0.1810\n", "[23.02|13:41:17] 9 1 SUCCESS Accurate 0.2209\n", "[23.02|13:41:17] 10 1 SUCCESS Accurate 0.1980\n", "[23.02|13:41:17] --- End summary ---\n", "[23.02|13:41:17]\n", "[23.02|13:41:17] ###########################\n", "[23.02|13:41:17] ### Step 11 / Attempt 1 ###\n", "[23.02|13:41:17] ###########################\n", "[23.02|13:41:17] MD Steps: 5000 (cumulative: 50500)\n", "[23.02|13:41:17] Current engine settings:\n", "[23.02|13:41:17]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/scan_density_al.007/step2_attempt2_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[23.02|13:41:17] Running step11_attempt1_simulation...\n", "[23.02|13:43:38] Job step11_attempt1_simulation finished\n", "[23.02|13:43:38] Deleting files that are no longer needed...\n", "[23.02|13:43:38] Deleting step9_attempt1_simulation\n", "[23.02|13:43:39] Launching reference calculation\n", "[23.02|13:43:40] Reference calculation finished!\n", "[23.02|13:43:40] Checking success for step11_attempt1\n", "[23.02|13:43:49] CheckEnergy: Checking energy for MDStep50500, n_atoms = 144\n", "[23.02|13:43:49] CheckEnergy: normalization coefficient = 144\n", "[23.02|13:43:49] CheckEnergy: Actual Threshold\n", "[23.02|13:43:49] CheckEnergy: dE/144 0.0004 0.0020 OK!\n", "[23.02|13:43:49] CheckEnergy: ddE/144 -0.0009 0.0010 OK! (relative to step10_attempt1_simulation:MDStep45500)\n", "[23.02|13:43:49]\n", "[23.02|13:43:49] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[23.02|13:43:49] CheckForces: ------------\n", "[23.02|13:43:49] CheckForces: Reference job from step11_attempt1_reference_calc1\n", "[23.02|13:43:49] CheckForces: Prediction job from final frame (MDStep50500) of step11_attempt1_simulation\n", "[23.02|13:43:49] CheckForces: ------------\n", "[23.02|13:43:49] CheckForces: Histogram of forces\n", "[23.02|13:43:49] CheckForces: eV/Ang Ref Pred\n", "[23.02|13:43:49] CheckForces: -4 0 0\n", "[23.02|13:43:49] CheckForces: -3 4 4\n", "[23.02|13:43:49] CheckForces: -2 27 26\n", "[23.02|13:43:49] CheckForces: -1 184 182\n", "[23.02|13:43:49] CheckForces: 0 190 194\n", "[23.02|13:43:49] CheckForces: 1 26 25\n", "[23.02|13:43:49] CheckForces: 2 1 1\n", "[23.02|13:43:49] CheckForces: Threshold for 0 force: 0.30 eV/angstrom\n", "[23.02|13:43:49] CheckForces: All force components are within the acceptable error!\n", "[23.02|13:43:49] CheckForces: Maximum deviation: 0.261 eV/angstrom\n", "[23.02|13:43:49] CheckForces: Actual Threshold\n", "[23.02|13:43:49] CheckForces: # > thr. 0 0 OK!\n", "[23.02|13:43:49] CheckForces: MAE 0.037 0.30 OK!\n", "[23.02|13:43:49] CheckForces: R^2 0.995 0.80 OK!\n", "[23.02|13:43:49] CheckForces: --------------------\n", "[23.02|13:43:49]\n", "[23.02|13:43:50] Adding results from step11_attempt1_reference_calc1 to training set\n", "[23.02|13:43:50] Current # training set entries: 20\n", "[23.02|13:43:50] Current # validation set entries: 17\n", "[23.02|13:43:50] Storing data in step11_attempt1_reference_data\n", "[23.02|13:43:50] Deleting step10_attempt1_reference_data\n", "[23.02|13:43:50] Deleting step11_attempt1_reference_calc1\n", "[23.02|13:43:50]\n", "[23.02|13:43:50] Current (cumulative) timings:\n", "[23.02|13:43:50] Time (s) Fraction\n", "[23.02|13:43:50] Ref. calcs 14.77 0.006\n", "[23.02|13:43:50] ML training 697.00 0.293\n", "[23.02|13:43:50] Simulations 1668.87 0.701\n", "[23.02|13:43:50]\n", "[23.02|13:43:50]\n", "[23.02|13:43:50] Step 11 finished successfully!\n", "[23.02|13:43:50]\n", "[23.02|13:43:50] --- Begin summary ---\n", "[23.02|13:43:50] Step Attempt Status Reason finalframe_forces_max_delta\n", "[23.02|13:43:50] 1 1 FAILED Inaccurate 0.6537\n", "[23.02|13:43:50] 1 2 SUCCESS Accurate 0.3114\n", "[23.02|13:43:50] 2 1 FAILED Inaccurate 0.2480\n", "[23.02|13:43:50] 2 2 FAILED Inaccurate 0.1961\n", "[23.02|13:43:50] 2 3 SUCCESS Accurate 0.1409\n", "[23.02|13:43:50] 3 1 SUCCESS Accurate 0.1832\n", "[23.02|13:43:50] 4 1 SUCCESS Accurate 0.2718\n", "[23.02|13:43:50] 5 1 SUCCESS Accurate 0.2173\n", "[23.02|13:43:50] 6 1 SUCCESS Accurate 0.1572\n", "[23.02|13:43:50] 7 1 SUCCESS Accurate 0.2936\n", "[23.02|13:43:50] 8 1 SUCCESS Accurate 0.1810\n", "[23.02|13:43:50] 9 1 SUCCESS Accurate 0.2209\n", "[23.02|13:43:50] 10 1 SUCCESS Accurate 0.1980\n", "[23.02|13:43:50] 11 1 SUCCESS Accurate 0.2610\n", "[23.02|13:43:50] --- End summary ---\n", "[23.02|13:43:50]\n", "[23.02|13:43:50] ###########################\n", "[23.02|13:43:50] ### Step 12 / Attempt 1 ###\n", "[23.02|13:43:50] ###########################\n", "[23.02|13:43:50] MD Steps: 5000 (cumulative: 55500)\n", "[23.02|13:43:50] Current engine settings:\n", "[23.02|13:43:50]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/scan_density_al.007/step2_attempt2_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[23.02|13:43:50] Running step12_attempt1_simulation...\n", "[23.02|13:46:12] Job step12_attempt1_simulation finished\n", "[23.02|13:46:12] Deleting files that are no longer needed...\n", "[23.02|13:46:12] Deleting step10_attempt1_simulation\n", "[23.02|13:46:12] Launching reference calculation\n", "[23.02|13:46:13] Reference calculation finished!\n", "[23.02|13:46:13] Checking success for step12_attempt1\n", "[23.02|13:46:23] CheckEnergy: Checking energy for MDStep55500, n_atoms = 144\n", "[23.02|13:46:23] CheckEnergy: normalization coefficient = 144\n", "[23.02|13:46:23] CheckEnergy: Actual Threshold\n", "[23.02|13:46:23] CheckEnergy: dE/144 0.0010 0.0020 OK!\n", "[23.02|13:46:23] CheckEnergy: ddE/144 0.0006 0.0010 OK! (relative to step11_attempt1_simulation:MDStep50500)\n", "[23.02|13:46:23]\n", "[23.02|13:46:23] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[23.02|13:46:23] CheckForces: ------------\n", "[23.02|13:46:23] CheckForces: Reference job from step12_attempt1_reference_calc1\n", "[23.02|13:46:23] CheckForces: Prediction job from final frame (MDStep55500) of step12_attempt1_simulation\n", "[23.02|13:46:23] CheckForces: ------------\n", "[23.02|13:46:23] CheckForces: Histogram of forces\n", "[23.02|13:46:23] CheckForces: eV/Ang Ref Pred\n", "[23.02|13:46:23] CheckForces: -4 0 0\n", "[23.02|13:46:23] CheckForces: -3 5 3\n", "[23.02|13:46:23] CheckForces: -2 39 39\n", "[23.02|13:46:23] CheckForces: -1 167 165\n", "[23.02|13:46:23] CheckForces: 0 192 195\n", "[23.02|13:46:23] CheckForces: 1 27 26\n", "[23.02|13:46:23] CheckForces: 2 2 4\n", "[23.02|13:46:23] CheckForces: 3 0 0\n", "[23.02|13:46:23] CheckForces: Threshold for 0 force: 0.30 eV/angstrom\n", "[23.02|13:46:23] CheckForces: All force components are within the acceptable error!\n", "[23.02|13:46:23] CheckForces: Maximum deviation: 0.361 eV/angstrom\n", "[23.02|13:46:23] CheckForces: Actual Threshold\n", "[23.02|13:46:23] CheckForces: # > thr. 0 0 OK!\n", "[23.02|13:46:23] CheckForces: MAE 0.043 0.30 OK!\n", "[23.02|13:46:23] CheckForces: R^2 0.994 0.80 OK!\n", "[23.02|13:46:23] CheckForces: --------------------\n", "[23.02|13:46:23]\n", "[23.02|13:46:23] Adding results from step12_attempt1_reference_calc1 to training set\n", "[23.02|13:46:23] Current # training set entries: 21\n", "[23.02|13:46:23] Current # validation set entries: 17\n", "[23.02|13:46:23] Storing data in step12_attempt1_reference_data\n", "[23.02|13:46:23] Deleting step11_attempt1_reference_data\n", "[23.02|13:46:23] Deleting step12_attempt1_reference_calc1\n", "[23.02|13:46:23]\n", "[23.02|13:46:23] Current (cumulative) timings:\n", "[23.02|13:46:23] Time (s) Fraction\n", "[23.02|13:46:23] Ref. calcs 15.60 0.006\n", "[23.02|13:46:23] ML training 697.00 0.276\n", "[23.02|13:46:23] Simulations 1810.00 0.718\n", "[23.02|13:46:23]\n", "[23.02|13:46:23]\n", "[23.02|13:46:24] Step 12 finished successfully!\n", "[23.02|13:46:24]\n", "[23.02|13:46:24] --- Begin summary ---\n", "[23.02|13:46:24] Step Attempt Status Reason finalframe_forces_max_delta\n", "[23.02|13:46:24] 1 1 FAILED Inaccurate 0.6537\n", "[23.02|13:46:24] 1 2 SUCCESS Accurate 0.3114\n", "[23.02|13:46:24] 2 1 FAILED Inaccurate 0.2480\n", "[23.02|13:46:24] 2 2 FAILED Inaccurate 0.1961\n", "[23.02|13:46:24] 2 3 SUCCESS Accurate 0.1409\n", "[23.02|13:46:24] 3 1 SUCCESS Accurate 0.1832\n", "[23.02|13:46:24] 4 1 SUCCESS Accurate 0.2718\n", "[23.02|13:46:24] 5 1 SUCCESS Accurate 0.2173\n", "[23.02|13:46:24] 6 1 SUCCESS Accurate 0.1572\n", "[23.02|13:46:24] 7 1 SUCCESS Accurate 0.2936\n", "[23.02|13:46:24] 8 1 SUCCESS Accurate 0.1810\n", "[23.02|13:46:24] 9 1 SUCCESS Accurate 0.2209\n", "[23.02|13:46:24] 10 1 SUCCESS Accurate 0.1980\n", "[23.02|13:46:24] 11 1 SUCCESS Accurate 0.2610\n", "[23.02|13:46:24] 12 1 SUCCESS Accurate 0.3609\n", "[23.02|13:46:24] --- End summary ---\n", "[23.02|13:46:24]\n", "[23.02|13:46:24] ###########################\n", "[23.02|13:46:24] ### Step 13 / Attempt 1 ###\n", "[23.02|13:46:24] ###########################\n", "[23.02|13:46:24] MD Steps: 5000 (cumulative: 60500)\n", "[23.02|13:46:24] Current engine settings:\n", "[23.02|13:46:24]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/scan_density_al.007/step2_attempt2_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[23.02|13:46:24] Running step13_attempt1_simulation...\n", "[23.02|13:48:46] Job step13_attempt1_simulation finished\n", "[23.02|13:48:46] Deleting files that are no longer needed...\n", "[23.02|13:48:46] Deleting step11_attempt1_simulation\n", "[23.02|13:48:46] Launching reference calculation\n", "[23.02|13:48:47] Reference calculation finished!\n", "[23.02|13:48:47] Checking success for step13_attempt1\n", "[23.02|13:48:56] CheckEnergy: Checking energy for MDStep60500, n_atoms = 144\n", "[23.02|13:48:56] CheckEnergy: normalization coefficient = 144\n", "[23.02|13:48:56] CheckEnergy: Actual Threshold\n", "[23.02|13:48:56] CheckEnergy: dE/144 0.0018 0.0020 OK!\n", "[23.02|13:48:56] CheckEnergy: ddE/144 0.0008 0.0010 OK! (relative to step12_attempt1_simulation:MDStep55500)\n", "[23.02|13:48:56]\n", "[23.02|13:48:56] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[23.02|13:48:56] CheckForces: ------------\n", "[23.02|13:48:56] CheckForces: Reference job from step13_attempt1_reference_calc1\n", "[23.02|13:48:56] CheckForces: Prediction job from final frame (MDStep60500) of step13_attempt1_simulation\n", "[23.02|13:48:56] CheckForces: ------------\n", "[23.02|13:48:56] CheckForces: Histogram of forces\n", "[23.02|13:48:56] CheckForces: eV/Ang Ref Pred\n", "[23.02|13:48:56] CheckForces: -3 8 8\n", "[23.02|13:48:56] CheckForces: -2 31 33\n", "[23.02|13:48:56] CheckForces: -1 171 167\n", "[23.02|13:48:56] CheckForces: 0 188 189\n", "[23.02|13:48:56] CheckForces: 1 31 33\n", "[23.02|13:48:56] CheckForces: 2 3 2\n", "[23.02|13:48:56] CheckForces: 3 0 0\n", "[23.02|13:48:56] CheckForces: Threshold for 0 force: 0.30 eV/angstrom\n", "[23.02|13:48:56] CheckForces: Force components with an error exceeding the threshold:\n", "[23.02|13:48:56] CheckForces: Ref Pred Delta Threshold\n", "[23.02|13:48:56] CheckForces: 0.43 0.10 0.33 0.32\n", "[23.02|13:48:56] CheckForces: Maximum deviation: 0.330 eV/angstrom\n", "[23.02|13:48:56] CheckForces: Actual Threshold\n", "[23.02|13:48:56] CheckForces: # > thr. 1 0 Not OK!\n", "[23.02|13:48:56] CheckForces: MAE 0.043 0.30 OK!\n", "[23.02|13:48:56] CheckForces: R^2 0.994 0.80 OK!\n", "[23.02|13:48:56] CheckForces: --------------------\n", "[23.02|13:48:56]\n", "[23.02|13:48:57] Adding results from step13_attempt1_reference_calc1 to training set\n", "[23.02|13:48:57] Current # training set entries: 22\n", "[23.02|13:48:57] Current # validation set entries: 17\n", "[23.02|13:48:57] Storing data in step13_attempt1_reference_data\n", "[23.02|13:48:57] Deleting step12_attempt1_reference_data\n", "[23.02|13:48:57] Deleting step13_attempt1_reference_calc1\n", "[23.02|13:48:57]\n", "[23.02|13:48:57] Current (cumulative) timings:\n", "[23.02|13:48:57] Time (s) Fraction\n", "[23.02|13:48:57] Ref. calcs 16.39 0.006\n", "[23.02|13:48:57] ML training 697.00 0.262\n", "[23.02|13:48:57] Simulations 1951.91 0.732\n", "[23.02|13:48:57]\n", "[23.02|13:48:57]\n", "[23.02|13:48:58]\n", "[23.02|13:48:58] --- Begin summary ---\n", "[23.02|13:48:58] Step Attempt Status Reason finalframe_forces_max_delta\n", "[23.02|13:48:58] 1 1 FAILED Inaccurate 0.6537\n", "[23.02|13:48:58] 1 2 SUCCESS Accurate 0.3114\n", "[23.02|13:48:58] 2 1 FAILED Inaccurate 0.2480\n", "[23.02|13:48:58] 2 2 FAILED Inaccurate 0.1961\n", "[23.02|13:48:58] 2 3 SUCCESS Accurate 0.1409\n", "[23.02|13:48:58] 3 1 SUCCESS Accurate 0.1832\n", "[23.02|13:48:58] 4 1 SUCCESS Accurate 0.2718\n", "[23.02|13:48:58] 5 1 SUCCESS Accurate 0.2173\n", "[23.02|13:48:58] 6 1 SUCCESS Accurate 0.1572\n", "[23.02|13:48:58] 7 1 SUCCESS Accurate 0.2936\n", "[23.02|13:48:58] 8 1 SUCCESS Accurate 0.1810\n", "[23.02|13:48:58] 9 1 SUCCESS Accurate 0.2209\n", "[23.02|13:48:58] 10 1 SUCCESS Accurate 0.1980\n", "[23.02|13:48:58] 11 1 SUCCESS Accurate 0.2610\n", "[23.02|13:48:58] 12 1 SUCCESS Accurate 0.3609\n", "[23.02|13:48:58] 13 1 FAILED Inaccurate 0.3304\n", "[23.02|13:48:58] --- End summary ---\n", "[23.02|13:48:58]\n", "[23.02|13:48:58] Running more reference calculations....\n", "[23.02|13:48:58] Running reference calculations on frames [586] from step13_attempt1_simulation/ams.rkf\n", "[23.02|13:48:58] Calculating 1 frames in total\n", "[23.02|13:48:58] Running step13_attempt1_reference_calc2\n", "[23.02|13:48:59] Reference calculations finished!\n", "[23.02|13:48:59] Adding results from step13_attempt1_reference_calc2 to validation set\n", "[23.02|13:48:59] Current # training set entries: 22\n", "[23.02|13:48:59] Current # validation set entries: 18\n", "[23.02|13:48:59] Storing data in step13_attempt1_reference_data\n", "[23.02|13:49:00] Deleting step13_attempt1_reference_calc2\n", "[23.02|13:49:00] Launching reparametrization job: step13_attempt1_training\n", "[23.02|13:49:04] JOB m3gnet STARTED\n", "[23.02|13:49:04] Starting m3gnet.prerun()\n", "[23.02|13:49:04] m3gnet.prerun() finished\n", "[23.02|13:49:04] JOB m3gnet RUNNING\n", "[23.02|13:49:04] Executing m3gnet.run\n", "[23.02|13:50:09] training_set Optimizer: 001 Epoch: 0 Loss: 0.005443\n", "[23.02|13:50:09] validation_set Optimizer: 001 Epoch: 0 Loss: 0.077383\n", "[23.02|13:50:16] training_set Optimizer: 001 Epoch: 10 Loss: 0.000172\n", "[23.02|13:50:16] validation_set Optimizer: 001 Epoch: 10 Loss: 0.004233\n", "[23.02|13:50:23] training_set Optimizer: 001 Epoch: 20 Loss: 0.000122\n", "[23.02|13:50:23] validation_set Optimizer: 001 Epoch: 20 Loss: 0.003854\n", "[23.02|13:50:31] training_set Optimizer: 001 Epoch: 30 Loss: 0.000111\n", "[23.02|13:50:31] validation_set Optimizer: 001 Epoch: 30 Loss: 0.004302\n", "[23.02|13:50:38] training_set Optimizer: 001 Epoch: 40 Loss: 0.000116\n", "[23.02|13:50:38] validation_set Optimizer: 001 Epoch: 40 Loss: 0.004054\n", "[23.02|13:50:46] training_set Optimizer: 001 Epoch: 50 Loss: 0.000117\n", "[23.02|13:50:46] validation_set Optimizer: 001 Epoch: 50 Loss: 0.004440\n", "[23.02|13:50:54] training_set Optimizer: 001 Epoch: 60 Loss: 0.000109\n", "[23.02|13:50:54] validation_set Optimizer: 001 Epoch: 60 Loss: 0.004418\n", "[23.02|13:51:01] training_set Optimizer: 001 Epoch: 70 Loss: 0.000106\n", "[23.02|13:51:01] validation_set Optimizer: 001 Epoch: 70 Loss: 0.003871\n", "[23.02|13:51:08] training_set Optimizer: 001 Epoch: 80 Loss: 0.000103\n", "[23.02|13:51:08] validation_set Optimizer: 001 Epoch: 80 Loss: 0.003859\n", "[23.02|13:51:15] training_set Optimizer: 001 Epoch: 90 Loss: 0.000103\n", "[23.02|13:51:15] validation_set Optimizer: 001 Epoch: 90 Loss: 0.005495\n", "[23.02|13:51:23] training_set Optimizer: 001 Epoch: 100 Loss: 0.000104\n", "[23.02|13:51:23] validation_set Optimizer: 001 Epoch: 100 Loss: 0.005114\n", "[23.02|13:51:31] training_set Optimizer: 001 Epoch: 110 Loss: 0.000120\n", "[23.02|13:51:31] validation_set Optimizer: 001 Epoch: 110 Loss: 0.004426\n", "[23.02|13:51:39] training_set Optimizer: 001 Epoch: 120 Loss: 0.000118\n", "[23.02|13:51:39] validation_set Optimizer: 001 Epoch: 120 Loss: 0.007757\n", "[23.02|13:51:46] training_set Optimizer: 001 Epoch: 130 Loss: 0.000101\n", "[23.02|13:51:46] validation_set Optimizer: 001 Epoch: 130 Loss: 0.003769\n", "[23.02|13:51:54] training_set Optimizer: 001 Epoch: 140 Loss: 0.000099\n", "[23.02|13:51:54] validation_set Optimizer: 001 Epoch: 140 Loss: 0.004056\n", "[23.02|13:52:01] training_set Optimizer: 001 Epoch: 150 Loss: 0.000116\n", "[23.02|13:52:01] validation_set Optimizer: 001 Epoch: 150 Loss: 0.006309\n", "[23.02|13:52:08] training_set Optimizer: 001 Epoch: 160 Loss: 0.000108\n", "[23.02|13:52:08] validation_set Optimizer: 001 Epoch: 160 Loss: 0.005772\n", "[23.02|13:52:16] training_set Optimizer: 001 Epoch: 170 Loss: 0.000097\n", "[23.02|13:52:16] validation_set Optimizer: 001 Epoch: 170 Loss: 0.004733\n", "[23.02|13:52:23] training_set Optimizer: 001 Epoch: 180 Loss: 0.000098\n", "[23.02|13:52:23] validation_set Optimizer: 001 Epoch: 180 Loss: 0.004603\n", "[23.02|13:52:31] training_set Optimizer: 001 Epoch: 190 Loss: 0.000093\n", "[23.02|13:52:31] validation_set Optimizer: 001 Epoch: 190 Loss: 0.003742\n", "[23.02|13:52:39] training_set Optimizer: 001 Epoch: 200 Loss: 0.000112\n", "[23.02|13:52:39] validation_set Optimizer: 001 Epoch: 200 Loss: 0.003631\n", "[23.02|13:52:46] training_set Optimizer: 001 Epoch: 210 Loss: 0.000110\n", "[23.02|13:52:46] validation_set Optimizer: 001 Epoch: 210 Loss: 0.003890\n", "[23.02|13:52:54] training_set Optimizer: 001 Epoch: 220 Loss: 0.000091\n", "[23.02|13:52:54] validation_set Optimizer: 001 Epoch: 220 Loss: 0.004133\n", "[23.02|13:53:02] training_set Optimizer: 001 Epoch: 230 Loss: 0.000092\n", "[23.02|13:53:02] validation_set Optimizer: 001 Epoch: 230 Loss: 0.004787\n", "[23.02|13:53:09] training_set Optimizer: 001 Epoch: 240 Loss: 0.000088\n", "[23.02|13:53:09] validation_set Optimizer: 001 Epoch: 240 Loss: 0.005569\n", "[23.02|13:53:17] training_set Optimizer: 001 Epoch: 250 Loss: 0.000104\n", "[23.02|13:53:17] validation_set Optimizer: 001 Epoch: 250 Loss: 0.005490\n", "[23.02|13:53:24] training_set Optimizer: 001 Epoch: 260 Loss: 0.000101\n", "[23.02|13:53:24] validation_set Optimizer: 001 Epoch: 260 Loss: 0.003599\n", "[23.02|13:53:32] training_set Optimizer: 001 Epoch: 270 Loss: 0.000162\n", "[23.02|13:53:32] validation_set Optimizer: 001 Epoch: 270 Loss: 0.008149\n", "[23.02|13:53:40] training_set Optimizer: 001 Epoch: 280 Loss: 0.000127\n", "[23.02|13:53:40] validation_set Optimizer: 001 Epoch: 280 Loss: 0.004033\n", "[23.02|13:53:48] training_set Optimizer: 001 Epoch: 290 Loss: 0.000116\n", "[23.02|13:53:48] validation_set Optimizer: 001 Epoch: 290 Loss: 0.005066\n", "[23.02|13:53:56] Execution of m3gnet.run finished with returncode 0\n", "[23.02|13:53:56] JOB m3gnet FINISHED\n", "[23.02|13:53:56] Starting m3gnet.postrun()\n", "[23.02|13:53:56] m3gnet.postrun() finished\n", "[23.02|13:53:57] JOB m3gnet SUCCESSFUL\n", "[23.02|13:54:11] Running all jobs through AMS....\n", "[23.02|13:54:11] Storing results/optimization/training_set_results/best\n", "[23.02|13:54:11] Storing results/optimization/validation_set_results/best\n", "[23.02|13:54:11] PLAMS environment cleaned up successfully\n", "[23.02|13:54:11] PLAMS run finished. Goodbye\n", "[23.02|13:54:13] ParAMSResults training_set validation_set\n", "[23.02|13:54:13] energy MAE 0.1115 0.1305 eV\n", "[23.02|13:54:13] forces MAE 0.0233 0.0337 eV/angstrom\n", "[23.02|13:54:13] Newly created parameter file/dir: step13_attempt1_training/results/optimization/m3gnet/m3gnet\n", "[23.02|13:54:13] Done!\n", "[23.02|13:54:13] Deleting step2_attempt2_training\n", "[23.02|13:54:13] ###########################\n", "[23.02|13:54:13] ### Step 13 / Attempt 2 ###\n", "[23.02|13:54:13] ###########################\n", "[23.02|13:54:13] MD Steps: 5000 (cumulative: 60500)\n", "[23.02|13:54:13] Current engine settings:\n", "[23.02|13:54:13]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/scan_density_al.007/step13_attempt1_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[23.02|13:54:13] Running step13_attempt2_simulation...\n", "[23.02|13:56:36] Job step13_attempt2_simulation finished\n", "[23.02|13:56:36] Deleting files that are no longer needed...\n", "[23.02|13:56:37] Launching reference calculation\n", "[23.02|13:56:38] Reference calculation finished!\n", "[23.02|13:56:38] Checking success for step13_attempt2\n", "[23.02|13:56:47] CheckEnergy: Checking energy for MDStep60500, n_atoms = 144\n", "[23.02|13:56:47] CheckEnergy: normalization coefficient = 144\n", "[23.02|13:56:47] CheckEnergy: Actual Threshold\n", "[23.02|13:56:47] CheckEnergy: dE/144 -0.0012 0.0020 OK!\n", "[23.02|13:56:47] CheckEnergy: ddE/144 -0.0006 0.0010 OK! (relative to step13_attempt1_simulation:MDStep60500)\n", "[23.02|13:56:47]\n", "[23.02|13:56:47] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[23.02|13:56:47] CheckForces: ------------\n", "[23.02|13:56:47] CheckForces: Reference job from step13_attempt2_reference_calc1\n", "[23.02|13:56:47] CheckForces: Prediction job from final frame (MDStep60500) of step13_attempt2_simulation\n", "[23.02|13:56:47] CheckForces: ------------\n", "[23.02|13:56:47] CheckForces: Histogram of forces\n", "[23.02|13:56:47] CheckForces: eV/Ang Ref Pred\n", "[23.02|13:56:47] CheckForces: -4 0 0\n", "[23.02|13:56:47] CheckForces: -3 4 3\n", "[23.02|13:56:47] CheckForces: -2 27 28\n", "[23.02|13:56:47] CheckForces: -1 184 187\n", "[23.02|13:56:47] CheckForces: 0 188 185\n", "[23.02|13:56:47] CheckForces: 1 26 29\n", "[23.02|13:56:47] CheckForces: 2 3 0\n", "[23.02|13:56:47] CheckForces: Threshold for 0 force: 0.30 eV/angstrom\n", "[23.02|13:56:47] CheckForces: All force components are within the acceptable error!\n", "[23.02|13:56:47] CheckForces: Maximum deviation: 0.208 eV/angstrom\n", "[23.02|13:56:47] CheckForces: Actual Threshold\n", "[23.02|13:56:47] CheckForces: # > thr. 0 0 OK!\n", "[23.02|13:56:47] CheckForces: MAE 0.034 0.30 OK!\n", "[23.02|13:56:47] CheckForces: R^2 0.996 0.80 OK!\n", "[23.02|13:56:47] CheckForces: --------------------\n", "[23.02|13:56:47]\n", "[23.02|13:56:48] Adding results from step13_attempt2_reference_calc1 to training set\n", "[23.02|13:56:48] Current # training set entries: 23\n", "[23.02|13:56:48] Current # validation set entries: 18\n", "[23.02|13:56:48] Storing data in step13_attempt2_reference_data\n", "[23.02|13:56:48] Deleting step13_attempt1_reference_data\n", "[23.02|13:56:48] Deleting step13_attempt2_reference_calc1\n", "[23.02|13:56:48]\n", "[23.02|13:56:48] Current (cumulative) timings:\n", "[23.02|13:56:48] Time (s) Fraction\n", "[23.02|13:56:48] Ref. calcs 18.41 0.006\n", "[23.02|13:56:48] ML training 1009.77 0.323\n", "[23.02|13:56:48] Simulations 2095.70 0.671\n", "[23.02|13:56:48]\n", "[23.02|13:56:48]\n", "[23.02|13:56:49] Step 13 finished successfully!\n", "[23.02|13:56:49]\n", "[23.02|13:56:49] --- Begin summary ---\n", "[23.02|13:56:49] Step Attempt Status Reason finalframe_forces_max_delta\n", "[23.02|13:56:49] 1 1 FAILED Inaccurate 0.6537\n", "[23.02|13:56:49] 1 2 SUCCESS Accurate 0.3114\n", "[23.02|13:56:49] 2 1 FAILED Inaccurate 0.2480\n", "[23.02|13:56:49] 2 2 FAILED Inaccurate 0.1961\n", "[23.02|13:56:49] 2 3 SUCCESS Accurate 0.1409\n", "[23.02|13:56:49] 3 1 SUCCESS Accurate 0.1832\n", "[23.02|13:56:49] 4 1 SUCCESS Accurate 0.2718\n", "[23.02|13:56:49] 5 1 SUCCESS Accurate 0.2173\n", "[23.02|13:56:49] 6 1 SUCCESS Accurate 0.1572\n", "[23.02|13:56:49] 7 1 SUCCESS Accurate 0.2936\n", "[23.02|13:56:49] 8 1 SUCCESS Accurate 0.1810\n", "[23.02|13:56:49] 9 1 SUCCESS Accurate 0.2209\n", "[23.02|13:56:49] 10 1 SUCCESS Accurate 0.1980\n", "[23.02|13:56:49] 11 1 SUCCESS Accurate 0.2610\n", "[23.02|13:56:49] 12 1 SUCCESS Accurate 0.3609\n", "[23.02|13:56:49] 13 1 FAILED Inaccurate 0.3304\n", "[23.02|13:56:49] 13 2 SUCCESS Accurate 0.2076\n", "[23.02|13:56:49] --- End summary ---\n", "[23.02|13:56:49]\n", "[23.02|13:56:49] ###########################\n", "[23.02|13:56:49] ### Step 14 / Attempt 1 ###\n", "[23.02|13:56:49] ###########################\n", "[23.02|13:56:49] MD Steps: 5000 (cumulative: 65500)\n", "[23.02|13:56:49] Current engine settings:\n", "[23.02|13:56:49]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/scan_density_al.007/step13_attempt1_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[23.02|13:56:49] Running step14_attempt1_simulation...\n", "[23.02|13:59:13] Job step14_attempt1_simulation finished\n", "[23.02|13:59:13] Deleting files that are no longer needed...\n", "[23.02|13:59:13] Deleting step12_attempt1_simulation\n", "[23.02|13:59:13] Deleting step13_attempt1_simulation\n", "[23.02|13:59:14] Launching reference calculation\n", "[23.02|13:59:14] Reference calculation finished!\n", "[23.02|13:59:14] Checking success for step14_attempt1\n", "[23.02|13:59:24] CheckEnergy: Checking energy for MDStep65500, n_atoms = 144\n", "[23.02|13:59:24] CheckEnergy: normalization coefficient = 144\n", "[23.02|13:59:24] CheckEnergy: Actual Threshold\n", "[23.02|13:59:24] CheckEnergy: dE/144 -0.0003 0.0020 OK!\n", "[23.02|13:59:24] CheckEnergy: ddE/144 0.0009 0.0010 OK! (relative to step13_attempt2_simulation:MDStep60500)\n", "[23.02|13:59:24]\n", "[23.02|13:59:24] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[23.02|13:59:24] CheckForces: ------------\n", "[23.02|13:59:24] CheckForces: Reference job from step14_attempt1_reference_calc1\n", "[23.02|13:59:24] CheckForces: Prediction job from final frame (MDStep65500) of step14_attempt1_simulation\n", "[23.02|13:59:24] CheckForces: ------------\n", "[23.02|13:59:24] CheckForces: Histogram of forces\n", "[23.02|13:59:24] CheckForces: eV/Ang Ref Pred\n", "[23.02|13:59:24] CheckForces: -4 0 0\n", "[23.02|13:59:24] CheckForces: -3 4 4\n", "[23.02|13:59:24] CheckForces: -2 34 34\n", "[23.02|13:59:24] CheckForces: -1 176 179\n", "[23.02|13:59:24] CheckForces: 0 189 186\n", "[23.02|13:59:24] CheckForces: 1 26 25\n", "[23.02|13:59:24] CheckForces: 2 3 4\n", "[23.02|13:59:24] CheckForces: 3 0 0\n", "[23.02|13:59:24] CheckForces: Threshold for 0 force: 0.30 eV/angstrom\n", "[23.02|13:59:24] CheckForces: All force components are within the acceptable error!\n", "[23.02|13:59:24] CheckForces: Maximum deviation: 0.219 eV/angstrom\n", "[23.02|13:59:24] CheckForces: Actual Threshold\n", "[23.02|13:59:24] CheckForces: # > thr. 0 0 OK!\n", "[23.02|13:59:24] CheckForces: MAE 0.035 0.30 OK!\n", "[23.02|13:59:24] CheckForces: R^2 0.996 0.80 OK!\n", "[23.02|13:59:24] CheckForces: --------------------\n", "[23.02|13:59:24]\n", "[23.02|13:59:24] Adding results from step14_attempt1_reference_calc1 to training set\n", "[23.02|13:59:24] Current # training set entries: 24\n", "[23.02|13:59:24] Current # validation set entries: 18\n", "[23.02|13:59:24] Storing data in step14_attempt1_reference_data\n", "[23.02|13:59:25] Deleting step13_attempt2_reference_data\n", "[23.02|13:59:25] Deleting step14_attempt1_reference_calc1\n", "[23.02|13:59:25]\n", "[23.02|13:59:25] Current (cumulative) timings:\n", "[23.02|13:59:25] Time (s) Fraction\n", "[23.02|13:59:25] Ref. calcs 19.22 0.006\n", "[23.02|13:59:25] ML training 1009.77 0.309\n", "[23.02|13:59:25] Simulations 2240.00 0.685\n", "[23.02|13:59:25]\n", "[23.02|13:59:25]\n", "[23.02|13:59:25] Step 14 finished successfully!\n", "[23.02|13:59:25]\n", "[23.02|13:59:25] --- Begin summary ---\n", "[23.02|13:59:25] Step Attempt Status Reason finalframe_forces_max_delta\n", "[23.02|13:59:25] 1 1 FAILED Inaccurate 0.6537\n", "[23.02|13:59:25] 1 2 SUCCESS Accurate 0.3114\n", "[23.02|13:59:25] 2 1 FAILED Inaccurate 0.2480\n", "[23.02|13:59:25] 2 2 FAILED Inaccurate 0.1961\n", "[23.02|13:59:25] 2 3 SUCCESS Accurate 0.1409\n", "[23.02|13:59:25] 3 1 SUCCESS Accurate 0.1832\n", "[23.02|13:59:25] 4 1 SUCCESS Accurate 0.2718\n", "[23.02|13:59:25] 5 1 SUCCESS Accurate 0.2173\n", "[23.02|13:59:25] 6 1 SUCCESS Accurate 0.1572\n", "[23.02|13:59:25] 7 1 SUCCESS Accurate 0.2936\n", "[23.02|13:59:25] 8 1 SUCCESS Accurate 0.1810\n", "[23.02|13:59:25] 9 1 SUCCESS Accurate 0.2209\n", "[23.02|13:59:25] 10 1 SUCCESS Accurate 0.1980\n", "[23.02|13:59:25] 11 1 SUCCESS Accurate 0.2610\n", "[23.02|13:59:25] 12 1 SUCCESS Accurate 0.3609\n", "[23.02|13:59:25] 13 1 FAILED Inaccurate 0.3304\n", "[23.02|13:59:25] 13 2 SUCCESS Accurate 0.2076\n", "[23.02|13:59:25] 14 1 SUCCESS Accurate 0.2195\n", "[23.02|13:59:25] --- End summary ---\n", "[23.02|13:59:25]\n", "[23.02|13:59:25] ###########################\n", "[23.02|13:59:25] ### Step 15 / Attempt 1 ###\n", "[23.02|13:59:25] ###########################\n", "[23.02|13:59:25] MD Steps: 5000 (cumulative: 70500)\n", "[23.02|13:59:25] Current engine settings:\n", "[23.02|13:59:25]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/scan_density_al.007/step13_attempt1_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[23.02|13:59:25] Running step15_attempt1_simulation...\n", "[23.02|14:01:53] Job step15_attempt1_simulation finished\n", "[23.02|14:01:53] Deleting files that are no longer needed...\n", "[23.02|14:01:53] Deleting step13_attempt2_simulation\n", "[23.02|14:01:54] Launching reference calculation\n", "[23.02|14:01:55] Reference calculation finished!\n", "[23.02|14:01:55] Checking success for step15_attempt1\n", "[23.02|14:02:04] CheckEnergy: Checking energy for MDStep70500, n_atoms = 144\n", "[23.02|14:02:04] CheckEnergy: normalization coefficient = 144\n", "[23.02|14:02:04] CheckEnergy: Actual Threshold\n", "[23.02|14:02:04] CheckEnergy: dE/144 -0.0012 0.0020 OK!\n", "[23.02|14:02:04] CheckEnergy: ddE/144 -0.0009 0.0010 OK! (relative to step14_attempt1_simulation:MDStep65500)\n", "[23.02|14:02:04]\n", "[23.02|14:02:04] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[23.02|14:02:04] CheckForces: ------------\n", "[23.02|14:02:04] CheckForces: Reference job from step15_attempt1_reference_calc1\n", "[23.02|14:02:04] CheckForces: Prediction job from final frame (MDStep70500) of step15_attempt1_simulation\n", "[23.02|14:02:04] CheckForces: ------------\n", "[23.02|14:02:04] CheckForces: Histogram of forces\n", "[23.02|14:02:04] CheckForces: eV/Ang Ref Pred\n", "[23.02|14:02:04] CheckForces: -4 1 1\n", "[23.02|14:02:04] CheckForces: -3 2 2\n", "[23.02|14:02:04] CheckForces: -2 36 37\n", "[23.02|14:02:04] CheckForces: -1 174 171\n", "[23.02|14:02:04] CheckForces: 0 183 185\n", "[23.02|14:02:04] CheckForces: 1 32 32\n", "[23.02|14:02:04] CheckForces: 2 3 3\n", "[23.02|14:02:04] CheckForces: 3 1 1\n", "[23.02|14:02:04] CheckForces: Threshold for 0 force: 0.30 eV/angstrom\n", "[23.02|14:02:04] CheckForces: All force components are within the acceptable error!\n", "[23.02|14:02:04] CheckForces: Maximum deviation: 0.221 eV/angstrom\n", "[23.02|14:02:04] CheckForces: Actual Threshold\n", "[23.02|14:02:04] CheckForces: # > thr. 0 0 OK!\n", "[23.02|14:02:04] CheckForces: MAE 0.035 0.30 OK!\n", "[23.02|14:02:04] CheckForces: R^2 0.996 0.80 OK!\n", "[23.02|14:02:04] CheckForces: --------------------\n", "[23.02|14:02:04]\n", "[23.02|14:02:05] Adding results from step15_attempt1_reference_calc1 to validation set\n", "[23.02|14:02:05] Current # training set entries: 24\n", "[23.02|14:02:05] Current # validation set entries: 19\n", "[23.02|14:02:05] Storing data in step15_attempt1_reference_data\n", "[23.02|14:02:05] Deleting step14_attempt1_reference_data\n", "[23.02|14:02:05] Deleting step15_attempt1_reference_calc1\n", "[23.02|14:02:05]\n", "[23.02|14:02:05] Current (cumulative) timings:\n", "[23.02|14:02:05] Time (s) Fraction\n", "[23.02|14:02:05] Ref. calcs 20.14 0.006\n", "[23.02|14:02:05] ML training 1009.77 0.295\n", "[23.02|14:02:05] Simulations 2388.10 0.699\n", "[23.02|14:02:05]\n", "[23.02|14:02:05]\n", "[23.02|14:02:06] Step 15 finished successfully!\n", "[23.02|14:02:06]\n", "[23.02|14:02:06] --- Begin summary ---\n", "[23.02|14:02:06] Step Attempt Status Reason finalframe_forces_max_delta\n", "[23.02|14:02:06] 1 1 FAILED Inaccurate 0.6537\n", "[23.02|14:02:06] 1 2 SUCCESS Accurate 0.3114\n", "[23.02|14:02:06] 2 1 FAILED Inaccurate 0.2480\n", "[23.02|14:02:06] 2 2 FAILED Inaccurate 0.1961\n", "[23.02|14:02:06] 2 3 SUCCESS Accurate 0.1409\n", "[23.02|14:02:06] 3 1 SUCCESS Accurate 0.1832\n", "[23.02|14:02:06] 4 1 SUCCESS Accurate 0.2718\n", "[23.02|14:02:06] 5 1 SUCCESS Accurate 0.2173\n", "[23.02|14:02:06] 6 1 SUCCESS Accurate 0.1572\n", "[23.02|14:02:06] 7 1 SUCCESS Accurate 0.2936\n", "[23.02|14:02:06] 8 1 SUCCESS Accurate 0.1810\n", "[23.02|14:02:06] 9 1 SUCCESS Accurate 0.2209\n", "[23.02|14:02:06] 10 1 SUCCESS Accurate 0.1980\n", "[23.02|14:02:06] 11 1 SUCCESS Accurate 0.2610\n", "[23.02|14:02:06] 12 1 SUCCESS Accurate 0.3609\n", "[23.02|14:02:06] 13 1 FAILED Inaccurate 0.3304\n", "[23.02|14:02:06] 13 2 SUCCESS Accurate 0.2076\n", "[23.02|14:02:06] 14 1 SUCCESS Accurate 0.2195\n", "[23.02|14:02:06] 15 1 SUCCESS Accurate 0.2209\n", "[23.02|14:02:06] --- End summary ---\n", "[23.02|14:02:06]\n", "[23.02|14:02:06] ###########################\n", "[23.02|14:02:06] ### Step 16 / Attempt 1 ###\n", "[23.02|14:02:06] ###########################\n", "[23.02|14:02:06] MD Steps: 5000 (cumulative: 75500)\n", "[23.02|14:02:06] Current engine settings:\n", "[23.02|14:02:06]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/scan_density_al.007/step13_attempt1_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[23.02|14:02:06] Running step16_attempt1_simulation...\n", "[23.02|14:04:35] Job step16_attempt1_simulation finished\n", "[23.02|14:04:35] Deleting files that are no longer needed...\n", "[23.02|14:04:35] Deleting step14_attempt1_simulation\n", "[23.02|14:04:35] Launching reference calculation\n", "[23.02|14:04:36] Reference calculation finished!\n", "[23.02|14:04:36] Checking success for step16_attempt1\n", "[23.02|14:04:46] CheckEnergy: Checking energy for MDStep75500, n_atoms = 144\n", "[23.02|14:04:46] CheckEnergy: normalization coefficient = 144\n", "[23.02|14:04:46] CheckEnergy: Actual Threshold\n", "[23.02|14:04:46] CheckEnergy: dE/144 -0.0011 0.0020 OK!\n", "[23.02|14:04:46] CheckEnergy: ddE/144 0.0001 0.0010 OK! (relative to step15_attempt1_simulation:MDStep70500)\n", "[23.02|14:04:46]\n", "[23.02|14:04:46] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[23.02|14:04:46] CheckForces: ------------\n", "[23.02|14:04:46] CheckForces: Reference job from step16_attempt1_reference_calc1\n", "[23.02|14:04:46] CheckForces: Prediction job from final frame (MDStep75500) of step16_attempt1_simulation\n", "[23.02|14:04:46] CheckForces: ------------\n", "[23.02|14:04:46] CheckForces: Histogram of forces\n", "[23.02|14:04:46] CheckForces: eV/Ang Ref Pred\n", "[23.02|14:04:46] CheckForces: -3 1 1\n", "[23.02|14:04:46] CheckForces: -2 35 35\n", "[23.02|14:04:46] CheckForces: -1 185 181\n", "[23.02|14:04:46] CheckForces: 0 175 179\n", "[23.02|14:04:46] CheckForces: 1 34 34\n", "[23.02|14:04:46] CheckForces: 2 2 2\n", "[23.02|14:04:46] CheckForces: Threshold for 0 force: 0.30 eV/angstrom\n", "[23.02|14:04:46] CheckForces: All force components are within the acceptable error!\n", "[23.02|14:04:46] CheckForces: Maximum deviation: 0.162 eV/angstrom\n", "[23.02|14:04:46] CheckForces: Actual Threshold\n", "[23.02|14:04:46] CheckForces: # > thr. 0 0 OK!\n", "[23.02|14:04:46] CheckForces: MAE 0.037 0.30 OK!\n", "[23.02|14:04:46] CheckForces: R^2 0.995 0.80 OK!\n", "[23.02|14:04:46] CheckForces: --------------------\n", "[23.02|14:04:46]\n", "[23.02|14:04:46] Adding results from step16_attempt1_reference_calc1 to validation set\n", "[23.02|14:04:46] Current # training set entries: 24\n", "[23.02|14:04:46] Current # validation set entries: 20\n", "[23.02|14:04:46] Storing data in step16_attempt1_reference_data\n", "[23.02|14:04:47] Deleting step15_attempt1_reference_data\n", "[23.02|14:04:47] Deleting step16_attempt1_reference_calc1\n", "[23.02|14:04:47]\n", "[23.02|14:04:47] Current (cumulative) timings:\n", "[23.02|14:04:47] Time (s) Fraction\n", "[23.02|14:04:47] Ref. calcs 21.21 0.006\n", "[23.02|14:04:47] ML training 1009.77 0.283\n", "[23.02|14:04:47] Simulations 2536.93 0.711\n", "[23.02|14:04:47]\n", "[23.02|14:04:47]\n", "[23.02|14:04:47] Step 16 finished successfully!\n", "[23.02|14:04:47]\n", "[23.02|14:04:47] --- Begin summary ---\n", "[23.02|14:04:47] Step Attempt Status Reason finalframe_forces_max_delta\n", "[23.02|14:04:47] 1 1 FAILED Inaccurate 0.6537\n", "[23.02|14:04:47] 1 2 SUCCESS Accurate 0.3114\n", "[23.02|14:04:47] 2 1 FAILED Inaccurate 0.2480\n", "[23.02|14:04:47] 2 2 FAILED Inaccurate 0.1961\n", "[23.02|14:04:47] 2 3 SUCCESS Accurate 0.1409\n", "[23.02|14:04:47] 3 1 SUCCESS Accurate 0.1832\n", "[23.02|14:04:47] 4 1 SUCCESS Accurate 0.2718\n", "[23.02|14:04:47] 5 1 SUCCESS Accurate 0.2173\n", "[23.02|14:04:47] 6 1 SUCCESS Accurate 0.1572\n", "[23.02|14:04:47] 7 1 SUCCESS Accurate 0.2936\n", "[23.02|14:04:47] 8 1 SUCCESS Accurate 0.1810\n", "[23.02|14:04:47] 9 1 SUCCESS Accurate 0.2209\n", "[23.02|14:04:47] 10 1 SUCCESS Accurate 0.1980\n", "[23.02|14:04:47] 11 1 SUCCESS Accurate 0.2610\n", "[23.02|14:04:47] 12 1 SUCCESS Accurate 0.3609\n", "[23.02|14:04:47] 13 1 FAILED Inaccurate 0.3304\n", "[23.02|14:04:47] 13 2 SUCCESS Accurate 0.2076\n", "[23.02|14:04:47] 14 1 SUCCESS Accurate 0.2195\n", "[23.02|14:04:47] 15 1 SUCCESS Accurate 0.2209\n", "[23.02|14:04:47] 16 1 SUCCESS Accurate 0.1620\n", "[23.02|14:04:47] --- End summary ---\n", "[23.02|14:04:47]\n", "[23.02|14:04:47] ###########################\n", "[23.02|14:04:47] ### Step 17 / Attempt 1 ###\n", "[23.02|14:04:47] ###########################\n", "[23.02|14:04:47] MD Steps: 4500 (cumulative: 80000)\n", "[23.02|14:04:47] Current engine settings:\n", "[23.02|14:04:47]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/scan_density_al.007/step13_attempt1_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "[23.02|14:04:47] Running step17_attempt1_simulation...\n", "[23.02|14:07:03] Job step17_attempt1_simulation finished\n", "[23.02|14:07:03] Deleting files that are no longer needed...\n", "[23.02|14:07:03] Deleting step15_attempt1_simulation\n", "[23.02|14:07:04] Launching reference calculation\n", "[23.02|14:07:05] Reference calculation finished!\n", "[23.02|14:07:05] Checking success for step17_attempt1\n", "[23.02|14:07:14] CheckEnergy: Checking energy for MDStep80000, n_atoms = 144\n", "[23.02|14:07:14] CheckEnergy: normalization coefficient = 144\n", "[23.02|14:07:14] CheckEnergy: Actual Threshold\n", "[23.02|14:07:14] CheckEnergy: dE/144 -0.0012 0.0020 OK!\n", "[23.02|14:07:14] CheckEnergy: ddE/144 -0.0000 0.0010 OK! (relative to step16_attempt1_simulation:MDStep75500)\n", "[23.02|14:07:14]\n", "[23.02|14:07:14] CheckForces: Comparing predicted forces to reference forces (eV/angstrom) on MD snapshot\n", "[23.02|14:07:14] CheckForces: ------------\n", "[23.02|14:07:14] CheckForces: Reference job from step17_attempt1_reference_calc1\n", "[23.02|14:07:14] CheckForces: Prediction job from final frame (MDStep80000) of step17_attempt1_simulation\n", "[23.02|14:07:14] CheckForces: ------------\n", "[23.02|14:07:14] CheckForces: Histogram of forces\n", "[23.02|14:07:14] CheckForces: eV/Ang Ref Pred\n", "[23.02|14:07:14] CheckForces: -3 3 2\n", "[23.02|14:07:14] CheckForces: -2 37 37\n", "[23.02|14:07:14] CheckForces: -1 162 164\n", "[23.02|14:07:14] CheckForces: 0 193 195\n", "[23.02|14:07:14] CheckForces: 1 32 29\n", "[23.02|14:07:14] CheckForces: 2 4 4\n", "[23.02|14:07:14] CheckForces: 3 1 1\n", "[23.02|14:07:14] CheckForces: Threshold for 0 force: 0.30 eV/angstrom\n", "[23.02|14:07:14] CheckForces: All force components are within the acceptable error!\n", "[23.02|14:07:14] CheckForces: Maximum deviation: 0.231 eV/angstrom\n", "[23.02|14:07:14] CheckForces: Actual Threshold\n", "[23.02|14:07:14] CheckForces: # > thr. 0 0 OK!\n", "[23.02|14:07:14] CheckForces: MAE 0.038 0.30 OK!\n", "[23.02|14:07:14] CheckForces: R^2 0.995 0.80 OK!\n", "[23.02|14:07:14] CheckForces: --------------------\n", "[23.02|14:07:14]\n", "[23.02|14:07:15] Adding results from step17_attempt1_reference_calc1 to training set\n", "[23.02|14:07:15] Current # training set entries: 25\n", "[23.02|14:07:15] Current # validation set entries: 20\n", "[23.02|14:07:15] Storing data in step17_attempt1_reference_data\n", "[23.02|14:07:15] Deleting step16_attempt1_reference_data\n", "[23.02|14:07:15] Deleting step17_attempt1_reference_calc1\n", "[23.02|14:07:15]\n", "[23.02|14:07:15] Current (cumulative) timings:\n", "[23.02|14:07:15] Time (s) Fraction\n", "[23.02|14:07:15] Ref. calcs 22.09 0.006\n", "[23.02|14:07:15] ML training 1009.77 0.273\n", "[23.02|14:07:15] Simulations 2672.66 0.721\n", "[23.02|14:07:15]\n", "[23.02|14:07:15]\n", "[23.02|14:07:16] Step 17 finished successfully!\n", "[23.02|14:07:16]\n", "[23.02|14:07:16] --- Begin summary ---\n", "[23.02|14:07:16] Step Attempt Status Reason finalframe_forces_max_delta\n", "[23.02|14:07:16] 1 1 FAILED Inaccurate 0.6537\n", "[23.02|14:07:16] 1 2 SUCCESS Accurate 0.3114\n", "[23.02|14:07:16] 2 1 FAILED Inaccurate 0.2480\n", "[23.02|14:07:16] 2 2 FAILED Inaccurate 0.1961\n", "[23.02|14:07:16] 2 3 SUCCESS Accurate 0.1409\n", "[23.02|14:07:16] 3 1 SUCCESS Accurate 0.1832\n", "[23.02|14:07:16] 4 1 SUCCESS Accurate 0.2718\n", "[23.02|14:07:16] 5 1 SUCCESS Accurate 0.2173\n", "[23.02|14:07:16] 6 1 SUCCESS Accurate 0.1572\n", "[23.02|14:07:16] 7 1 SUCCESS Accurate 0.2936\n", "[23.02|14:07:16] 8 1 SUCCESS Accurate 0.1810\n", "[23.02|14:07:16] 9 1 SUCCESS Accurate 0.2209\n", "[23.02|14:07:16] 10 1 SUCCESS Accurate 0.1980\n", "[23.02|14:07:16] 11 1 SUCCESS Accurate 0.2610\n", "[23.02|14:07:16] 12 1 SUCCESS Accurate 0.3609\n", "[23.02|14:07:16] 13 1 FAILED Inaccurate 0.3304\n", "[23.02|14:07:16] 13 2 SUCCESS Accurate 0.2076\n", "[23.02|14:07:16] 14 1 SUCCESS Accurate 0.2195\n", "[23.02|14:07:16] 15 1 SUCCESS Accurate 0.2209\n", "[23.02|14:07:16] 16 1 SUCCESS Accurate 0.1620\n", "[23.02|14:07:16] 17 1 SUCCESS Accurate 0.2308\n", "[23.02|14:07:16] --- End summary ---\n", "[23.02|14:07:16]\n", "[23.02|14:07:16] The engine settings for the final trained ML engine are:\n", "[23.02|14:07:16]\n", "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/adfhome/userdoc/Workflows/SimpleActiveLearning/PythonExamples/SALLiquidWater/plams_workdir.003/scan_density_al.007/step13_attempt1_training/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n", "\n", "[23.02|14:07:16] Active learning finished!\n", "[23.02|14:07:16] Goodbye!\n" ] } ], "source": [ "scan_density_al_job = SimpleActiveLearningJob(\n", " name=\"scan_density_al\",\n", " settings=ref_s + scan_density_md_s + scan_density_ml_s + scan_density_al_s,\n", " molecule=new_structure,\n", ")\n", "scan_density_al_job.run(watch=True);" ] }, { "cell_type": "markdown", "id": "c87750d8-2395-469b-9c67-8b965444f019", "metadata": {}, "source": [ "Let's recalculate the density again:" ] }, { "cell_type": "code", "execution_count": 216, "id": "203ae5b0-1b0a-4f7e-b849-3ba943a2d356", "metadata": {}, "outputs": [], "source": [ "new_retrained_model_settings = scan_density_al_job.results.get_params_job().results.get_production_engine_settings()\n", "\n", "new_retrained_model_npt_job = plams.AMSJob(\n", " settings=npt_md_s + new_retrained_model_settings,\n", " name=\"new_retrained_model_npt\",\n", " molecule=retrained_model_prod_md_job.results.get_main_molecule(),\n", ")\n", "\n", "new_retrained_model_npt_job.run();" ] }, { "cell_type": "code", "execution_count": 217, "id": "8d965fa5-3bbf-479a-b6de-aef5ecfced05", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "New retrained model water density at 300 K: 1.02 g/cm^3\n" ] } ], "source": [ "new_retrained_model_density = (\n", " plams.AMSNPTJob.load_external(new_retrained_model_npt_job.results.rkfpath())\n", " .results.get_equilibrated_molecule()\n", " .get_density()\n", ")\n", "print(\n", " f\"New retrained model water density at 300 K: {new_retrained_model_density * 1e-3:.2f} g/cm^3\"\n", ")" ] }, { "cell_type": "markdown", "id": "8118b3d9-262f-4d63-9b19-a467b598ff9f", "metadata": {}, "source": [ "**Conclusion for the density**: Using active learning when scanning the densities makes sure that the predicitons are accurate for all densities. Consequently the equilibrium density is also in better agreement with the reference value of 1.01 g/cm^3.\n", "\n", "Note that the density in general is quite difficult to fit accurately." ] } ], "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.12" } }, "nbformat": 4, "nbformat_minor": 5 }