File: mrci.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 (426 lines) | stat: -rw-r--r-- 15,022 bytes parent folder | download | duplicates (3)
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
.. index::
   single: Program; MRCI
   single: MRCI

.. _UG\:sec\:mrci:

:program:`MRCI`
===============

.. only:: html

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

.. xmldoc:: <MODULE NAME="MRCI">
            %%Description:
            <HELP>
            The MRCI program is used for Multi-Reference
            SDCI or ACPF calculations. The code originates in an MRCI
            program by M. Blomberg and P. E. M. Siegbahn, later rewritten
            extensively. It requires a file generated by the GUGA program.
            </HELP>

.. index::
   single: Multireference; SDCI
   single: Multireference; ACPF

The
:program:`MRCI`
program generates Multi Reference :index:`SDCI <single: SDCI; using MRCI>` or :index:`ACPF <single: ACPF; using MRCI>` :cite:`Gdanitz:88`
wavefunctions. ACPF is a modification of the CPF :cite:`Ahlrichs:85`
method which allows more than one reference configuration. The program is
based on the :index:`Direct CI` method :cite:`Roos:72`,
and with the :index:`coupling coefficients <single: Coupling coefficients; MRCI>` generated with the Graphical Unitary Group
Approach :cite:`Shavitt:77,Shavitt:78,Siegbahn:80`.
(See program description for
:program:`GUGA`).
If requested, :program:`MRCI` computes matrix elements of those
one-electron properties for which it can find integrals in the
:file:`ONEINT` file. It also
generates natural orbitals that can be fed into
the property program to evaluate certain one electron properties.
The natural orbitals are also useful for Iterated Natural Orbital
(:index:`INO`) calculations.

The :program:`MRCI` code is a modification of an MRCI
program written by M. Blomberg and P. E. M. Siegbahn (Institute of Physics,
Stockholm University, Sweden), which has later been extensively modified
(P.-Å. Malmqvist)

The program can calculate several eigenvectors simultaneously, not
necessarily those with lowest eigenvalue. However, in the ACPF case,
only one single eigenvector is possible.

Orbital subspaces

The orbital space is divided into the following subspaces: Frozen,
Inactive, Active, Secondary, and Deleted orbitals. Within each
symmetry type, they follow this order.

* **Frozen:**
  :index:`Frozen orbitals <single: MRCI; Frozen>` are always doubly
  occupied, i.e., they are not correlated. Orbitals may be frozen
  already in the integral integral transformation step, program
  :program:`MOTRA`, but can also be specified in the input to the
  :program:`MRCI` program. The former method is more efficient,
  and has the effect that the frozen orbitals are effectively removed
  from the subsequent
  :program:`MRCI` calculation.

* **Inactive:**
  :index:`Inactive orbitals <single: MRCI; Inactive>` are doubly occupied
  in all reference configurations, but excitations out of this orbital
  space are allowed in the final CI wavefunction, i.e., they are
  correlated but have two electrons in all reference configurations.
  Restrictions may be applied to excitation from some inactive orbitals,
  see keyword :index:`NoCorr <single: MRCI; NoCorr>` in the :program:`GUGA` input section.

* **Active:**
  :index:`Active orbitals <single: MRCI; Active>` are those which may have
  different occupation in different reference configurations.
  Restrictions may be applied to occupation of some active orbitals,
  see keyword :index:`OneOcc <single: MRCI; OneOcc>` in the :program:`GUGA` input section.

* **Secondary:**
  :index:`This subspace <single: MRCI; Secondary>` is empty in all
  reference configurations, but may be populated with up to two
  electrons in the excited configurations. This subspace is not
  explicitly specified, but consists of the orbitals which are left over
  when other spaces are accounted for.

* **Deleted:**
  :index:`This orbital subspace <single: MRCI; Deleted>` does not
  participate in the CI wavefunction at all. Typically the 3s,4p,...
  components of 3d,4f,..., or orbitals that essentially describe core
  correlation, are deleted. Similar to freezing, deleting can be done in
  :program:`MOTRA`,
  which is more efficient, but also as input
  specifications to the
  :program:`MRCI` program.

Since ordinarily the frozen and deleted orbitals were handled by
:program:`MOTRA`
and the subdivision into inactive and
active orbitals were defined in
:program:`GUGA`, the only
time one has to specify orbital spaces in the input to
:program:`MRCI`
is when additional frozen or deleted orbitals are required without
recomputing the transformed integrals.

.. index::
   pair: Dependencies; MRCI

.. _UG\:sec\:mrci_dependencies:

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

The program needs the coupling
coefficients generated by the program
:program:`GUGA` and transformed one- and two-electron integrals
generated by the program
:program:`MOTRA`.

.. index::
   pair: Files; MRCI

.. _UG\:sec\:mrci_files:

Files
-----

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

.. class:: filelist

:file:`CIGUGA`
  Coupling coefficients from :program:`GUGA`.

:file:`TRAINT*`
  Transformed two-electron integrals from :program:`MOTRA`.

:file:`TRAONE`
  Transformed one-electron integrals from :program:`MOTRA`.

:file:`ONEINT`
  One-electron property integrals from :program:`SEWARD`.

:file:`MRCIVECT`
  Used for input only in restart case.

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

.. class:: filelist

:file:`CIORBnn`
  One or more sets of natural orbitals, one for each CI root, where
  nn stands for 01, 02, etc.

:file:`MRCIVECT`
  CI vector, for later restart.

Note that these file names are the FORTRAN file names used by the program,
so they have to be mapped to the actual file names. This is usually done
automatically in the |molcas| system. However, in the case of several
different numbered files
:file:`CIORBnn` only the first will be defined as default,
with the FORTRAN file name
:file:`CIORB`
used for
:file:`CIORB01`.

.. Local files
   ...........

   .. class:: filelist

   :file:`FTxxF001`
     MRCI produces a few scratch files that are not needed by any other program
     in |molcas|. Presently, these are xx=14, 15, 16, 21, 23, 25, 26, 27, and 30.
     The files are opened, used, closed and removed automatically.
     See source code for further information.

.. index::
   pair: Input; MRCI

.. UG\:sec\:mrci_input:

Input
-----

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

  &MRCI

.. index::
   pair: Keywords; MRCI

Keywords
........

.. class:: keywordlist

:kword:`TITLe`
  The line following this keyword is treated as title line

  .. xmldoc:: <KEYWORD MODULE="MRCI" NAME="TITLE" KIND="STRING" LEVEL="BASIC">
              %%Keyword: Title <basic>
              <HELP>
              Followed by a title line
              </HELP>
              </KEYWORD>

:kword:`SDCI`
  This keyword is used to perform an ordinary Multi-Reference
  Singles and Doubles CI, MR-SDCI, calculation. This is the default
  assumption of the program.
  Note that SDCI and ACPF are mutually exclusive.

  .. xmldoc:: <SELECT MODULE="MRCI" NAME="COMPMOD" APPEAR="Computation Model" CONTAINS="SDCI,ACPF" LEVEL="BASIC">
              <HELP>
              Choose one of the available quantum chemistry computational models.
              </HELP>

  .. xmldoc:: <KEYWORD MODULE="MRCI" NAME="SDCI" APPEAR="MR-SDCI" KIND="SINGLE" EXCLUSIVE="ACPF" LEVEL="BASIC">
              <HELP>
              Choose MR-SDCI calculation.
              </HELP>
              %%Keyword: SDCI <basic>
              Make an MR-SDCI calculation. (This is presently the default anyway).
              Keywords ACPF and SDCI are mutually exclusive.
              </KEYWORD>

:kword:`ACPF`
  This keyword tells the program to use the Average Coupled Pair
  Functional, ACPF, when computing the energy and natural orbitals.
  Note that SDCI and ACPF are mutually exclusive.

  .. xmldoc:: <KEYWORD MODULE="MRCI" NAME="ACPF" APPEAR="MR-ACPF" KIND="SINGLE" EXCLUSIVE="SDCI" LEVEL="BASIC">
              <HELP>
              Choose MR-ACPF calculation (Gdanitz, see manual).
              </HELP>
              %%Keyword: ACPF <basic>
              Make an MR-ACPF calculation, rather than an SDCI.
              Keywords ACPF and SDCI are mutually exclusive.
              </KEYWORD>

  .. xmldoc:: </SELECT>

:kword:`GVALue`
  The coefficient g which is used in the ACPF functional. The default
  value is = 2.0/(Nr of correlated electrons).

  .. xmldoc:: <KEYWORD MODULE="MRCI" NAME="GVALUE" APPEAR="g Value" KIND="REAL" LEVEL="BASIC">
              <HELP>
              Enter user-defined coefficient g, altering the ACPF functional.
              </HELP>
              %%Keyword: GValue <advanced>
              The coefficient g, altering the ACPF functional.
              </KEYWORD>

:kword:`NRROots`
  Specifies the number of CI roots (states) to be simultaneously
  optimized. The default is 1.

  .. xmldoc:: <KEYWORD MODULE="MRCI" NAME="NRROOTS" APPEAR="Number of states to compute." KIND="INT" LEVEL="BASIC">
              %%Keyword: NRRoots <basic>
              <HELP>
              The number of CI roots (states) to be computed. Default=1.
              </HELP>
              </KEYWORD>

:kword:`ROOTs`
  Specifies which root(s) to converge to. These are defined as the
  ordinal number of that eigenvector of the reference CI which is
  used as start approximation. The default is the sequence 1,2,3,...
  The values are entered on the next line(s). If the number of roots is
  larger than 1, it must first have been entered using keyword NRROOTS.
  The keywords ROOTS and SELECT are mutually exclusive.

  .. xmldoc:: <GROUP MODULE="MRCI" NAME="HOWCHOOSE" APPEAR="How choose roots?" KIND="RADIO">
              <HELP>
              Two ways to choose which states to compute.
              </HELP>

  .. xmldoc:: <KEYWORD MODULE="MRCI" NAME="ROOTS" APPEAR="Choose roots number" KIND="INTS" SIZE="10" LEVEL="BASIC">
              %%Keyword: Roots <basic>
              <HELP>
              Which roots to compute, as a list of numbers.
              </HELP>
              (counted in order of reference CI).
              Keywords ROOTS and SELECT are mutually exclusive.
              </KEYWORD>

:kword:`SELEct`
  Another way of specifying the roots: instead of using ordinal
  numbers, the roots selected will be those NRROOTS which have
  largest projections in a selection space
  which is specified on the next lines, as follows:
  One line gives NSEL, the number of vectors used to define the
  selection space. For each selection vector, program reads
  the number of CSFs (NC), and # NC pairs of CSEL (text strings) and SSEL (coefficients).
  The text string is composed of the
  digits 0,1,2,3 and denotes the GUGA case numbers of the active
  orbitals, defining uniquely a CSF belonging to the reference space.
  The keywords ROOTS and SELECT are mutually exclusive.

  .. xmldoc:: <KEYWORD MODULE="MRCI" NAME="SELECT" APPEAR="Roots selected:" KIND="REALS_COMPUTED" SIZE="2" LEVEL="BASIC">
              %%Keyword: Select <advanced>
              <HELP>
              Which roots to select, specified as a selection space.
              See manual for details.
              </HELP>
              Keywords ROOTS and SELECT are mutually exclusive.
              </KEYWORD>

  .. xmldoc:: </GROUP>

:kword:`RESTart`
  Restart the calculation from a previous calculation. No additional
  input is required. The :file:`MRCIVECT` file is required for restarted
  calculations.

  .. xmldoc:: %%Keyword: Restart <advanced>
              Use a previous wavefunction from the MRCIVECT file as start approximation.

:kword:`THRPrint`
  Threshold for printout of the wavefunction. All configurations with a
  coefficient greater than this threshold are printed.
  The default is 0.05.

  .. xmldoc:: %%Keyword: ThrPrint <advanced>
              Enter threshold of CI coefficients to be printed. Default 0.05.

:kword:`ECONvergence`
  Energy convergence threshold. The result is converged when the energy
  of all roots has been lowered less than this threshold in the last
  iteration. The default is 1.0d-8.

  .. xmldoc:: %%Keyword: EConvergence <advanced>
              Enter energy convergence threshold. Default 1.0D-8.

:kword:`PRINt`
  Print level of the program. Default is 5.

  .. xmldoc:: %%Keyword: Print <advanced>
              Set print level. Default is 5.

:kword:`MAXIterations`
  Maximum number of iterations. Default 20. The maximum possible value is 49.

  .. xmldoc:: %%Keyword: MaxIterations <advanced>
              Set max number of iterations. Default is 20. Largest possible is 49.

:kword:`MXVEctors`
  Maximum number of trial vector pairs (CI+sigma) kept on
  disk. Default is MAX(NRROOTS,10). It should never be
  smaller than NRROOTS. A good value is 3*NRROOTS or more.

  .. xmldoc:: %%Keyword: MxVectors <advanced>
              Set max nr of trial vector pairs (CI+sigma) kept on disk. Default is
              MAX(NRROOTS,10). Must be at least NRROOTS. Not much point in using
              more than 3*NRROOTS except for very few roots.

:kword:`TRANsition`
  This keyword is relevant to a multi-root calculation. In addition
  to properties, also
  the transition matrix elements of various operators, for each pair
  of wave functions, will be computed.

  .. xmldoc:: %%Keyword: Transition <advanced>
              Relevant for multi-root calculations. The transition matrix elements
              of all operators, for which there are integrals on the ONEINT file,
              will be computed for each pair of states.

:kword:`FROZen`
  Specify the number of orbitals to be frozen in
  **addition** to the orbitals frozen in the integral transformation.
  Default is 0 in all symmetries.

  .. xmldoc:: %%Keyword: Frozen <advanced>
              Enter a list specifying, for each symmetry, how many orbitals to keep
              frozen (uncorrelated), in addition to those that were frozen already
              in the integral transformation (See MOTRA). Default is 0 in all symmetries.

:kword:`DELEted`
  Specify the number of orbitals to be deleted in
  **addition** to the orbitals deleted in the integral transformation.
  Default is 0 in all symmetries.

  .. xmldoc:: %%Keyword: Deleted <advanced>
              Enter a list specifying, for each symmetry, how many orbitals to delete
              in addition to those that were deleted already
              in the integral transformation (See MOTRA). Default is 0 in all symmetries.

:kword:`REFCi`
  Perform only reference CI.

  .. xmldoc:: %%Keyword: RefCI <advanced>
              Do only a reference CI.

:kword:`PRORbitals`
  Threshold for printing natural orbitals. Only orbitals with occupation
  number larger than this threshold appears in the printed output.
  Default is 1.0d-5.

  .. xmldoc:: %%Keyword: PrOrbitals <advanced>
              Threshold on occupation number, for printing natural orbitals. Default 1.0D-5.

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

::

  &MRCI
  Title
   Water molecule. 1S frozen in transformation.
  Sdci

.. xmldoc:: </MODULE>