ForceFieldTaskDocument

class atomate2.forcefields.schemas.ForceFieldTaskDocument(*, forcefield_name=None, forcefield_version='Unknown', dir_name=None, included_objects=None, objects=None, is_force_converged=None, nsites=None, elements=None, nelements=None, composition=None, composition_reduced=None, formula_pretty=None, formula_anonymous=None, chemsys=None, volume=None, density=None, density_atomic=None, symmetry=None, structure=None, input=None, output=None, ase_calculator_name=None, state=None, energy_downhill=None, tags=None, entry=None)[source]

Bases: AseStructureTaskDoc, ForceFieldMeta

Document containing information on atomistic manipulation using a force field.

Parameters:
  • forcefield_name (str | None)

  • forcefield_version (str | None)

  • dir_name (str | None)

  • included_objects (list[AseObject] | None)

  • objects (dict[AseObject, Any] | None)

  • is_force_converged (bool | None)

  • nsites (int | None)

  • elements (list[Annotated[ElementTypeVar, BeforeValidator(func=~emmet.core.types.pymatgen_types.element_adapter.<lambda>, json_schema_input_type=PydanticUndefined), WrapSerializer(func=~emmet.core.types.pymatgen_types.element_adapter.<lambda>, return_type=str, when_used=always)]] | None)

  • nelements (int | None)

  • composition (Annotated[CompositionTypeVar, BeforeValidator(func=~emmet.core.types.pymatgen_types.composition_adapter.<lambda>, json_schema_input_type=PydanticUndefined), WrapSerializer(func=~emmet.core.types.pymatgen_types.composition_adapter.<lambda>, return_type=dict[str, float], when_used=always)] | None)

  • composition_reduced (Annotated[CompositionTypeVar, BeforeValidator(func=~emmet.core.types.pymatgen_types.composition_adapter.<lambda>, json_schema_input_type=PydanticUndefined), WrapSerializer(func=~emmet.core.types.pymatgen_types.composition_adapter.<lambda>, return_type=dict[str, float], when_used=always)] | None)

  • formula_pretty (str | None)

  • formula_anonymous (str | None)

  • chemsys (str | None)

  • volume (float | None)

  • density (float | None)

  • density_atomic (float | None)

  • symmetry (SymmetryData | None)

  • structure (Structure)

  • input (InputDoc)

  • output (OutputDoc)

  • ase_calculator_name (str)

  • state (TaskState | None)

  • energy_downhill (bool | None)

  • tags (list[str] | None)

  • entry (ComputedEntry | None)

classmethod from_ase_compatible_result(ase_calculator_name, result, steps, calculator_meta=None, relax_kwargs=None, optimizer_kwargs=None, fix_symmetry=False, symprec=1e-2, ionic_step_data=('energy', 'forces', 'magmoms', 'stress', 'mol_or_struct'), store_trajectory=StoreTrajectoryOption.NO, tags=None, **task_document_kwargs)[source]

Create forcefield output for a task that has ASE-compatible outputs.

Parameters:
  • ase_calculator_name (str) – Name of the ASE calculator used.

  • result (AseResult) – The output results from the task.

  • fix_symmetry (bool) – Whether to fix the symmetry of the ions during relaxation.

  • symprec (float) – Tolerance for symmetry finding in case of fix_symmetry.

  • calculator_meta (Optional, MLFF or dict or None) – Metadata about the calculator used.

  • steps (int) – Maximum number of ionic steps allowed during relaxation.

  • relax_kwargs (dict) – Keyword arguments that will get passed to Relaxer.relax.

  • optimizer_kwargs (dict) – Keyword arguments that will get passed to Relaxer().

  • ionic_step_data (tuple) – Which data to save from each ionic step.

  • store_trajectory (StoreTrajectoryOption) – whether to set the StoreTrajectoryOption

  • tags (list[str] or None) – A list of tags for the task.

  • task_document_kwargs (dict) – Additional keyword args passed to AseTaskDoc().

Return type:

Self | ForceFieldMoleculeTaskDocument

model_config = {}

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