File: rassi.rst

package info (click to toggle)
openmolcas 25.02-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 170,204 kB
  • sloc: f90: 498,088; fortran: 139,779; python: 13,587; ansic: 5,745; sh: 745; javascript: 660; pascal: 460; perl: 325; makefile: 17
file content (1666 lines) | stat: -rw-r--r-- 82,466 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
.. index::
   single: Program; RASSI
   single: RASSI

.. _UG\:sec\:rassi:

:program:`rassi`
================

.. only:: html

  .. contents::
     :local:
     :backlinks: none

.. xmldoc:: <MODULE NAME="RASSI">
            %%Description:
            <HELP>
            The RASSI program calculates overlaps, and matrix
            elements of one-electron operators, and of the electronic Hamiltonian,
            over a basis of RASSCF wave functions, which may each have its own
            independent set of orbitals. Energies and matrix elements are
            computed also for the non-interacting linear combinations of states,
            i.e., doing a limited CI using the RASSCF states as a non-orthogonal basis.
            RASSI is extensively used for computing dipole oscillator strengths.
            Finally, it can also compute e.g. spin-orbit interaction matrix elements,
            transition dipole moments, (bi-)natural orbitals and other quantities.
            </HELP>

The
:program:`RASSI` (RAS :index:`State Interaction`) program forms overlaps and
other :index:`matrix
elements <single: Matrix elements; RASSCF>` of the Hamiltonian and other operators
over a wave function basis, which consists of RASSCF wave functions,
each with an individual set of orbitals. It is extensively used
for computing dipole :index:`oscillator strengths <single: Oscillator strength>`, but any
one-electron operator, for which the :program:`Seward` has computed
integrals to the :file:`ORDINT` file, can be used, not just dipole
moment components.

Also, it solves the Schrödinger
equation projected on the space spanned by these wave functions,
i.e., it forms non-interacting linear combinations of the input
state functions, and computes matrix elements over the resulting
eigenbasis as well.

Finally, using these spin-free eigenstates as a basis, it can
compute spin--orbit interaction matrix elements, diagonalize
the resulting matrix, and compute various matrix elements over
the resulting set of spin--orbit eigenstates.

If only matrix
elements of some one-electron operator(s), such as the dipole
transition moments, are required, the calculation of Hamiltonian
matrix elements and the transformation to the eigenbasis of this
matrix can be skipped. However, if any states have the same symmetry
and different orbitals, it is desirable to use the transitions strengths
as computed between properly non-interacting and orthonormal states.
The reason is that the individually optimized RASSCF states are
interacting and non-orthogonal, and the main error in the computed
transition matrix elements is the difference in electronic dipole
moment times the overlap of any two states involved. For excited
states, the overlap is often in the order of 10%.

Please note: Due to the increasing number of calculations done with
a hundred input states, or more, there has been a demand to change
the output. Until |molcas| 6.2, the default assumption has been to print
all expectation values and matrix elements that can be computed from
the selection of one-electron integrals. From 6.4, this is requested by
keywords, see the keyword list below for :kword:`XVIN`, :kword:`XVES`, :kword:`XVSO`, :kword:`MEIN`,
:kword:`MEES`, and :kword:`MESO`.

Apart from computing oscillator strengths, overlaps and Hamiltonian
matrix elements can be used to compute :index:`electron transfer rates <single: Electron transfer rate>`, or
to form :index:`quasi-diabatic states <single: Quasi-diabatic states>` and reexpress matrix elements over a
basis of such states.

The CSF space of a RASSCF wave function is closed under deexcitation.
For any given pair of RASSCF wave functions, this is used in the
way described in reference :cite:`Malmqvist:86` to allow the pair of orbital
sets to be transformed to a biorthonormal pair, while simultaneously
transforming the CI expansion coefficients so that the wave functions
remain unchanged. The basic principles are the same as in the earlier
program :cite:`Malmqvist:89`, but is adapted to allow RASSCF as well as
CASSCF wave functions. It uses internally a Slater determinant
expansion. It can now use spin-dependent operators,
including the AMFI spin--orbit operator, and can compute matrix elements
over spin--orbit states, i.e. the eigenstates of the sum of the
spin-free hamiltonian and the spin--orbit operator.

One use of the RASSI eigenstates is to resolve ambiguities due
to the imperfect description of highly excited states.
Association between individually optimized states and the exact
electronic eigenstates is often not clear, when the calculation
involves several or many excited states. The reason is that the
different states each use a different set of orbitals. The State
Interaction calculation gives an unambiguous set of non-interacting and
orthonormal eigenstates to the projected Schrödinger equation, and
also the overlaps between the original RASSCF wave functions and the
eigenstates. The latter is a very efficient diagnostic, since it
describes the RASSCF states in terms of one single wave-function basis
set.

.. index::
   single: RASSCF; Multiple solutions

To make the last point clear, assume the following situation:
We have
performed three RASSCF calculations, one where we optimize for the
lowest state, one for the first excited state, and one for the 2nd
excited state in the same symmetry. The active orbitals are fairly
much mixed around, so a simple inspection of the CI coefficient is
insufficient for comparing the states. Assume that for each state, we
have calculated the three lowest CI roots. It can now happen, that the
2nd root of each calculation is a fair approximation to the exact 2nd
eigenstate, and the same with the 3rd, or possibly that the order gets
interchanged in one or two of the calculation. In that case, a RASSI
calculation with these 9 states will give three improved solutions
close to the original ones, and of course 6 more that are considered
to be the removed garbage. The overlaps will confirm that each of the
input states consists mainly of one particular out of the three lowest
eigenstates. This situation is the one we usually assume, if no
further information is available.

However, it happens that the active orbitals of the three calculations
do not span approximately the same space. The orbital optimization
procedure has made a qualitatively different selection of correlating
orbitals for the three different calculation. Then the :program:`RASSI`
calculation may well come out with 4 lowest roots that overlap
strongly with the original RASSCF states. This may change the
assignments and may also give valuable information about the
importance of some state. The natural orbitals of the eigenstates will
show that the active space used in the RASSCF was in some way
inappropriate.

Another bothersome situation is also solved by the RASSI method. The
analysis of the original states in terms of RASSI eigenstates may
reveal that the three optimized RASSCF states consists mainly of TWO
low RASSI eigenstates! This is because the RASSCF optimization
equations are non-linear and may sometimes offer spurious extra
solutions. Two of the calculations are in this case to be regarded
qualitatively, as two different (local) solutions that
approximate (imperfectly) the same excited state. Also in this case, the
natural orbitals will probably offer a clue to how to get rid of the
problem. Extra solutions rarely occur for low states in CASSCF
calculations, provided a generous active space can be afforded.
Problems occur when the active space is too small, and in
particular with general RASSCF calculations.

A further application is the preparation of a suitable orbital basis
for a subsequent CI calculation. Note that such an application also
allows the use of badly converged RASSCF wave functions, or of RASSCF
wave functions containing multiple minima solutions close to a common
exact eigenstate. In effect, the :program:`RASSI` program cleans up the situation
by removing the errors due to bad convergence (pushing the errors into
a garbage part of the spectrum). This requires that the set of input
states (9 in this example) provides flexibility enough to remove at
least a major part of the error. As one would expect, this is usually
true: The erratic non-convergent, or the too slowly convergent, error
mode is to a large extent spanned by the few lowest RASSCF wave
functions.

Finally, there are situations where there is no problem to obtain
adiabatic RASSCF solutions, but where it is still imperative to use
RASSI natural orbitals in a subsequent CI. Consider the case of
transition metal chemistry, where there is in general two or more
electronic states involved. These states are supposed to interact
strongly, at least within some range of interatomic distances. Here,
an MCSCF solution, such as RASSCF, will have at least two very
different solutions, one associated with each configuration of the
transition metal atom. Using one set of orbitals, one electronic state
has a reasonably described potential energy curve, while other states
get pushed far up in energy. Using another set of orbitals, another
state gets correctly described. In no calculation with a single
orbital set do we obtain the avoided crossings, where one switches
from one diabatic state to another. The only way to accomplish this is
via a RASSI calculation. In this case, it is probably necessary also to
shift the energies of the RASSCF states to ensure that the crossing
occur at the correct places. The shifts can be determined by
correcting the atomic spectrum in the separated-atoms limit.

Note, however, that most of the problems described above can be
solved by performing state-averaged RASSCF calculations.

.. In the latest version of |molcas|, derivatives of transition dipole moments
   have been added to RASSI :cite:`Bernhardsson:99b`. The derivatives are
   calculated as the matrix element of the product of the (CI/orbital)
   rotation operator and the dipole moment operator.

.. index::
   pair: Dependencies; RASSI

.. _UG\:sec\:rassi_dependencies:

Dependencies
------------

The :program:`RASSI` program needs one or more :file:`JOBIPH` files produced
by the :program:`RASSCF` program. Also, it needs a :file:`ONEINT` file from
:program:`SEWARD`, with overlap integrals and any one-electron
property integrals for the requested matrix elements. If Hamiltonian
matrix elements are used, also the :file:`ORDINT` file is needed.

