scine_chemoton.gears.elementary_steps.trial_generator.fragment_based

Classes

FragmentBased()

Class to generate reactive complex calculations via fragment-based approaches.

class scine_chemoton.gears.elementary_steps.trial_generator.fragment_based.FragmentBased[source]

Class to generate reactive complex calculations via fragment-based approaches.

Attributes:
optionsFragmentBased.Options

The options for generating reactive complex calculations.

reactive_site_filterReactiveSiteFilter

The filter applied to determine reactive sites. NOTE: Reactive pairs/coordinates for the application of the filter_atom_pairs and filter_reaction_coordinates methods are generated by probing all possible across-fragment combinations for unimolecular reactions (i.e. each pair has to consist of atoms belonging to two different fragments). If any of the combinations belonging to a certain fragment composition is allowed, the fragment composition is considered. For bimolecular reactions with two diatomic fragments the reactive pairs correspond to the atoms facing each other in the (unrotated) reactive complex.

class Options(parent=None)[source]

The options for the fragment-based reactive complex enumeration.

class BimolAssociationOptions[source]

The options for the exploration of bimolecular reactions.

complex_generator
InterReactiveComplexes

The generator used for the composition of reactive complexes from given interstructural components of reactive coordinates.

consider_diatomic_fragments
bool

Whether to also generate reactive complexes with diatomic reactive fragments (i.e., reactive complex calculations with the lhs and/or rhs lists containing two atoms). (default: False)

job: Job
db.Job (Scine::Database::Calculation::Job)

The Job used to do reactive complex calculations/trial elementary step calculations. scine_react_complex_nt and scine_react_complex_afir jobs are supported. The default is: the scine_react_complex_nt order on a single core.

job_settings: ValueCollection
Additional settings added to the elementary step trial calculation.

Empty by default.

max_within_fragment_graph_distance
int

Maximum number of bonds between two atoms forming a reactive fragment. This option is only effective if consider_diatomic_fragments is True. (default: 1)

minimal_spin_multiplicity
bool

Whether to assume max spin recombination, thus assuming minimal resulting spin, or take combination of input spin multiplicities. (default: False) True: | multiplicity1 - multiplicity2 | - 1 False: sum(multiplicities) - 1

unset_collections()

Duplicate name to HoldCollections method to be triggered in pickling process, so infinite _parent loops are avoided.

Return type:

None

class UnimolAssociationOptions[source]

The options for the generation of associative unimolecular elementary step trial calculations.

consider_diatomic_fragments
bool

Whether to also set up unimolecular reactions where the individual reactive fragments are composed of two atoms. (default: False) Note: Pairs are only made subject to an elementary step trial/reactive complex calculations if none of the atoms of the one fragment is directly bound to any of the atoms in the other fragment.

enabled
bool

If True, enables the exploration of these types of reactions.

job: Job
db.Job (Scine::Database::Calculation::Job)

The Job used to evaluate the possible reactions. The default is: the scine_react_complex_afir order on a single core.

job_settings: ValueCollection
utils.ValueCollection

Additional settings passed to Calculation evaluating the possible reactions. Empty by default.

max_inter_fragment_graph_distance
int

The maximum distance between atoms (bond count) to be considered for association reactions. If the fragments are diatomic all possible atom pairs arising from forming the cartesian product of the fragments have to have a distance that is not larger than this value.

max_within_fragment_graph_distance
int

Maximum number of bonds between two atoms forming a reactive fragment. This option is only effective if consider_diatomic_fragments is True. (default: 1)

min_inter_fragment_graph_distance
int

The minimum graph distance between fragments (bond count) to be considered for association reactions. If the fragments are diatomic all possible atom pairs arising from forming the cartesian product of the fragments have to have a distance of at least this value.

unset_collections()

Duplicate name to HoldCollections method to be triggered in pickling process, so infinite _parent loops are avoided.

Return type:

None

class UnimolDissociationOptions[source]

The options for the generation of dissociative and disconnective unimolecular trial elementary step calculations.

enabled: bool
bool

If True, enables the exploration of these types of reactions.

job: Job
db.Job (Scine::Database::Calculation::Job)

The Job used to evaluate the possible reactions. The default is: the scine_react_complex_nt order on a single core.

job_settings_disconnective: ValueCollection
utils.ValueCollection

