topology

This module contains the decision tree derived by Decius’ work on complete sets and redundancies among small vibrational coordinates (https://doi.org/10.1063/1.1747158)

topology.Total_IC_dict = None

Arguments for IC Comb

topology.add_element_to_all_entries(dict_list, element, dict_key, amount) list

Adds an element to all entries in a given dictionary.

Attributes:
dict_list:

a list of dictionaries where the dictionaries are IC sets

element:

a element which gets added to a specific position

dict_key:

a string which determines where the element gets added

amount:

determines how often this element gets added to a specific position

Returns:

a list of dictionaries

topology.combine_dictionaries(dict_list) list

Combines two submolecule dictionaries where in each dictionary all possible IC sets are contained. This combiniation is based on combinatorics

The length of each dictionary determines how the combination takes place

Attributes:
dict_list:

a list of dictionarys

Returns:

a list that contains the combined IC sets for both covalent submolecules

topology.distribute_elements(dict_list, elements, dict_key, number_of_elements) list

Distributes elements to a given IC set also generating all possible combinations for the even distribution

Here all combinatoric cases are considered for example if the there is one IC set and one needs to distribute two IC coordinates out of a list of two the total amount of IC sets in the end is two

Attributes:
dict_list:

a list of dictionaries with possible IC sets

elements:

a list of possible elements that get distributed

dict_key:

a str that determines the key where the elements get added

number_of_elements:

a str with the number of elements that are taken out of the elements list

Returns:

a list of dictionaries where each entry in the dictionary is a possible IC set

topology.eliminate_symmetric_tuples(list_tuples) list

Eliminates symmetric tuples in a list of tuples e.q (H2,O,H1) (H1,O,H2)

topology.fully_linear_molecule(ic_dict, bonds, angles, linear_angles, out_of_plane, dihedrals) dict

Generates the IC sets for the covalent fully linear conformation of a structure

Attributes:
ic_dict:

a dictionary containing IC_sets

bonds:

a list of tuples with bonds

angles:

a list of tuples with angles

linear_angles:

a list of tuples with linear angles

out_of_plane:

a list of tuples with oop’s

dihedrals:

a list of tuples with dihedrals

Returns:

a IC dictionary where each entry is a valid IC set for the further analysis

topology.general_acyclic_linunit_molecule(ic_dict, out, idof, bonds, angles, linear_angles, out_of_plane, dihedrals, num_bonds, num_atoms, a_1, l, specification) dict

Generates all possible IC sets for the general,acyclic case where linear submolecules are in the structure

Attributes:
ic_dict:

a dictionary with IC sets

out:

the output file of nomodeco

idof:

a integer with the vibrational degrees of freedom

bonds:

a list of tuples with bonds

angles:

a list of tuples with angles

linear_angles:

a list of tuples with linear angles

out_of_plane:

a list of tuples with oop’s

dihedrals:

a list of tuples with dihedrals

num_bonds:

a integer containing the number of bonds

num_atoms:

a integer containing the number of atoms

l:

a integer with the number of linear bonds

a_1:

a integer containing the number of terminal atoms

specification:

the specification for the given molecule (see specifcation documentation)

topology.general_acyclic_nolinunit_molecule(ic_dict, out, idof, bonds, angles, linear_angles, out_of_plane, dihedrals, num_bonds, num_atoms, a_1, specification) dict

Generates all possible IC sets for the general acyclic case without linear submolecules

Attributes:
ic_dict:

a dictionary with IC sets

out:

the output file of nomodeco

idof:

a integer with the vibrational degrees of freedom

bonds:

a list of tuples with bonds

angles:

a list of tuples with angles

linear_angles:

a list of tuples with linear angles

out_of_plane:

a list of tuples with oop’s

dihedrals:

a list of tuples with dihedrals

num_bonds:

a integer containing the number of atoms

num_atoms:

contains the number of bonds of the structure

a_1:

a integer containing the number of terminal atoms

specification:

the specification for the given molecule (see specifcation documentation)

Returns:

a dictionary where each entry is a IC set

topology.general_cyclic_linunit_molecule(ic_dict, out, idof, bonds, angles, linear_angles, out_of_plane, dihedrals, num_bonds, num_atoms, num_of_red, a_1, l, specification) dict

Generates all possible IC sets for the general, cyclic case with linear submolecules

Attributes:
ic_dict:

a dictionary with IC sets

out:

the output file of nomodeco

idof:

a integer with the vibrational degrees of freedom

bonds:

a list of tuples with bonds

angles:

a list of tuples with angles

linear_angles:

a list of tuples with linear angles

out_of_plane:

a list of tuples with oop’s

dihedrals:

a list of tuples with dihedrals

num_bonds:

a integer containing the number of bonds

num_atoms:

a integer containing the number of atoms

a_1:

a integer containing the number of terminal atoms

l:

a integer containing the number of linear bonds

specification:

the specification for the given molecule (see specifcation documentation)

Returns:

a dictionary where each entry is a valid IC set

topology.general_cyclic_nolinunit_molecule(ic_dict, out, idof, bonds, angles, linear_angles, out_of_plane, dihedrals, num_bonds, num_atoms, num_of_red, a_1, specification) dict

Generates all possible IC sets for the general cyclic case without linear submolecules

Attributes:
ic_dict:

a dictionary with IC sets

out:

the output file of nomodeco

idof:

a integer with the vibrational degrees of freedom

bonds:

a list of tuples with bonds

angles:

a list of tuples with angles

linear_angles:

a list of tuples with linear angles

out_of_plane:

a list of tuples with oop’s

dihedrals:

a list of tuples with dihedrals

num_bonds:

a integer containing the number of bonds

a_1:

a integer containing the number of terminal atoms

num_atoms:

a integer containing the number of atoms

num_of_red:

a integer containg the redundancies of a given molecular structure

specification:

the specification for the given molecule (see specifcation documentation)

Returns:

a dictionary where each entry is a valid IC set

topology.intermolecular_general_acyclic_linunit_molecule(ic_dict, out, idof, bonds, angles, linear_angles, out_of_plane, dihedrals, num_bonds, num_atoms, a_1, l, specification) dict

Generates all possible IC sets for the intermolecular, general acyclic case without linear submolecules.

Attributes:
ic_dict:

a dictionary containing valid IC sets

out:

the output file of nomodeco

idof:

a integer with the vibrational degrees of freedom

bonds:

a list of tuples containing bonds

angles:

a list of tuples containing angles

linear_angles:

a list of tuples containing angles

out_of_plane:

a list of tupels containing oop’s

dihedrals:

a list of tupels containing dihedrals

a_1:

a integer with the number of terminal atoms

l:

a integer with the number of linear bonds

num_bonds:

a integer with the number of bonds

num_atoms:

a integer with the number of atoms

specification:

the specification dictionary of the given molecule

Returns:

a dictionary where each entry is a possible IC set

topology.intermolecular_general_acyclic_nolinunit_molecule(ic_dict, out, idof, bonds, angles, linear_angles, out_of_plane, dihedrals, num_bonds, num_atoms, a_1, specification) dict

Generates all possible IC sets for the intermolecular, general, acyclic case without linear submolecules Attributes:

ic_dict:

a dictionary containing valid IC sets

out:

the output file of nomodeco

idof:

a integer with the vibrational degrees of freedom

bonds:

a list of tuples containing bonds

angles:

a list of tuples containing angles

linear_angles:

a list of tuples containing angles

out_of_plane:

a list of tupels containing oop’s

dihedrals:

a list of tupels containing dihedrals

a_1:

a integer with the number of terminal atoms

num_bonds:

a integer with the number of bonds

num_atoms:

a integer with the number of atoms

specification:

the specification dictionary of the given molecule

Returns:

a dictionary where each entry is a possible IC set

topology.intermolecular_general_cyclic_linunit_molecule(ic_dict, out, idof, bonds, angles, linear_angles, out_of_plane, dihedrals, num_bonds, num_atoms, num_of_red, a_1, l, specification) dict

Generates all possible IC sets for the intermolecular, general, cyclic case with linear submolecules

Attributes:
ic_dict:

a dictionary containing valid IC sets

out:

the output file of nomodeco

idof:

a integer with the vibrational degrees of freedom

bonds:

a list of tuples containing bonds

angles:

a list of tuples containing angles

linear_angles:

a list of tuples containing angles

out_of_plane:

a list of tupels containing oop’s

dihedrals:

a list of tupels containing dihedrals

a_1:

a integer with the number of terminal atoms

l:

a integer with the number of linear bonds

num_bonds:

a integer with the number of bonds

num_of_red:

a integer with the number of redundancies

num_atoms:

a integer with the number of atoms

specification:

the specification dictionary of the given molecule

Returns:

a dictionary where each entry of the dictionary is a valid IC set

topology.intermolecular_general_cyclic_nolinsub(ic_dict, out, idof, bonds, angles, linear_angles, out_of_plane, dihedrals, num_bonds, num_atoms, num_of_red, a_1, specification) dict

Generates all possible IC sets for the intermolecular, general cyclic case where no linear submolecules are contained Attributes:

ic_dict:

a dictionary containing valid IC sets

out:

the output file of nomodeco

idof:

a integer with the vibrational degrees of freedom

bonds:

a list of tuples containing bonds

angles:

a list of tuples containing angles

linear_angles:

a list of tuples containing angles

out_of_plane:

a list of tupels containing oop’s

dihedrals:

a list of tupels containing dihedrals

a_1:

a integer with the number of terminal atoms

num_of_red:

a integer with the number of redundancies of the molecular structure

num_bonds:

a integer with the number of bonds

num_atoms:

a integer with the number of atoms

specification:

the specification dictionary of the given molecule

Returns:

a dictionary where each entry is a valid IC set

topology.intermolecular_planar_acyclic_linunit_molecule(ic_dict, out, idof, bonds, angles, linear_angles, out_of_plane, dihedrals, num_bonds, num_atoms, a_1, l, specification) dict

Generates all possible IC sets for the intermolecular, planar, acyclic case where linear submolecules are contained

Attributes:
ic_dict:

a dictionary containing valid IC sets

out:

the output file of nomodeco

idof:

a integer with the vibrational degrees of freedom

bonds:

a list of tuples containing bonds

angles:

a list of tuples containing angles

linear_angles:

a list of tuples containing angles

out_of_plane:

a list of tupels containing oop’s

dihedrals:

a list of tupels containing dihedrals

a_1:

a integer with the number of terminal atoms

l:

a integer with the number of linear bonds

num_bonds:

a integer with the number of bonds

num_atoms:

a integer with the number of atoms

specification:

the specification dictionary of the given molecule

Returns:

a dictionary where each entry is a possible IC set

topology.intermolecular_planar_acyclic_nolinunit_molecule(ic_dict, out, idof, bonds, angles, linear_angles, out_of_plane, dihedrals, num_bonds, num_atoms, a_1, specification) dict

Generates all possible IC sets for the intermolecular, planar, acyclic case without linear submolecules

Attributes:
ic_dict:

a dictionary containing valid IC sets

out:

the output file of nomodeco

idof:

a integer with the vibrational degrees of freedom

bonds:

a list of tuples containing bonds

angles:

a list of tuples containing angles

linear_angles:

a list of tuples containing angles

out_of_plane:

a list of tupels containing oop’s

dihedrals:

a list of tupels containing dihedrals

a_1:

a integer with the number of terminal atoms

l:

a integer with the number of linear bonds

num_bonds:

a integer with the number of bonds

num_atoms:

a integer with the number of atoms

specification:

the specification dictionary of the given molecule

Returns:

a dictionary where each entry is a possible IC set

topology.intermolecular_planar_cyclic_linunit_molecule(ic_dict, out, idof, bonds, angles, linear_angles, out_of_plane, dihedrals, num_bonds, num_atoms, a_1, l, specification) dict

Generates all possible IC sets for the intermolecular, planar, cyclic case with linear submolecules

Attributes:
ic_dict:

a dictionary containing valid IC sets

out:

the output file of nomodeco

idof:

a integer with the vibrational degrees of freedom

bonds:

a list of tuples containing bonds

angles:

a list of tuples containing angles

linear_angles:

a list of tuples containing angles

out_of_plane:

a list of tupels containing oop’s

dihedrals:

a list of tupels containing dihedrals

a_1:

a integer with the number of terminal atoms

l:

a integer with the number of linear bonds

num_bonds:

a integer with the number of bonds

num_atoms:

a integer with the number of atoms

specification:

the specification dictionary of the given molecule

Returns:

a dictionary where each entry is a possible IC set

topology.intermolecular_planar_cyclic_nolinunit_molecule(ic_dict, out, idof, bonds, angles, linear_angles, out_of_plane, dihedrals, num_bonds, num_atoms, a_1, specification) dict

Generates all possible IC sets for the intermolecular, planar, cyclic case without linear submolecules

Attributes:
ic_dict:

a dictionary containing valid IC sets

out:

the output file of nomodeco

idof:

a integer with the vibrational degrees of freedom

bonds:

a list of tuples containing bonds

angles:

a list of tuples containing angles

linear_angles:

a list of tuples containing angles

out_of_plane:

a list of tupels containing oop’s

dihedrals:

a list of tupels containing dihedrals

a_1:

a integer with the number of terminal atoms

l:

a integer with the number of linear bonds

num_bonds:

a integer with the number of bonds

num_atoms:

a integer with the number of atoms

specification:

the specification dictionary of the given molecule

Returns:

a dictionary containing all the possible IC sets for a given molecule

topology.molecule_is_not_split(bonds) bool

Uses Networkx to check if for a given list of bonds the molecular structure is connected or split

topology.planar_acyclic_linunit_molecule(ic_dict, out, idof, bonds, angles, linear_angles, out_of_plane, dihedrals, num_bonds, num_atoms, a_1, l, specification) dict

Generates all possible IC sets for the planar,acyclic case with linear submoleculesd

Attributes:
ic_dict:

a dictionary with IC sets

out:

the output file of nomodeco

idof:

a integer with the vibrational degrees of freedom

bonds:

a list of tuples with bonds

angles:

a list of tuples with angles

linear_angles:

a list of tuples with linear angles

out_of_plane:

a list of tuples with oop’s

dihedrals:

a list of tuples with dihedrals

num_bonds:

a integer containing the number of atoms

a_1:

a integer containing the number of terminal atoms

l:

a integer containing the number of linear bonds

specification:

the specification for the given molecule (see specifcation documentation)

Returns:

a dictionary where each entry is a valid IC set

topology.planar_acyclic_nolinunit_molecule(ic_dict, out, idof, bonds, angles, linear_angles, out_of_plane, dihedrals, num_bonds, num_atoms, a_1, specification) dict

Generates IC sets for the planar acyclic case without any linear subunits

Attributes:
ic_dict:

a dictionary with IC sets

out:

the output file of nomodeco

idof:

a integer with the vibrational degrees of freedom

bonds:

a list of tuples with bonds

angles:

a list of tuples with angles

linear_angles:

a list of tuples with linear angles

out_of_plane:

a list of tuples with oop’s

dihedrals:

a list of tuples with dihedrals

num_bonds:

a integer containing the number of atoms

a_1:

a integer containing the number of terminal atoms

specification:

the specification for the given molecule (see specifcation documentation)

Returns:

all possible IC sets for this conformation in a dictionary, where each entry is a IC set

topology.planar_cyclic_linunit_molecule(ic_dict, out, idof, bonds, angles, linear_angles, out_of_plane, dihedrals, num_bonds, num_atoms, a_1, l, specification) dict

Generates all possible IC sets for the planar,cyclic case with linear submolecules

Attributes:
ic_dict:

a dictionary with IC sets

out:

the output file of nomodeco

idof:

a integer with the vibrational degrees of freedom

bonds:

a list of tuples with bonds

angles:

a list of tuples with angles

linear_angles:

a list of tuples with linear angles

out_of_plane:

a list of tuples with oop’s

dihedrals:

a list of tuples with dihedrals

num_bonds:

a integer containing the number of atoms

a_1:

a integer containing the number of terminal atoms

l:

a integer containing the number of linear bonds

specification:

the specification for the given molecule (see specifcation documentation)

Returns:

a dictionary where each entry is a valid IC set

topology.planar_cyclic_nolinunit_molecule(ic_dict, out, idof, bonds, angles, linear_angles, out_of_plane, dihedrals, num_bonds, num_atoms, a_1, specification) dict

Generates all possible IC sets for the planar,cyclic case without linear submolecules

Attributes:
ic_dict:

a dictionary with IC sets

out:

the output file of nomodeco

idof:

a integer with the vibrational degrees of freedom

bonds:

a list of tuples with bonds

angles:

a list of tuples with angles

linear_angles:

a list of tuples with linear angles

out_of_plane:

a list of tuples with oop’s

dihedrals:

a list of tuples with dihedrals

num_bonds:

a integer containing the number of atoms

a_1:

a integer containing the number of terminal atoms

specification:

the specification for the given molecule (see specifcation documentation)

Returns:

a dictionary where each entry is a valid IC set, note that in this case bonds are cut

topology.strip_numbers(string) str

Removes the digits from a string e.q H2 -> H

topology.update_internal_coordinates_cyclic(removed_bonds, ic_list) list

Given a set of ICs and a removed bond, eliminates this particular IC out of the list

Attributes:
removed_bonds: list

a list of tuples containing the bonds to remove

ic_list: list

a list of internal coordinates of a specific type

topology.valide_atoms_to_cut(bonds, multiplicity_list) list

Checks for a given list of bonds if the multiplicity of the atoms is greater then two. If this is the case return the atoms