RssConfig

Contents

RssConfig#

pydantic model autoplex.settings.RssConfig[source]#

A model describing the complete RSS configuration.

field tag: str | None = None#

Tag of systems. It can also be used for setting up elements and stoichiometry. For example, the tag of ‘SiO2’ will be recognized as a 1:2 ratio of Si to O and passed into the parameters of buildcell. However, note that this will be overwritten if the stoichiometric ratio of elements is defined in the ‘buildcell_options’

field train_from_scratch: bool = True#

If True, it starts the workflow from scratch If False, it resumes from a previous state.

field resume_from_previous_state: ResumeFromPreviousState [Optional]#
field generated_struct_numbers: list[int, int] [Optional]#

Expected number of generated randomized unit cells by buildcell.

field buildcell_options: list[BuildcellOptions] | None = None#

Customized parameters for buildcell.

field fragment_file: str | None = None#
field fragment_numbers: list[int] | None = None#

Numbers of each fragment to be included in the random structures. Defaults to 1 for all specified.

field num_processes_buildcell: int = 128#

Number of processes for buildcell.

field num_of_initial_selected_structs: list[int, int] [Optional]#

Number of structures to be sampled directly from the buildcell-generated randomized cells.

field num_of_rss_selected_structs: int = 100#

Number of structures to be selected from each RSS iteration.

field initial_selection_enabled: bool = True#

If true, sample structures from initially generated randomized cells using CUR.

field rss_selection_method: Literal['bcur1s', 'bcur2i', None] = 'bcur2i'#

Method for selecting samples from the RSS trajectories: Boltzmann flat histogram in enthalpy first, then CUR. Options are as follows

field bcur_params: BcurParams [Optional]#

Parameters for the BCUR method.

field random_seed: int | None = None#

A seed to ensure reproducibility of CUR selection.

field include_isolated_atom: bool = True#

Perform single-point calculations for isolated atoms.

field isolatedatom_box: list[float, float, float] [Optional]#

List of the lattice constants for an isolated atom configuration.

field e0_spin: bool = False#

Include spin polarization in isolated atom and dimer calculations

field include_dimer: bool = True#

Perform single-point calculations for dimers only once

field dimer_box: list[float, float, float] [Optional]#

The lattice constants of a dimer box.

field dimer_range: list[float, float] [Optional]#

The range of the dimer distance.

field dimer_num: int = 21#

Number of different distances to consider for dimer calculations.

field custom_incar: CustomIncar [Optional]#

Custom VASP input parameters. If provided, will update the default parameters

field custom_potcar: str | None = None#

POTCAR settings to update. Keys are element symbols, values are the desired POTCAR labels.

field vasp_ref_file: str = 'vasp_ref.extxyz'#

Reference file for VASP data

field config_types: list[str] [Optional]#

Configuration types for the VASP calculations

field rss_group: list[str] | str [Optional]#

Group of configurations for the RSS calculations

field test_ratio: float = 0.1#

The proportion of the test set after splitting the data

field regularization: bool = True#

Whether to apply regularization. This only works for GAP to date.

field retain_existing_sigma: bool = False#

Whether to retain the existing sigma values for specific configuration types.If True, existing sigma values for specific configurations will remain unchanged

field scheme: Literal['linear-hull', 'volume-stoichiometry', None] = 'linear-hull'#

Method to use for regularization

field reg_minmax: list[list[float]] [Optional]#

List of tuples of (min, max) values for energy, force, virial sigmas for regularization

field distillation: bool = False#

Whether to apply data distillation

field force_max: float | None = None#

Maximum force value to exclude structures

field force_label: str | None = None#

The label of force values to use for distillation

field pre_database_dir: str | None = None#

Directory where the previous database was saved.

field mlip_type: Literal['GAP', 'J-ACE', 'NEQUIP', 'M3GNET', 'MACE'] = 'GAP'#

MLIP to be fitted

field ref_energy_name: str = 'REF_energy'#

Reference energy name.

field ref_force_name: str = 'REF_forces'#

Reference force name.

field ref_virial_name: str = 'REF_virial'#

Reference virial name.

field auto_delta: bool = True#

Whether to automatically calculate the delta value for GAP terms.

field num_processes_fit: int = 32#

Number of processes used for fitting

field device_for_fitting: Literal['cpu', 'cuda'] = 'cpu'#

Device to be used for model fitting

field scalar_pressure_method: Literal['exp', 'uniform'] = 'uniform'#

Method for adding external pressures.

field scalar_exp_pressure: int = 1#

Scalar exponential pressure

field scalar_pressure_exponential_width: float = 0.2#

Width for scalar pressure exponential

field scalar_pressure_low: int = 0#

Lower limit for scalar pressure

field scalar_pressure_high: int = 25#

Upper limit for scalar pressure

field max_steps: int = 300#

Maximum number of steps for the GAP optimization

field force_tol: float = 0.01#

Force residual tolerance for relaxation

field stress_tol: float = 0.01#

Stress residual tolerance for relaxation.

field stop_criterion: float = 0.01#

Convergence criterion for stopping RSS iterations.

field max_iteration_number: int = 25#

Maximum number of RSS iterations to perform.

field num_groups: int = 6#

Number of structure groups, used for assigning tasks across multiple nodes.For example, if there are 10,000 trajectories to relax and ‘num_groups=10’,the trajectories will be divided into 10 groups and 10 independent jobs will be created,with each job handling 1,000 trajectories.

field initial_kt: float = 0.3#

Initial temperature (in eV) for Boltzmann sampling.

field current_iter_index: int = 1#

Current iteration index for the RSS.

field hookean_repul: bool = False#

Whether to apply Hookean repulsion

field hookean_paras: dict | None = None#

Parameters for the Hookean repulsion as a dictionary of tuples.

field keep_symmetry: bool = False#

Whether to preserve symmetry during relaxations.

field write_traj: bool = True#

Bool indicating whether to write the trajectory files.

field num_processes_rss: int = 128#

Number of processes used for running RSS.

field device_for_rss: Literal['cpu', 'cuda'] = 'cpu'#

Device to be used for RSS calculations.

field mlip_hypers: MLIPHypers [Optional]#

MLIP hyperparameters

classmethod from_file(filename)[source]#

Create RSS configuration object from a file.

Parameters:

filename (str)