Additional settings passed to Calculation evaluating the possible reactions. These settings are passed to all calculations that are expected to result in disconnection of the molecule generating two new molecules in the process. Empty by default.

job_settings_dissociative: ValueCollection
utils.ValueCollection

Additional settings passed to Calculation evaluating the possible reactions. These settings are passed to all calculations that are expected to result in dissociations of the tested atoms only, retaining a single molecule. Empty by default.

max_graph_distance
unset_collections()

Duplicate name to HoldCollections method to be triggered in pickling process, so infinite _parent loops are avoided.

Return type:

None

base_job_settings: ValueCollection
bimolecular_association_options: BimolAssociationOptions
BimolAssociationOptions

The settings for reactions involving two molecules, that are set up to be associative in nature.

model: db.Model
unimolecular_association_options: UnimolAssociationOptions
UnimolAssociationOptions

The settings for reactions involving a single molecule, that are set up to be associative in nature.

unimolecular_dissociation_options: UnimolDissociationOptions
UnimolDissociationOptions

The settings for reactions involving a single molecule, that are set up to be dissociative in nature.

unset_collections()

Duplicate name to HoldCollections method to be triggered in pickling process, so infinite _parent loops are avoided.

Return type:

None

bimolecular_coordinates(structure_list, with_exact_settings_check=False)[source]

Returns the reaction coordinates allowed for bimolecular reactions for the given structures based on the set options and filters. This method does not set up new calculations. The returned object is a list of dictionary. The keys are a tuple containing a reaction coordinates and the number of dissociations. The values hold a list of instructions. Each entry in this list allows to construct a reactive complex. Therefore, the number of reactive complexes per reaction coordinate can also be inferred.

Return type:

Dict[Tuple[List[Tuple[int, int]], int], List[Tuple[ndarray, ndarray, float, float]]]

Parameters:
structure_listList[db.Structure]

List of the two structures to be considered. The Structures have to be linked to a database.

with_exact_settings_checkbool

If True, more expensive queries are carried out to check if the settings of the calculations are exactly the same as the settings of the trial generator. This allows to add more inclusive additional reaction trials but the queries are less efficient, therefore this option should be only toggled if necessary.

Notes

The index basis (total system or separate systems) of the returned indices in the reaction coordinates varies between different implementations!

bimolecular_reactions(structure_list, with_exact_settings_check=False)[source]

Creates reactive complex calculations corresponding to the bimolecular reactions between the structures if there is not already a calculation to search for a reaction of the same structures with the same job order.

Parameters:
structure_listList[db.Structure]

List of the two structures to be considered. The Structures have to be linked to a database.

with_exact_settings_checkbool

If True, more expensive queries are carried out to check if the settings of the calculations are exactly the same as the settings of the trial generator. This allows to add more inclusive additional reaction trials but the queries are less efficient, therefore this option should be only toggled if necessary.

clear_cache()[source]
Return type:

None

get_bimolecular_job_order()[source]
Return type:

str

get_unimolecular_job_order()[source]
Return type:

str

initialize_collections(manager)
Return type:

None

options: Options
static possible_attributes()
Return type:

List[str]

unimolecular_coordinates(structure, with_exact_settings_check=False)[source]

Returns the reaction coordinates allowed for unimolecular reactions for the given structure based on the set options and filters. This method does not set up new calculations. The returned object is a list of tuple. The first argument in the tuple is a list of reaction coordinates. The second argument in the tuple is the number of dissociations.

Return type:

List[Tuple[List[List[Tuple[int, int]]], int]]

Parameters:
structuredb.Structure

The structure to be considered. The Structure has to be linked to a database.

with_exact_settings_checkbool

If True, more expensive queries are carried out to check if the settings of the calculations are exactly the same as the settings of the trial generator. This allows to add more inclusive additional reaction trials but the queries are less efficient, therefore this option should be only toggled if necessary.

unimolecular_reactions(structure, with_exact_settings_check=False)[source]

Creates reactive complex calculations corresponding to the unimolecular reactions of the structure if there is not already a calculation to search for a reaction of the same structure with the same job order.

Parameters:
structuredb.Structure

The structure to be considered. The Structure has to be linked to a database.

with_exact_settings_checkbool

If True, more expensive queries are carried out to check if the settings of the calculations are exactly the same as the settings of the trial generator. This allows to add more inclusive additional reaction trials but the queries are less efficient, therefore this option should be only toggled if necessary.

unset_collections()
Return type:

None