12 Fragment-Based Methods

12.3 FRAGMO Initial Guess for SCF Methods

An accurate initial guess can be generated for molecular systems by superimposing converged molecular orbitals on isolated fragments. This initial guess is requested by specifying FRAGMO option for SCF_GUESS keyword and can be used for both the conventional SCF methods and the locally-projected SCF methods. The number of SCF iterations can be greatly reduced when FRAGMO is used instead of SAD. This can lead to significant time savings for jobs on multi-fragment systems with large basis sets.472 Unlike the SAD guess, the FRAGMO guess is idempotent.

To converge molecular orbitals on isolated fragments, a child Q-Chem job is executed for each fragment. $rem variables of the child jobs are inherited from the $rem section of the parent job. If SCF_PRINT_FRGM is set to TRUE the output of the child jobs is redirected to the output file of the parent job. Otherwise, the output is suppressed.

Additional keywords that control child Q-Chem processes can be set in the $rem_frgm section of the parent input file. This section has the same structure as the $rem section. Options in the $rem_frgm section override options of the parent job. $rem_frgm is intended to specify keywords that control the SCF routine on isolated fragments. Please be careful with the keywords in $rem_frgm section. $rem variables FRGM_METHOD, FRGM_LPCORR, JOBTYPE, BASIS, PURECART, ECP are not allowed in $rem_frgm and will be ignored. $rem variables FRGM_METHOD, FRGM_LPCORR, JOBTYPE, and SCF_GUESS are not inherited from the parent job.

The use of FRAGMO guess is also supported when GEN_SCFMAN = TRUE. It is extended to support more SCF orbital types (R/U/RO/G). Meanwhile, users are allowed to read in the previously generated FRAGMO guess instead of recalculating them if there is no difference between these jobs on the fragment level. This can be particularly useful for scenarios such as scanning a potential energy curve for an intermolecular complex, or for restarting an EDA job. This is controlled by the $rem variable FRAGMO_GUESS_MODE.

FRAGMO_GUESS_MODE
       Decide what to do regarding the FRAGMO guess in the present job (for gen_scfman only)
TYPE:
       INTEGER
DEFAULT:
       0
OPTIONS:
       0 Spawn fragment jobs sequentially and collect the results as the FRAGMO guess at the end. 1 Generate fragment inputs in folders “FrgX" under the scratch directory of the present job and then terminate. Users can then take advantage of a queuing system to run these jobs simultaneously using “FrgX" as their scratch folders (should be handled with scripting). 2 Read in the available fragment data.
RECOMMENDATION:
       Consider using “1" if the fragment calculations are evenly expensive. Use “2" when FRAGMO guess is pre-computed.

Example 12.3  FRAGMO guess can be used with the conventional SCF calculations. $rem_frgm keywords in this example specify that the SCF on isolated fragments does not have to be converged tightly. See also Example 12.12.2 for an open-shell fragment example.

$molecule
0 1
--
0 1
O          -0.106357    0.087598    0.127176
H           0.851108    0.072355    0.136719
H          -0.337031    1.005310    0.106947
--
0 1
O           2.701100   -0.077292   -0.273980
H           3.278147   -0.563291    0.297560
H           2.693451   -0.568936   -1.095771
--
0 1
O           2.271787   -1.668771   -2.587410
H           1.328156   -1.800266   -2.490761
H           2.384794   -1.339543   -3.467573
--
0 1
O          -0.518887   -1.685783   -2.053795
H          -0.969013   -2.442055   -1.705471
H          -0.524180   -1.044938   -1.342263
$end

$rem
   METHOD          EDF1
   BASIS           6-31(2+,2+)g(df,pd)
   SCF_GUESS       FRAGMO
   SCF_PRINT_FRGM  FALSE
$end

$rem_frgm
   SCF_CONVERGENCE 2
$end

Example 12.4  FRAGMO guess for ROSCF calculation in GEN_SCFMAN. The first fragment is RO and the second fragment is close-shell, while the super-system is computed with RO as well. The complex in the second job has a modified inter-fragment distance so it can make use of the FRAGMO guess generated by the first job. Note that ROSCF = TRUE is needed to treat the fragments and the supersystem consistently.

$molecule
1 2
--
0 2
C1
H1 C1 1.09267
H2 C1 1.09267 H1 107.60335
H3 C1 1.09267 H2 107.60335 H1 115.692
--
1 1
Na C1 scan    H3 111.28008 H2 -122.154

scan = 2.0
$end
$rem
   METHOD           b3lyp
   BASIS            6-31g
   GEN_SCFMAN       true
   UNRESTRICTED     false
   SCF_CONVERGENCE  8
   ROSCF            true
   SCF_GUESS        fragmo
   THRESH           14
   SYMMETRY         false
   SYM_IGNORE       true
$end

@@@

$molecule
1 2
--
0 2
C1
H1 C1 1.09267
H2 C1 1.09267 H1 107.60335
H3 C1 1.09267 H2 107.60335 H1 115.692
--
1 1
Na C1 scan    H3 111.28008 H2 -122.154

scan = 3.0
$end

$rem
   METHOD             b3lyp
   BASIS              6-31g
   GEN_SCFMAN         true
   UNRESTRICTED       false
   SCF_CONVERGENCE    8
   ROSCF              true
   SCF_GUESS          fragmo
   FRAGMO_GUESS_MODE  2 !read in the available fragment data
   THRESH             14
   SYMMETRY           false
   SYM_IGNORE         true
$end