DOI: 10.6084/m9.figshare.1471648
title: Program for the computation of MECP using the Firefly Quantum Chemistry program

description: Minimum-energy crossing points (MECP) between potential energy surfaces with different spin multiplicities are important in non-radiative relaxation of excited states, analysis of phosphorescent materials and for the study of "spin-forbidden" reactions. Harvey et al. described an algorithm that you can use to find MECP using any theory level, in J.N.Harvey, M.Aschi, H.Schwarz, W.Koch (1998) The Singlet and Triplet State of Phenyl Cation. A Hybrid Approach for Locating Minimum Energy Crossing Points between Non-interacting Potential Energy Surfaces. Theor. Chem. Acc. 99, 95 Prof. Harvey kindly provided me with the code, which I have adapted for use with the output from the quantum-chemistry program Firefly (Alex Granovsky, Moscow State University, http://classic.chem.msu.su/gran/gamess/index.html). Three files are provided: mecp.c - program code , in C mecp - compiled version (ubuntu) MECP_script - self-explanatory mecp requires output and punch files from two calculations of the same system, with the same coordinates, but different spin multiplicities. These files MUST be named as: First.out and First.dat (for the first spin multiplicity, i.e. that with the HIGHER energy )<br>Second.out and Second.dat (for the second spin multiplicity)<br><br><br>mecp produces several output files: results.txt (geometries, graidents, energies, etc...)<br>results.xyz (geometries in xyz format)<br>new_geom.txt (the next geometry in the MECP optimization)<br>new_grad.txt (computed gradient - output only when BFGS update is selected)<br>hessian.txt (computed hessian - output only when BFGS update is selected)<br>vec1.txt (orbitals for the first state, taken from First.dat)<br>vec2.txt (orbitals for the second state, taken from Second.dat)<br><br><br>new_geom.txt, vec1.txt and vec2.txt must be combined in order to build input files <br>(First.txt and Second,txt) for a new round of computation. The easiest way to do this<br> is to have all other input commands in separate files (e.g. First_temp.txt and Second_temp.txt), <br>and concatenate them as needed.<br><br><br>In the first paper I published using MECP (Silva & Ramos (2007), J. Phys. Chem. B,111, 12883-12887), I found that in my system the MECP <br>geometry in gas phase was quite different from the one in solution. It is therefore STRONGLY recommended that spin-forbidden reactions in solution be studied in the presence of implicit or explicit solvent models.<br><br><br> The program may be compiled (in Linux) by typing: gcc mecp.c -o mecp -lm <br>*********************************************+ Syntax: <br>mecp -[h/g] -[c/f/b number1] [-e number2]<br><br> Switches:<br>-h computes the gradient using the efficient method described in Harvey et al. (1998) Theor. Chem. Acc., 99, 95<br>-g computes the gradient using a simple gradient difference (if at all, use sparingly, only in the first optimization steps)<br>-c computes the next point in MECP optimization using a linear update (number1 then means the sum of total atom movements )<br>-f computes the next point in MECP optimization using a linear update (number1 then means maximum individual atom movement)<br>-b computes the next point in MECP optimization using a BFGS update (number1 then means maximum individual atom movement)<br>-e computes the next point in MECP optimization using an exponentially weighed update (atom movement will be proportional to the "number2"th<br>power of the value of their gradient. Use only integer values for number2) Example: mecp -h -c 0.05 use "Harvey gradients", atom movements proportional to their gradients, and the sum of the atom movements should equal 0.05 mecp -h -b 0.05 use "Harvey gradients", BFGS updates, the largest atom movements should<br>equal 0.05 mecp -h -b 0.05 -e 2 use "Harvey gradients", BFGS updates, the largest atom movements should<br>equal 0.05, displacements should be proportional to the square of the gradients. Switches MUST be input in the order given above. Specifically: mecp -c 0.05 -h WILL NOT WORK, and the program will enter an infinite loop! Recommended options are: mecp -h -b number1 -g , -c and -f options were added initially, before Prof. Harvey sent me his Fortran code.<br>-e may be useful in the last portion of the search, if you find that the gradients on a few<br>atoms are much larger than the others. If no number1 is given, the program tries to guess a good value. Those guesses are usually not<br>good (if I were a better programmer, I would make it read the output results.txt file to find<br>out how much the energy has changed in the step, and to adjust the value accordingly...) ********************************************** DISCLAIMER: The programs were built for my personal use. My programming skills are limited (to say the least) and I am sure that a good programmer would be able to make them much more user-friendly.