IG Documentation
IG Documentation
Lorenzo Tinacci
March 2020
The program takes as input the number of atoms in a chemical stoichiometric formula, for now it is only
available for this list of atoms: H, C, N and O. The code’s goals is to give all the possible way to combine,
with a chemical meaning, the input atoms. So it is a code that will produce all the structural isomers and
resonance structures. The easy way to work with the molecules, for this kind of purpose, it is to use a graph
based approach (from now on we will refer to it using the term: molecular-graph).
The code is it organized in a flow chart of operation to achieve the molecules. In the next figure it is show
the tree-graph related to all the process of the code, in the case of HCN.
Figure 0.1: Genealogical molecular graph tree of the operations to achieve the molecules, in the HCN
example.
The first step, node 0 or root of the molecular-graph, of the code is to extract only the possible atoms that
will form the "skeleton" of the molecules, so we are not going to consider hydrogen atoms because are always
terminals. Moreover we are not consider the atom type. In the next figure it is showed this step.
The second step is to create all the possible way to connect the "skeleton" molecules. In the case that we
are studying now, there is only possibility. In the next figure it is showed this step.
2
The third step is to create all the possible combination to colored the "skeleton" molecules, in other words:
assigning the atoms in the node 1, figure 0.3. In the case that we are studying now, there is only possibility.
In the next figure it is showed this step. In our figures we will refer to H, C, N and O respectively with the
grey, black, blue and red colors.
The next step is to create all the possible combination to add the hydrogen atoms in the colored molecules
in the node 2, figure 0.4. In the case that we are studying now, there are two possibilities. In the next figure
it is showed this step.
The next step is to create all the possible combination to add the bonds, double and triple, to the molecules
in the 0.5. To show how the code works we will show only the case of the node 4, figure 0.5b, in this case
there are three possibilities. In the next figure it is showed this step. In our figures we will refer to single,
double and triple bond respectively with the solid, dashed and dot line style.
Figure 0.6: Node 8,9 and 10 of the molecular graph tree 0.1.
3
The next step is to create all the possible electronic structures of the molecules. In other words, in this step,
we will put the electrons not used in bonds in all the allowed possibilities to assign non-bond electron to
the atoms. Then we will used the max spin maximum spin multiplicity principle, or Hund’s Rule, to assign
the number of radicals and lone pairs of each atoms. To show how the code works we will show the case
of the node 9, figure 0.6b, and 10, 0.6c. In next figure, related to the node 9, figure 0.6b, we will show the
properties of the three possibilities.
Figure 0.7: Node 25,26 and 27 of the molecular graph tree 0.1.
In the next figure, related to the node 10, figure 0.6c, we will show the properties of the one possibility.
To try the code, and visualize the compute molecules, go to this link: GoogleColabTinacci