Tutorial: Geometry optimizations
Qcore provides robust geometry optimization algorithms, which allow us to optimize a molecule to a local energy minimum or a transitionstate 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 transitionstate 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 builtin geometry, using the tric coordinate system (which is the default) and the GFNxTB 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/631G* level of theory, using the hdlc coordinate system. Note how easy it is to change between energy methods (DFT vs. GFNxtb).
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 CO bond length at its initial value

Setting the HOC angle to a fixed value of 108.5 degree

Freezing the dihedral angle HOCH at its initial value
Additional options/subcommands for performing geometry optimizations can be found in the user manual.
Examples on specific topics: