General program structure
This chapter gives an overview of the most important features of Molpro. For the new user, it is essential to understand the strategies and conventions described in this section, in particular the meaning of files and records, and the use of symmetry. This chapter will focus on general aspects; detailed information about each command will be given in later chapters. Information about commands and parameters can also be obtained using the Molpro help facility (see section molpro help).
Input structure
A typical MOLPRO
input has the following structure:
***,title !title (optional) memory,4,m !memory specification (optional) file,1,name.int !permanent named integral file (optional) file,2,name.wfu !permanent named wavefunction file (optional) gprint,options !global print options (optional) gthresh,options !global thresholds (optional) gdirect[,options] !global direct (optional) gexpec,opnames !global definition of one-electron operators (optional) basis=basisname !basis specification. If not present, cc-pVDZ is used geometry={...} !geometry specification var1=value,var2=value,... !setting variables for geometry and/or wavefunction definitions {command,options !program or procedure name directive,data,option !directives for command (optional) ... } !end of command block --- !end of input (optional)
If the memory card is given, it should be the first card (after the optional title card). If any file cards are given, they should follow immediately. The order of basis
, geometry
, gprint
, gdirect
, gthresh
, gexpec
, and variable definitions is arbitrary. It is possible to call several programs one after each other. It is also possible to redefine basis set and/or geometry between the call to programs; the program will recognize automatically if the integrals have to be recomputed.
Files
Molpro uses three sequential text files, namely the input file, the output file, and the punch file. The punch file is a short form of the output which contains the most important data and results, such as geometries, energies, dipole moments, etc. The punch file can be processed by the separate program READPUN, which selects specific results by keywords and is able to produce ordered tables in user supplied format. Furthermore, there are up to 9 binary Molpro files available, each one known to the program simply by its number (1 to 9). By default, they are temporary files, usually allocated dynamically by the program, but they can be connected to permanent files with the FILE
command. Each file is direct access, and word addressable (word=64 bit usually), but is organised in records of any length. The name, address and length of each record is held in a directory at the start of the file.
File 1 is the main file, holding basis set, geometry, and the one and two electron integrals. By default, file 2 is the dump file and used to store the wavefunction information, i.e. orbitals, CI coefficients, and density matrices. File 3 is an auxiliary file which can be used in addition to file 2 for restart purposes. Often files 1 and 2 (and 3) are declared as permanent files (see FILE
) to enable restarts. Storing the wavefunction information on file 2 is useful, since the integral file is overwritten at each new geometry, while the orbitals and CI coefficients of one calculation can be used as a starting guess for the next calculation at a neighbouring geometry. Files 4 to 8 are used as scratch space, e.g., for sorting the integrals, storage of transformed integrals and of the CI vectors. These files should normally not be made permanent.
Note that the file name appearing in molpro input is always converted to lower case on unix machines.
Records
Record names are positive integers, and are usually referred to in the format record.file, e.g., 2100.2 means the record called 2100 on file 2. Note that these names are quite arbitrary, and their numerical values have nothing to do with the order of the records in the file. Record names $\le$ 2000 are reserved for standard quantities (e.g. integrals, properties etc.) and you should never use these in an input, unless you know exactly what you are doing. Some important default records to remember are
- 2100 RHF dump record (closed and open-shell)
- 2200 UHF dump record
- 2140 MCSCF dump record
- 4100 CPHF restart information
- 5000 MCSCF gradient information
- 5100 CP-MCSCF gradient information
- 5200 MP2 gradient information
- 5300 Hessian restart information
- 5400 Frequencies restart information
- 6300 Domain restart information
If an input contains several wavefunction calculations of the same type, e.g., several MCSCF calculations with different active spaces, the record number will be increased by 1 for each calculation of the same type. Thus, the results of the first SCF calculation in an input are stored in dump record 2100.2, the second SCF in record 2101.2, the first MCSCF in 2140.2, the second MCSCF in 2141.2 and so on. Note that these numbers refer to the occurrence in the input and not on the order in which the calculations are performed in the actual run. If an input or part of it is repeated using DO
loops, this ensures that each calculation will start with the orbitals from the corresponding orbitals from the previous cycle, as long as the order of the commands in the input remains unchanged. If for instance the first SCF would be skipped in the second cycle using some IF
/ ENDIF
structure, the second SCF would still use record 2101.2. Thus, under most circumstances the program defaults are appropriate, and the user does not have to specify the records.
After a restart this logic will still work correctly if the number and sequence of SCF
and MCSCF
commands is kept unchanged. Thus, if you want to skip certain parts of the input after a restart, it is recommended to use IF
/ ENDIF
structures or the GOTO
command rather than to delete or comment certain commands. If for some reason this is not possible, the START
and ORBITAL
directives can be used to specify explicitely the records to be used.
In general we recommend the use of program defaults whenever possible, since this minimizes the probability of input errors and frustration!
After completion of each program step, Molpro prints a summary of the records on each file.
Restart
Information from the permanent files is automatically recovered in subsequent calculations. This can be controlled using the RESTART
directive.
Data set manipulation
It is possible to truncate files and rename or copy records using the DATA
command. Several standard matrix operations can be performed with MATROP
, e.g., printing records, linearly combining or multiplying matrices, or forming the trace of a product of two matrices.
Memory allocation
Molpro can allocate memory dynamically as required by the user. Thus it is not necessary to maintain different versions of the program with different memory sizes. There are two ways to specify the memory: (1) MEMORY
card in Molpro input file; (2) options -m
or --memory
or -M
in the Molpro command line. The latter method is recommended. Please refer to sections memory specifications for more details and important information regarding parallel processing.
If memory is specified using both methods at the same time, MEMORY
card will take precedence. If both ways are omitted, the program will use a default memory size (currently it is $32000000$ words, i.e. 256 MB). Please note that: (1) memory specification is in megawords. 1 word is 8 bytes (i.e., the memory size to store one double precision data). (2) memory specification is for each process.
Memory directive in the input file
MEMORY
,[STACK=
]m,[GA=
G],[Total=
M],[GA_PREALLOC=
$0|1$]
By default, all memory specifications are in megawords. The numbers (m, G, M) can be appended by a scaling unit, which can be K
, M
, or G
(case insensitive). If the unit is K
, the specification is assumed to be in kilowords ($10^3$ words), M
means megawords ($10^6$ words), and G
means gigawords ($10^9$ words). Blanks or commas have to be inserted between the number and the unit, i.e., 100 m or 100,m are possible specifications of the memory size.
Examples:
MEMORY,90
requests 90 000 000 words of memoryMEMORY,500 K
requests 500 000 words of memoryMEMORY,2 M
requests 2 000 000 words of memoryMEMORY,100,M
requests 100 000 000 words of memorymemory,100 m
requests 100 000 000 words of memoryMEMORY,1 g
requests $10^9$ words of memory
Optionally, the requested GA space or the total allocatable memory (stack memory + GA) can be used. These options have the same meaning and effect as the -G
and -M
command line options, cf. section memory specifications. GA_PREALLOC=0
or GA_PREALLOC=1
disables or enables GA preallocation, respectively (see sections GA Installation notes and memory specifications).
Memory option in command line
-m
$|$ --memory
nscale
The scale
(k
, m
, g
and K
, M
, G
) is case sensitive, lower case for decimal and upper case for binary. k, m, g
stand for 1000, 1000 000 and $10^9$; K, M, G
stand for $2^{10}$, $2^{20}$ and $2^{30}$.
Examples:
-m 1k
requests 1000 words of memory-m 1K
requests 1024 words of memory-m 1m
requests 1000000 words of memory-m 1M
requests 1048576 words of memory-m 1g
requests $10^9$ words of memory-m 1G
requests $2^{30}$ words of memory
For more information please refer to section memory specifications.
Memory in parallel
The memory specification is for each process. So the total requested memory in parallel calculation will be the specified memory amount multiplied by the number of compute processes. For example, specifying $100 * 10^6$ words for a job with 4 compute processes:
memory,100,m
in input file-m 100m
in command line
the total requested memory will be $100 * 10^6 * 8 * 4 = 3.2 * 10^9$ bytes.
In addition, some methods need an significant amount of global array (GA) memory. Please refer to sections GA Installation notes and memory specifications for important information regarding parallel processing.
Multiple passes through the input
It is possible to perform loops over parts of the input using DO
loops, very much as in FORTRAN
programs. DO
loops may be nested to any reasonable depth. This can be conveniently used, for instance, to compute automatically whole potential energy surfaces.
Symmetry
Molpro can use Abelian point group symmetry only. For molecules with degenerate symmetry, an Abelian subgroup must be used — e.g., $C_{2v}$ or $D_{2h}$ for linear molecules. The symmetry group which is used is defined in the integral input by combinations of the symmetry elements $x$, $y$, and $z$, which specify which coordinate axes change sign under the corresponding generating symmetry operation. It is usually wise to choose $z$ to be the unique axis where appropriate (essential for $C_2$ and $C_{2h}$). The possibilities in this case are shown in Table symmetry.
Normally, Molpro determines the symmetry automatically, and rotates and translates the molecule accordingly. However, explicit symmetry specification is sometimes useful to fix the orientation of the molecule or to use lower symmetries.
The symmetry generators for the point groups | |
---|---|
Generators | Point group |
(null card) | $C_1$ (i.e. no point group symmetry) |
X (or Y or Z ) | $C_s$ |
XY | $C_2$ |
XYZ | $C_i$ |
X,Y | $C_{2v}$ |
XY,Z | $C_{2h}$ |
XZ,YZ | $D_2$ |
X,Y,Z | $D_{2h}$ |
The irreducible representations of each group are numbered 1 to 8. Their ordering is important and given in the tables below. Also shown in the tables are the transformation properties of products of $x$, $y$, and $z$. $s$ stands for an isotropic function, e.g., $s$ orbital, and for these groups, this gives also the transformation properties of $x^2$, $y^2$, and $z^2$. Orbitals or basis functions are generally referred to in the format number.irrep, i.e. 3.2 means the third orbital in the second irreducible representation of the point group used.
Numbering of the irreducible representations in $D_{2h}$ | ||
---|---|---|
No. | Name | Function |
$D_{2h}$ | ||
1 | $A_{g}$ | $s$ |
2 | $B_{3u}$ | $x$ |
3 | $B_{2u}$ | $y$ |
4 | $B_{1g}$ | $xy$ |
5 | $B_{1u}$ | $z$ |
6 | $B_{2g}$ | $xz$ |
7 | $B_{3g}$ | $yz$ |
8 | $A_{u}$ | $xyz$ |
Numbering of the irreducible representations in the four-dimensional groups | ||||||
---|---|---|---|---|---|---|
No. | Name | Function | Name | Function | Name | Function |
$C_{2v}$ | $C_{2h}$ | $D_2$ | ||||
1 | $A_1$ | $s, z$ | $A_g$ | $s, xy$ | $A$ | $s$ |
2 | $B_1$ | $x, xz$ | $A_u$ | $z$ | $B_3$ | $x, yz$ |
3 | $B_2$ | $y, yz$ | $B_u$ | $x, y$ | $B_2$ | $y, xz$ |
4 | $A_2$ | $xy$ | $B_g$ | $xz, yz$ | $B_1$ | $xy$ |
Numbering of the irreducible representations in the two-dimensional groups | ||||||
---|---|---|---|---|---|---|
No. | Name | Function | Name | Function | Name | Function |
$C_{s}$ | $C_{2}$ | $C_{i}$ | ||||
1 | $A^{'}$ | $s, x, y, xy$ | $A$ | $s, z, xy$ | $A_g$ | $s, xy, xz, yz$ |
2 | $A^{''}$ | $z, xz, yz$ | $B$ | $x, y, xz, yz$ | $A_u$ | $x, y, z$ |
Defining the wavefunction (WF)
In all program modules where such information is required, the total symmetry of the $N$-electron wavefunction is defined on WF
(wavefunction) cards in the following way:
WF
,nelec,irrep,spin
or, alternatively
WF
,[NELEC=
nelec],[SYM[METRY]=
irrep],[spin=
spin],[CHARGE=
charge]
where nelec is the total number of electrons, irrep is the number of the irreducible representation, and spin equals $2 \times S$, where $S$ is the total spin quantum number. Instead of nelec also charge can be given, which specifies the total charge of the molecule. For instance, for a calculation in $C_{2v}$ symmetry with 10 electrons, WF,10,3,0
denotes a $^1B_2$ state, and WF,10,1,2
a $^3A_1$ state. The charge can also be defined by setting the variable CHARGE
:
SET,CHARGE
=charge
This charge will be used in all energy calculations following this input. Note that SET
is required, since CHARGE
is a system variable (cf. section system variables).
Although in principle each program unit requires a WF
command, in practice it is seldom necessary to give it. The program remembers the information on the WF
card, and so one might typically specify the information in an SCF calculation, but then not in subsequent MCSCF or CI calculations; this also applies across restarts. Furthermore, nelec defaults to the sum of the nuclear charges, irrep to 1 and spin to 0 or 1; thus in many cases, it is not necessary to specify a WF
card at all.
If the WF
directive is given outside an command input block, it is treated as global, i.e., the given values are used for all subsequent calculations. Setting the variables NELEC
, SPIN
, or SYMMETRY
, has the same effect giving these on a global WF
directive. If the global WF
directive is given after the variable definition, the values of the variables are replaced by the values given on the WF
directive. Vice versa, if a variable definition follows a global WF
directive, the new value of the variable is used in the following. Note that WF
input cards in command blocks have preference over global WF
directives or input variables.
Defining orbital subspaces (OCC,CLOSED,CORE,FROZEN)
In the SCF, MCSCF, and CI programs it may be necessary to specify how many orbitals in each symmetry are occupied (or internal in CI), and which of these are core or closed shell (doubly occupied in all CSFs). This information is provided on the OCC
, CORE
, and CLOSED
cards in the following way:
OCC
,$m_1,m_2,\ldots,m_8$; CORE
,$co_1,co_2,\ldots,co_8$; CLOSED
,$cl_1,cl_2,\ldots,cl_8$; FROZEN
,$fr_1,fr_2,\ldots,fr_8$;
where $m_i$ is the number of occupied orbitals (including core/frozen and closed), $co_i$ the number of core orbitals, and $cl_i$ is the number of closed-shell orbitals (including the core orbitals) in the irreducible representation $i$. In general, $m_i \ge
cl_i$, and $cl_i \ge co_i$. It is assumed that these numbers refer to the first orbitals in each irrep. FROZEN
only exists in the MCSCF program and denotes frozen core orbitals that are not optimized (note that in older Molpro versions frozen core orbitals were denoted CORE
).
For CORE
the following special input possibilities exists (only in the MRCI and Coupled-Cluster programs):
CORE,SMALL
CORE,MIXED
CORE,LARGE
CORE
,SYM1=spdf,SYM2=spdf,…
SMALL
means that all atomic orbitals are correlated for which the cc-pwCVXZ basis are optimized (typically one additional shell of each angular momentum below the valence shell). For $n$d transition metals, the $n$s, $(n+1)$s, $n$p, $n$d orbitals are correlated.
MIXED
corresponds to SMALL
but the next lower s and p shells of the p-block elements are not correlated.
Note that until Molpro 2021.3, the 2s and 2p shells of the second-row elements Al - Ar were correlated with MIXED
, but for consistency this has been changed in 2021.4. The old behaviour can be recovered using MIXED_OLD
.
LARGE
means that no inner shells are correlated (default). In transition metals the outermost d-shell and in f-elements the outermost f-shell are treated as valence and always correlated.
The most general core definition is possible using the last possibility, where SYM1, SYM2 etc are atomic symbols and spdf are the numbers of core orbitals at the given atom for each angular momentum. For example, for bromine CORE,Br=21
is equivalent to CORE,SMALL
, CORE,Br=32
is equivalent to CORE,MIXED
, and CORE,Br=321
is equivalent to CORE,LARGE
. Trailing zeros are optional, i.e. Br=3200, 320, or 32 are equivalent. Atom-specific core specifications cannot exceed the number of large core orbitals for each angular momentum.
Optionally, SMALL, MIXED, or LARGE can be followed by specifications for individual atoms. In this case these default apply to all atoms that are not explicitly specified.
The table below summarizes the number of shells that are not correlated with the three core-orbital specifications. The cases where mixed and small differ are shown as italic. Note that for the post-d p-block elements “mixed” includes correlation of the outermost d-shell, which is not the case for the large core. For calculations including outer core orbitals the correlation consistent CVXZ or (preferably) wCVXZ basis sets [K. A. Peterson, and T. H. Dunning Jr., J. Chem. Phys. 117, 10548–10560 (2002)] should be used. But note these are not appropriate to correlate inner-shell core electrons.
Number of shells | ||||||
---|---|---|---|---|---|---|
Elements | Outer core | Valence | All occupied | Large core | Small core | Mixed core |
(spdf) | (spdf) | (spdf) | (spdf) | |||
Z=1,2 | 1s | (1000) | (0000) | (0000) | (0000) | |
Z=3-4 | 1s | 2s | (2000) | (1000) | (0000) | (0000) |
Z=5-10 | 1s | 2s2p | (2100) | (1000) | (0000) | (1000) |
Z=11-12 | 2s2p | 3s | (3100) | (2100) | (1000) | (1000) |
Z=13-18 | 2s2p | 3s3p | (3200) | (2100) | (1000) | (2100) |
Z=19-20 | 3s3p | 4s | (4200) | (3200) | (2100) | (2100) |
Z=21-30 | 3s3p | 4s3d | (4210) | (3200) | (2100) | (2100) |
Z=31-36 | 3s3p3d | 4s4p | (4310) | (3210) | (2100) | (3200) |
Z=37-38 | 4s4p | 5s | (5310) | (4310) | (3210) | (3210) |
Z=39-48 | 4s4p | 5s4d | (5320) | (4310) | (3210) | (3210) |
Z=49-54 | 4s4p4d | 5s5p | (5420) | (4320) | (3210) | (4310) |
Z=55-56 | 5s5p | 6s | (6420) | (5420) | (4320) | (4320) |
Z=57-71 | 4s4p4d | 5s6s5p5d4f | (6431) | (4320) | (3210) | (3210) |
Z=72-80 | 5s5p | 6s5d | (6431) | (5421) | (4321) | (4321) |
Z=81-86 | 5s5p5d | 6s6p | (6531) | (5431) | (4321) | (5421) |
Z=87-88 | 6s6p | 7s | (7531) | (6531) | (5431) | (5431) |
Z=89-103 | 5s5p5d | 6s7s6p6d5f | (7542) | (5431) | (4321) | (4321) |
Z=104-112 | 6s6p | 7s6d | (7542) | (6532) | (5432) | (5432) |
Z=113-118 | 6s6p6d | 7s7p | (7642) | (6542) | (5432) | (5432) |
The program automatically checks if the orbitals with the lowest orbital energies correspond to the requested core orbitals, and if necessary orbitals are swapped as required. Within the set of core orbitals, this check can only be performed if SMALL
or MIXED
is given. If one specifies the absolute number of core orbitals the check is not possible since the program does not know which type the core orbitals should have.
Note that the OCC
and CLOSED
cards have slightly different meanings in the SCF, MCSCF and CI or CCSD programs. In SCF and MCSCF, occupied orbitals are those which occur in any of the CSFs. In electron correlation methods (CI, MPn, CCSD etc), however, OCC
denotes the orbitals which are occupied in any of the reference CSFs. In the MCSCF, FROZEN
orbitals are doubly occupied in all CSFs and frozen (not optimized), while closed denotes all doubly occupied orbitals (frozen plus optimized). In the CI and CCSD programs, core orbitals are those which are not correlated and closed orbitals are those which are doubly occupied in all reference CSFs.
OCC
, CORE
and CLOSED
directives are generally required in each program module where they are relevant; however, the program remembers the most recently used values, and so the directives may be omitted if the orbital spaces are not to be changed from their previous values. Note that this information is also preserved across restarts. Note also, as with the WF
information, sensible defaults are assumed for these orbital spaces. For full details, see the appropriate program description.
The orbital spaces may also be defined outside command blocks, and then the directive is treated as global, i.e., it is used in all subsequent programs. Spaces specific to certain wavefunction types can be defined by specifiying the program name with a CONTEXT
option, e.g.,
OCC,4,2,1,CONTEXT=MULTI
Alternatively, the context can be appended to the directive name with an underscore. For example
OCC_MULTI,4,2,1
is equivalent to the previous form.
The occupation and core settings are usually molecule specific and depend on the symmetry and charges. They can also change if dummy atoms are defined. Therefore, global settings should be used with care. In molpro2021.4 or later it is possible to specify global core types (CORE,SMALL|MIXED|LARGE
); these work also if the molecule or symmetry changes, or if dummy atoms are used. Specifying core orbitals in this way is preferable since the orbitals are appropriately reordered, if necessary (see above). Note that contexts cannot be given if core types are given; also atom-specific core definitions are only possible within command blocks.
Local input given within command blocks has preference over global input.
Selecting orbitals and density matrices (ORBITAL, DENSITY)
[sec:orbitals] As outlined in section records, the information for each SCF or MCSCF calculation is stored in a dump record. Dump records contain orbitals, density matrices, orbital energies, occupation numbers, fock matrices and other information as wavefunction symmetries etc. Subsequent calculation can access the orbitals and density matrices from a particular record using the ORBITAL
and DENSITY
directives, respectively. These input cards have the same structure in all programs. The general format of the ORBITAL
and DENSITY
directives is as follows:
ORBITAL
[,
[RECORD=
]record] [,
[TYPE=
]orbtype] [,STATE=
state] [,SYM[METRY]=
symmetry]]
DENSITY
[,
[RECORD=
]record] [,
[TYPE=
]dentype] [,STATE[B]=
stateb] [,SYM[B]=
symb] [,SPIN[B]=
spinb] [,MS2[B]=
ms2b] [,STATEK=
statek] [,SYMK=
symk] [,SPINK=
spink] [,MS2K=
ms2k] [,[N]ELEC=
nelec] [,SET=
iset]
where the (optional) specifications can be used to select specific orbitals or densities, if several different orbital sets are stored in the same record. If a specification is not given, it is not checked and the last written set that fullfills all other criteria is used. The meaning of the individual specifications are as follows:
- orbtype Orbital type. This can be one of
CANONICAL
: canonical or pseudo-canonical orbitals;
NATURAL
: natural orbitals;
LOCAL
: localized orbitals;
LOCAL(PM)
: localized Pipek-Mezey orbitals;
LOCAL(BOYS)
: localized Boys orbitals;
PROJECTED
: projected virtual orbitals used in local calculations.
Without further specification, the most recently computed orbitals of the specified type are used. If the orbital type is not specified, the program will try to find the most suitable orbitals automatically. For instance, in MRCI calculations NATURAL
orbitals will be used preferentially if available; MRPT (CASPT2) calculations will first search for CANONICAL
orbitals, and local calculations will first look for LOCAL
orbitals. Therefore, in most cases the orbital type needs not to be specified.
- state Specifies a particular state in the form $istate.isym$. For instance, 2.1 refers to the second state in symmetry 1. This can be used if density matrices or natural orbitals have been computed for different states in a state-averaged CASSCF calculation. If not given, the last written orbitals are used. A state-averaged density can be selected using
STATE=AV[ERAGED]
. The specification of $isym$ is optional; it can also be defined using theSYMMETRY
key. - dentype Density type. This can be one of
CHARGE
: charge density;
SPIN
: UHF spin density;
TRANSITION
: transition density matrix;
The default is CHARGE
.
- symmetry Specifies a particular state symmetry. Alternatively, the state symmetry can be specified using
STATE
(see above). - spin Spin quantum number, i.e. 0 for singlet, 1/2 for doublet, 1 for triplet, etc. Alternatively
MS2
can be used. - ms2 $2 M_S$, i.e. 0 for singlet, 1 for doublet, 2 for triplet etc. Alternatively,
SPIN
can be used. - nelec Number of electrons.
- iset Set number of orbitals. The orbital sets are numbered in the order they are stored.
In some cases (e.g. in MATROP
) transition density matrices can be specified. In this case STATEB
, SYMB
, MS2B
, SPINB
refer to the bra state and STATEK
, SYMK
, MS2K
, SPINK
refer to the ket state. If bra and ket differ, TYPE=TRANSITION
is implied, and SYMMETRY
is automatically set to the product symmetry of bra and ket. If STATEK
, SYMK
, MS2K
, SPINK
are not given, they are assumed to be equal to the corresponding bra quantities. See section matrix operations for examples.
If OVL
is specified, the starting orbitals are obtained by maximizing the overlap with previous orbitals. By default, this is used if the basis dimension of the previous orbitals is different then the current one. If OVL
is specified this procedure is used even if the basis dimensions are the same, which is occasionally useful if the contraction scheme changed.
If NOCHECK
is specified, some consistency checks for finding correct orbitals are skipped, and error messages like “ORBITALS CORRESPOND TO DIFFERENT GEOMETRY” are ignored.
If IGNORE_ERROR
is specified, MPn or triples calculations can be forced with other than canonical orbitals. Note that this can lead to meaningless results! Note that in MULTI IGNORE_ERROR
must be given on the START
directive, since in this program ORBITAL
is used to define the new orbitals.
If any of the above options are given, they must be obeyed strictly, i.e., the program aborts if the request cannot be fulfilled.
Examples:
ORBITAL,2100.2 !Use SCF orbitals ORBITAL,2140.2 !Use (state-averaged) MCSCF orbitals ORBITAL,2140.2,CANONICAL !use canonical MCSCF orbitals ORBITAL,2140.2,NATURAL,STATE=2.1 !use natural MCSCF orbitals for second state in sym. 1
Plugins
Molpro can host suitably prepared external programs as “plugins”. They are launched using MPI’s spawn mechanism, and therefore the user must take care of any job-scheduling constraints on the number and placement of MPI processes. The following syntax in the input file will cause the plugin to be launched.
PLUGIN,COMMAND=
command,PROCS=
procs
command is the name of the executable of the plugin. It can be given as an absolute path name, or a relative path. If it is a simple name (no /
characters), it will be searched for in the same directory as Molpro’s executable, and this will be the normal mode of use. If the plugin is not found, and command does not have a filename suffix, then the suffix .exe
will be assumed.
PROCS=
procs specifies the number of processes for the plugin, and can be omitted, in which case the number is the same as in the host Molpro instance.
Example:
PLUGIN, COMMAND='Block', PROCS=128
Most plugins work by requesting the information they need from Molpro. This is typically information about the molecule and hamiltonian, plus an input file consisting of options. For some plugins, Molpro is aware of the structure of this input file, and will construct it by merging user-specified options with defaults. For example,
GLOBAL,FCIQMC,TIME=20,CALCRDMONFLY=3 PLUGIN,COMMAND='neci'
Summary of keywords known to the controlling program
This is a summary of all keywords presently implemented in the controlling program. Each module knows further keywords, which are described in the chapters about the individual programs. For detailed information about the use of the commands listed below, consult the following chapters.
- Program control:
**
indicates start of a new calculationMEMORY
allocates dynamic memoryPUNCH
opens a punch fileFILE
connects units to permanent filesRESTART
recovers file informationINCLUDE
includes other input filesBASIS
can be used to define default basis setsGEOMETRY
can be used to specify the geometryZMAT
can be used to define the Z-matrixPARALLEL
can be used to control parallelizationSTATUS
checks status of program stepsPRINT
,GPRINT
controls global print levelsTHRESH
,GTHRESH
controls global thresholdsDIRECT
,GDIRECT
flags direct computation of integrals and for setting direct optionsEXPEC
,GEXPEC
controls computation of expectation valuesTEXT
prints textEXIT
stops executionDO
controls do loopsENDDO
end of do loopsIF
controls conditional actionsELSEIF
controls conditional actionsENDIF
end ofIF block
GOTO
used to skip part of input and for loops over inputLABEL
no actionDATA
data set managementDELETE
,ERASE
data set deletionMATROP
performs matrix operationsGRID
Define gridCUBE
Dump data to gridCARTESIAN
Use cartesian basis functionsSPHERICAL
Use spherical harmonic basis functionsUSER
calls user-supplied subroutine---
last line of input
- Variables:
SET
sets variables (obsolete)SETI
sets variables or numbers to their inverse (obsolete)SETA
sets variable arrays (obsolete)CLEAR
clears variablesCLEARALL
clears all variablesGETVAR
recovers variables from fileSHOW
displays the values of variablesTABLE
prints tables
- Wave function optimization:
INT
calls the machine default integral program. This is optional and needs not to be given.LSINT
calls the spin-orbit integral programCPP
compute core polarization potential integralsHF
orRHF
calls spin-restricted Hartree-Fock program (open or closed shell)UHF
calls spin-unrestricted Hartree-Fock programDFT
calls the density functional programKS
,RKS
call the Kohn-Sham spin restricted density functional programUKS
call the Kohn-Sham spin-unrestricted density functional programMULTI
,MCSCF
, orCASSCF
calls MCSCF/CASSCF programCASVB
calls the CASVB valence bond programCI
,MRCI
, orCI-PRO
calls internally contracted MRCI program (only pairs contracted)CIC
orMRCIC
calls the faster internally contracted MRCI program (pairs and singles contracted)CIPT2
calls internally contracted CIPT2 programACPF
,AQCC
calls internally contracted MR-ACPF programCEPA
calls single-reference CEPA program (closed- or open-shell)RS2
,RS3
calls internally contracted multireference perturbation theory program (only pairs contracted)CASPT2
orRS2C
calls faster program for internally contracted multireference perturbation theoryNEVPT2
calls NEVPT2 programMP2
calls closed-shell MP2 programMP3
calls closed-shell MP3 programMP4
calls closed-shell MP4 programCISD
calls closed-shell CISD programCCSD
calls closed-shell coupled cluster programDCSD
calls closed-shell distringusihable cluster programBCCD
calls closed-shell Brueckner CCD programQCI
,QCSID
calls closed-shell quadratic configuration interaction programUCCSD
calls spin-unrestricted open-shell coupled cluster program (based on RHF reference function)RCCSD
calls spin-restricted open-shell coupled cluster program (based on RHF reference function)FCI
orFULLCI
calls determinant based full CI program
- Local correlation methods:
LMP2
calls closed-shell PAO-LMP2 programLMP3
calls closed-shell PAO-LMP3 programLMP4
calls closed-shell PAO-LMP4 programLCISD
calls closed-shell PAO-LCISD programLCCSD
calls closed-shell PAO-LCCSD programPNO-LMP2
calls PNO-LMP2 programPNO-LCCSD
calls PNO-LCCSD program, equivalent toPNO-RCCSD
PNO-RCCSD
calls PNO-RCCSD programPNO-UCCSD
calls PNO-UCCSD programPNO-CASPT2
calls PNO-CASPT2 program
- Explicitly correlated methods:
MP2-R12
calls MP2-R12 programMP2-F12
calls MP2-F12 programCCSD-F12
calls CCSD-F12 programLMP2-R12
calls PAO-LMP2-R12 programLMP2-F12
calls PAO-LMP2-F12 programLCCSD-F12
calls PAO-LCCSD-F12 programPNO-LMP2-F12
calls PNO-LMP2-F12 programPNO-LCCSD-F12
calls PNO-LCCSD-F12 program, equivalent toPNO-RCCSD-F12
PNO-RCCSD-F12
calls PNO-RCCSD-F12 programPNO-UCCSD-F12
calls PNO-UCCSD-F12 programRS2-F12
calls explicitly correlated multireference perturbation theory programMRCI-F12
calls explicitly correlated internally contracted MRCI program
- Orbital manipulation:
LOCALI
calls orbital localization programMERGE
calls orbital manipulation program
- Properties and wavefunction analysis:
POP
calls population analysis programDMA
calls distributed multipole analysis programIBBA
orIBO
calls intrinsic bond orbital analysis programPROPERTY
calls properties programDIP
adds dipole field to $h$QUAD
adds quadrupole field to $h$LATTICE
read or disable lattice of point charges- Gradients and geometry optimization:
FORCES
calls gradient programOPTG
performs automatic geometry optimizationMIN
performs energy minimization with respect to some parametersPUT
print or write geometry to a fileHESSIAN
calculate HessianFREQUENCY
calculate vibrational frequenciesMASS
define atomic massesDDR
evaluates approximate non-adiabatic coupling matrix elements
The command names for single reference coupled cluster methods QCISD, CCSD, LQCISD, LCCSD, PNO-LCCSD, PNO-RCCSD, PNO-UCCSD
(including the explicitly correlated variants) can be appended by (T)
and then a perturbative correction for triple excitations will be computed (e.g., CCSD(T)
, PNO-LCCSD(T)-F12
etc.)
HF
, KS
, UHF
, UKS
, MP2
, CCSD
, MCSCF
, RS2
, and all PAO-based local correlation methods can be prepended by DF-
to invoke density fitting (PNO always implies density fitting).
HF
, KS
, UHF
, UKS
can be pretended by LDF-
to invoke local density fitting approximations.
Molpro help
The help command can be used to obtain a short description of commands, input parameters, and variables. The syntax is:
HELP
,set,name,[keys]
where set is either COMMAND
, VARIABLE
, or the name of the input set (e.g., THRESH
, PRINT
, LOCAL
, EOM
, CFIT
), and name is the name of the parameter. If name is blank, all parameters of the set are shown. Optionally, keys can be specified to request specific information (e.g., short_description
, long_description
, default_value
, type
, program
). If keys are not given, short_description
is assumed.
- examples/help.inp
***,demonstrate help facility in Molpro help,command,help !print help about help help,thresh,energy !print help about threshold energy help,thresh,energy,default_value !print help about threshold energy and its default help,thresh !print short description of all thresholds help,thresh,nonexistent !this does not exist and gives an error message
Currently, help is only available for a limited number of parameters and commands. However, the database will be extended in the near future.