jarvis¶
Convert an OPTIMADE structure, in the format of StructureResource to a JARVIS Atoms object.
For more information on the NIST-JARVIS repository, see their website.
This conversion function relies on the jarvis-tools package.
Contributing author
This conversion function was contributed by Kamal Choudhary (@knc6).
 get_jarvis_atoms(optimade_structure) ¶
 Get jarvis Atoms from OPTIMADE structure.
Caution
Cannot handle partial occupancies.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| optimade_structure | StructureResource | OPTIMADE structure. | required | 
Returns:
| Type | Description | 
|---|---|
| Atoms | A jarvis  | 
Source code in optimade/adapters/structures/jarvis.py
 def get_jarvis_atoms(optimade_structure: OptimadeStructure) -> Atoms:
    """Get jarvis `Atoms` from OPTIMADE structure.
    Caution:
        Cannot handle partial occupancies.
    Parameters:
        optimade_structure: OPTIMADE structure.
    Returns:
        A jarvis `Atoms` object.
    """
    if "optimade.adapters" in repr(globals().get("Atoms")):
        warn(JARVIS_NOT_FOUND, AdapterPackageNotFound)
        return None
    attributes = optimade_structure.attributes
    # Cannot handle partial occupancies
    if StructureFeatures.DISORDER in attributes.structure_features:
        raise ConversionError(
            "jarvis-tools cannot handle structures with partial occupancies."
        )
    return Atoms(
        lattice_mat=attributes.lattice_vectors,
        elements=[specie.name for specie in attributes.species],
        coords=attributes.cartesian_site_positions,
        cartesian=True,
    )