dragonfruit.vasp.workflows.workflows module

class dragonfruit.vasp.workflows.workflows.ConvergenceWorkflow(*_args, **_kwargs)

Bases: dragonfruit.mince.process.Process, abc.ABC

abstract property atoms: ase.atoms.Atoms

Return the current final atoms objecct

abstract property converged: bool

Check if the workflow is converged

abstract create_copy(initial_atoms, initial_settings, *args, **kwargs)

Create a copy of self with new initial atoms and settings

abstract get_vasp_task() Optional[<class 'dragonfruit.vasp.base.VaspTask'>]

Return the latest VaspTask. Returns None if it doesn’t have any yet.

abstract property initial_atoms: ase.atoms.Atoms

Return the initial atoms object

abstract property initial_settings: Dict[str, Any]

Return the initial settings dictionary

abstract run() bool

Execute the workflow

class dragonfruit.vasp.workflows.workflows.ConvergenceWorkflowChain(*_args, **_kwargs)

Bases: dragonfruit.mince.process.Process, dragonfruit.ase_utils.AseVisualizable

ATTRS = (AttrSpec(name='_workflows', as_ref=True), 'workflow_args', 'workflow_kwargs', '_settings_changes', AttrSpec(name='_initial_atoms', as_ref=True), '_base_settings')
TYPE_ID = UUID('6e8f7d41-8238-4330-9239-377e1a312359')
property atoms: ase.atoms.Atoms

Return the current working atoms object

property base_settings: Dict[str, Any]
property converged: bool

We only consider the workflow converged when the final workflow is converged

property current_workflow: <class 'dragonfruit.vasp.workflows.workflows.ConvergenceWorkflow'>

Get the current workflow for running

get_vasp_task() Optional[<class 'dragonfruit.vasp.base.VaspTask'>]

Return the latest VaspTask. Returns None if it doesn’t have any yet.

get_visualizable()
property initial_atoms: ase.atoms.Atoms
make_new_settings(changes: Dict[str, Any]) Dict[str, Any]
make_new_workflow(settings_changes: Dict[str, Any]) <class 'dragonfruit.vasp.workflows.workflows.ConvergenceWorkflow'>

Make a new workflow, continuing from the final atoms of the previous workflow

property num_settings: int
property num_workflows: int
run() None

Execute the workflow. Will resume from the last un-completed workflow, if any such exist. If all workflows are done, nothing will be done.

property settings_changes: Dict[str, Any]
property workflows
class dragonfruit.vasp.workflows.workflows.SingleTaskWorkflow(*_args, **_kwargs)

Bases: dragonfruit.vasp.workflows.workflows.ConvergenceWorkflow, dragonfruit.ase_utils.AseVisualizable

ATTRS = (AttrSpec(name='_vasp_task', as_ref=True), 'error_handlers', 'description', AttrSpec(name='_initial_atoms', as_ref=True), '_initial_settings')
TYPE_ID = UUID('370a8705-d4cf-4f7b-b47e-d2e85a28576f')
property atoms: ase.atoms.Atoms

Return the current final atoms objecct

property converged: bool

Has the workflow converged?

create_copy(initial_atoms, initial_settings, *args, **kwargs)

Create a copy of self with new initial atoms and settings

get_vasp_task() <class 'dragonfruit.vasp.base.VaspTask'>

Return the latest VaspTask. Returns None if it doesn’t have any yet.

get_visualizable()
property initial_atoms: ase.atoms.Atoms

Return the initial atoms object

property initial_settings: dict

Return the initial settings dictionary

run() bool

Execute the workflow

save_instance_state(saver) dict

Save the instance state of an object, should return a saved instance

property vasp_task: <class 'dragonfruit.vasp.base.VaspTask'>
class dragonfruit.vasp.workflows.workflows.VolumeMetaConvergence(*_args, **_kwargs)

Bases: dragonfruit.vasp.workflows.workflows.ConvergenceWorkflow, dragonfruit.ase_utils.AseVisualizable

ATTRS = ('volume_threshold', 'max_iter', '_task_list', 'error_handlers', 'description')
TYPE_ID = UUID('d2bdda75-9de2-488b-9d05-90f52d467f31')
property atoms: ase.atoms.Atoms

Return the current final atoms objecct

property atoms_history

Get a list of all the atoms from this workflow (spanning all tasks)

property converged: bool

Check if the workflow is converged

create_copy(initial_atoms, initial_settings, *args, **kwargs)

Create a copy of self with new initial atoms and settings

get_vasp_task() Optional[<class 'dragonfruit.vasp.base.VaspTask'>]

Return the latest VaspTask. Returns None if it doesn’t have any yet.

get_visualizable()
property initial_atoms

Return the initial atoms of the workflow

property initial_settings

Return the initial settings of the workflow

run() bool

Run the meta converger workchain. Returns a boolean indicating if convergence was reached

save_instance_state(saver) dict

Save the instance state of an object, should return a saved instance

property task_list: Sequence[<class 'dragonfruit.vasp.base.VaspTask'>]