Database Generation

Generate a database generation template file using atl_gen_configuration_file -t database_generation.

Attention

All keys are mandatory unless stated otherwise.

Database - [database]

General settings and file paths for the database.

  • database_name:

    • Description: Name of the database to be used for internal reference and as the filename.

    • Type: (str)

    • Example: 'my_material_db'.

  • min_num_atoms:

    • Description: Minimum number of atoms allowed in the generated structures.

    • Type: (int)

    • Default: 64.

  • max_num_atoms:

    • Description: Maximum number of atoms allowed in the generated structures.

    • Type: (int)

    • Default: 128.

  • min_cell_size:

    • Description: Minimum cell size in Angstrom.

    • Type: (float)

    • Default: 5.0.

  • relax_struct_path:

    • Description: Path to a folder containing DFT optimized structures.

    • Type: (optional, str)

    • Default: ''.

  • database_path:

    • Description: Path where the final database will be saved.

    • Type: (str, PosixPath)

    • Default: ''.

  • rng_seed:

    • Description: Numerical value used to fix the RNG seed. If not specified, it will be chosen randomly each run.

    • Type: (optional, int)

    • Example: 42.

  • overwrite_db:

    • Description: Allow database overwrite. If false, and the database exists, the new database name will include a timestamp.

    • Type: (optional, bool)

    • Default: False.

Composition - [database.composition]

Settings for the composition of the database.

  • size:

    • Description: Maximum number of structures to generate for the database.

    • Type: (int)

    • Default: 7500.

Ratios - [database.composition.ratios]

Fraction of different structure types. The sum of the fractions must be equal to 1.0.

  • bulk:

    • Description: Fraction of structures that will be bulk.

    • Type: (float)

    • Default: 0.4.

  • surface:

    • Description: Fraction of structures that will be surfaces.

    • Type: (float)

    • Default: 0.6.

  • cluster:

    • Description: Fraction of structures that will be clusters.

    • Type: (optional, float)

    • Default: 0.0.

Plot_Db - [database.plot_db]

Display and Export Options for the phase diagram plot.

  • show:

    • Description: Whether to display the database with a phase diagram after creation.

    • Type: (optional, bool)

    • Default: True.

  • format:

    • Description: Format for the figure.

    • Type: (optional, str)

    • Default: 'png'.

    • Possible values are: png, svg.

Rc_Params - [database.plot_db.rc_params]

Matplotlib rcParams for the plot.

  • font.family:

    • Description: Font family for the phase diagram plot.

    • Type: (str)

    • Default: 'monospace'.

  • font.size:

    • Description: Font size for the phase diagram plot.

    • Type: (int)

    • Default: 14.

Show_Db_Ase - [database.show_db_ase]

ASE GUI display options.

Attention

This section is optional.

  • show:

    • Description: Whether to display the database using ASE GUI after creation.

    • Type: (optional, bool)

    • Default: False.

Export - [database.export]

Export options for the database.

  • export:

    • Description: Whether to export the database.

    • Type: (bool)

    • Default: True.

  • format:

    • Description: Export format supported by ASE (e.g., ‘extxyz’).

    • Type: (str)

    • Default: 'extxyz'.

  • file_path:

    • Description: Path where the exported file will be saved.

    • Type: (str, PosixPath)

    • Default: ''.

  • file_name:

    • Description: Name of the exported file.

    • Type: (str)

    • Default: 'export_db_filename'.

Phase_Diagram - [phase_diagram]

Description of the phase diagram.

  • material_name:

    • Description: Internal name for the material in the phase diagram.

    • Type: (str)

    • Default: 'default_material_name'.

  • element_list:

    • Description: List of elements to include in the phase diagram.

    • Type: (list[str])

    • Example:

['Cu', 'O']
  • base_element:

    • Description: Symbol of the most abundant element in the phase.

    • Type: (str)

    • Example: 'Cu'.

Phase Definition - [phase_diagram.phase]

Defines a specific phase within the phase diagram. Multiple phases can be added.

Phase Definition - [phase_diagram.phase.XXXXX]

This key describes settings for dynamic entries. Several entries can be added by using different key names.

The key name (XXXXX) is used as the reference name. Replace XXXXX with a name of your choice.

Accepted parameters for each entry:

  • name:

    • Description: Name to be used as reference for the phase.

    • Type: (str)

    • Example: 'alpha'.

  • cluster_element:

    • Description: Symbol of the element defining the cluster.

    • Type: (optional, str)

  • prototype:

    • Description: Materials Project ID of the prototypical structure.

    • Type: (str)

    • Example: 'mp-30'.

  • offset:

    • Description: Fraction of composition allowed over and under the phase limits.

    • Type: (float)

    • Default: 0.1.

  • limit_max_num_structures:

    • Description: Maximum number of structures to generate for this phase.

    • Type: (optional, int)

    • Default: 100.

  • allow_modifications:

    • Description: Allow modifications (supercells, replacements, etc.) to the base structure.

    • Type: (optional, bool)

    • Default: True.

  • use_cache:

    • Description: Store structures in cache to speed up generation. Can consume a lot of disk space.

    • Type: (optional, bool)

    • Default: False.

Parameters using composition. prefix:

Parameters using replacements. prefix:

  • replacements.replace:

    • Description: Whether to replace specific elements. Elements in element_list will be considered for replacement and replaced by a single element species.

    • Type: (optional, bool)

    • Default: False.

  • replacements.element_list:

    • Description: List of elements to be replaced.

    • Type: (optional, list[str])

    • Example:

['Ti']
  • replacements.replace_with:

    • Description: Element to replace with.

    • Type: (optional, str)

    • Example: 'Ir'.

Generation - [generation]

Structure generation settings.

  • generate_type:

    • Description: Types of structures to generate.

    • Type: (list[str])

    • Default: ['bulk', 'surface', 'cluster'].

    • Possible values are: bulk, surface, cluster.

Bulk - [generation.bulk]

Bulk structure generation settings.

  • num_struct:

    • Description: Number of structures to generate.

    • Type: (int)

    • Default: 25.

  • num_repeat:

    • Description: Number of repeats for each structure.

    • Type: (int)

    • Default: 5.

  • supercell_max_idx:

    • Description: Maximum Miller index for the bulk supercells.

    • Type: (int)

    • Default: 2.

Surface - [generation.surface]

Surface structure generation settings.

  • min_miller_index:

    • Description: Minimum Miller index used to generate surface structures.

    • Type: (int)

    • Default: 1.

  • max_miller_index:

    • Description: Maximum Miller index used to generate surface structures.

    • Type: (int)

    • Default: 3.

  • min_slab_size_ang:

    • Description: Minimum slab thickness in Angstrom.

    • Type: (optional, float)

    • Default: 7.0.

  • min_vacuum_size_ang:

    • Description: Minimum size of the vacuum layer in Angstroms.

    • Type: (float)

    • Default: 12.0.

  • get_supercells:

    • Description: Whether to generate supercells for surface structures.

    • Type: (bool)

    • Default: True.

  • fixed_layers:

    • Description: Number of fixed layers in the surface slab.

    • Type: (int)

    • Default: 3.

  • max_number_supercells:

    • Description: Maximum number of surface supercells to generate.

    • Type: (int)

    • Default: 200.

  • save_in_db:

    • Description: Whether to save generated surfaces in the database.

    • Type: (bool)

    • Default: True.

  • num_replacements:

    • Description: Number of replacement percentages to generate for each structure.

    • Type: (int)

    • Default: 20.

  • num_repeat_replace:

    • Description: Number of repeats for each replacement.

    • Type: (int)

    • Default: 2.

  • frac_slabs_save:

    • Description: Fraction of slabs to save after generation.

    • Type: (optional, float)

    • Default: 0.1.

  • frac_supercells_save:

    • Description: Fraction of unreplaced supercells to save after generation.

    • Type: (optional, float)

    • Default: 0.1.

  • max_slab_num:

    • Description: Maximum number of slabs to gather from the slab generation.

    • Type: (int)

    • Default: 15.

  • n_workers:

    • Description: Maximum number of workers for parallel processing.

    • Type: (optional, int)

Deformation - [deformation]

Lattice deformation settings.

Attention

This section is optional.

  • lattice_frac_deform_max:

    • Description: Maximum deformation value as a percentage of the lattice side length.

    • Type: (float)

    • Default: 0.05.

  • lattice_frac_deform_min:

    • Description: Minimum deformation value as a percentage of the lattice side length.

    • Type: (float)

    • Default: 0.01.

  • num_repeats:

    • Description: Number of repeats for each structure with random deformations.

    • Type: (int)

    • Default: 5.

  • limit_max_num_deformations:

    • Description: Maximum number of lattice deformations to generate.

    • Type: (int)

    • Default: 100.

Perturbation - [perturbation]

Perturbation settings.

Attention

This section is optional.

  • filter_struct_types:

    • Description: Types of structures to which the perturbation will be applied.

    • Type: (list[str])

    • Default: ['bulk', 'surface'].

    • Possible values are: bulk, surface, cluster.

  • limit_max_num_perturbs:

    • Description: Maximum number of perturbations to generate.

    • Type: (int)

    • Default: 100.

  • num_repeats:

    • Description: Number of repeats for each structure with random perturbations.

    • Type: (int)

    • Default: 1.

  • perturbation_ang:

    • Description: Perturbation magnitude in Angstrom.

    • Type: (optional, float)

    • Default: 0.04.

Adsorbates - [adsorbates]

Adsorbate placement settings.

Attention

This section is optional.

  • filter_struct_types:

    • Description: Types of structures to which adsorbates will be added.

    • Type: (optional, list[str])

    • Default: ['surface'].

    • Possible values are: bulk, surface, cluster.

  • limit_max_num_perturbs:

    • Description: Maximum number of structures with adsorbates to generate.

    • Type: (optional, int)

    • Default: 100.

  • num_repeats:

    • Description: Number of repeats for each structure.

    • Type: (int)

    • Default: 1.

  • adsorbate_species:

    • Description: List of adsorbate species to consider.

    • Type: (list[str])

    • Example:

['H', 'H2O']

Struct_Filters - [struct_filters]

Settings for filtering out incorrect structures.

Attention

This section is optional.

No_Neighbors - [struct_filters.no_neighbors]

Filter for structures with atoms that have no neighbors.

  • cov_rad_multiplier:

    • Description: Multiplier applied to the covalent radii to be used as cutoff radius for the neighbor check.

    • Type: (optional, float)

    • Default: 1.2.

Layer_Distance - [struct_filters.layer_distance]

Filter for layer distances in surface slabs.

Attention

This section is optional.

  • max_layer_distance_ang:

    • Description: Maximum accepted distance between layers in Angstrom.

    • Type: (optional, float)

    • Default: 4.0.

Duplicate_Slabs - [struct_filters.duplicate_slabs]

Filter for duplicate slabs.

Attention

This section is optional.

  • tolerance:

    • Description: Tolerance for the duplicate slabs filter.

    • Type: (optional, float)

    • Default: 0.2.

Vacancies - [vacancies]

Settings for vacancy generation.

  • filter_struct_types:

    • Description: Types of structures to which vacancies will be applied.

    • Type: (list[str])

    • Default: ['bulk', 'surface'].

    • Possible values are: bulk, surface, cluster.

  • limit_max_num_vacancies:

    • Description: Maximum number of structures with vacancies to generate.

    • Type: (optional, int)

    • Default: 400.

  • num_repeats:

    • Description: Number of repeats for each structure with different random vacancies.

    • Type: (int)

    • Default: 3.

  • max_vacancy_percentage:

    • Description: Maximum vacancies to generate as a percentage of the total number of atoms.

    • Type: (float)

    • Default: 0.75.

  • min_vacancy_percentage:

    • Description: Minimum vacancies to generate as a percentage of the total number of atoms.

    • Type: (float)

    • Default: 0.025.

  • element_list:

    • Description: List of elements to consider for the vacancies.

    • Type: (list[str])

    • Example:

['O']

Targeted_Modification - [targeted_modification]

Settings for targeted structural modifications.

Attention

This section is optional.

Central_Atom_Octahedral - [targeted_modification.central_atom_octahedral]

Apply perturbations to the central atom in octahedral sites.

Attention

This section is optional.

  • filter_phases:

    • Description: Only apply the modification to the following phases.

    • Type: (optional, list[str])

    • Example:

['rutile', 'original_IrO2']
  • filter_struct_types:

    • Description: Types of structures to which the modification will be applied.

    • Type: (optional, list[str])

    • Default: ['bulk', 'surface'].

    • Possible values are: bulk, surface, cluster.

  • central_element:

    • Description: Symbol of the central element of the octahedral site.

    • Type: (optional, str)

    • Example: 'Ir'.

  • num_repeats:

    • Description: Number of repeats for each structure with different perturbations.

    • Type: (optional, int)

    • Default: 3.

  • limit_max_num_modifications:

    • Description: Maximum number of modified structures to generate.

    • Type: (optional, int)

    • Default: 200.

  • max_perturbation_ang:

    • Description: Maximum perturbation movement of the central atom in Angstrom.

    • Type: (optional, float)

    • Default: 0.2.

Concave_Hull - [concave_hull]

Settings for descriptors and concave hull generation.

Attention

This section is optional.

  • gen_concave_hull:

    • Description: Whether to generate the concave hull of the descriptors for all structures in the database.

    • Type: (optional, bool)

    • Default: False.

  • descriptor:

    • Description: Descriptor to use for the concave hull generation.

    • Type: (optional, str)

    • Default: 'SOAP'.

    • Possible values are: SOAP, MACE.

  • dim_reduction:

    • Description: Dimensionality reduction method for the concave hull generation.

    • Type: (optional, str)

    • Default: 'autoencoder'.

    • Possible values are: PCA, autoencoder.

  • plot_filename:

    • Description: Filename for the figure displaying the concave hull.

    • Type: (optional, str)

    • Default: 'descriptors_concave_hull.png'.