.. For derivatives the :program:`RASSI` needs the :file:`MCKINT` file
   produced by :program:`MCKINLEY` and :program:`MCLR` containing
   the derivatives of the dipole operator and the orbital rotations and the
   state transfer operators.

   The existence of a file with the name :file:`MCKINT1` will automatically
   change :program:`RASSI` to from ordinary calculation of state interaction
   properties, to calculation of derivatives of state interaction properties,
   like transition dipole derivatives and non adiabatic coupling constants.

   It is important that if derivatives of state interaction properties should
   be calculated, the expansion center for that property must be (0,0,0).
   For derivatives of transition dipole moments, the following keyword has to be
   added to the :program:`SEWARD` input. ::

     Center= 1; 1 0.0 0.0 0.0

.. index::
   pair: Files; RASSI

.. _UG\:sec\:rassi_files:

Files
-----

Input files
...........

.. class:: filelist

:file:`ORDINT*`
  Ordered two-electron integral file produced by the :program:`SEWARD`
  program. In reality, this is up to 10 files in a multi-file system,
  named ORDINT, ORDINT1,...,ORDINT9. This is necessary on some platforms
  in order to store large amounts of data.

:file:`ONEINT`
  The one-electron integral file from :program:`SEWARD`

:file:`JOBnnn`
  A number of :file:`JOBIPH` files from different :program:`RASSCF` jobs.
  An older naming convention assumes file names :file:`JOB001`, :file:`JOB002`, etc. for these files.
  They are automatically linked to default files named :file:`$Project.JobIph`,
  :file:`$Project.JobIph01`, :file:`$Project.JobIph02`, etc. in directory :file:`$WorkDir`,
  unless they already exist as files or links before the program starts.
  You can set up such links yourself, or else you can specify file names
  to use by the keyword :kword:`IPHNames`.

:file:`JOBIPHnn`
  A number of :file:`JOBIPH` files from different :program:`RASSCF` jobs.
  The present naming convention assumes file names JOBIPH, JOBIPH01, etc. for
  such files, when created by subsequent :program:`RASSCF` runs, unless
  other names were specified by input.
  They are automatically linked to default files named :file:`$Project.JobIph`,
  :file:`$Project.JobIph01`, :file:`$Project.JobIph02`, etc. in directory :file:`$WorkDir`,
  unless they already exist as files or links before the program starts.
  You can set up such links yourself, or else you can specify file names
  to use by the keyword :kword:`IPHNames`.

  .. :file:`MCKINTn`
       A number of :file:`MCKINT` files from different Single state calculations.
       The numbering of the MCKINTn files should be the same as the
       numbering of JOBnnn files, files with the same number should correspond to
       the same state.

Output files
............

.. class:: filelist

:file:`SIORBnn`
  A number of files containing natural orbitals, (numbered sequentially as
  :file:`SIORB01`, :file:`SIORB02`, etc.)

:file:`BIORBnnmm`
  A number of files containing binatural orbitals for the transition between
  states ``nn`` and ``mm``. Each such file contains pairs of orbitals, in the same format
  as the :math:`\alpha` and :math:`\beta` components of UHF orbitals. The file for transition
  to state ``nn``\ =2 from state ``mm``\ =1 will be named :file:`BIORB.2_1`.

:file:`TOFILE`
  This output is only created if :kword:`TOFIle` is given in the input.
  It will contain the transition density matrix computed by :program:`Rassi`.
  Currently, this file is only used as input to :program:`QmStat`.

:file:`EIGV`
  Like :file:`TOFILE` this file is only created if :kword:`TOFIle` is given
  in the input. It contains auxiliary information that is picked up
  by :program:`QmStat`.

:file:`NTORB` and :file:`MD_NTO`
  This output is only created if :kword:`NTOCalc` is given in the input. The files
  will contain natural transition orbitals in INPORB (:file:`NTORB`) and Molden (:file:`MD_NTO`) formats.

  .. :file:`UNSYM`
       The derivative of the transition dipole moment desymmetrized.

.. index::
   pair: Input; RASSI

.. _UG\:sec\:rassi_input:

Input
-----

This section describes the input to the
:program:`RASSI` program in the |molcas| program system,
with the program name: ::

  &RASSI

When a keyword is followed by additional mandatory lines of input,
this sequence cannot be interrupted by a comment line. The first 4
characters of keywords are decoded. An unidentified keyword makes the
program stop.

.. index::
   pair: Keywords; RASSI

Keywords
........

.. :kword:`CHOLesky`
     :program:`RASSI` will use Cholesky (or RI/DF) representation of the two-electron integrals to compute
     the corresponding contributions to the Fock matrices and to perform the MO integral transformations.
     The default (LK) algorithm is used. The configuration may be tailored using the ChoInput section.
     Default is to not use Cholesky unless the Cholesky (or RI/DF) representation of the two-electron
     integrals has been produced by :program:`SEWARD`.

..   .. xmldoc:: %%Keyword: Cholesky <basic>
                 Use of Cholesky (or RI/DF) representation for the two-electron integrals
                 with default RASSI settings.

.. class:: keywordlist

:kword:`CHOInput`
  This marks the start of an input section for modifying
  the default settings of the Cholesky RASSI.
  Below follows a description of the associated options.
  The options may be given in any order,
  and they are all optional except for
  :kword:`ENDChoinput` which marks the end of the :kword:`CHOInput` section.

  .. xmldoc:: <GROUP MODULE="RASSI" NAME="CHOINPUT" APPEAR="Cholesky input section" KIND="BLOCK" LEVEL="ADVANCED">
              %%Keyword: Choinput <advanced>
              <HELP>
              Manually modify the settings of the Cholesky RASSI.
              </HELP>

  * :kword:`NoLK`
    Available only within ChoInput. Deactivates the "Local Exchange" (LK) screening algorithm :cite:`Aquilante:07a` in computing
    the Fock matrix. The loss of speed compared to the default algorithm can be substantial, especially for electron-rich systems.
    Default is to use LK.

    .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="NOLK" APPEAR="Turn Off LK screening" LEVEL="ADVANCED" KIND="SINGLE">
                %%Keyword: NoLK <advanced>
                <HELP>
                Deactivates LK screening.
                </HELP>
                </KEYWORD>

    .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="LOCK" LEVEL="UNDOCUMENTED" KIND="SINGLE" />

  * :kword:`DMPK`
    Available only within ChoInput. Modifies the thresholds used in the LK screening.
    The keyword takes as argument a (double precision) floating point (non-negative) number used
    as correction factor for the LK screening thresholds.
    The default value is 1.0d-1. A smaller value results in a slower but more accurate calculation.

    **Note:** the default choice of the LK screening thresholds is tailored to achieve as much as possible an
    accuracy of the RASSI energies consistent with the choice of the Cholesky decomposition
    threshold.

    .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="DMPK" APPEAR="Damping for LK" LEVEL="ADVANCED" KIND="REAL" EXCLUSIVE="NOLK">
                %%Keyword: DMPK <advanced>
                <HELP>
                Modifies the thresholds used in the LK screening.
                The default value is 1.0d-1. A smaller value results in a slower but more accurate calculation.
                </HELP>
                </KEYWORD>

    .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="ALGORITHM" LEVEL="UNDOCUMENTED" KIND="INT" />

  * :kword:`NODEcomposition`
    Available only within ChoInput. The inactive Exchange contribution to the Fock matrix is computed using inactive canonical orbitals
    instead of (localized) "Cholesky MOs".
    This choice is effective only in combination with the LK screening.
    Default is to use Cholesky MOs. **Note:** the Cholesky MOs in RASSI are computed by decomposing the
    density type supermatrix :math:`\mat{D}=(\mat{C}_A, \mat{C}_B)(\mat{C}_A, \mat{C}_B)^{\text{T}}` where :math:`\mat{C}` is the corresponding canonical
    MOs matrix for the state :math:`A` and :math:`B`.

    .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="NODE" APPEAR="Turn Off density decomposition" LEVEL="ADVANCED" KIND="SINGLE">
                %%Keyword: NODE <advanced>
                <HELP>
                The inactive Exchange contribution to the Fock matrix is computed using inactive canonical orbitals
                instead of (localized) "Cholesky MOs".
                </HELP>
                </KEYWORD>

  * :kword:`PSEUdo`
    When computing the coupling between 2 different
    states A and B, only for the first state we use pure Cholesky MOs. The invariance of the Fock matrix
    is then ensured by rotating the orbitals of B according to the orthogonal matrix defined in A
    through the Cholesky localization. These orbitals used for B are therefore called "pseudo Cholesky MOs".

    .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="PSEU" APPEAR="Use PseudoCholesky orbitals" LEVEL="ADVANCED" KIND="SINGLE">
                %%Keyword: PSEU <advanced>
                <HELP>
                The inactive Exchange contribution to the Fock matrix is computed using pseudo Cholesky orbitals.
                </HELP>
                </KEYWORD>

    .. xmldoc:: </GROUP>

  * :kword:`TIME`
    Activates printing of the timings of each task of the Fock matrix build.
    Default is to not show these timings.

  * :kword:`MEMFraction`
    Set the fraction of memory to use as global Cholesky vector buffer.
    Default: for serial runs 0.0d0; for parallel runs 0.3d0.

:kword:`MEIN`
  Demand for printing matrix elements of all selected one-electron
  properties, over the input RASSCF wave functions.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="MEIN" APPEAR="RASSCF matrix elements" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: MEIN <basic>
              <HELP>
              Demand for printing matrix elements of all selected one-electron
              properties, over the input RASSCF wave functions.
              </HELP>
              </KEYWORD>

:kword:`MEES`
  Demand for printing matrix elements of all selected one-electron
  properties, over the spin-free eigenstates.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="MEES" APPEAR="spin-free matrix elements" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: MEES <basic>
              <HELP>
              Demand for printing matrix elements of all selected one-electron
              properties, over the spin-free eigenstates.
              </HELP>
              </KEYWORD>

:kword:`MESO`
  Demand for printing matrix elements of all selected one-electron
  properties, over the spin--orbit states.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="MESO" APPEAR="SO matrix elements" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: MESO <basic>
              <HELP>
              Demand for printing matrix elements of all selected one-electron
              properties, over the spin-orbit states.
              </HELP>
              </KEYWORD>

  .. :kword:`PRINT`
     Set individual print levels for various subroutines of the code, mainly
     for debugging purposes.
     This keyword requires an entry with number of name,value
     pairs, with the same format as that used for the PROP input. The names
     are subroutine names, and each value is the print level setting for that
     subroutine.

  .. .. xmldoc:: %%Keyword: Print <advanced>
                 Set individual print levels for various subroutines of the code.

:kword:`PROPerty`
  Replace the default selection of one-electron operators, for which
  matrix elements and expectation values are to be calculated, with a
  user-supplied list of operators.

  .. compound::

    From the lines following the keyword the selection list is
    read by the following *FORTRAN* code: ::

      READ({*},{*}) NPROP,(PNAME(I),ICOMP(I),I=1,NPROP)

    NPROP is the number of selected properties, PNAME(I) is a
    character string with the label of this operator on :program:`SEWARD`'s
    one-electron integral file, and ICOMP(I) is the component number.

  The default selection is to use dipole and/or velocity integrals, if
  these are available in the :file:`ONEINT` file. This choice is replaced by the
  user-specified choice if the :kword:`PROP` keyword is used.
  Note that the character strings are read using list directed input and
  thus must be within single quotes, see sample input below.
  For a listing of presently available operators, their labels, and
  component conventions, see
  :program:`SEWARD` program description.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="PROPERTY" APPEAR="Properties" KIND="CUSTOM" LEVEL="BASIC">
              %%Keyword: Property <basic>
              <HELP>
              Enter a user-supplied selection of one-electron operators, for which
              matrix elements and expectation values are to be calculated. Without
              this keyword and list, the default choice is to use every operator,
              for which the one-electron integral file supplies integrals.
              </HELP>
              </KEYWORD>

:kword:`SOCOupling`
  Enter a positive threshold value. Spin--orbit interaction matrix
  elements over the spin components of the spin-free eigenstates
  will be printed, unless smaller than this threshold.
  The value is given in cm\ :math:`^{-1}` units. The keyword is
  ignored unless an SO hamiltonian is actually computed.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="SOCOUPLING" APPEAR="Spin-orbit coupling threshold" KIND="REAL" LEVEL="BASIC">
              %%Keyword: SOCoupling <basic>
              <HELP>
              Enter a positive threshold value. Spin-orbit interaction matrix
              elements over the spin components of the spin-free eigenstates
              will be printed, unless smaller than this threshold.
              The value is given in cm^-1 units. The keyword is ignored unless
              an SO hamiltonian is actually computed.
              </HELP>
              </KEYWORD>

:kword:`SOPRoperty`
  Enter a user-supplied selection of one-electron operators, for which
  matrix elements and expectation values are to be calculated over the
  spin--orbit eigenstates. This keyword has no effect unless the
  :kword:`SPIN` keyword has been used. Format: see :kword:`PROP` keyword.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="SOPROPERTY" APPEAR="SO Properties" KIND="CUSTOM" LEVEL="BASIC">
              %%Keyword: SOProperty <basic>
              <HELP>
              Enter a selection of one-electron operators, for which
              matrix elements and expectation values are to be calculated over the
              spin-orbit eigenstates. This keyword has no effect unless the
              SPIN keyword has been used. Format: see PROP keyword.
              </HELP>
              </KEYWORD>

:kword:`SPINorbit`
  Spin--orbit interaction matrix elements will be computed. Provided that
  the :kword:`ONEL` keyword was not used, the resulting Hamiltonian including the
  spin--orbit coupling, over a basis consisting of all the spin components
  of wave functions constructed using the spin-free eigenstates, will be
  diagonalized. NB: For this keyword to have any effect, the SO integrals
  must have been computed by :program:`SEWARD`! See :kword:`AMFI` keyword in :program:`SEWARD` documentation.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="SPIN" APPEAR="spin-orbit calc." KIND="SINGLE" LEVEL="BASIC">
              %%Keyword: Spinorbit <basic>
              <HELP>
              Spin-orbit interaction matrix elements will be computed and the resulting
              Hamiltonian including will be diagonalized.
              NB: For this keyword to have any effect, the SO integrals
              must have been computed by SEWARD (AMFI integrals)!
              </HELP>
              </KEYWORD>

:kword:`ONEL` or :kword:`ONEE`
  The two-electron integral file will not be accessed. No Hamiltonian
  matrix elements will be calculated, and only matrix elements for the
  original RASSCF wave functions will be calculated.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="ONEL" APPEAR="One-electron properties only" KIND="SINGLE" LEVEL="BASIC" ALSO="ONEE">
              %%Keyword: Onel <basic>
              <HELP>
              The two-electron integral file will not be accessed. No hamiltonian
              matrix elements will be calculated. Non-interacting states will not
              be formed.
              </HELP>
              Onee is a valid synonym for this keyword.
              </KEYWORD>

:kword:`J-VAlue`
  For spin--orbit calculations with single atoms, only: The output lines
  with energy for each spin--orbit state will be annotated with the
  approximate J and Omega quantum numbers.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="J-VALUE" APPEAR="J-Value" KIND="SINGLE" LEVEL="BASIC">
              %%Keyword: J-Value <basic>
              <HELP>
              For spin-orbit calculations with single atoms, only: The output lines
              with energy for each spin-orbit state will be annotated with the
              approximate J quantum number.
              </HELP>
              </KEYWORD>

:kword:`OMEGa`
  For spin--orbit calculations with linear molecules, only: The output lines
  with energy for each spin--orbit state will be annotated with the
  approximate Omega quantum number.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="OMEGA" APPEAR="Omega-Value" KIND="SINGLE" LEVEL="BASIC">
              %%Keyword: Omega <basic>
              <HELP>
              For spin-orbit calculations on linear molecules, only: The output lines
              with energy for each spin-orbit state will be annotated with the
              approximate Omega quantum number.
              </HELP>
              </KEYWORD>

:kword:`NROF jobiphs`
  Number of
  :file:`JOBIPH` files used as input. This keyword should be
  followed by the number of
  states to be read from each :file:`JOBIPH`. Further, one line per
  :file:`JOBIPH` is required with a list of the states to be
  read from the particular file. See sample input below.
  Alternatively, the first line can contain the number of :file:`JOBIPH` used
  as input followed by the word "``ALL``", indicating that all states
  will be taken from each file. In this case no further lines are required.
  For :file:`JOBIPH` file names, see the Files section.
  Note: If this keyword is missing, then by default all files named ":file:`JOB001`",
  ":file:`JOB002`", etc. will be used, and all states found on these files will be
  used.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="NROFJOBIPHS" APPEAR="Input states from JOBIPHs" KIND="CUSTOM" LEVEL="BASIC" ALSO="NR OF JOBIPHS">
              %%Keyword: NrOf <basic>
              <HELP>
              Number of JOBIPH files used as input, followed by a list of
              the number of states to read from each JOBIPH, and finally,
              for each JOBIPH a list of which states to select.
              </HELP>
              </KEYWORD>

:kword:`SUBSets`
  In many cases, RASSI is used to compute the transition moments between
  a set of initial states (for example the ground state) and a set of final states.
  This keyword allows to restrict the computation of transition moments between the two sets
  and not within each set, thus saving time and reducing the output size.
  This also affects data written to :file:`rassi.h5`.
  The keyword is followed by the index where the two sets split (assuming energy ordering).
  For a calculation between one ground state and several excited states, :kword:`SUBSets` should be 1.
  Default is to compute the transition moments between all states.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="SUBSETS" APPEAR="Subsets" KIND="INT" LEVEL="BASIC">
              %%Keyword: Subsets <basic>
              <HELP>
              Restricts the computation of transition moments to be only between
              two sets of states, and not also within each set.
              The keyword is followed by the number of states
              in the first set (assuming energy ordering).
              </HELP>
              </KEYWORD>

:kword:`IPHNames`
  Followed by one entry for each :file:`JOBIPH` file to be used, with the
  name of each file. Note: This keyword presumes that the number of
  :file:`JOBIPH` files have already been entered using keyword :kword:`NROF`.
  For default :file:`JOBIPH` file names, see the Files section.
  The names will be truncated to 8 characters and converted to uppercase.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="IPHNAMES" APPEAR="JobIph names" KIND="STRINGS_LOOKUP" SIZE="NROFJOBIPHS" LEVEL="BASIC">
              %%Keyword: IPHNames <basic>
              <HELP>
              Followed by one entry for each JOBIPH file to be used, with the
              name of each file. Note: This keyword presumes that the number of
              JOBIPH files have already been entered using keyword NROF.
              The names will be truncated to 8 characters and converted to uppercase.
              </HELP>
              </KEYWORD>

  .. :kword:`NACMe`
       Switch from calculations of transition dipole moment to calculation of
       non adiabatic coupling constants. Only valid if :file:`MCKINT1` file exist.

       .. .. xmldoc:: %%Keyword: NACM <advanced>
                      For computing non-adiabatic coupling matrix elements. This requires
                      that a MCKINT1 file exist. After this keyword should follow a list
                      of energy shifts, one for each wave function. Such shifts are
                      usually needed in order to ensure that energy crossings occur where
                      they should. Note: this keyword must not precede the NROF input.

:kword:`SHIFt`
  The next entry or entries gives an energy shift for each wave function,
  to be added to diagonal elements of the Hamiltonian matrix.
  This may be necessary e.g. to ensure that an energy crossing occurs
  where it should. NOTE: The number of states must be known
  (See keyword :kword:`NROF`) before this input is read.
  In case the states are not orthonormal, the actual quantity added to
  the Hamiltonian is ``0.5D0*(ESHFT(I)+ESHFT(J))*OVLP(I,J)``. This is necessary
  to ensure that the shift does not introduce artificial interactions.
  :kword:`SHIFT` and :kword:`HDIAG` can be used together.

  .. xmldoc:: %%Keyword: Shift <basic>
              The next entry or entries gives an energy shift for each wave function,
              to be added to diagonal elements of the Hamiltonian matrix.

:kword:`HDIAg`
  The next entry or entries gives an energy for each wave function,
  to replace the diagonal elements of the Hamiltonian matrix.
  Non-orthogonality is handled similarly as for the :kword:`SHIFT` keyword.
  :kword:`SHIFT` and :kword:`HDIAG` can be used together.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="HDIAG" APPEAR="Diagonal elements" KIND="REALS_COMPUTED" SIZE="1" LEVEL="BASIC">
              %%Keyword: HDiag <basic>
              <HELP>
              Enter an energy for each spin-free wave function,
              to replace the diagonal elements of the Hamiltonian matrix.
              For example to use CASPT2 shifted energies in the diagonal.
              </HELP>
              </KEYWORD>

:kword:`NATOrb`
  The next entry gives the number of eigenstates for which natural
  orbitals will be computed. They will be written, formatted, commented,
  and followed by natural occupancy numbers, on one file each state.
  For file names, see the Files section.
  The format allows their use as standard orbital input files to
  other |molcas| programs.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="NATORB" APPEAR="Natural Orbitals" KIND="INT" LEVEL="BASIC">
              %%Keyword: NatOrb <basic>
              <HELP>
              Enter the number of eigenstates for which natural orbitals should
              be computed and written to file. These will be written together with
              natural occupation numbers in the usual format used by MOLCAS.
              </HELP>
              </KEYWORD>

:kword:`BINAtorb`
  The next entry gives the number of transitions for which binatural
  orbitals will be computed. Then a line should follow for each transition,
  with the two states involved. The orbitals and singular values provide a
  singular value decomposition of a transition density matrix :cite:`Malmqvist:2012`.
  The bra and ket orbitals are written followed by the singular values in the
  usual UHF format used by other |molcas| programs.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="BINATORB" APPEAR="Binatural Orbitals" KIND="INTS_COMPUTED" SIZE="2" LEVEL="BASIC">
              %%Keyword: BiNatOrb <basic>
              <HELP>
              Enter the number of transitions, for which binatural orbitals should
              be computed and written to file. Then a line should follow with the two
              states for each transition. The ket and the bra orbitals are written
              followed by the singular values in the the usual format used by MOLCAS.
              </HELP>
              </KEYWORD>

:kword:`ORBItals`
  Print out the Molecular Orbitals read from each
  :file:`JOBIPH` file.

  .. xmldoc:: %%Keyword: Orbitals <advanced>
              Print out the molecular orbitals read from each JOBIPH file.

:kword:`OVERlaps`
  Print out the overlap integrals between the various orbital sets.

  .. xmldoc:: %%Keyword: Overlaps <advanced>
              Print out the overlap integrals between the various orbital sets.

:kword:`CIPRint`
  Print out the CI coefficients read from
  :file:`JOBIPH`.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="CIPRINT" APPEAR="Print input CI coeff." KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: CIPrint <advanced>
              <HELP>
              Print out the CI coefficients read from JOBIPH.
              </HELP>
              </KEYWORD>

:kword:`THRS`
  The next line gives the threshold for printing CI coefficients. The
  default value is 0.05.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="THRS" APPEAR="Threshold for CI coeff." KIND="REAL" LEVEL="ADVANCED">
              %%Keyword: Thrs <advanced>
              <HELP>
              Enter the threshold for printing CI coefficients. Default 0.05.
              </HELP>
              </KEYWORD>

:kword:`CIH5`
  Add CI coefficients and occupation vectors in Slater determinant basis as well as
  molecular orbitals (both original and biorthonormally transformed) to the HDF5 file.
  If coupled with :kword:`CIPRint` and :kword:`ORBItals` keywords print them also to output file.
  Needed for the interface to :program:`SCAMPI` program.
  Note that it can be enabled only if no more than two :file:`JOBIPH` files are computed at a time.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="CIH5" APPEAR="Put additional CI info to HDF5" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: CIH5 <advanced>
              <HELP>
              Add CI coefficients and occupation vectors in Slater determinant basis as well as
              molecular orbitals (both original and transformed) to the HDF5 file.
              </HELP>
              </KEYWORD>

:kword:`DIPRint`
  The next entry gives the threshold for printing dipole intensities.
  Default is 1.0D-5.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="DIPR" APPEAR="Threshold dipole intensities" KIND="REAL" MIN_VALUE="0.0" DEFAULT_VALUE="1.0D-5" LEVEL="ADVANCED">
              %%Keyword: DIPR <advanced>
              <HELP>
              Enter the threshold for printing dipole intensities.
              Default is 1.0D-5.
              </HELP>
              </KEYWORD>

:kword:`QIPRint`
  The next entry gives the threshold for printing quadrupole intensities.
  Default is 1.0D-5.
  Will overwrite any value chosen for dipole intensities.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="QIPR" APPEAR="Threshold quadrupole intensities" KIND="REAL" MIN_VALUE="0.0" DEFAULT_VALUE="1.0D-5" LEVEL="ADVANCED">
              %%Keyword: QIPR <advanced>
              <HELP>
              Enter the threshold for printing quadrupole intensities.
              Default is 1.0D-5.
              Will overwrite any value chosen for dipole intensities.
              </HELP>
              </KEYWORD>

:kword:`RSPR`
  The next entry gives the threshold for printing reduced rotatory strength intensities.
  Default is 1.0D-7.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="RSPR" APPEAR="Threshold for reduced rotatory strength intensities" KIND="REAL" MIN_VALUE="0.0" DEFAULT_VALUE="1.0D-7" LEVEL="ADVANCED">
              %%Keyword: RSPR <advanced>
              <HELP>
              Enter the threshold for printing reduced rotatory strength.
              Default is 1.0D-7.
              </HELP>
              </KEYWORD>

:kword:`QIALL`
  Print all quadrupole intensities.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="QIALL" APPEAR="Print all quadrupole intensities" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: QIALL <advanced>
              <HELP>
              Print all quadrupole intensities.
              </HELP>
              </KEYWORD>

:kword:`CD`
  Compute rotatory strengths (for circular dichroism) from the multipole expansion of transition moments.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="CD" APPEAR="Circular dichroism" KIND="SINGLE" LEVEL="BASIC">
              %%Keyword: CD <basic>
              <HELP>
              Compute rotatory strengths from the multipole expansion of transition moments.
              </HELP>
              </KEYWORD>

:kword:`TINTensities`
  Activate the computation of transition intensities (oscillator strengths and rotatory strengths) using the
  non-relativistic Hamiltonian with the explicit Coulomb-field vector operator (:math:`A`) in
  the weak field approximation.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="TINT" APPEAR="Transition intensities (exponential)" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: TINTensities <advanced>
              <HELP>
              Activate the computation of transition intensities (oscillator strengths and rotatory strengths) using the
              non-relativistic Hamiltonian with the explicit Coulomb-field vector operator (A) in
              the weak field approximation.
              </HELP>
              </KEYWORD>

:kword:`TIGRoup`
  Group the states close in energy for the purpose of computing transition intensities wi the exponential operator
  (:kword:`TINTensities` keyword). A single wave vector will be used for all transitions to the states in the group.
  This is a good approximation when the energy difference between the states in a group is negligible with respect
  to the energy of the transition. The keyword reads a real value, that is the maximum relative difference for
  transitions in a group with respect to the average energy.
  This keyword requires the use of :kword:`SUBSets` and :kword:`TINTensities`.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="TIGROUP" KIND="REAL" LEVEL="ADVANCED" REQUIRE="SUBSETS,TINT">
              %%Keyword: TIGRoup <advanced>
              <HELP>
              Group states close in energy for computing transition intensities with the exponential operator
              (TINTensities keyword). Specify a real value as the grouping threshold, relative to the average
              transition energy to a group. Requires SUBSets and TINTensities.
              </HELP>
              </KEYWORD>

:kword:`IIORder`
  Set the order of the Lebedev grids used in the isotropic integration of transition intensities
  in association with the :kword:`TINT` option. Default value is 5, the maximum is 131.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="IIORDER" APPEAR="Isotropic integration order" KIND="INT" MIN_VALUE="3" MAX_VALUE="131" DEFAULT_VALUE="5" LEVEL="ADVANCED">
              %%Keyword: IIORder <advanced>
              <HELP>
              Set the order of the Lebedev grids used in the isotropic integration of transition intensities
              in association with the TINT option. Default value is 5, the maximum is 131.
              </HELP>
              </KEYWORD>

:kword:`PRRAw`
  Print the raw directions for the exact semi-classical intensities (see the :kword:`TINT` keyword).

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="PRRA" APPEAR="Print raw directions" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: PRRAw <advanced>
              <HELP>
              Print the raw directions for the exact semi-classical intensities
              </HELP>
              (see the TINT keyword).
              </KEYWORD>

:kword:`PRWEighted`
  Print the weighted directions for the exact semi-classical intensities (see the :kword:`TINT` keyword).

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="PRWE" APPEAR="Print weighted directions" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: PRWEighted <advanced>
              <HELP>
              Print the weighted directions for the exact semi-classical intensities
              </HELP>
              (see the TINT keyword).
              </KEYWORD>

:kword:`DIREction`
  Define the direction of the incident light for which we will
  compute transition moments and oscillator strengths. The keyword
  is followed by an integer :math:`n`, the number of directions,
  and then :math:`n` lines with three real numbers each specifying the direction. The values
  do not need to be normalized.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="DIRECTION" APPEAR="Direction of propagation" KIND="REALS_COMPUTED" SIZE="3" LEVEL="ADVANCED">
              %%Keyword: DIREction <advanced>
              <HELP>
              Define the direction of the incident light for which we will
              compute transition moments and oscillator strengths. The keyword
              is followed by an integer n, the number of directions,
              and then n lines with three real numbers each specifying the direction. The values
              do not need to be normalized.
              </HELP>
              </KEYWORD>

:kword:`POLArization`
  Define the direction of the polarization of the incident light, see :kword:`DIREction`.
  The keyword is followed by three real numbers specifying the components of a vector (not necessarily normalized),
  the polarizarion direction is defined by orthogonalizing this vector with each vector specified in :kword:`DIREction`.
  Currently, this keyword only works with the oscillator strengths computed with the :kword:`TINTensities` keyword.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="POLARIZATION" APPEAR="Direction of polarization" KIND="REALS" SIZE="3" REQUIRE="DIRECTION,TINT" LEVEL="ADVANCED">
              %%Keyword: POLArization <advanced>
              <HELP>
              Define the direction of the polarization of the incident light, see DIREction.
              The keyword is followed by three real numbers specifying the components of a vector (not necessarily normalized),
              the polarizarion direction is defined by orthogonalizing this vector with each vector specified in DIREction.
              Currently, this keyword only works with the oscillator strengths computed with the TINTensities keyword.
              </HELP>
              </KEYWORD>

:kword:`RFPErt`
  :program:`RASSI` will read from :file:`RUNOLD` (if not present defaults to :file:`RUNFILE`) a response field contribution
  and add it to the Fock matrix.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="RFPE" APPEAR="Response field" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: Rfpe <basic>
              <HELP>
              RASSI will read from RUNOLD (if not present defaults to RUNFILE) a response field contribution
              and add it to the Fock matrix.
              </HELP>
              </KEYWORD>

:kword:`HCOM`
  The spin-free Hamiltonian is computed.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="HCOMPUTE" APPEAR="Computed Hamiltonian" KIND="SINGLE" LEVEL="BASIC">
              %%Keyword: HCom <basic>
              <HELP>
              The spin-free Hamiltonian is computed.
              </HELP>
              </KEYWORD>

:kword:`HEXT`
  It is read from the following few lines, as a triangular matrix: One element
  of the first row, two from the next, etc., as list-directed input of reals.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="HEXT" APPEAR="External Hamiltonian" KIND="UNKNOWN" LEVEL="ADVANCED">
              %%Keyword: HExt <advanced>
              <HELP>
              The spin-free Hamiltonian is read from a file instead of being computed.
              </HELP>
              It is read from the following entries, as a triangular matrix: One element
              of the first row, two from the next, etc., as list-directed input of reals.
              </KEYWORD>

:kword:`HEFF`
  A spin-free effective Hamiltonian is read from :file:`JOBIPH` instead of being computed.
  It must have been computed by an earlier program. Presently, this is done by
  a multi-state calculation using :program:`CASPT2`. In the future, other programs may add
  dynamic correlation estimates in a similar way. This keyword is not needed if the input
  file is in HDF5 format.
  Note that using :kword:`HEFF` or :kword:`EJOB` can significantly speed up the RASSI job by
  avoiding the explicit computation of the Hamiltonian.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="HEFF" APPEAR="Effective Hamiltonian" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: HEff <advanced>
              <HELP>
              A spin-free effective Hamiltonian is read from JOBIPH instead of being computed.
              It must have been computed by an earlier program. Presently, this is done by
              a multi-state calculation using CASPT2.
              </HELP>
              </KEYWORD>

:kword:`EJOB`
  The spin-free effective Hamiltonian's diagonal is filled with energies
  read from a :file:`JOBIPH` or :file:`JOBMIX` file. If an effective Hamiltonian
  is read (using :kword:`HEFF` or reading from an HDF5 file), the diagonal
  elements are taken from the stored Hamiltonian;
  this can be useful for using the SS-CASPT2 energies from a MS-CASTP2 calculation.
  The off-diagonal elements are approximated as :math:`H_{ij} \approx \frac{1}{2} S_{ij}(H_{ii}+H_{ij})`,
  where :math:`S_{ij}` is the overlap between two states; so if the input states
  are orthogonal, the effective Hamiltonian will be diagonal.
  Note that using :kword:`HEFF` or :kword:`EJOB` can significantly speed up the RASSI job by
  avoiding the explicit computation of the Hamiltonian.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="EJOB" APPEAR="Read energies from file" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: EJob <advanced>
              <HELP>
              The spin-free effective Hamiltonian's diagonal is filled with energies
              read from a JOBIPH or JOBMIX file. Off-diagonal elements are approximated
              from overlaps and diagonal.
              </HELP>
              </KEYWORD>

:kword:`TOFIle`
  Signals that a set of files with data from :program:`Rassi` should be
  created. This keyword is necessary if :program:`QmStat` is to be run
  afterwards.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="TOFILE" APPEAR="Data to file" KIND="SINGLE" LEVEL="BASIC">
              %%Keyword: TOfile <basic>
              <HELP>
              Signals that a set of files with data from Rassi should be
              created. This keyword is necessary if QmStat is to be run
              afterwards.
              </HELP>
              </KEYWORD>

:kword:`XVIN`
  Demand for printing expectation values of all selected one-electron
  properties, for the input RASSCF wave functions.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="XVIN" APPEAR="input expectation values" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: XVIN <basic>
              <HELP>
              Demand printing expectation values of all selected one-electron
              properties, for the input RASSCF wave functions.
              </HELP>
              </KEYWORD>

:kword:`XVES`
  Demand for printing expectation values of all selected one-electron
  properties, for the spin-free eigenstates.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="XVES" APPEAR="spin-free expectation values" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: XVES <basic>
              <HELP>
              Demand printing expectation values of all selected one-electron
              properties, for the spin-free eigenstates.
              </HELP>
              </KEYWORD>

:kword:`XVSO`
  Demand for printing expectation values of all selected one-electron
  properties, for the spin--orbit states.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="XVSO" APPEAR="spin-orbit expectation values" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: XVSO <basic>
              <HELP>
              Demand printing expectation values of all selected one-electron
              properties, for the spin-orbit states.
              </HELP>
              </KEYWORD>

:kword:`EPRG`
  This computes the g matrix and principal g values for the
  states lying within the energy range supplied on the next line.
  A value of 0.0D0 or negative will select only the ground state,
  a value E will select all states within energy E of the ground state.
  The states should be ordered by increasing energy in the input.
  The angular momentum and spin--orbit coupling matrix elements
  need to be available (use keywords :kword:`SPIN` and :kword:`PROP`).
  For a more detailed description see ref :cite:`EPRG:2008`.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="EPRG" APPEAR="EPR g Matrix" KIND="REAL" LEVEL="ADVANCED" REQUIRE="SPIN">
              %%Keyword: EPRg <advanced>
              <HELP>
              This computes the g matrix and principal g values for the
              states lying within the energy range supplied on the next line.
              A value of 0.0D0 or negative will select only the ground state,
              a value E will select all states within energy E of the ground state.
              The states should be ordered by increasing energy in the input.
              The angular momentum and spin-orbit coupling matrix elements
              need to be available (use keywords SPIN and PROP).
              </HELP>
              </KEYWORD>

:kword:`MAGN`
  This computes the magnetic moment and magnetic susceptibility.
  On the next two lines you have to provide the magnetic field and
  temperature data. On the first line put the number of magnetic
  field steps, the starting field (in tesla), size of the steps (in tesla),
  and an angular resolution for sampling points in case of powder magnetization
  (for a value of 0.0d0 the powder magnetization is deactivated).
  The second line reads the number of temperature steps, the starting
  temperature (K), and the size of the temperature steps (K).
  The angular momentum and spin--orbit coupling matrix elements
  need to be available (use keywords :kword:`SPIN` and :kword:`PROP`).
  For a more detailed description see ref :cite:`MAGN:2009`.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="MAGN" APPEAR="Magnetism" KIND="REAL" LEVEL="ADVANCED" REQUIRE="SPIN">
              %%Keyword: Magnetic properties <advanced>
              <HELP>
              This computes the magnetic moment and magnetic susceptibility.
              On the next two lines you have to provide the magnetic field and
              temperature data. On the first line put the number of magnetic
              field steps, the starting field (in tesla), size of the steps (in tesla),
              and an angular resolution for sampling points in case of powder magnetization
              (for a value of 0.0d0 the powder magnetization is deactivated).
              The second line reads the number of temperature steps, the starting
              temperature (K), and the size of the temperature steps (K).
              The angular momentum and spin-orbit coupling matrix elements
              need to be available (use keywords SPIN and PROP).
              For a more detailed description see J. Phys. Chem. A 113 6149.
              </HELP>
              </KEYWORD>

:kword:`HOP`
  Enables a trajectory surface hopping (TSH) algorithm which allow
  non-adiabatic transitions between electronic states during molecular
  dynamics simulation with :program:`DYNAMIX` program. The algorithm
  computes the scalar product of the amplitudes of different
  states in two consecutive steps. If the scalar product
  deviates from the given threshold a transition between the states
  is invoked by changing the root for the gradient computation.
  The current implementation is working only with SA-CASSCF.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="HOP" APPEAR="Trajectory surface hopping algorithm" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: Hop <advanced>
              <HELP>
              Allows transitions between electronic states during molecular
              dynamics simulations.
              </HELP>
              </KEYWORD>

:kword:`STOVerlaps`
  Computes only the overlaps between the input states.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="STOV" APPEAR="State overlaps" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: StOverlaps <advanced>
              <HELP>
              Computes only the overlaps between the input states.
              </HELP>
              </KEYWORD>

:kword:`TRACk`
  Tries to follow a particular root during an optimization.
  Needs two :file:`JOBIPH` files (see :kword:`NrOfJobIphs`) with the same
  number of roots. The first file corresponds to the current iteration,
  the second file is the one from the previous iteration (taken as a reference).
  With this keyword :program:`RASSI` selects the root from the first :file:`JOBIPH`
  with highest overlap with the root that was selected in the previous
  iteration. It also needs :kword:`MDRlxRoot`, rather than :kword:`RlxRoot`,
  to be specified in :program:`RASSCF`.
  No other calculations are done by :program:`RASSI` when :kword:`Track`
  is specified.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="TRACK" APPEAR="Track root" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: Track <advanced>
              <HELP>
              Tries to follow a particular root during an optimization.
              </HELP>
              </KEYWORD>

:kword:`DQVD`
  Perfoms DQΦ diabatization :cite:`Hoyer:2014fk` by using properties that are computed with :program:`RASSI`.
  Seven properties must be computed with RASSI in order for this keyword to work
  (:math:`x`, :math:`y`, :math:`z`, :math:`xx`, :math:`yy`, :math:`zz`, :math:`1/r`), they will be automatically selected with the default input
  if the corresponding integrals are available (see keywords :kword:`MULT` and :kword:`EPOT` in :program:`GATEWAY`).
  At present, this keyword also requires :kword:`ALPHa` and :kword:`BETA`, where
  :kword:`ALPHa` is the parameter in front of :math:`rr` and :kword:`BETA` is the parameter
  in front of :math:`1/r`. When :kword:`ALPHa` and :kword:`BETA` are equal to zero, this
  method reduces to Boys localized diabatization :cite:`Subotnik:2008fk`.
  At present, this method only works for one choice of origin for each quantity.

  .. See Test/input/test393.input for an example.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="DQVD" APPEAR="DQV diabatization" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: DQVD <advanced>
              <HELP>
              Diabatizes by using dipole, quadrupole, and/or electrostatic potential.
              </HELP>
              </KEYWORD>

:kword:`ALPHa`
  :kword:`ALPHa` is the prefactor for the quadrupole term in DQΦ diabatization. This
  keyword must be used in conjunction with :kword:`DQVD` and :kword:`BETA`. You must
  specify a real number (e.g. :math:`\alpha = 1.0` not :math:`\alpha = 1`).

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="ALPHA" APPEAR="Alpha parameter" KIND="REAL" LEVEL="ADVANCED" REQUIRE="DQVD">
              %%Keyword: Alpha <advanced>
              <HELP>
              Alpha parameter in front of the quadrupole term for DQΦ diabatization.
              </HELP>
              </KEYWORD>

:kword:`BETA`
  :kword:`BETA` is the prefactor for the electrostatic potential term in DQΦ diabatization. This
  keyword must be used in conjunction with :kword:`DQVD` and :kword:`ALPHa`. You must
  specify a real number (e.g. :math:`\beta = 1.0` not :math:`\beta = 1`).

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="BETA" APPEAR="Beta parameter" KIND="REAL" LEVEL="ADVANCED" REQUIRE="DQVD">
              %%Keyword: Beta <advanced>
              <HELP>
              Beta parameter in front of the electrostatic potential term for DQΦ diabatization.
              </HELP>
              </KEYWORD>

:kword:`TRDI`
  Prints out the components and the module of the transition dipole
  vector. Only vectors with sizes large than 1.0D-4 a.u. are printed.
  See also the :kword:`TDMN` keyword.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="TRDI" APPEAR="Transition dipole" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: TRDI <advanced>
              <HELP>
              Prints out the components and the size of the transition dipole
              vector. Only vectors with sizes large than 1.0D-4 a.u. are printed.
              See also the TDMN keyword.
              </HELP>
              </KEYWORD>

:kword:`TRDC`
  Prints out COMPLEX valued components of the transition dipole vector
  for spin--orbit calculations,
  otherwise functionally equivalent to :kword:`TRDI` and :kword:`TDMN`.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="TRDC" APPEAR="Transition dipole" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: TRDC <advanced>
              <HELP>
              Prints out COMPLEX valued components of the transition dipole vector for spin-orbit calculations,
              otherwise functionally equivalent to TRDI TDMN.
              </HELP>
              </KEYWORD>

:kword:`TDMN`
  Prints out the components and the module of the transition dipole
  vector. On the next line, the minimum size, in a.u., for the dipole
  vector to be printed must be given.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="TDMN" APPEAR="Transition dipole threshold" KIND="REAL" LEVEL="ADVANCED" REQUIRE="TRDI">
              %%Keyword: TDMN <advanced>
              <HELP>
              Prints out the components and the module of the transition dipole
              vector. On the next line, the minimum size, in a.u., for the dipole
              vector to be printed must be given.
              </HELP>
              </KEYWORD>

:kword:`TRD1`
  Prints the 1-electron (transition) densities to ASCII files and to
  the HDF5 file :file:`rassi.h5`.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="TRD1" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: TRD1 <advanced>
              <HELP>
              Prints the 1-electron (transition) densities to ASCII files and to
              the HDF5 file rassi.h5.
              </HELP>
              </KEYWORD>

:kword:`TRD2`
  Prints the 1-/2-electron (transition) densities to ASCII files.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="TRD2" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: TRD2 <advanced>
              <HELP>
              Prints the 1-/2-electron (transition) densities to ASCII files.
              </HELP>
              </KEYWORD>

:kword:`TDM`
  If this keyword is given, and if HDF5 support is enabled, the 1-electron transition
  (spin) density matrix between every pair of states in the current calculation will be computed
  and stored in the HDF5 file (use :kword:`SUBSets` to restrict to a subset of states).
  Use this to prepare :program:`WFA` runs or visualisation with Pegamoid.

  .. xmldoc:: <KEYWORD MODULE="RASSCF" NAME="TDM" LEVEL="BASIC" APPEAR="Transition density matrices" KIND="SINGLE">
              %%Keyword: TDM <basic>
              <HELP>
              Compute and save transition density matrices. Requires HDF5.
              </HELP>
              </KEYWORD>

:kword:`DYSOn`
  Enables calculation of Dyson amplitudes (an approximation of photo-electron intensities) between states that differ by exactly one in their number of electrons. Dyson amplitudes are correctly obtained from a biorthonormally transformed orbital sets as described in :cite:`Tenorio:2022molecules`.

  Calculations are performed for spin-free states, and for spin--orbit coupled states if the keyword :kword:`SPINorbit` has also been specified. Note that spin--orbit coupled amplitudes are per default obtained from an approximation where a transformation is applied directly to the spin-free amplitudes rather than the Dyson orbitals, which may severly impact the accuracy. For a complete calculation also for spin--orbit states see the :kword:`DYSExport` keyword.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="DYSON" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: DYSON <advanced>
              <HELP>
              Enables calculation of Dyson amplitudes (an approximation of photo-electron intensities) between states that differ by exactly one in their number of electrons.
              </HELP>
              </KEYWORD>

