Quantum Chemistry
Quantum Chemistry
Out[]=
Chemistry is the study of electrons and their interactions in atoms and molecules. Quantum mechanics, specifically the Schrödinger equation, describes electrons and their interactions in atoms and molecules. Combining quantum mechanics and chemistry gives rise to quantum chemistry, which allows for the prediction and explanation of chemical properties.
In analogy to the hierarchy of representations in chemistry, there is a hierarchy of approximations known as model chemistries for solving the Schrödinger equation. Molecular mechanics (MM) is the simplest type of model chemistry and is accessible in the Wolfram Language via the and functions.Computing the electronic energy of a molecule at a particular set of molecular coordinates is known as a single point calculation.
Create a methane molecule and view the atom indices:
molCH4=Molecule;MoleculePlot3D[molCH4,AtomLabelsAutomatic,AtomLabelStyleDirective[Orange,Bold,16]]
Out[]=
Run a single point calculation for methane using the Merck Molecular Force Field, version 1994 (MMFF94):
MoleculeValue[molCH4,"MMFFEnergy"]
Out[]=
Compute the MM energy for methane using MMFF94, MMFF94s and the universal force field (UFF) model chemistries:
MoleculeValue[molCH4,{"MMFFEnergy","MMFFsEnergy","UFFEnergy"}]
Out[]=
,,
The molecular ground state corresponds to the lowest energy arrangement of the atoms in a molecule. Adjusting the geometry in order to minimize the electronic energy is known as a geometry optimization.
Run a geometry optimization on methane using MMFF94 and the Broyden–Fletcher–Goldfarb–Shanno (BFGS) optimizer:
optCH4=MoleculeModify[molCH4,{"EnergyMinimizeAtomCoordinates","MMFF94"}]
Out[]=
Molecule
Compare the initial and optimized MM energy:
MoleculeValue[{molCH4,optCH4},"MMFFEnergy"]
Out[]=
,
Define a function for visualizing the molecular coordinates:
ClearAll@MolecularCoordinates;MolecularCoordinates[mol_]:=TableForm[Normal[mol["AtomCoordinates"]],(*UseNormaltoturntheQuantityArrayintoanby3matrix*)TableHeadings{Map[Row[#," "]&,AtomList[mol,All,{"AtomIndex","AtomicSymbol"}]],Map[Style[#,Italic]&,{"x","y","z"}]},TableAlignmentsCenter]
N
atom
Compare the initial and optimized molecular coordinates:
Map[MolecularCoordinates[#]&,{molCH4,optCH4}]
Out[]=
,
x | y | z | |
1C | |||
2H | |||
3H | |||
4H | |||
5H |
x | y | z | |
1C | |||
2H | |||
3H | |||
4H | |||
5H |
Comparing molecular coordinates quickly becomes tedious. The bond lengths are a more chemically intuitive means to compare changes in the molecular coordinates.
Compute the methane bond lengths for the initial coordinates:
Grid[{BondList[molCH4],BondList[molCH4,All,"BondLength"]},Frame->All]
Out[]=
Bond[{1,2},Single] | Bond[{1,3},Single] | Bond[{1,4},Single] | Bond[{1,5},Single] |
Compute the methane bond lengths for the optimized coordinates:
Grid[{BondList[optCH4],BondList[optCH4,All,"BondLength"]},Frame->All]
Out[]=
Bond[{1,2},Single] | Bond[{1,3},Single] | Bond[{1,4},Single] | Bond[{1,5},Single] |
Out[]=