ai2_kit.domain.vasp module

ai2_kit.domain.vasp module#

class ai2_kit.domain.vasp.CllVaspContext(path_prefix: str, resource_manager: ai2_kit.core.resource_manager.ResourceManager, config: ai2_kit.domain.vasp.CllVaspContextConfig)[source]#

Bases: BaseCllContext

config: CllVaspContextConfig#
class ai2_kit.domain.vasp.CllVaspContextConfig(*, script_template: BashTemplate, vasp_cmd: str = 'vasp_std', post_vasp_cmd: str = 'echo "no post_vasp_cmd"', concurrency: int = 5)[source]#

Bases: BaseModel

concurrency: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'concurrency': FieldInfo(annotation=int, required=False, default=5), 'post_vasp_cmd': FieldInfo(annotation=str, required=False, default='echo "no post_vasp_cmd"'), 'script_template': FieldInfo(annotation=BashTemplate, required=True), 'vasp_cmd': FieldInfo(annotation=str, required=False, default='vasp_std')}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

post_vasp_cmd: str#
script_template: BashTemplate#
vasp_cmd: str#
class ai2_kit.domain.vasp.CllVaspInput(config: ai2_kit.domain.vasp.CllVaspInputConfig, system_files: List[ai2_kit.core.artifact.Artifact], type_map: List[str], initiated: bool = False)[source]#

Bases: object

config: CllVaspInputConfig#
initiated: bool = False#
system_files: List[Artifact]#
type_map: List[str]#
class ai2_kit.domain.vasp.CllVaspInputConfig(*, init_system_files: List[str] = [], input_template: Optional[Union[dict, str]] = None, potcar_source: Optional[dict] = {}, kpoints_template: Optional[Union[dict, str]] = None, limit: int = 50, limit_method: Literal['even', 'random', 'truncate'] = 'even', ignore_error: bool = False)[source]#

Bases: BaseModel

ignore_error: bool#

Ignore error when running VASP.

init_system_files: List[str]#
input_template: Optional[Union[dict, str]]#

INCAR template for VASP. Could be a dict or content of a VASP input file.

kpoints_template: Optional[Union[dict, str]]#

KPOINTS template for VASP. Could be a dict or content of a VASP input file.

limit: int#

Limit of the number of systems to be labeled.

limit_method: Literal['even', 'random', 'truncate']#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'ignore_error': FieldInfo(annotation=bool, required=False, default=False), 'init_system_files': FieldInfo(annotation=List[str], required=False, default=[]), 'input_template': FieldInfo(annotation=Union[dict, str, NoneType], required=False, default=None), 'kpoints_template': FieldInfo(annotation=Union[dict, str, NoneType], required=False, default=None), 'limit': FieldInfo(annotation=int, required=False, default=50), 'limit_method': FieldInfo(annotation=Literal['even', 'random', 'truncate'], required=False, default='even'), 'potcar_source': FieldInfo(annotation=Union[dict, NoneType], required=False, default={})}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

potcar_source: Optional[dict]#

POTCAR source for VASP. Could be a dict or list of paths.

class ai2_kit.domain.vasp.GenericVaspOutput(vasp_outputs: List[ai2_kit.core.artifact.Artifact])[source]#

Bases: ICllLabelOutput

get_labeled_system_dataset()[source]#
vasp_outputs: List[Artifact]#
async ai2_kit.domain.vasp.cll_vasp(input: CllVaspInput, ctx: CllVaspContext) GenericVaspOutput[source]#
ai2_kit.domain.vasp.make_vasp_task_dirs(system_files: List[ArtifactDict], type_map: List[str], input_template: Optional[Union[dict, str]], potcar_source: Optional[dict], base_dir: str, kpoints_template: Optional[Union[dict, str]] = None, limit: int = 0, limit_method: Literal['even', 'random', 'truncate'] = 'even') List[ArtifactDict][source]#

Generate VASP input files from LAMMPS dump files or XYZ files.