:kword:`DYSExport`
  Requires the :kword:`DYSOn` keyword and enables exportation of Dyson orbitals (from which Dyson amplitudes are obtained). The next line specifies the number (starting from the first) of spin-free and spin--orbit states (two numbers, both mandatory) for which the exportation will be done. Note that the ordering of spin-free states depends on the ordering of JOBfiles, whereas spin--orbit states are always energy ordered.

  Dyson amplitudes for the spin--orbit states are here correctly obtained from a transformation of the Dyson orbitals (as opposed to the amplitudes, see :kword:`DYSOn` keyword), but only for the specified number of initial states. Note that this calculation may be time consuming, i.e. the number of initial states should be limited.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="DYSEXPORT" KIND="INTS" SIZE="2" LEVEL="ADVANCED">
              %%Keyword: DYSEXPORT <advanced>
              <HELP>
              Requires the DYSOn keyword and enables exportation of Dyson orbitals (from which Dyson amplitudes are obtained). The next line specifies the number (starting from the first) of spin-free and spin-orbit states (two numbers, both mandatory) for which the exportation will be done. Note that the ordering of spin-free states depends on the ordering of JOBfiles, whereas spin-orbit states are always energy ordered.
              </HELP>
              </KEYWORD>

:kword:`DCHS`
  Computes spectral intensity of double-core hole states similar to Dyson norm (see :cite:`Tenorio:2021jcp`).
  Double core hole wave functions are generated with the DEXS keyword on RASSCF input (See :kword:`DEXS` keyword).
  The next line specifies the orbital number of the double-core hole (normally it is 1, that is, the first active orbital).

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="DCHS" KIND="INT" LEVEL="ADVANCED">
                   %%Keyword: DCHS <advanced>
              <HELP>
              Computes spectral intensity of double-core hole states.
              </HELP>
              </KEYWORD>

:kword:`TDYSOn`
  Prints Auger density matrices to ASCII files (see :cite:`Tenorio:2022jctc`). Required to run :program:`Auger-OCA` program found in the :file:`Tools/` folder.
  Requires the :kword:`DYSOn` keyword.
  It starts by an integer number specifying the number of scattering centers, followed by the same number of lines. Each line contains strings with the type of Auger scattering centers. An example for the computation of Auger matrix elements of carbon K-edge is "TDYS = 1; C 1s".

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="TDYS" KIND="STRINGS" SIZE="2" LEVEL="ADVANCED">
                   %%Keyword: TDYSOn <advanced>
              <HELP>
              Enables saving Auger density matrices to ASCII files.
              </HELP>
              </KEYWORD>

:kword:`RHODyn`
  Required to run :program:`RHODYN` program. Enable saving pure spin--orbit coupling Hamiltonian and SO Dyson amplitudes (not squared!) to HDF5 file of :program:`RASSI`.
  Keywords :kword:`SPINorbit`, :kword:`MESO`, :kword:`XVES`, :kword:`XVSO`, :kword:`DYSOn` are required to print corresponding properties.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="RHOD" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: RHODyn <advanced>
              <HELP>
              Enables saving V_SOC and Dyson amplitudes to HDF5.
              </HELP>
              </KEYWORD>

