KIM Validation and Verification
===============================
|Testing| |PyPI|
.. |Testing| image:: https://github.com/openkim/kimvv/actions/workflows/test.yml/badge.svg
:target: https://github.com/openkim/kimvv/actions/workflows/test.yml
.. |PyPI| image:: https://img.shields.io/pypi/v/kimvv.svg
:target: https://pypi.org/project/kimvv/
This package allows the user to run any `OpenKIM <https://openkim.org/>`_ Test Drivers written using the `kim-tools <https://kim-tools.readthedocs.io>`_ package locally. A "Test Driver" is
a computational protocol that reports one or more material properties using the `KIM Properties Framework <https://openkim.org/doc/schema/properties-framework/>`_
List of included Test Drivers:
* EquilibriumCrystalStructure
* ElasticConstantsCrystal
Currently, all Test Drivers require the AFLOW software to be installed and in your PATH. See https://kim-tools.readthedocs.io/en/stable/#doc-standalone-installation for installation info.
Basic usage example:
--------------------
.. code-block:: python
from kimvv import EquilibriumCrystalStructure, ElasticConstantsCrystal
from ase.build import bulk
from json import dumps
# If a string is passed when instantiating the class, it is assumed to be a KIM model name
relax = EquilibriumCrystalStructure('LennardJones_Ar')
# Every Test Driver is able to take an Atoms object
relax(bulk('Ar','fcc',5.0))
# Access the list of dictionaries containing the material properties reported by the Test Driver
print(dumps(relax.property_instances,indent=2))
# All Test Drivers besides EquilibriumCrystalStructure expect to be
# passed a relaxed structure. This can be either a relaxed Atoms
# object, or a results dictionary from an EquilibriumCrystalStructure
# run. Any element of the list returned by EquilibriumCrystalStructure
# will do, as they all contain a description of the crystal structure
elastic = ElasticConstantsCrystal('LennardJones_Ar')
elastic(relax.property_instances[0])
print(dumps(elastic.property_instances,indent=2))
# You can also use a generic ASE calculator (as long as the Test Driver only uses ASE for calculations,
# i.e. this will not work for Test Drivers that do MD using LAMMPS)
# In this case you don't even need kimpy or the KIM API installed.
from ase.calculators.lj import LennardJones
relax = EquilibriumCrystalStructure(LennardJones(sigma=3.4,epsilon=0.0104,rc=8.15))
relax(bulk('Ar','fcc',5.0))
Usage example 2
---------------
Querying for all DFT-relaxed structures for a given combination of elements in OpenKIM and relaxing them with your potential
.. code-block:: python
from kimvv import EquilibriumCrystalStructure
from kim_tools import (
query_crystal_structures,
get_deduplicated_property_instances
)
from json import dumps
from ase.calculators.lj import LennardJones
# Query for all relaxed Argon reference data in OpenKIM
raw_structs = query_crystal_structures(stoichiometric_species=["Ar"])
# Deduplicate them
unique_structs = get_deduplicated_property_instances(raw_structs, allow_rotation=True)
# Instantiate the Driver with your model
relax = EquilibriumCrystalStructure(LennardJones(sigma=3.4,epsilon=0.0104,rc=8.15))
# Run the Driver with each structure. As this is run, the driver internally accumulates
# Property Instances
for struct in unique_structs:
relax(struct)
# Access the results as a dictionary. For each structure, there are 3 properties
# (structure, binding energy, density)
print(dumps(relax.property_instances,indent=2))
Raw data
{
"_id": null,
"home_page": null,
"name": "kimvv",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "ilia Nikiforov <nikif002@umn.edu>",
"keywords": "interatomic potential, openkim, crystal genome",
"author": "ilia Nikiforov <nikif002@umn.edu>, Eric Fuemmeler <efuemmel@umn.edu>, Ellad Tadmor",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/a9/da/8a2b53d9c04ac89f574152e5d30595ef115d8f566d60de8e92dae4e09263/kimvv-0.1.2.tar.gz",
"platform": null,
"description": "KIM Validation and Verification\n===============================\n\n|Testing| |PyPI|\n\n.. |Testing| image:: https://github.com/openkim/kimvv/actions/workflows/test.yml/badge.svg\n :target: https://github.com/openkim/kimvv/actions/workflows/test.yml\n.. |PyPI| image:: https://img.shields.io/pypi/v/kimvv.svg\n :target: https://pypi.org/project/kimvv/\n\nThis package allows the user to run any `OpenKIM <https://openkim.org/>`_ Test Drivers written using the `kim-tools <https://kim-tools.readthedocs.io>`_ package locally. A \"Test Driver\" is\na computational protocol that reports one or more material properties using the `KIM Properties Framework <https://openkim.org/doc/schema/properties-framework/>`_\n\nList of included Test Drivers:\n\n * EquilibriumCrystalStructure\n * ElasticConstantsCrystal\n\nCurrently, all Test Drivers require the AFLOW software to be installed and in your PATH. See https://kim-tools.readthedocs.io/en/stable/#doc-standalone-installation for installation info.\n\nBasic usage example:\n--------------------\n\n.. code-block:: python\n\n from kimvv import EquilibriumCrystalStructure, ElasticConstantsCrystal\n from ase.build import bulk\n from json import dumps\n\n # If a string is passed when instantiating the class, it is assumed to be a KIM model name\n relax = EquilibriumCrystalStructure('LennardJones_Ar')\n\n # Every Test Driver is able to take an Atoms object\n relax(bulk('Ar','fcc',5.0))\n\n # Access the list of dictionaries containing the material properties reported by the Test Driver\n print(dumps(relax.property_instances,indent=2))\n\n # All Test Drivers besides EquilibriumCrystalStructure expect to be\n # passed a relaxed structure. This can be either a relaxed Atoms\n # object, or a results dictionary from an EquilibriumCrystalStructure\n # run. Any element of the list returned by EquilibriumCrystalStructure\n # will do, as they all contain a description of the crystal structure\n elastic = ElasticConstantsCrystal('LennardJones_Ar')\n elastic(relax.property_instances[0])\n print(dumps(elastic.property_instances,indent=2))\n\n # You can also use a generic ASE calculator (as long as the Test Driver only uses ASE for calculations,\n # i.e. this will not work for Test Drivers that do MD using LAMMPS)\n # In this case you don't even need kimpy or the KIM API installed.\n from ase.calculators.lj import LennardJones\n relax = EquilibriumCrystalStructure(LennardJones(sigma=3.4,epsilon=0.0104,rc=8.15))\n relax(bulk('Ar','fcc',5.0))\n\n\nUsage example 2\n---------------\nQuerying for all DFT-relaxed structures for a given combination of elements in OpenKIM and relaxing them with your potential\n\n.. code-block:: python\n\n from kimvv import EquilibriumCrystalStructure\n from kim_tools import (\n query_crystal_structures,\n get_deduplicated_property_instances\n )\n from json import dumps\n from ase.calculators.lj import LennardJones\n\n # Query for all relaxed Argon reference data in OpenKIM\n raw_structs = query_crystal_structures(stoichiometric_species=[\"Ar\"])\n\n # Deduplicate them\n unique_structs = get_deduplicated_property_instances(raw_structs, allow_rotation=True)\n\n # Instantiate the Driver with your model\n relax = EquilibriumCrystalStructure(LennardJones(sigma=3.4,epsilon=0.0104,rc=8.15))\n\n # Run the Driver with each structure. As this is run, the driver internally accumulates\n # Property Instances\n for struct in unique_structs:\n relax(struct)\n\n # Access the results as a dictionary. For each structure, there are 3 properties\n # (structure, binding energy, density)\n print(dumps(relax.property_instances,indent=2))\n",
"bugtrack_url": null,
"license": null,
"summary": "OpenKIM material property computations for arbitrary crystal structures as Python classes",
"version": "0.1.2",
"project_urls": {
"Homepage": "https://github.com/openkim/kimvv",
"Issues": "https://github.com/openkim/kimvv/issues"
},
"split_keywords": [
"interatomic potential",
" openkim",
" crystal genome"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "b274f973617459b63cd568cb850ad9b0f9fda929c9a6d8d5be477de20e0c44bf",
"md5": "cb5eb09c57e2a89a62f91d95119686d8",
"sha256": "9761439a44da4b65a1265d035f006ef8337e86e6a384134e24024f0f1f90cfb2"
},
"downloads": -1,
"filename": "kimvv-0.1.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "cb5eb09c57e2a89a62f91d95119686d8",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 32344,
"upload_time": "2025-07-25T22:13:00",
"upload_time_iso_8601": "2025-07-25T22:13:00.788206Z",
"url": "https://files.pythonhosted.org/packages/b2/74/f973617459b63cd568cb850ad9b0f9fda929c9a6d8d5be477de20e0c44bf/kimvv-0.1.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a9da8a2b53d9c04ac89f574152e5d30595ef115d8f566d60de8e92dae4e09263",
"md5": "3a9d0251d3304bcfc25c7ac266507b92",
"sha256": "01b1fe780319c9462211c1d8e58437c5f12f18ab6dddfd234922caa9ed61a422"
},
"downloads": -1,
"filename": "kimvv-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "3a9d0251d3304bcfc25c7ac266507b92",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 31438,
"upload_time": "2025-07-25T22:13:02",
"upload_time_iso_8601": "2025-07-25T22:13:02.158632Z",
"url": "https://files.pythonhosted.org/packages/a9/da/8a2b53d9c04ac89f574152e5d30595ef115d8f566d60de8e92dae4e09263/kimvv-0.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-25 22:13:02",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "openkim",
"github_project": "kimvv",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "kim_edn",
"specs": []
},
{
"name": "kim_property",
"specs": [
[
">=",
"2.6.10"
]
]
}
],
"lcname": "kimvv"
}