{ "info": { "author": "Abel Carreras", "author_email": "abelcarreras83@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "[![Build Status](https://travis-ci.org/abelcarreras/aiida-lammps.svg?branch=master)](https://travis-ci.org/abelcarreras/aiida-lammps)\n\n# AiiDA LAMMPS plugin\n\nThis a LAMMPS plugin for [AiiDA](http://aiida-core.readthedocs.io/).\nThis plugin contains 4 code types:\n\n- `lammps.forces`: Atomic single-point forces calculation\n- `lammps.optimize`: Crystal structure optimization\n- `lammps.md`: Molecular dynamics calculation\n- `lammps.combinate`: DynaPhoPy calculation using LAMMPS MD trajectory (currently untested)\n\nNote: `lammps.combinate` requires `aiida-phonopy` (https://github.com/abelcarreras/aiida-phonopy)\nplugin to work, DynaPhoPy can be found in: https://github.com/abelcarreras/aiida-phonopy\n\n- [AiiDA LAMMPS plugin](#AiiDA-LAMMPS-plugin)\n - [Built-in Potential Support](#Built-in-Potential-Support)\n - [Examples](#Examples)\n - [Code Setup](#Code-Setup)\n - [Structure Setup](#Structure-Setup)\n - [Potential Setup](#Potential-Setup)\n - [Force Calculation](#Force-Calculation)\n - [Optimisation Calculation](#Optimisation-Calculation)\n - [MD Calculation](#MD-Calculation)\n\n## Built-in Potential Support\n\n- EAM\n- Lennad Jones\n- Tersoff\n- ReaxFF\n\n## Examples\n\nMore example calculations are found in the folder **/examples**,\nand there are many test examples in **/aiida_lammps/tests/test_calculations**.\n\n### Code Setup\n\n```python\nfrom aiida_lammps.tests.utils import (\n get_or_create_local_computer, get_or_create_code)\nfrom aiida_lammps.tests.utils import lammps_version\n\ncomputer_local = get_or_create_local_computer('work_directory', 'localhost')\ncode_lammps_force = get_or_create_code('lammps.force', computer_local, 'lammps')\ncode_lammps_opt = get_or_create_code('lammps.optimize', computer_local, 'lammps')\ncode_lammps_md = get_or_create_code('lammps.md', computer_local, 'lammps')\n\nmeta_options = {\n \"resources\": {\n \"num_machines\": 1,\n \"num_mpiprocs_per_machine\": 1}\n}\n```\n\n### Structure Setup\n\n```python\nfrom aiida.plugins import DataFactory\nimport numpy as np\n\ncell = [[3.1900000572, 0, 0],\n [-1.5950000286, 2.762621076, 0],\n [0.0, 0, 5.1890001297]]\n\npositions = [(0.6666669, 0.3333334, 0.0000000),\n (0.3333331, 0.6666663, 0.5000000),\n (0.6666669, 0.3333334, 0.3750000),\n (0.3333331, 0.6666663, 0.8750000)]\n\nsymbols = names = ['Ga', 'Ga', 'N', 'N']\n\nstructure = DataFactory('structure')(cell=cell)\nfor position, symbol, name in zip(positions, symbols, names):\n position = np.dot(position, cell).tolist()\n structure.append_atom(\n position=position, symbols=symbol, name=name)\n\nstructure\n```\n\n```console\n\n```\n\n### Potential Setup\n\n```python\npair_style = 'tersoff'\npotential_dict = {\n 'Ga Ga Ga': '1.0 0.007874 1.846 1.918000 0.75000 -0.301300 1.0 1.0 1.44970 410.132 2.87 0.15 1.60916 535.199',\n 'N N N': '1.0 0.766120 0.000 0.178493 0.20172 -0.045238 1.0 1.0 2.38426 423.769 2.20 0.20 3.55779 1044.77',\n 'Ga Ga N': '1.0 0.001632 0.000 65.20700 2.82100 -0.518000 1.0 0.0 0.00000 0.00000 2.90 0.20 0.00000 0.00000',\n 'Ga N N': '1.0 0.001632 0.000 65.20700 2.82100 -0.518000 1.0 1.0 2.63906 3864.27 2.90 0.20 2.93516 6136.44',\n 'N Ga Ga': '1.0 0.001632 0.000 65.20700 2.82100 -0.518000 1.0 1.0 2.63906 3864.27 2.90 0.20 2.93516 6136.44',\n 'N Ga N ': '1.0 0.766120 0.000 0.178493 0.20172 -0.045238 1.0 0.0 0.00000 0.00000 2.20 0.20 0.00000 0.00000',\n 'N N Ga': '1.0 0.001632 0.000 65.20700 2.82100 -0.518000 1.0 0.0 0.00000 0.00000 2.90 0.20 0.00000 0.00000',\n 'Ga N Ga': '1.0 0.007874 1.846 1.918000 0.75000 -0.301300 1.0 0.0 0.00000 0.00000 2.87 0.15 0.00000 0.00000'}\npotential = DataFactory(\"lammps.potential\")(\n structure=structure, type=pair_style, data=potential_dict\n)\npotential.attributes\n```\n\n```python\n{'kind_elements': ['Ga', 'N'],\n 'potential_type': 'tersoff',\n 'atom_style': 'atomic',\n 'default_units': 'metal',\n 'potential_md5': 'b3b7d45ae7b92eba05ed99ffe69810d0',\n 'input_lines_md5': '3145644a408a6d464e80866b833115a2'}\n```\n\n### Force Calculation\n\n```python\nfrom aiida.engine import run_get_node\nparameters = DataFactory('dict')(dict={\n 'lammps_version': lammps_version(),\n 'output_variables': [\"temp\", \"etotal\", \"pe\", \"ke\"],\n 'thermo_keywords': []\n})\nbuilder = code_lammps_force.get_builder()\nbuilder.metadata.options = meta_options\nbuilder.structure = structure\nbuilder.potential = potential\nbuilder.parameters = parameters\nresult, calc_node = run_get_node(builder)\n```\n\n```console\n$ verdi process list -D desc -a -l 1\n PK Created Process label Process State Process status\n---- --------- ---------------- --------------- ----------------\n2480 32s ago ForceCalculation Finished [0]\n\nTotal results: 1\n\nInfo: last time an entry changed state: 28s ago (at 02:02:36 on 2019-06-21)\n\n$ verdi process show 2480\nProperty Value\n------------- ------------------------------------\ntype CalcJobNode\npk 2480\nuuid c754f044-b190-4505-b121-776b79d2d1c8\nlabel\ndescription\nctime 2019-06-21 02:02:32.894858+00:00\nmtime 2019-06-21 02:02:33.297377+00:00\nprocess state Finished\nexit status 0\ncomputer [2] localhost\n\nInputs PK Type\n---------- ---- ------------------\ncode 1351 Code\nparameters 2479 Dict\npotential 2478 EmpiricalPotential\nstructure 2477 StructureData\n\nOutputs PK Type\n------------- ---- ----------\narrays 2483 ArrayData\nremote_folder 2481 RemoteData\nresults 2484 Dict\nretrieved 2482 FolderData\n```\n\n```python\ncalc_node.outputs.results.attributes\n```\n\n```python\n{'parser_version': '0.4.0b3',\n 'parser_class': 'ForceParser',\n 'errors': [],\n 'warnings': '',\n 'distance_units': 'Angstroms',\n 'force_units': 'eV/Angstrom',\n 'energy_units': 'eV',\n 'energy': -18.1098859130104,\n 'final_variables': {'ke': 0.0,\n 'pe': -18.1098859130104,\n 'etotal': -18.1098859130104,\n 'temp': 0.0},\n 'units_style': 'metal'}\n```\n\n```python\ncalc_node.outputs.arrays.attributes\n```\n\n```python\n{'array|forces': [1, 4, 3]}\n```\n\n### Optimisation Calculation\n\n```python\nfrom aiida.engine import run_get_node\nparameters = DataFactory('dict')(dict={\n 'lammps_version': lammps_version(),\n 'output_variables': [\"temp\", \"etotal\", \"pe\", \"ke\"],\n 'thermo_keywords': [],\n 'units': 'metal',\n 'relax': {\n 'type': 'iso',\n 'pressure': 0.0,\n 'vmax': 0.001,\n },\n \"minimize\": {\n 'style': 'cg',\n 'energy_tolerance': 1.0e-25,\n 'force_tolerance': 1.0e-25,\n 'max_evaluations': 100000,\n 'max_iterations': 50000}\n})\nbuilder = code_lammps_opt.get_builder()\nbuilder.metadata.options = meta_options\nbuilder.structure = structure\nbuilder.potential = potential\nbuilder.parameters = parameters\nresult, calc_node = run_get_node(builder)\n```\n\n```console\n$ verdi process list -D desc -a -l 1\n PK Created Process label Process State Process status\n---- --------- ------------------- --------------- ----------------\n2486 1m ago OptimizeCalculation \u23f9 Finished [0]\n\nTotal results: 1\n\nInfo: last time an entry changed state: 1m ago (at 02:09:54 on 2019-06-21)\n\n$ verdi process show 2486\nProperty Value\n------------- ------------------------------------\ntype CalcJobNode\npk 2486\nuuid 5c64433d-6337-4352-a0a8-0acb4083a0c3\nlabel\ndescription\nctime 2019-06-21 02:09:50.872336+00:00\nmtime 2019-06-21 02:09:51.128639+00:00\nprocess state Finished\nexit status 0\ncomputer [2] localhost\n\nInputs PK Type\n---------- ---- ------------------\ncode 1344 Code\nparameters 2485 Dict\npotential 2478 EmpiricalPotential\nstructure 2477 StructureData\n\nOutputs PK Type\n------------- ---- -------------\narrays 2490 ArrayData\nremote_folder 2487 RemoteData\nresults 2491 Dict\nretrieved 2488 FolderData\nstructure 2489 StructureData\n```\n\n```python\ncalc_node.outputs.results.attributes\n```\n\n```python\n{'parser_version': '0.4.0b3',\n 'parser_class': 'OptimizeParser',\n 'errors': [],\n 'warnings': '',\n 'stress_units': 'bars',\n 'distance_units': 'Angstroms',\n 'force_units': 'eV/Angstrom',\n 'energy_units': 'eV',\n 'energy': -18.1108516231423,\n 'final_variables': {'ke': 0.0,\n 'pe': -18.1108516231423,\n 'etotal': -18.1108516231423,\n 'temp': 0.0},\n 'units_style': 'metal'}\n```\n\n```python\ncalc_node.outputs.arrays.attributes\n```\n\n```python\n{'array|positions': [56, 4, 3],\n 'array|stress': [3, 3],\n 'array|forces': [56, 4, 3]}\n```\n\n### MD Calculation\n\n```python\nfrom aiida.engine import submit\nparameters = DataFactory('dict')(dict={\n 'lammps_version': lammps_version(),\n 'output_variables': [\"temp\", \"etotal\", \"pe\", \"ke\"],\n 'thermo_keywords': [],\n 'units': 'metal',\n 'timestep': 0.001,\n 'integration': {\n 'style': 'nvt',\n 'constraints': {\n 'temp': [300, 300, 0.5]\n }\n },\n \"neighbor\": [0.3, \"bin\"],\n \"neigh_modify\": {\"every\": 1, \"delay\": 0, \"check\": False},\n 'equilibrium_steps': 100,\n 'total_steps': 1000,\n 'dump_rate': 10,\n 'restart': 100\n})\nbuilder = code_lammps_md.get_builder()\nbuilder.metadata.options = meta_options\nbuilder.structure = structure\nbuilder.potential = potential\nbuilder.parameters = parameters\nresult, calc_node = run_get_node(builder)\n```\n\n```console\n$ verdi process list -D desc -a -l 1\n PK Created Process label Process State Process status\n---- --------- --------------- --------------- ----------------\n2493 12s ago MdCalculation \u23f9 Finished [0]\n\nTotal results: 1\n\nInfo: last time an entry changed state: 4s ago (at 02:15:02 on 2019-06-21)\n\n$ verdi process show 2493\nProperty Value\n------------- ------------------------------------\ntype CalcJobNode\npk 2493\nuuid 351b4721-10ff-406c-8f1c-951317091524\nlabel\ndescription\nctime 2019-06-21 02:14:54.986384+00:00\nmtime 2019-06-21 02:14:55.282272+00:00\nprocess state Finished\nexit status 0\ncomputer [2] localhost\n\nInputs PK Type\n---------- ---- ------------------\ncode 1540 Code\nparameters 2492 Dict\npotential 2478 EmpiricalPotential\nstructure 2477 StructureData\n\nOutputs PK Type\n--------------- ---- --------------\nremote_folder 2494 RemoteData\nresults 2496 Dict\nretrieved 2495 FolderData\nsystem_data 2498 ArrayData\ntrajectory_data 2497 TrajectoryData\n```\n\n```python\ncalc_node.outputs.results.attributes\n```\n\n```python\n{'parser_version': '0.4.0b3',\n 'parser_class': 'MdParser',\n 'errors': [],\n 'warnings': '',\n 'time_units': 'picoseconds',\n 'distance_units': 'Angstroms',\n 'energy': -17.8464193488116,\n 'units_style': 'metal'}\n```\n\n```python\ncalc_node.outputs.system_data.attributes\n```\n\n```python\n{'units_style': 'metal',\n 'array|step': [100],\n 'array|ke': [100],\n 'array|pe': [100],\n 'array|etotal': [100],\n 'array|temp': [100]}\n```\n\n```python\ncalc_node.outputs.trajectory_data.attributes\n```\n\n```python\n{'array|times': [101],\n 'array|cells': [101, 3, 3],\n 'array|steps': [101],\n 'array|positions': [101, 4, 3],\n 'symbols': ['Ga', 'Ga', 'N', 'N']}\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/abelcarreras/aiida_extensions", "keywords": "", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "aiida-lammps", "package_url": "https://pypi.org/project/aiida-lammps/", "platform": "", "project_url": "https://pypi.org/project/aiida-lammps/", "project_urls": { "Homepage": "https://github.com/abelcarreras/aiida_extensions" }, "release_url": "https://pypi.org/project/aiida-lammps/0.4.0b3/", "requires_dist": [ "aiida-core (==1.0.0b3)", "numpy", "packaging", "dateutils", "jsonschema", "six", "ase (<4.0.0,>=3.12.0)", "flake8 (<3.8.0,>=3.7.0) ; extra == 'code_style'", "dynaphopy ; extra == 'phonopy'", "mock (==2.0.0) ; extra == 'testing'", "pgtest (==1.2.0) ; extra == 'testing'", "sqlalchemy-diff (==0.1.3) ; extra == 'testing'", "pytest (==3.6.3) ; extra == 'testing'", "pytest-cov ; extra == 'testing'", "pytest-timeout ; extra == 'testing'", "pytest-regressions ; extra == 'testing'", "wheel (>=0.31) ; extra == 'testing'" ], "requires_python": "", "summary": "AiiDA plugin for LAMMPS", "version": "0.4.0b3" }, "last_serial": 5430809, "releases": { "0.4.0b3": [ { "comment_text": "", "digests": { "md5": "883207b7b662a06f2ee5123f7ac45e08", "sha256": "4f29bc9e190a4fbee1a8d16748f81c3fc763afbe477645a0bd930f79c7083d7a" }, "downloads": -1, "filename": "aiida_lammps-0.4.0b3-py3-none-any.whl", "has_sig": false, "md5_digest": "883207b7b662a06f2ee5123f7ac45e08", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 265968, "upload_time": "2019-06-21T13:18:29", "url": "https://files.pythonhosted.org/packages/7d/dd/37c193427b335537d3f4d573502ea2ae8c29ea78991ada9cef984eae7e79/aiida_lammps-0.4.0b3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e32e1783cfdd0f674a7e685c2f945dd0", "sha256": "28d8b56cf1914e50a84a3b9a7cb83f908ac046f270d8b95dcb9a28bd43d9b79e" }, "downloads": -1, "filename": "aiida-lammps-0.4.0b3.tar.gz", "has_sig": false, "md5_digest": "e32e1783cfdd0f674a7e685c2f945dd0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 248104, "upload_time": "2019-06-21T13:18:33", "url": "https://files.pythonhosted.org/packages/95/e6/b486dc10c36dcae9106265c0aaf8751de3a4a66d693276deb72333062178/aiida-lammps-0.4.0b3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "883207b7b662a06f2ee5123f7ac45e08", "sha256": "4f29bc9e190a4fbee1a8d16748f81c3fc763afbe477645a0bd930f79c7083d7a" }, "downloads": -1, "filename": "aiida_lammps-0.4.0b3-py3-none-any.whl", "has_sig": false, "md5_digest": "883207b7b662a06f2ee5123f7ac45e08", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 265968, "upload_time": "2019-06-21T13:18:29", "url": "https://files.pythonhosted.org/packages/7d/dd/37c193427b335537d3f4d573502ea2ae8c29ea78991ada9cef984eae7e79/aiida_lammps-0.4.0b3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e32e1783cfdd0f674a7e685c2f945dd0", "sha256": "28d8b56cf1914e50a84a3b9a7cb83f908ac046f270d8b95dcb9a28bd43d9b79e" }, "downloads": -1, "filename": "aiida-lammps-0.4.0b3.tar.gz", "has_sig": false, "md5_digest": "e32e1783cfdd0f674a7e685c2f945dd0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 248104, "upload_time": "2019-06-21T13:18:33", "url": "https://files.pythonhosted.org/packages/95/e6/b486dc10c36dcae9106265c0aaf8751de3a4a66d693276deb72333062178/aiida-lammps-0.4.0b3.tar.gz" } ] }