Tutorial: Geometry optimizations
Qcore provides robust geometry optimization algorithms, which allow us to optimize a molecule to a local energy minimum or a transition-state geometry, with and without geometric constraints. In this section, we demonstrate the use of entos to perform full geometry optimization (without constraints) and geometry optimization with constraints. We will demonstrate transition-state optimization in another section.
The command for running a geometry optimization is optimize(). There are several coordinate systems that can be used for geometry optimization: tric, irc, hdlc, and xyz, with the tric coordinates being the default, since they are well suited for molecular clusters while maintaining efficiency for individual molecules.
1. Full geometry optimization
The minimal input for running a full geometry optimization looks like this:
In this example, we want to optimize a methanol molecule, starting from the built-in geometry, using the tric coordinate system (which is the default) and the GFN-xTB method for providing the energy and gradients. The finally optimized geometry is saved to an XYZ format file methanol_opt.xyz.
Below is another example of running full geometry optimization at DFT B3LYP/6-31G* level of theory, using the hdlc coordinate system. Note how easy it is to change between energy methods (DFT vs. GFN-xtb).
2. Constrained geometry optimization
Qcore allows for geometry optimization with various geometric constraints, including:
Freezing the Cartesian coordinates of atoms in absolute space
Freezing bonds, angles, and dihedrals at their initial values
Setting bonds, angles, and dihedrals to target values
Combination of the preceding options
Here is example input for running a constrained geometry optimization:
In this example, we choose to optimize the geometry of methanol with multiple constraints:
Freezing the C-O bond length at its initial value
Setting the H-O-C angle to a fixed value of 108.5 degree
Freezing the dihedral angle H-O-C-H at its initial value
Additional options/subcommands for performing geometry optimizations can be found in the user manual.
Examples on specific topics: