This protocol implements geometry optimization. There is a lot of options provided but the default setup was tuned to provide good results in almost any system.
The default setup is applicable to wide range of systems - the only adjustment needed might be setting the convergence thersholds using the opt_quality keyword. The default value of 1.0 is reasonable for common optimization of rigid molecules, for flexible systems or non-covalent interactions, tighter convergence criteria are needed for obtaining accurate geometroies. It is recommended to set the opt_quality to 0.1.
The protocol implements optimization in Cartesian (default), redundant internal and z-matrix coordinates. Only the optimization in Cartesian coordinates should be considered stable and robust, the internal coordinates are under development and often fail in some cases.
Cuby can now build z-matrix automatically from cartesian coordinates but it is not guaranteed that the generated z-matrix will work well for optimization. The use of z-matrices is thus recommended only for cases where user-supplied z-matrix is used. The advantage of z-matrices is that it is easily possible to optimize only specified internal coordinates.
Cuby implements the P-LBFGS algorithm that can accelerate the convergence of the optimization by calculating multiple points in parallel in each step. For details, refer to teh example below an to the original paper. To use the optimizer, it is necessary to complile the linear algebra extension with a support of the UMFPACK library, the details are described on the page on installation.
The following examples, along with all other files needed to run them, can be found in the directory cuby4/protocols/optimize/examples
#=============================================================================== # Optimize protocol example 1 - basic input #=============================================================================== # Simple geometry optimization of benzene dimer from the S66 data set # The calculation produces these additional files: # 1) optimized.xyz - the optimized geometry # 2) history_optimize_example_01.xyz - record of all the steps job: optimize # This keyword scales all the three convergence thresholds. The default value, # 1.0, might not yield accurate enough geometry because the potential of # the intermolecular interaction in benzene dimer is rather weak and flat. opt_quality: 0.1 # Geometry from the database geometry: S66:benzene_dimer_stack # Calculation interface: dftb method: scc-dftb dftb_dispersion: yes
#=============================================================================== # Optimize protocol example 2 - Partial optimization #=============================================================================== # Only a part of the system can be optimized, in this case we optimize just # some residues in a peptide chain. job: optimize geometry: PDB:1AQG # PDB from Cuby's internal database of small peptides # Optimize only residues no. 5 and 6 optimize_region: ":5,6" # Any selection can be used, use the following to optimize only hydrogens in # the peptide: #optimize_region: "@H" # Calculation - MM in Amber, default setup interface: amber # Save the optimized geometry in PDB format restart_file: optimized.pdb
#=============================================================================== # Optimize protocol example 3 - parallel optimizer P-LBFGS #=============================================================================== # This example demonstrates the use of the parallel optimizer P-LBFGS job: optimize opt_quality: 0.1 geometry: ace-ala-nme.pdb # ACE-ALA-NME peptide # Parallel optimizer setup optimizer: plbfgs linesearch: cubic # The optimizer was designed to be used with a linesearch plbfgs_colors: 1 # One 'color' per step, results into 4 calculations / step cuby_threads: 4 # Run those 4 calculations in parallel # Calculation - MM in Amber, default setup interface: amber
#=============================================================================== # Optimize protocol example 4 - transition state optimization #=============================================================================== # Simple optimization of a transition state. # Bond rotation in propane calculated at PM6 level in MOPAC. job: optimize # Only the trim_hessian optimizer can be used optimizer: trim_hessian # This switches on the TS optimization optimize_ts: lowest_eigenvector # Because we use a method for which analytical Hessian is not available, # the calculation is wrapped in the numerical_hessian interface interface: numerical_hessian calculation: interface: mopac mopac_precise: yes method: pm6 # Propane with one methyl rotated out of equilibrum geometry: | C 1.185982 0.229141 0.070276 C -0.060586 -0.617450 -0.182669 C -1.347745 0.182277 0.010546 H 2.100284 -0.357414 -0.070830 H 1.234407 1.086263 -0.611544 H 1.202201 0.625393 1.092275 H -0.028969 -1.030374 -1.210857 H -0.060467 -1.493919 0.495992 H -1.164166 1.260751 -0.054713 H -2.092020 -0.071474 -0.752003 H -1.799149 -0.014287 0.989612