dragonfruit.clease.pyos module

class dragonfruit.clease.pyos.Meta

Bases: object

CLEASE_FINAL = 'clease_final'
CLEASE_GROUP = 'clease_group'
CLEASE_INITIAL = 'clease_initial'
dragonfruit.clease.pyos.create_settings(init_args: Optional[dict] = None, final_group: Optional[str] = None) clease.settings.settings.ClusterExpansionSettings

Create cluster expansion settings. The resulting settings will have a database populated with all the initial structures along with any final structure if a final_group is specified.

Parameters
  • init_args – optional init arguments to be passed when constructing the clease settings

  • final_group – the name a group to use as the ‘final’ structures inserted into the created database

dragonfruit.clease.pyos.get_atoms(group: str = 'initial', initial=None, final_only=False) Sequence[ase.atoms.Atoms]

Get all the atoms in a particular clease group. Defaults to initial structures

dragonfruit.clease.pyos.get_settings(settings_name: str) <class 'mincepy.builtins.Dict'>
dragonfruit.clease.pyos.get_structure_settings() Mapping

Get the structure settings from the clease root

dragonfruit.clease.pyos.import_ase_db(name: str, group: str = 'final', initial_directory: Optional[Union[str, pyos.os.types.PathLike]] = None, final_directory: Optional[Union[str, pyos.os.types.PathLike]] = None)
dragonfruit.clease.pyos.init(message='This is a CLEASE project')

Initialise a new CLEASE project with an optional message. Will create a simple README file

dragonfruit.clease.pyos.init_bulk(crystalstructure, a: float, c: Optional[float] = None, covera: Optional[float] = None, u: Optional[float] = None)
dragonfruit.clease.pyos.internal_path() <class 'pyos.pathlib.Path'>

Path to where settings and other project related things are stored

dragonfruit.clease.pyos.new_endpoints(concentration: clease.settings.concentration.Concentration, directory: Optional[Union[str, pyos.os.types.PathLike]] = None) Sequence[ase.atoms.Atoms]
dragonfruit.clease.pyos.new_random_structures(num_to_generate=1, directory: Optional[Union[str, pyos.os.types.PathLike]] = None, **kwargs) Sequence[ase.atoms.Atoms]

Create structures that are different from any other that is currently in the database

Parameters
  • num_to_generate – the number of random structures to generate

  • kwargs – these are passed to the crystal structure setting constructor along with the settings currently held in self.settings

dragonfruit.clease.pyos.populate_database(settings: clease.settings.settings.ClusterExpansionSettings, generation_number=0, final_group: Optional[str] = None)

Given a clease database this call will populate it with initial structures and optionally corresponding final structures inserting into a given generation of an existing cluster settings.

dragonfruit.clease.pyos.root() <class 'pyos.pathlib.Path'>

Find the root folder of the clease project

dragonfruit.clease.pyos.save_settings(settings, settings_name: str) <class 'mincepy.builtins.Dict'>
dragonfruit.clease.pyos.set_final(final: ase.atoms.Atoms, initial: ase.atoms.Atoms, group: str = 'final', directory: Optional[Union[str, pyos.os.types.PathLike]] = None, meta: Optional[dict] = None)

Set a structure as the final structure for a given initial

dragonfruit.clease.pyos.set_initial(initial: ase.atoms.Atoms, directory: Optional[Union[str, pyos.pathlib.PurePath]] = None, meta: Optional[dict] = None)

Set initial atoms. No uniqueness check is made by this call

dragonfruit.clease.pyos.submit_structures(structures: Union[ase.atoms.Atoms, Sequence[ase.atoms.Atoms]], group: str, command=None, log_level=20, **kwargs) Sequence[int]

Submit structures using the settings and group settings.

Parameters
  • structures – Atoms or list of Atoms to be submitted

  • group – Name of the group settings to be used

  • command – The function or string to be passed into the minkipy task

  • kwargs – These are passed as overrides to the VASP settings dictionary

dragonfruit.clease.pyos.submit_workflow(*structures: ase.atoms.Atoms, group: str = 'final', command=<function run_clease_pyos_workflow>, command_kwargs: typing.Optional[dict] = None, dynamic=True, workflow_factory: typing.Callable = <class 'dragonfruit.vasp.workflows.workflows.VolumeMetaConvergence'>, workflow_kwargs: typing.Optional[dict] = None, log_level=20, extra_settings: typing.Optional[dict] = None, queue_name: typing.Optional[str] = None, skip_duplicate_check: bool = False) Sequence[int]

Submit structures using the settings and group settings.

Parameters
  • structures – Atoms or list of Atoms to be submitted

  • group – Name of the group settings to be used

  • command – The function or string to be passed into the minkipy task

  • command_kwargs – kwargs passed into the command option in the minkipy task. Default: {}

  • dynamic – Should the command be imported dynamically at runtime, or statically passed at creation time. For more information, see the documentaiton for minkipy.Task

  • workflow_factory – Workflow factory to be executed in the Task. Should take “atoms” and “atoms_settings” as positional arguments.

  • workflow_kwargs – Dictionary of key-value pairs to be passed on to the workflow class

  • log_level – Level for the logger capture in the minkipy Task. Default: logging.INFO

  • extra_settings – Dictionary with extra VASP settings. Overwrites default keys. Default: {}

  • queue_name – Name of the minki queue for submission. Default: None

  • skip_duplicate_check – forgo checking the queue for duplicate tasks? For more information, see the documentation for mincepy.Queue.submit. Default: False