Structure Generation

alomancy.structure_generation.select_initial_structures.mark_structures_for_dft(atoms_list: list[Atoms], base_name: str, job_name: str) None[source]
alomancy.structure_generation.select_initial_structures.select_initial_structures(base_name, structure_generation_job_dict: dict, train_atoms_list: list[Atoms], max_number_of_concurrent_jobs: int = 5, chem_formula_list: list[str] | None = None, selectable_configs: list[str] | None = None, atom_number_range: tuple[int, int] = (0, 0), enforce_chemical_diversity: bool = False)[source]

randomly selects structures from a train set based on a chemical formula or max number of atoms and number of mds to run.

Probably should be moved to its own file. :param base_name: Base name for the job. :type base_name: str :param structure_generation_job_dict: Dictionary containing job parameters. :type structure_generation_job_dict: dict :param train_xyzs: List of Atoms objects from the training set. :type train_xyzs: list[Atoms] :param desired_initial_structures: Number of initial structures to select. :type desired_initial_structures: int :param chem_formula: List of chemical formulas to filter structures. If empty, no filtering is applied. :type chem_formula: list[str] :param max_atoms: Maximum number of atoms in the selected structures. If None, no filtering is applied. :type max_atoms: Optional[int] :param enforce_chemical_diversity: Whether to enforce chemical diversity in selection. :type enforce_chemical_diversity: bool

Returns:

Selected Atoms objects for structure generation.

Return type:

list[Atoms]

alomancy.structure_generation.md.md_wfl.flatten_array_of_forces(forces: ndarray) ndarray[source]
alomancy.structure_generation.md.md_wfl.get_forces_for_all_maces(structure_list: list[Atoms], base_name: str, job_dict: dict[str, dict[str, str]], base_mlip: str, fits_to_use: list[int] | None = None) dict[str, dict[str, dict[str, ndarray]]][source]

Get forces for all MACE models specified in fits_to_use.

alomancy.structure_generation.md.md_wfl.run_md(structure_generation_job_dict: dict, initial_structure: Atoms, total_md_runs: int, out_dir, model_path, steps=100, temperature=300, timestep_fs: float = 0.5, friction: float = 0.002)[source]
alomancy.structure_generation.md.md_wfl.std_deviation_of_forces(structure_forces_dict: dict[str, dict[str, dict[str, ndarray]]], md_dir) DataFrame[source]

Calculate the standard deviation of forces for each structure in the dictionary.

Parameters:

structure_force_dict (dict) –

A dictionary where keys are fit names and values are dictionaries with structure names as keys and forces as values.

e.g.: {

’base_mace’: {

‘structure_0’: {‘forces’: np.ndarray, ‘energy’: float}, ‘structure_1’: {‘forces’: np.ndarray, ‘energy’: float}, …

}, ‘fit_1’: {

},

}

Returns:

A list of standard deviations of forces for each structure.

Return type:

list

alomancy.structure_generation.md.md_remote_submitter.all_maces_remote_submitter(remote_info: RemoteInfo, function: Callable | None = None, function_kwargs: dict[str, Any] | None = None) dict[source]
alomancy.structure_generation.md.md_remote_submitter.md_remote_submitter(remote_info: RemoteInfo, base_name: str, target_file: str, input_atoms_list: list[Atoms], function: Callable | None = None, function_kwargs: dict[str, Any] | None = None) list[str][source]