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