Source code for atomate2.vasp.schemas.adsorption
"""Schemas for adsorption structures and related properties."""
from pydantic import BaseModel, Field
from pymatgen.core import Structure
[docs]
class AdsorptionDocument(BaseModel):
"""Document containing adsorption structures information and related properties."""
structures: list[Structure] = Field(
..., description="List of adsorption structures."
)
configuration_numbers: list[int] = Field(
..., description="List of configuration numbers for the adsorption structures."
)
adsorption_energies: list[float] = Field(
..., description="List of adsorption energies corresponding to each structure."
)
job_dirs: list[str] = Field(
..., description="List of directories where the adsorption jobs were run."
)
[docs]
@classmethod
def from_adsorption(
cls,
structures: list[Structure],
configuration_numbers: list[int],
adsorption_energies: list[float],
job_dirs: list[str],
) -> "AdsorptionDocument":
"""Create an AdsorptionDocument from lists of structures and energies.
Parameters
----------
structures : list[Structure]
The list of adsorption structures.
configuration_numbers : list[int]
List of configuration numbers.
adsorption_energies : list[float]
A list of adsorption energies.
job_dirs : list[str]
List of job directories.
Returns
-------
AdsorptionDocument
An instance of AdsorptionDocument containing the provided data.
"""
return cls(
structures=structures,
configuration_numbers=configuration_numbers,
adsorption_energies=adsorption_energies,
job_dirs=job_dirs,
)