{ "cells": [ { "cell_type": "markdown", "id": "c4478ee5-edc2-4069-b339-b12e42e4ac7c", "metadata": {}, "source": [ "## Initial imports" ] }, { "cell_type": "code", "execution_count": 1, "id": "df986d72-f26b-4a3c-b82a-f9bcdaf2da7d", "metadata": {}, "outputs": [], "source": [ "from scm.plams import plot_molecule\n", "import scm.plams as plams\n", "from scm.params import ParAMSJob, ResultsImporter\n", "import glob\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "id": "17d5e6a2-e89e-4b61-ac0a-0fcf01e8194a", "metadata": {}, "source": [ "## Initialize PLAMS environment" ] }, { "cell_type": "code", "execution_count": 2, "id": "bb281ad1-1128-44f0-befa-c9df4597f20b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "PLAMS working folder: /home/hellstrom/temp/grouptalk-VeN-2024-Feb-19/plams_workdir.010\n" ] } ], "source": [ "plams.init()" ] }, { "cell_type": "markdown", "id": "0402eb27-3060-40b6-976a-9fc51ff55232", "metadata": {}, "source": [ "## Run a quick reference MD job for liquid Ar\n", "\n", "In this example we generate some simple reference data.\n", "\n", "If you \n", "\n", "* already have reference data in the ParAMS .yaml format, then you can skip this step\n", "* already have reference data in the ASE .xyz or .db format, you can convert it to the ParAMS .yaml format. See the section \"Convert ASE format to ParAMS\" below" ] }, { "cell_type": "code", "execution_count": 3, "id": "d56b3d8a-04c3-42ed-ba5a-8cdd5c1e7a94", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "molecule = plams.Molecule(numbers=[18], positions=[(0, 0, 0)])\n", "box = plams.packmol(molecule, n_atoms=32, density=1.4, tolerance=3.0)\n", "plot_molecule(box)" ] }, { "cell_type": "code", "execution_count": 4, "id": "78a52863-c95c-499c-ba8e-ab1840f0d892", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[19.02|16:41:44] JOB uff_md STARTED\n", "[19.02|16:41:44] JOB uff_md RUNNING\n", "[19.02|16:41:46] JOB uff_md FINISHED\n", "[19.02|16:41:46] JOB uff_md SUCCESSFUL\n" ] } ], "source": [ "reference_engine_settings = plams.Settings()\n", "reference_engine_settings.runscript.nproc = 1\n", "reference_engine_settings.input.ForceField.Type = \"UFF\"\n", "md_job = plams.AMSNVTJob(\n", " settings=reference_engine_settings,\n", " molecule=box,\n", " name=\"uff_md\",\n", " nsteps=5000,\n", " temperature=500,\n", " writeenginegradients=True,\n", " samplingfreq=500,\n", ")\n", "md_job.run();" ] }, { "cell_type": "markdown", "id": "a7653670-4e82-4b23-8569-ec4fa9955e4d", "metadata": {}, "source": [ "## Import reference results with ParAMS ResultsImporter\n", "\n", "Here we use the ``add_trajectory_singlepoints`` results importer. For more details about usage of the results importers, see the corresponding tutorials." ] }, { "cell_type": "code", "execution_count": 5, "id": "bfea0c41-9bee-4d32-84ce-c5edd6477d50", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[\"energy('uff_md_frame001')\",\n", " \"energy('uff_md_frame002')\",\n", " \"energy('uff_md_frame003')\",\n", " \"energy('uff_md_frame004')\",\n", " \"energy('uff_md_frame005')\",\n", " \"energy('uff_md_frame006')\",\n", " \"energy('uff_md_frame007')\",\n", " \"energy('uff_md_frame008')\",\n", " \"energy('uff_md_frame009')\",\n", " \"energy('uff_md_frame010')\",\n", " \"energy('uff_md_frame011')\",\n", " \"forces('uff_md_frame001')\",\n", " \"forces('uff_md_frame002')\",\n", " \"forces('uff_md_frame003')\",\n", " \"forces('uff_md_frame004')\",\n", " \"forces('uff_md_frame005')\",\n", " \"forces('uff_md_frame006')\",\n", " \"forces('uff_md_frame007')\",\n", " \"forces('uff_md_frame008')\",\n", " \"forces('uff_md_frame009')\",\n", " \"forces('uff_md_frame010')\",\n", " \"forces('uff_md_frame011')\"]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ri = ResultsImporter(settings={\"units\": {\"energy\": \"eV\", \"forces\": \"eV/angstrom\"}})\n", "ri.add_trajectory_singlepoints(md_job.results.rkfpath(), properties=[\"energy\", \"forces\"])\n", "# feel free to add other trajectories as well:\n", "# ri.add_trajectory_singlepoints(job2.results.rkfpath(), properties=[\"energy\", \"forces\"]) # etc..." ] }, { "cell_type": "markdown", "id": "7a2a32c7-3f8a-4c9b-88f9-462a5b9af764", "metadata": {}, "source": [ "## Optional: split into training/validation sets\n", "\n", "Machine learning potentials in ParAMS can only be trained if there is both a training set and a validation set.\n", "\n", "If you do not specify a validation set, the training set will automatically be split into a training and validation set when the parametrization starts.\n", "\n", "Here, we will manually split the data set ourselves.\n", "\n", "Let's first print the information in the current ResultsImporter training set:" ] }, { "cell_type": "code", "execution_count": 6, "id": "45c3087b-b96c-45c9-a59a-1db1aae738fa", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Original training set:\n", " number of entries: 22\n", " number of jobids: 11\n", " jobids: {'uff_md_frame004', 'uff_md_frame007', 'uff_md_frame003', 'uff_md_frame009', 'uff_md_frame001', 'uff_md_frame010', 'uff_md_frame011', 'uff_md_frame006', 'uff_md_frame005', 'uff_md_frame002', 'uff_md_frame008'}\n" ] } ], "source": [ "def print_data_set_summary(data_set, title):\n", " number_of_entries = len(data_set)\n", " jobids = data_set.jobids\n", " number_of_jobids = len(jobids)\n", " print(f\"{title}:\")\n", " print(f\" number of entries: {number_of_entries}\")\n", " print(f\" number of jobids: {number_of_jobids}\")\n", " print(f\" jobids: {jobids}\")\n", "\n", "\n", "print_data_set_summary(ri.data_sets[\"training_set\"], \"Original training set\")" ] }, { "cell_type": "markdown", "id": "df330dd2-e4a2-4e85-8c69-425db779b0fc", "metadata": {}, "source": [ "Above, the number of entries is twice the number of jobids because the ``energy`` and ``forces`` extractors are separate entries.\n", "\n", "The energy and force extractors for a given structure (e.g. frame006) must belong to the same data set. For this reason, when doing the split, we call ``split_by_jobid``" ] }, { "cell_type": "code", "execution_count": 7, "id": "12cc4936-c983-409b-a078-9834b12e8e07", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "New training set:\n", " number of entries: 16\n", " number of jobids: 8\n", " jobids: {'uff_md_frame004', 'uff_md_frame007', 'uff_md_frame001', 'uff_md_frame010', 'uff_md_frame011', 'uff_md_frame006', 'uff_md_frame005', 'uff_md_frame008'}\n", "New validation set:\n", " number of entries: 6\n", " number of jobids: 3\n", " jobids: {'uff_md_frame009', 'uff_md_frame002', 'uff_md_frame003'}\n" ] } ], "source": [ "training_set, validation_set = ri.data_sets[\"training_set\"].split_by_jobids(0.8, 0.2, seed=314)\n", "ri.data_sets[\"training_set\"] = training_set\n", "ri.data_sets[\"validation_set\"] = validation_set\n", "\n", "print_data_set_summary(ri.data_sets[\"training_set\"], \"New training set\")\n", "print_data_set_summary(ri.data_sets[\"validation_set\"], \"New validation set\")" ] }, { "cell_type": "markdown", "id": "ff17d494-5ca0-4e76-b33d-0f486755bf79", "metadata": {}, "source": [ "## Store the reference results in ParAMS yaml format\n", "\n", "Use ``ResultsImporter.store()`` to store all the data in the results importer in the ParAMS .yaml format:" ] }, { "cell_type": "code", "execution_count": 8, "id": "814705ef-5dae-4abd-8aeb-f2bb278651a4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "yaml_ref_data/results_importer_settings.yaml\n", "yaml_ref_data/validation_set.yaml\n", "yaml_ref_data/job_collection_engines.yaml\n", "yaml_ref_data/training_set.yaml\n", "yaml_ref_data/job_collection.yaml\n" ] } ], "source": [ "yaml_dir = \"yaml_ref_data\"\n", "ri.store(yaml_dir, backup=False)\n", "\n", "# print the contents of the directory\n", "for x in glob.glob(f\"{yaml_dir}/*\"):\n", " print(x)" ] }, { "cell_type": "markdown", "id": "f475ebf7-7f1a-4d03-a114-51bf1b526a30", "metadata": {}, "source": [ "## Set up and run a ParAMSJob for training ML Potentials\n", "\n", "See the ParAMS MachineLearning documentation for all available input options.\n", "\n", "Training the model may take a few minutes." ] }, { "cell_type": "code", "execution_count": 9, "id": "389c9c72-4f74-4363-a147-886697da956f", "metadata": {}, "outputs": [], "source": [ "job = ParAMSJob.from_yaml(yaml_dir)\n", "job.name = \"params_training_ml_potential\"\n", "job.settings.input.Task = \"MachineLearning\"\n", "job.settings.input.MachineLearning.CommitteeSize = 1 # train only a single model\n", "job.settings.input.MachineLearning.MaxEpochs = 200\n", "job.settings.input.MachineLearning.LossCoeffs.Energy = 10\n", "job.settings.input.MachineLearning.Backend = \"M3GNet\"\n", "job.settings.input.MachineLearning.M3GNet.Model = \"UniversalPotential\"\n", "job.settings.input.MachineLearning.Target.Forces.Enabled = \"No\"\n", "job.settings.input.MachineLearning.RunAMSAtEnd = \"Yes\"" ] }, { "cell_type": "code", "execution_count": 10, "id": "73b541bd-bdac-4c7c-96db-d97b24d0598f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[19.02|16:41:46] JOB params_training_ml_potential STARTED\n", "[19.02|16:41:47] JOB params_training_ml_potential RUNNING\n", "[19.02|16:43:05] JOB params_training_ml_potential FINISHED\n", "[19.02|16:43:05] JOB params_training_ml_potential SUCCESSFUL\n" ] } ], "source": [ "job.run();" ] }, { "cell_type": "markdown", "id": "02c75f67-c9a2-4edc-9a48-afa5a6231d0b", "metadata": {}, "source": [ "## Results of the ML potential training\n", "\n", "Use ``job.results.get_running_loss()`` to get the loss value as a function of epoch:" ] }, { "cell_type": "code", "execution_count": 11, "id": "4354d29d-beef-4e4b-a6d2-1c2f3c11b05a", "metadata": {}, "outputs": [ { "data": { "image/png": "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//79WbZsGcuXL6/QpmjTPUPs006DTmRXVFTE0KFDARg9ejSzZ88+buNNN93ESy+9RFKSltWHDBnCT3/6UyZMmEBRUdHx8OpSaWoRSQSeAi4G8oH5IjLNORf6hkYA3by/s4CJ3hbgOeAvwAsRrt3Ru+6m6j9CNbFuoIZRdSooqdcl1113Ha+99hrbt28/7g55+eWXKSwsZOHChSQnJ5OTkxNxGuhQItUO1q9fz+OPP878+fPJzMzk1ltvrfQ6Fc2hFuu005XxzjvvMHv2bKZNm8avf/1rli1bxrhx47j88suZPn06gwcPZtasWZx++unVuj7EVgMYBKx1zq3z1vGdAowMizMSeMEpc4EMEWkL4JybDeyOcu0/Aj8D6n9GusQkEwDDOEkYNWoUU6ZM4bXXXjveq2fv3r20atWK5ORkPvjgAzZu3FjhNc477zxeflknf1y6dClLliwBYN++faSnp9O8eXMKCgqYMWPG8TTRpqKONt1zVWnevDmZmZnHaw8vvvgiQ4cOpaysjM2bNzNs2DAee+wxioqKOHDgAF9//TV9+/blgQceYODAgceXrKwusdQf2gObQ47zCZbuK4rTHtgW7aIichWwxTn3ZTSfnRdvDDAGoFOnTjGYGyOJKeYCMoyThN69e7N//37at29P27ZtAbjpppu48sorGThwIP369au0JHznnXdy2223kZeXR79+/Y5P1XzGGWfQv39/evfuTZcuXRgyZMjxNGPGjGHEiBG0bduWDz744Hh4tOmeK3L3ROP5559n7NixHDp0iC5duvCPf/yD0tJSbr75Zvbu3YtzjnvvvZeMjAx++ctf8sEHH5CYmEivXr0YMWJEle8XSqXTQYvI9cClzrnve8ffBQY5534YEucd4LfOuTne8fvAz5xzC73jHOBfzrk+3nEa8AFwiXNur4hsAAY65ypcZbna00FH4oPfwkfj4eEiqECADMPv2HTQJxdVmQ46FhdQPtAx5LgDsLUacULpCuQCX3qZfwdgkYi0icGe2iExWbfmBjIMw6fEIgDzgW4ikisiKcAoYFpYnGnALV5voMHAXudcVPePc+4r51wr51yOcy4HFZABzrnt1XuManBcAKwrqGEY/qRSAXDOlQD3ADOBFcBU59wyERkrImO9aNOBdcBa4FngrkB6EXkF+AzoISL5InJ7LT9D9UhM0a21AxhGpZxM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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "epoch, training_loss = job.results.get_running_loss(data_set=\"training_set\")\n", "plt.plot(epoch, training_loss)\n", "\n", "epoch, validation_loss = job.results.get_running_loss(data_set=\"validation_set\")\n", "plt.plot(epoch, validation_loss)\n", "plt.legend([\"training loss\", \"validation loss\"]);" ] }, { "cell_type": "markdown", "id": "e50a182f-3a8d-4256-aed3-90842d5b6f86", "metadata": {}, "source": [ "If you set ``MachineLearning%RunAMSAtEnd`` (it is on by default), this will run the ML potential through AMS at the end of the fitting procedure, similar to the ParAMS SinglePoint task.\n", "\n", "This will give you access to more results, for example the predicted-vs-reference energy and forces for all entries in the training and validation set. Plot them in a scatter plot like this:" ] }, { "cell_type": "code", "execution_count": 12, "id": "2d874d48-1a9b-4ff1-a8f5-00f7fd6ca6a5", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(8, 6))\n", "\n", "for i, data_set in enumerate([\"training_set\", \"validation_set\"]):\n", " for j, key in enumerate([\"energy\", \"forces\"]):\n", " dse = job.results.get_data_set_evaluator(data_set=data_set, source=\"best\")\n", " data = dse.results[key]\n", " ax = axes[i][j]\n", " ax.plot(data.reference_values, data.predictions, \".\")\n", " ax.set_xlabel(f\"Reference {key} ({data.unit})\")\n", " ax.set_ylabel(f\"Predicted {key} ({data.unit})\")\n", " ax.set_title(f\"{data_set}\\n{key} MAE: {data.mae:.3f} {data.unit}\")\n", " ax.set_xlim(auto=True)\n", " ax.autoscale(False)\n", " ax.plot([-10, 10], [-10, 10], linewidth=5, zorder=-1, alpha=0.3, c=\"red\")\n", "\n", "plt.subplots_adjust(hspace=0.6, wspace=0.4)" ] }, { "cell_type": "markdown", "id": "1c46d495-e59e-4f25-a0ff-7a17c54a9f9b", "metadata": {}, "source": [ "## Get the engine settings for production jobs\n", "\n", "First, let's find the path to where the trained m3gnet model resides using ``get_deployed_model_paths()``. This function returns a list of paths to the trained models. In this case we only trained one model, so we access the first element of the list with ``[0]``:" ] }, { "cell_type": "code", "execution_count": 13, "id": "5eadd6b6-e269-48df-ba03-0ac6cd5caf4a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/home/hellstrom/temp/grouptalk-VeN-2024-Feb-19/plams_workdir.010/params_training_ml_potential/results/optimization/m3gnet/m3gnet\n" ] } ], "source": [ "print(job.results.get_deployed_model_paths()[0])" ] }, { "cell_type": "markdown", "id": "4a43efa1-5549-4ca4-90b8-0ab0779f8ccc", "metadata": {}, "source": [ "The above is the path we need to give as the ``ParameterDir`` input option in the AMS MLPotential engine. For other backends it might instead be the ``ParameterFile`` option.\n", "\n", "To get the complete engine settings as a PLAMS Settings object, use the method ``get_production_engine_settings()``:" ] }, { "cell_type": "code", "execution_count": 14, "id": "f4f0a4c1-f4e3-461b-8854-fdc8ca029314", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Engine MLPotential\n", " Backend M3GNet\n", " MLDistanceUnit angstrom\n", " MLEnergyUnit eV\n", " Model Custom\n", " ParameterDir /home/hellstrom/temp/grouptalk-VeN-2024-Feb-19/plams_workdir.010/params_training_ml_potential/results/optimization/m3gnet/m3gnet\n", "EndEngine\n", "\n", "\n" ] } ], "source": [ "production_engine_settings = job.results.get_production_engine_settings()\n", "print(plams.AMSJob(settings=production_engine_settings).get_input())" ] }, { "cell_type": "markdown", "id": "4bb05a43-aff8-4d32-8e03-571d10a1ef6f", "metadata": {}, "source": [ "## Run a short MD simulation with the trained potential" ] }, { "cell_type": "code", "execution_count": 15, "id": "8b59c359-432c-48b3-a256-ba84a1645f5a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[19.02|16:43:05] JOB production_md STARTED\n", "[19.02|16:43:05] JOB production_md RUNNING\n", "[19.02|16:43:06] production_md: AMS 2024.101 RunTime: Feb19-2024 16:43:06 ShM Nodes: 1 Procs: 1\n", "[19.02|16:43:09] production_md: Starting MD calculation:\n", "[19.02|16:43:09] production_md: --------------------\n", "[19.02|16:43:09] production_md: Molecular Dynamics\n", "[19.02|16:43:09] production_md: --------------------\n", "[19.02|16:43:09] production_md: Step Time Temp. E Pot Pressure Volume\n", "[19.02|16:43:09] production_md: (fs) (K) (au) (MPa) (A^3)\n", "[19.02|16:43:15] production_md: 0 0.00 300. -0.00672 1048.733 1516.2\n", "[19.02|16:43:22] production_md: 100 100.00 321. -0.00954 1012.718 1516.2\n", "[19.02|16:43:23] production_md: 200 200.00 429. -0.02531 767.602 1516.2\n", "[19.02|16:43:24] production_md: 300 300.00 426. -0.02837 711.698 1516.2\n", "[19.02|16:43:25] production_md: 400 400.00 399. -0.03125 662.557 1516.2\n", "[19.02|16:43:26] production_md: 500 500.00 348. -0.03093 644.147 1516.2\n", "[19.02|16:43:27] production_md: 600 600.00 353. -0.03657 565.845 1516.2\n", "[19.02|16:43:29] production_md: 700 700.00 344. -0.03776 551.105 1516.2\n", "[19.02|16:43:30] production_md: 800 800.00 286. -0.03117 626.790 1516.2\n", "[19.02|16:43:31] production_md: 900 900.00 339. -0.04073 506.237 1516.2\n", "[19.02|16:43:32] production_md: 1000 1000.00 301. -0.03717 551.572 1516.2\n", "[19.02|16:43:33] production_md: 1100 1100.00 275. -0.03500 577.683 1516.2\n", "[19.02|16:43:35] production_md: 1200 1200.00 238. -0.03047 631.733 1516.2\n", "[19.02|16:43:36] production_md: 1300 1300.00 245. -0.03142 612.209 1516.2\n", "[19.02|16:43:37] production_md: 1400 1400.00 311. -0.04017 504.817 1516.2\n", "[19.02|16:43:38] production_md: 1500 1500.00 304. -0.03800 535.856 1516.2\n", "[19.02|16:43:39] production_md: 1600 1600.00 347. -0.04332 477.234 1516.2\n", "[19.02|16:43:41] production_md: 1700 1700.00 292. -0.03439 588.510 1516.2\n", "[19.02|16:43:42] production_md: 1800 1800.00 336. -0.03985 519.023 1516.2\n", "[19.02|16:43:43] production_md: 1900 1900.00 355. -0.04150 494.800 1516.2\n", "[19.02|16:43:44] production_md: 2000 2000.00 308. -0.03397 592.684 1516.2\n", "[19.02|16:43:45] production_md: 2100 2100.00 286. -0.03015 640.617 1516.2\n", "[19.02|16:43:47] production_md: 2200 2200.00 330. -0.03579 576.298 1516.2\n", "[19.02|16:43:48] production_md: 2300 2300.00 289. -0.02926 660.011 1516.2\n", "[19.02|16:43:49] production_md: 2400 2400.00 271. -0.02576 706.577 1516.2\n", "[19.02|16:43:50] production_md: 2500 2500.00 279. -0.02575 706.968 1516.2\n", "[19.02|16:43:51] production_md: 2600 2600.00 366. -0.03683 572.873 1516.2\n", "[19.02|16:43:53] production_md: 2700 2700.00 296. -0.02528 713.662 1516.2\n", "[19.02|16:43:54] production_md: 2800 2800.00 384. -0.03694 576.549 1516.2\n", "[19.02|16:43:55] production_md: 2900 2900.00 308. -0.02524 715.799 1516.2\n", "[19.02|16:43:56] production_md: 3000 3000.00 344. -0.03042 650.214 1516.2\n", "[19.02|16:43:58] production_md: 3100 3100.00 382. -0.03709 562.505 1516.2\n", "[19.02|16:43:59] production_md: 3200 3200.00 330. -0.03224 622.792 1516.2\n", "[19.02|16:44:00] production_md: 3300 3300.00 317. -0.03419 587.394 1516.2\n", "[19.02|16:44:01] production_md: 3400 3400.00 306. -0.03716 550.667 1516.2\n", "[19.02|16:44:03] production_md: 3500 3500.00 268. -0.03571 554.507 1516.2\n", "[19.02|16:44:04] production_md: 3600 3600.00 271. -0.03888 517.396 1516.2\n", "[19.02|16:44:05] production_md: 3700 3700.00 245. -0.03673 542.417 1516.2\n", "[19.02|16:44:06] production_md: 3800 3800.00 250. -0.03822 513.941 1516.2\n", "[19.02|16:44:07] production_md: 3900 3900.00 260. -0.03962 492.656 1516.2\n", "[19.02|16:44:09] production_md: 4000 4000.00 296. -0.04426 438.362 1516.2\n", "[19.02|16:44:10] production_md: 4100 4100.00 248. -0.03621 539.500 1516.2\n", "[19.02|16:44:11] production_md: 4200 4200.00 263. -0.03664 540.215 1516.2\n", "[19.02|16:44:12] production_md: 4300 4300.00 314. -0.04147 492.505 1516.2\n", "[19.02|16:44:14] production_md: 4400 4400.00 258. -0.03059 632.648 1516.2\n", "[19.02|16:44:15] production_md: 4500 4500.00 335. -0.03899 524.327 1516.2\n", "[19.02|16:44:16] production_md: 4600 4600.00 363. -0.04020 523.632 1516.2\n", "[19.02|16:44:17] production_md: 4700 4700.00 361. -0.03832 541.232 1516.2\n", "[19.02|16:44:18] production_md: 4800 4800.00 335. -0.03394 592.030 1516.2\n", "[19.02|16:44:20] production_md: 4900 4900.00 279. -0.02609 687.931 1516.2\n", "[19.02|16:44:21] production_md: 5000 5000.00 359. -0.03853 551.643 1516.2\n", "[19.02|16:44:21] production_md: MD calculation finished.\n", "[19.02|16:44:22] production_md: NORMAL TERMINATION\n", "[19.02|16:44:22] JOB production_md FINISHED\n", "[19.02|16:44:22] JOB production_md SUCCESSFUL\n" ] } ], "source": [ "production_engine_settings.runscript.nproc = 1 # run AMS Driver in serial\n", "new_md_job = plams.AMSNVTJob(\n", " settings=production_engine_settings,\n", " molecule=box,\n", " nsteps=5000,\n", " temperature=300,\n", " samplingfreq=100,\n", " name=\"production_md\",\n", " timestep=1.0,\n", ")\n", "new_md_job.run(watch=True);" ] }, { "cell_type": "markdown", "id": "de908960-b73d-4bee-9556-5208343c6b97", "metadata": {}, "source": [ "## Open trajectory file in AMSmovie\n", "With the production trajectory you can run analysis tools in AMSmovie, or access them from Python. See the AMS manual for details." ] }, { "cell_type": "code", "execution_count": 19, "id": "64089abc-4615-4495-ad75-61e7d9784c1d", "metadata": {}, "outputs": [], "source": [ "trajectory_file = new_md_job.results.rkfpath()\n", "!amsmovie \"{trajectory_file}\"" ] }, { "cell_type": "markdown", "id": "803fa5b7-7fc7-46f5-ba56-da1aebd79cba", "metadata": {}, "source": [ "## Finish PLAMS" ] }, { "cell_type": "code", "execution_count": 17, "id": "c7016012-6e74-4466-9c70-9ad931580e53", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[19.02|16:44:24] PLAMS run finished. Goodbye\n" ] } ], "source": [ "plams.finish()" ] } ], "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 }