:kword:`NTOCalc`
  Enables natural transition orbital (NTO) calculation of two states from two :file:`JobIph` files (which can be identical to each other).
  The NTO calculations can be performed for states with different spatial symmetries.
  To perform an NTO calculation, two :file:`JobIph` files, which by convention are named :file:`JOB001` and :file:`JOB002`, are needed. Since NTO calculations are performed usually between the ground state and an excited state, :file:`JOB001` is used to provide the information for the ground state, and :file:`JOB002` is used to provide the information for excited states. This way of storing information was chosen so that NTO calculations can be performed either for states with the same symmetry or states with different symmetries, but in the former case, if two states are obtained in a single SA-CASSCF or SA-RASSCF calculation, one may make a copy of the :file:`JobIph` file to get the second :file:`JobIph` file. The two states are specified in the keyword :kword:`NROF` to tell the program for which two states the NTO calculation is to be performed.
  The NTO files are named as :file:`$Project.NTOrb.SF.I_J.Spin.NTOType`, which has the same format as :file:`.ScfOrb` or :file:`.RasOrb`, where :file:`Spin` is `a` for alpha NTOs and `b` for beta NTOs, and where :file:`I` and :file:`J` are the RASSI states between which the NTOs are calculated, and where :file:`NTOType` is `PART` for particle NTOs and `HOLE` for hole NTOs. In addition, Molden files for the orbitals named :file:`$Project.nto.molden.SF.I_J.Spin.NTOType` are also generated.
  One may search for ``Nr of states`` in the RASSI part of the output and the three lines after this information tell the correspondence of the RASSI states (in the line starting with ``State:``) with the actual states (in the line starting with ``Root nr:``) in each :file:`JobIph` file (in the line starting with ``JobIph:``). If the states for which the NTO calculation is performed are singlets, only the alpha NTOs are printed out.
  For more information and examples of this method, please refer to the Minnesota OpenMolcas webpage\ [#fn1]_.

  .. [#fn1] https://comp.chem.umn.edu/openmolcas/

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="NTOC" APPEAR="Natural transition orbitals" KIND="SINGLE" LEVEL="ADVANCED">
              %%Keyword: NTOC <advanced>
              <HELP>
              Enables natural transition orbital calculation from two JobIph files.
              </HELP>
              </KEYWORD>

:kword:`SONT`
  This computes the spin--orbit natural transition orbitals (SO-NTOs) for two spin--orbit coupled states, and it also
  performs the transition dipole moment (TDM) partitioning study based on the obtained SO-NTOs. It starts by an integer number
  specifying the number of requested SO-NTO pairs, followed by the same number of lines. Each line contains two integers
  for the two spin--orbit (SO) coupled states. An input example has been shown below.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="SONT" APPEAR="Spin-orbit natural transition orbitals" KIND="INTS_COMPUTED" SIZE="2" LEVEL="ADVANCED">
              %%Keyword: SONT <advanced>
              <HELP>
              This computes the spin--orbit natural transition orbitals (SO-NTOs) for two spin--orbit coupled states, and it also
              performs the transition dipole moment (TDM) partitioning study based on the obtained SO-NTOs.
              </HELP>
              </KEYWORD>

:kword:`ARGU`
  This minimizes the imaginary component of the calculated SO-NTOs.
  The keyword :kword:`SONT` is needed.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="ARGU" APPEAR="Argument Phi" KIND="SINGLE" LEVEL="ADVANCED" REQUIRE="SONT">
              %%Keyword: ARGU <advanced>
              <HELP>
              This minimizes the imaginary component of the calculated SO-NTOs. The SO-NTOs are required (use keyword SONT).
              </HELP>
              </KEYWORD>

:kword:`EPRA`
  This computes the hyperfine tensor matrix and the principal magnetic axes values for the ground
  spin--orbit state. The hyperfine and spin--orbit coupling matrix elements are required upon calculation
  (use keywords :kword:`SPIN` and :kword:`PROP`). For the hyperfine matrix elements, either the spin-dependent (ASD)
  or the paramagnetic spin orbital (PSOP) part is needed, while in most cases both are recommended for the same atom.
  See reference for details :cite:`Feng_JChemTheoryComput_Electron_2021`.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="EPRA" APPEAR="EPR hyperfine Matrix" KIND="REAL" LEVEL="ADVANCED" REQUIRE="SPIN">
              %%Keyword: EPRa <advanced>
              <HELP>
              This computes the hyperfine tensor matrix and the principal magnetic axes values for the ground
              spin-orbit state. The hyperfine and spin-orbit coupling matrix elements are required upon calculation
              (use keywords SPIN and PROP). For the hyperfine matrix elements, either the spin-dependent (ASD)
              or the paramagnetic spin orbital (PSOP) part is needed, while in most cases both are recommended 
              for the same atom.
              </HELP>
              </KEYWORD>

:kword:`AFCC`
  This computes the Fermi contact contribution of the total hyperfine coupling matrix.
  The keyword :kword:`EPRA` is needed. The spin-dependent (ASD) part of the hyperfine matrix elements is needed.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="AFCC" APPEAR="Hyperfine Fermi contact" KIND="SINGLE" LEVEL="ADVANCED" REQUIRE="EPRA">
              %%Keyword: AFCC <advanced>
              <HELP>
              This computes the Fermi contact contribution of the total hyperfine coupling matrix.
              The keyword EPRA is needed. The spin-dependent (ASD) part of the hyperfine matrix
              elements is needed.
              </HELP>
              </KEYWORD>

:kword:`ASDC`
  This computes the spin-dipolar contribution of the total hyperfine coupling matrix.
  The keyword :kword:`EPRA` is needed. The spin-dependent (ASD) part of the hyperfine matrix elements is needed.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="ASDC" APPEAR="Hyperfine spin dipole" KIND="SINGLE" LEVEL="ADVANCED" REQUIRE="EPRA">
              %%Keyword: ASDC <advanced>
              <HELP>
              This computes the spin-dipolar contribution of the total hyperfine coupling matrix.
              The keyword EPRA is needed. The spin-dependent (ASD) part of the hyperfine matrix
              elements is needed.
              </HELP>
              </KEYWORD>

:kword:`FCSD`
  This computes the spin-dependent contribution of the total hyperfine coupling matrix.
  The keyword :kword:`EPRA` is needed. The spin-dependent (ASD) part of the hyperfine matrix elements is needed.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="FCSD" APPEAR="Hyperfine spin dependent" KIND="SINGLE" LEVEL="ADVANCED" REQUIRE="EPRA">
              %%Keyword: FCSD <advanced>
              <HELP>
              This computes the spin-dependent contribution of the total hyperfine coupling matrix.
              The keyword EPRA is needed. The spin-dependent (ASD) part of the hyperfine matrix
              elements is needed.
              </HELP>
              </KEYWORD>

:kword:`APSO`
  This computes the paramagnetic spin orbital contribution of the total hyperfine coupling matrix.
  The keyword :`EPRA` is needed. The paramagnetic spin orbital (PSOP) part of the hyperfine matrix
  elements is needed.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="APSO" APPEAR="Hyperfine paramagnetic" KIND="SINGLE" LEVEL="ADVANCED" REQUIRE="EPRA">
              %%Keyword: APSO <advanced>
              <HELP>
              This computes the paramagnetic spin orbital contribution of the total hyperfine coupling matrix.
              The keyword EPRA is needed. The paramagnetic spin orbital (PSOP) part of the hyperfine matrix
              elements is needed.
              </HELP>
              </KEYWORD>

:kword:`ATSA`
  This keyword activates the pseudospin approach to compute the same hyperfine constants as :kword:`EPRA`.
  For Kramers pair ground states this keyword is optional, otherwise (non-Kramers pair ground state) it is needed.
  See reference for details :cite:`Feng_JChemTheoryComput_Electron_2021`.
  The keyword :kword:`EPRA` is needed.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="ATSA" APPEAR="Hyperfine A-Tensor" KIND="SINGLE" LEVEL="ADVANCED" REQUIRE="EPRA">
              %%Keyword: ATSA <advanced>
              <HELP>
              This keyword activates the pseudospin approach to compute the same hyperfine constants as EPRA.
              For Kramers pair ground states this keyword is optional, otherwise (non-Kramers pair ground state) it is needed.
              The keyword EPRA is needed.
              </HELP>
              </KEYWORD>

:kword:`MONA`
  This keyword indicates that the properties of monomer A were calculated in the respective :program:`RASSI` section of the Frenkel exciton protocol.
  This is important for the creation of the TDMs in the common basis of the two monomers. The geometry of monomer A must always be in the first place in the BSSE section.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="MONA" APPEAR="Monomer A" KIND="SINGLE" LEVEL="BASIC">
              %%Keyword: MONA <basic>
              <HELP>
              Indicates that monomer A was calculated in the respective RASSI section.
              </HELP>
              </KEYWORD>

:kword:`MONB`
  This keyword indicates that the properties of monomer B were calculated in the respective :program:`RASSI` section of the Frenkel exciton protocol.
  This is important for the creation of the TDMs in the common basis of the two monomers. The geometry of monomer B must always be in the second place in the BSSE section.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="MONB" APPEAR="Monomer B" KIND="SINGLE" LEVEL="BASIC">
              %%Keyword: MONB <basic>
              <HELP>
              Indicates that monomer B was calculated in the respective RASSI section.
              </HELP>
              </KEYWORD>

:kword:`EXCItonics`
  This keyword initiates the calculation of the Frenkel exciton coupling elements between two monomers, the excitonic eigenvectors, eigenenergies and the absorption spectrum.
  Has to be put in the second :program:`RASSI` section of the Frenkel exciton protocol.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="EXCITONICS" APPEAR="Exciton calculation" KIND="SINGLE" LEVEL="BASIC">
              %%Keyword: EXCI <basic>
              <HELP>
              Starts the calculation of properties needed for the Frenkel exciton absorption spectrum.
              </HELP>
              </KEYWORD>

:kword:`EXAList`
  Number of initial states of monomer A in the Frenkel exciton calculation, followed by the list of these states in the next line.
  This keyword requires a proper use of the Frenkel exciton protocol and should be called in the second of the two :program:`RASSI` sections.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="EXALIST" APPEAR="Initial states of monomer A in Frenkel exciton calculation" KIND="INTS_COMPUTED" SIZE="1" LEVEL="BASIC">
              %%Keyword: EXAL <basic>
              <HELP>
              Number of initial states of Monomer A, followed by the list of these states in the next line.
              </HELP>
              </KEYWORD>


:kword:`EXBList`
  Number of initial states of monomer B in the Frenkel exciton calculation, followed by the list of these states in the next line.
  This keyword requires a proper use of the Frenkel exciton protocol and should be called in the second of the two :program:`RASSI` sections.

  .. xmldoc:: <KEYWORD MODULE="RASSI" NAME="EXBLIST" APPEAR="Initial states of monomer B in Frenkel exciton calculation" KIND="INTS_COMPUTED" SIZE="1" LEVEL="BASIC">
              %%Keyword: EXBL <basic>
              <HELP>
              Number of initial states of Monomer B, followed by the list of these states in the next line.
              </HELP>
              </KEYWORD>


Input example
.............

::

  >>COPY  "Jobiph file 1" JOB001
  >>COPY  "Jobiph file 2" JOB002
  >>COPY  "Jobiph file 3" JOB003

  &RASSI
  NR OF JOBIPHS= 3 4 2 2    --- 3 JOBIPHs. Nr of states from each.
  1 2 3 4; 3 4; 3 4         --- Which roots from each JOBIPH.
  CIPR; THRS= 0.02
  Properties= 4; 'MltPl  1'  1   'MltPl  1'  3    'Velocity'  1 'Velocity'  3
  * This input will compute eigenstates in the space
  * spanned by the 8 input functions. Assume only the first
  * 4 are of interest, and we want natural orbitals out
  NATO= 4

An NTO input example using the JobIph file from a state-averaged calculation is as follows: ::

  >>COPY  "Jobiph file 1" JOB001
  >>COPY  "Jobiph file 2" JOB002

  &RASSI
  NTOC
  Nr of JobIphs=2 1 1
  1; 2
  *This NTO calculation is performed for the ground state and the first
  *excited state of the previous calculation done in the &RASSCF module.

An SO-NTO input example from three singlets and two triplets: ::

  >>COPY  $Project.JobIph.s0s1s2 JOB001
  >>COPY  $Project.JobIph.t1t2 JOB002

  &RASSI
  Nr of JobIphs
  2 3 2
  1 2 3
  1 2
  SPINorbit
  ARGU *This minimizes the imaginary component of SO-NTOs
  SONT
  3
  1 2
  1 3
  2 3
  *Three pairs of SO-NTOs are requested, between SO state 1 and 2,
  *SO state 1 and 3, and SO state 2 and 3.
  *Note that the states are SO coupled states.

An illustrative hyperfine calculation input for a diatomic molecule: ::

  >>COPY "Jobiph file 1" JOB001

  &RASSI
  Nr of JobIphs
  1 4
  1 2 3 4
  SPIN
  EPRA
  AFCC
  ASDC
  FCSD
  APSO
  ATSA
  PROPerties
  18
  'ASD    1' 1
  'ASD    1' 2
  'ASD    1' 3
  'ASD    1' 4
  'ASD    1' 5
  'ASD    1' 6
  'ASD    2' 1
  'ASD    2' 2
  'ASD    2' 3
  'ASD    2' 4
  'ASD    2' 5
  'ASD    2' 6
  'PSOP   1' 1
  'PSOP   1' 2
  'PSOP   1' 3
  'PSOP   2' 1
  'PSOP   2' 2
  'PSOP   2' 3
  * Note that the strings following PROP have to be of sizes of 8, each
  * followed by an integer number for the property component.
  * The last digit of the string is the atom number.
  * Note that there are 6 ASD and 3 PSOP components for each atom, respectively.
  * One has to include all 6 of ASD components to obtain principle
  * spin-dependent hyperfine contributions, and one has to include all 3 of PSOP
  * components to obtain principle paramagnetic spin orbital contributions.

It is also possible to calculate only the non-relativistic part of the spin--dependent hyperfine contributions: ::

  &RASSI
  Nr of JobIphs
  1 4
  1 2 3 4
  SPIN
  EPRA
  AFCC
  ASDC
  FCSD
  APSO
  ATSA
  PROPerties
  12
  'ASDO   1' 1
  'ASDO   1' 2
  'ASDO   1' 3
  'ASDO   1' 4
  'ASDO   1' 5
  'ASDO   1' 6
  'ASDO   2' 1
  'ASDO   2' 2
  'ASDO   2' 3
  'ASDO   2' 4
  'ASDO   2' 5
  'ASDO   2' 6
  * Note that 'ASD' is now 'ASDO' for the non-relativistic integrals.


.. xmldoc:: <KEYWORD MODULE="RASSI" NAME="SONORB" KIND="INTS_COMPUTED" SIZE="1" LEVEL="UNDOCUMENTED" />

.. xmldoc:: <KEYWORD MODULE="RASSI" NAME="SODIAG" KIND="INTS_COMPUTED" SIZE="1" LEVEL="UNDOCUMENTED" />

.. xmldoc:: <KEYWORD MODULE="RASSI" NAME="FILE" KIND="STRINGS_COMPUTED" SIZE="1" LEVEL="UNDOCUMENTED" />

.. xmldoc:: </MODULE>