FNO++ Natural Orbital tutorial
Introduction
The reader is advised to read the MP2NO tutorial before reading this one. MP2NO tend to perform pretty badly for recovering response properties such as the polarizability. FNO++ [Chakraborty2025] is another variant of NO that have been benchmarked on linear response properties.
FNO++ in Dirac
With the water molecule as system of study:
3
water
O 0.0000000000000000 0.0000000000000000 -0.1173
H 0.0000000000000000 -0.75720000 -0.46920000
H 0.0000000000000000 0.75720000 -0.46920000
The input for generation the NO is:
**DIRAC
.WAVE FUNCTION
.4INDEX
**INTEGRALS
*READIN
.UNCONTRACT
**HAMILTONIAN
.NONREL
**WAVE FUNCTION
.SCF
.EXACC
*SCF
.EVCCNV
1.0E-9 1.0E-8
**MOLTRA
.ACTIVE
energy -30.0 30000.0 0.00001
.NO4IND
.PRPTRA
*PRPTRA
.OPERATOR
XDIPLEN
COMFACTOR
1.000
.OPERATOR
YDIPLEN
COMFACTOR
1.000
.OPERATOR
ZDIPLEN
COMFACTOR
1.000
**EXACC
.OCCUPIED
energy -30.0 0.0 0.00001
.VIRTUAL
energy -0.0 30000.0 0.00001
.TALSH_BUFF
25
.MP2NO++
1e-3
.P_OCC_NUM
1
.NO_PROP
3
1 2 3
.NO_WEIGHTED_SUM
1
**MOLECULE
*SYMMETRY
.NOSYM
*BASIS
.DEFAULT
aug-cc-pVDZ
*END OF
The new keywords are .MP2NO++ with its truncation threshold below, .NO_PROP with first the number of operators to involve and followed by the operators index defined in MOLTRA. Finally, the .NO_WEIGHTED_SUM keyword specifies to take the averaged sum of the previously defined operators. It is recommended to not experiment with .NO_WEIGHTED_SUM equals 0. Then u can reuse the generated orbitals in the same fashion as the MP2NO tutorial.
FNO++ with frequency in Dirac
For computing frequency dependent polarizability, you can specify the keyword .NO_OMEGA followed by real and imaginary part of frequency of the FNO++:
.NO_OMEGA
1.0E-2 0.0