$CPMCHF group
(relevant for analytic RUNTYP=HESSIAN,NACME,CONICAL)
This group controls the solution of the response
equations, also called coupled perturbed multiconfiguration
Hartree-Fock, for MCSCF wavefunctions. These are needed
for analytic hessians (CISTEP=ALDET or ORMAS), or for
state-averaged gradients or non-adiabatic coupling matrix
element calculations. The full response equations are
solved for hessians, while Z-vector equations are used for
NACME and SA-gradients.
The default converger is a (linear) conjugate gradient
(CG) method, but three others may be chosen. Difficult
cases might work upwards from the default CG method by:
$cpmchf $end
$cpmchf ipdir=50 $end
$cpmchf gcro=.t. micit=5 kicit=10 $end
$cpmchf gcrodr=.t. micit=10 kicit=5 $end
$cpmchf gcrodr=.t. micit=30 kicit=10 reclin=.false. $end
$cpmchf gcrodr=.t. micit=20 kicit=10 reclin=.false.
prcchg=.true. prctol=1.0 $end
$cpmchf gcro=.t. micit=50 kicit=100
prcchg=.true. prctol=1.0 $end
where the last one is "the sledgehammer". The options
shown in the next to last case very often work, and will be
considerably faster than the last set, which should always
work. GCRO will typically take many fewer iterations than
CG, a measure of its robustness, but will use more machine
time due to its microiterations.
--- the next set apply to any CP-MCHF converger ---
MAXIT = maximum iterations. (default=300)
CPTOL = accuracy tolerance for cpmchf equations Ax=b.
(compared to r/||b||, within orbital, CI, and
state averaged components) (default=1.0D-07)
PRCCHG = a flag to adjust the linear equation's
preconditioning. (Default=.FALSE.)
For ORMAS runs in particular, the standard
preconditioner might lead to ill-conditioning
with very small elements. If selected, any
preconditioner elements below PRCTOL will be
reset to a value of 1.0
PRCTOL = a tolerance to keep preconditioner elements,
if PRCCHG is chosen. Default=1.0D-6
--- for RUNTYP=NACME ---
NAPICK = a flag to select running through z-vector setup
and choose which linear equations to solve.
.TRUE. leads to z-vector linear equations.
.FALSE. leads to non-z-vector linear equations.
The z-vector equations are advantageous when the
degrees of freedom exceeds the no. of electronic
states involved in the state-averaging.
(The defaults are set to enforce this option.)
The z-vector equations are also advantageous
when only a few NA couplings out of the total
total possible couplings are of interest.
If CISTEP=ORMAS, NAPICK=.TRUE. is forced.
Selecting NAPICK=.TRUE. requires the choice of
NA couplings in the NACST array (see below).
(default=varies... see ROUTINE NACMEX for notes)
NACST = an array that indicates which NA couplings to
Calculate, if NAPICK is chosen. For example, if
WSTATE in $DET contains at least four states,
the NACME can be limited to state pairs 1(-)2 and
3(-)4 by NACST(1)=3,4, 1,2. Note that you should
pick increasing order within any pair of states!
The program always generates the state-specific
gradient of every state with a non-zero WSTATE.
(default=none)
--- the next three choose the other CPMCHF convergers ---
If none is selected, conjugate gradient (CG) is used.
GCRODR = a flag to select Generalized Conjugate Residual
with inner Orthogonalization with Deflated
Restarting. (default=.FALSE.)
GCRO = a flag to select Generalized Conjugate Residual
with inner Orthogonalization. (default=.FALSE.)
CGGCRO = a flag to alternate between GCRO and CG solvers.
(default=.FALSE.)
--- next apply only to GCRODR:
RECLIN = a flag to select recycling of Krylov subspaces
from the first linear equation. (recycle linear).
The first CP-MCHF linear equation is solved
and a recyclable subspace is generated.
Then, after a projection of approximate solution
across the subspace from the first system,
the rest of the linear equations are solved.
The recycled subspace may or may not give rapid
convergence with fewer iterations. See MICIT and
KICIT. (default=.TRUE.)
--- next apply only to GCRODR,GCRO,CGGCRO:
MICIT = total size of the Krylov expansion space, namely
the number of micro-iterations within an overall
iteration. While the MICIT variable has no limit,
fifty or more micro-iterations start to become
computationally unmanagable for larger systems.
The default often must be increased for large
systems or for geometries far from equilibrium.
In addition, the GCRODR converger has a slightly
modified scheme for the micro-iterations.
In the first iteration, MICIT micro-iterations
are performed in a GMRES(MICIT) iteration.
However, for subsequent iterations, (MICIT-KICIT)
micro-iterations are performed.
(default=5, often increased to 20 or 30)
KICIT = the size of the recyclable Krylov basis saved and
modified from iteration to iteration, created
from eigenvectors with small eigenvalues. If
this space is too small, the run will experience
ill-conditioning, but if too large, the search
space includes ineffective parts.
In case PRCCHG is chosen, make sure the number of
vectors reset from small values does not exceed
KICIT, if it does, increase KICIT.
(default=5, usually small, e.g. 5-10 for GCRODR)
(MICIT> KICIT for GCRODR)
(KICIT>=MICIT for GCRO and CGGCRO)
--- next apply only to (linear) CG:
NACFAC = number of iterations before softening the current
convergence tolerance by 1/3, for CG only. Use
NACFAC=0 (or MAXIT) to prevent raising the
from the initial CPTOL. (default=50)
IPDIR = number of iterations before resetting the
residual from a pseudo-residual to the true
residual. This reset also resets the search
directions, since keeping the old 'ill-rounded'
directions is not very beneficial.
If a run almost convergences but struggles in
later iterations, IPDIR=50 is recommended.
This option appears more useful for NACME
rather than Hessian runs.
(default=MAXIT)
--- next apply only to CGGCRO:
ITERA = the number of (linear) CG iterations to apply
before alternation to the GCRO converger.
(default=5)
ITERB = the number of GCRO iterations to apply
before alternation to the (linear) CG converger.
(default=5)
$MASS group (relevant for RUNTYP=HESSIAN, IRC, or DRC)
This group permits isotopic substitution during the
computation of mass weighted Cartesian coordinates. Of
course, the masses affect the frequencies and normal modes
of vibration.
AMASS = An array giving the atomic masses, in amu. The
default is to use the mass of the most abundant
isotope. Masses through element 104 are stored.
example - $MASS AMASS(3)=2.0140 $END
will make the third atom in the molecule a deuterium.
185 lines are written.
Edited by Shiro KOSEKI on Tue May 17 15:19:38 2022.