Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
pes_generators [2023/05/15 21:42] – mppx maypes_generators [2024/11/13 08:27] (current) rauhutmoschneide
Line 21: Line 21:
 {xsurf,sym=auto} {xsurf,sym=auto}
 </code> </code>
-The ''XSURF'' program is based on an iterative algorithm, i.e. grid points will be added automatically to the grid representation of the potential until a convergence threshold will be met. This guarantees a well-balanced description of the different terms in the expansion of the potential and simultaneously minimizes the number of //ab initio// calculations for a representation of the potential. For further details see:\\+As the elongations along different coordinates within the build-up of the PES will lead to different molecular point groups for the individual electronic structure calculations, any symmetry-specific information in that part of the input needs to be avoided. The ''XSURF'' program is based on an iterative algorithm, i.e. grid points will be added automatically to the grid representation of the potential until a convergence threshold will be met. This guarantees a well-balanced description of the different terms in the expansion of the potential and simultaneously minimizes the number of //ab initio// calculations for a representation of the potential. For further details see:\\
  
 G. Rauhut, //Efficient Calculation of Potential Energy Surfaces for the Generation of Vibrational Wave Functions//, [[https://dx.doi.org/10.1063/1.1804174|J. Chem. Phys.]] **121**, 9313 (2004).\\ G. Rauhut, //Efficient Calculation of Potential Energy Surfaces for the Generation of Vibrational Wave Functions//, [[https://dx.doi.org/10.1063/1.1804174|J. Chem. Phys.]] **121**, 9313 (2004).\\
Line 39: Line 39:
   * **''MINxD''=//n//** The minimum number of coarse grid points can be controlled by the keywords ''%%MIN1D, MIN2D, MIN3D, MIN4D%%''. These 4 keywords determine the minimum number of //ab initio// calculations in one dimension for each 1D, 2D, 3D and 4D surface. The defaults are currently ''%%MIN1D=4, MIN2D=4, MIN3D=4, MIN4D=4%%''. Presently, values larger than 24 are not supported.   * **''MINxD''=//n//** The minimum number of coarse grid points can be controlled by the keywords ''%%MIN1D, MIN2D, MIN3D, MIN4D%%''. These 4 keywords determine the minimum number of //ab initio// calculations in one dimension for each 1D, 2D, 3D and 4D surface. The defaults are currently ''%%MIN1D=4, MIN2D=4, MIN3D=4, MIN4D=4%%''. Presently, values larger than 24 are not supported.
   * **''MINxD_CRIT1''=//n//** Minimum number of ab initio calculations per dimension, which are needed before a subsurfaces can be declared to be converged according to criterion 1. For dimension 1-3 the default is 6, while it is reduced to 4 for all higher order subsurfaces.   * **''MINxD_CRIT1''=//n//** Minimum number of ab initio calculations per dimension, which are needed before a subsurfaces can be declared to be converged according to criterion 1. For dimension 1-3 the default is 6, while it is reduced to 4 for all higher order subsurfaces.
-  * **''MPG''=//n//** Symmetry of the normal modes is recognized by the program automatically. Only Abelian point groups can be handled at the moment. Symmetry of the modes will be determined even if the ''NOSYM'' keyword is used in the electronic structure calculations. In certain cases numerical noise can be very high and thus prohibits a correct determination of the symmetry labels. Symmetry can be switched off by using ''MPG=1''.+  * **''MPG''=//n//** Symmetry of the normal modes is recognized by the program automatically. Symmetry of the modes will be determined even if the ''NOSYM'' keyword is used in the electronic structure calculations. In certain cases numerical noise can be very high and thus prohibits a correct determination of the symmetry labels. Symmetry can be switched off by using ''MPG=1''.
   * **''NDIM''=//n//** The keyword ''NDIM=n'' terminates the expansion of the PES after the $n$-body term. The default is set to 3. Please note, when you use ''NDIM=4'' as a keyword for the ''XSURF'' program, you need to pass this information to the ''VSCF'' and ''VCI'' programs also. Otherwise these programs will neglect the 4-body terms.   * **''NDIM''=//n//** The keyword ''NDIM=n'' terminates the expansion of the PES after the $n$-body term. The default is set to 3. Please note, when you use ''NDIM=4'' as a keyword for the ''XSURF'' program, you need to pass this information to the ''VSCF'' and ''VCI'' programs also. Otherwise these programs will neglect the 4-body terms.
   * **''NGRID''=//n//** Based on a coarse grid of //ab initio// points a fine grid will be generated from automated interpolation techniques. The keyword ''NGRID=n'' determines the number of equidistant grid points in one dimension. ''NGRID=n'' has to be an even number. The default is currently set to 16.   * **''NGRID''=//n//** Based on a coarse grid of //ab initio// points a fine grid will be generated from automated interpolation techniques. The keyword ''NGRID=n'' determines the number of equidistant grid points in one dimension. ''NGRID=n'' has to be an even number. The default is currently set to 16.
Line 62: Line 62:
   * **''VAR1D''=//variable//** The ''XSURF'' program reads the energy of electronic structure calculations from the internal Molpro variables, e.g. ''ENERGY'', ''EMP2'', $\dots$. The internal variable is specified by the keyword ''VAR1D''. The default for the ''VAR1D'' keyword is the internal variable ''ENERGY''.   * **''VAR1D''=//variable//** The ''XSURF'' program reads the energy of electronic structure calculations from the internal Molpro variables, e.g. ''ENERGY'', ''EMP2'', $\dots$. The internal variable is specified by the keyword ''VAR1D''. The default for the ''VAR1D'' keyword is the internal variable ''ENERGY''.
   * **''VIBIRREP''=//variable//** The irreps of the vibrations within the XSURF, VSCF and VCI programs may differ from those within the FREQ program as the molecules will be be reoriented according to the conventions (see keyword ''ORIENT''). In order to use the same irreps as in the FREQ program, one may use ''VIBIRREP=Sort''.   * **''VIBIRREP''=//variable//** The irreps of the vibrations within the XSURF, VSCF and VCI programs may differ from those within the FREQ program as the molecules will be be reoriented according to the conventions (see keyword ''ORIENT''). In order to use the same irreps as in the FREQ program, one may use ''VIBIRREP=Sort''.
 +<!--  * **''GMAT''=//n//** If the vibrational frequencies sould be computed with the Gmatrix formalism, $n$ determines the dimension of the expansion of the Wilson Gmatrix. Higher than 2 is not recommended
 +  * **''PSEUDOPOT''=//n//**. If the vibrational frequencies sould be computed with the Gmatrix formalism, $n$ determines the dimension of the expansion of the Wilson pseudopotential. Higher than 2 is not recommended-->
  
 The following example shows the input of a calculation which computes energy and dipole surfaces at the MP2/cc-pVTZ level and subsequently determines the anharmonic frequencies at the VSCF and VCI levels. Hartree-Fock calculations will not be restarted and the .log-file is directed to the scratch directory as defined by the $TMPDIR variable. The following example shows the input of a calculation which computes energy and dipole surfaces at the MP2/cc-pVTZ level and subsequently determines the anharmonic frequencies at the VSCF and VCI levels. Hartree-Fock calculations will not be restarted and the .log-file is directed to the scratch directory as defined by the $TMPDIR variable.
Line 106: Line 108:
 The ''INTENSITY'' directive of the ''SURF'' program provides the option to alter the electronic structure methods for calculating the dipole surfaces. It also allows to define the VARDIP//n//D[X,Y,Z] variables separately. $n$ describes the dimension of the coupling surface and can be chosen to be 1 - 4. The ''INTENSITY'' directive of the ''SURF'' program provides the option to alter the electronic structure methods for calculating the dipole surfaces. It also allows to define the VARDIP//n//D[X,Y,Z] variables separately. $n$ describes the dimension of the coupling surface and can be chosen to be 1 - 4.
  
-Dipole surfaces can be computed for all those methods for which analytical gradients are available in Molpro. For all methods except Hartree-Fock this requires the keyword ''%%CPHF,1%%'' after the keyword for the electronic structure method. In multi-level schemes for which the variables ''VAR1D'', ''VAR2D'' and ''VAR3D'' are set individually, the VARDIP//n//D[X,Y,Z] variables have to be set accordingly. Symmetry is currently only implemented for the 1D, 2D and 3D dipole surfaces. For 4D terms symmetry will automatically switched off at the moment. The determination of dipole surfaces beyond Hartree-Fock quality effectively doubles the computation time for surface calculations.+Dipole surfaces can be computed for all those methods for which analytical gradients are available in Molpro. For all methods except Hartree-Fock this requires the keyword ''%%CPHF,1%%'' after the keyword for the electronic structure method. In multi-level schemes for which the variables ''VAR1D'', ''VAR2D'' and ''VAR3D'' are set individually, the VARDIP//n//D[X,Y,Z] variables have to be set accordingly. The determination of dipole surfaces beyond Hartree-Fock quality effectively doubles the computation time for surface calculations.
  
 === Options === === Options ===
Line 361: Line 363:
 === Options === === Options ===
  
-  * **''ANGLE''=//value//** Rotation angle in degree.+  * **''ANGLE''=//value//** Rotation angle in degree. This keyword requires the specification of two normal coordinates provided by ''NM1'' and ''NM2''.
   * **''BLx''=//n//** This option assigns mode $n$ to block $x$. For example, the line ''%%LINCOMB,BL1=1,BL1=2,BL2=5,BL2=6%%'' for a 4-atomic molecule assigns modes 1 and 2 to a 1st block and thus these two modes will be localized afterwards. Modes 3 and 4 will not be affected and thus refer to standard normal coordinates, while modes 5 and 6 constitute a 2nd block   * **''BLx''=//n//** This option assigns mode $n$ to block $x$. For example, the line ''%%LINCOMB,BL1=1,BL1=2,BL2=5,BL2=6%%'' for a 4-atomic molecule assigns modes 1 and 2 to a 1st block and thus these two modes will be localized afterwards. Modes 3 and 4 will not be affected and thus refer to standard normal coordinates, while modes 5 and 6 constitute a 2nd block
   * **''LOCAL''=//n//** ''LOCAL''=1 localizes the normal coordinates of the CH-stretchings. Note that this destroys symmetry of these modes. Usually localization has strong impact on subsequent ''VSCF'' calculations. ''LOCAL''=2 localizes the normal coordinates of a molecular cluster to the contributing entities. This localization scheme localizes within the individual irreps, which usually leads to a very faint localization. Switching symmetry off by ''MPG''=1 in the ''XSURF'' program leads to a much stronger localization.   * **''LOCAL''=//n//** ''LOCAL''=1 localizes the normal coordinates of the CH-stretchings. Note that this destroys symmetry of these modes. Usually localization has strong impact on subsequent ''VSCF'' calculations. ''LOCAL''=2 localizes the normal coordinates of a molecular cluster to the contributing entities. This localization scheme localizes within the individual irreps, which usually leads to a very faint localization. Switching symmetry off by ''MPG''=1 in the ''XSURF'' program leads to a much stronger localization.
Line 367: Line 369:
   * **''THRLOC''=//value//** (=1.0d-6 Default) Threshold within the localization procedure.   * **''THRLOC''=//value//** (=1.0d-6 Default) Threshold within the localization procedure.
  
-==== Scaling of individual coordinates ====+==== Scaling of individual normal coordinates ====
  
 ''SCALNM'',//options// ''SCALNM'',//options//
Line 385: Line 387:
   * **''SHOW''=//n//** (=0 default) Addition printing within the scaling procedure is switched on by ''SHOW=1''.   * **''SHOW''=//n//** (=0 default) Addition printing within the scaling procedure is switched on by ''SHOW=1''.
   * **''THRSHIFT''=//value//** Threshold controlling the automated shifting of potentials as obtained from the state densities on the lhs and rhs of the potentials. The default is given as ''THRSHIFT=0.05''.   * **''THRSHIFT''=//value//** Threshold controlling the automated shifting of potentials as obtained from the state densities on the lhs and rhs of the potentials. The default is given as ''THRSHIFT=0.05''.
 +
 +<!--==== Scaling of individual internal coordinates ====
 +
 +''SCALIC'',//options//
 +
 +The ''SCALIC'' directive allows for the scaling with respect to the individual internal coordinates or an automated scaling of all of them.
 +
 +=== Options ===
 +
 +  * **''AUTO''=//on / off//** ''AUTO''=//on// (default) switches on an automatic scaling procedure of the potential in order to determine meaningful elongations and ''SHIFT'' values with respect to all coordinates, i.e. for each normal mode an optimized scaling parameter ''SFAC'' and ''SHIFT'' parameter will be determined. Usually this results in an increased number of 1D grid points. The ''AUTO'' keyword intrinsically depends on the thresholds and parameters, which can be controlled by the keywords ''THRSHIFT'', ''ITMAX'', ''LEVMAX'', ''DENSMAX'', and ''DENSMIN''.
 +  * **''DENSMAX''=//value//** (=1.d-2 default) Threshold for the maximum vibrational density on the edges of the potential needed for the automated upscaling of the potentials (see keyword ''AUTO'').
 +  * **''DENSMIN''=//value//** (=1.d-4 default) Threshold for the minimum vibrational density on the edges of the potential needed for the automated downscaling of the potentials (see keyword ''AUTO'').
 +  * **''LEVMAX''=//n//** Maximum number of vibrational states to be included for controlling the automated scaling and shifting procedure. The default is set to 5. This value should support subsequent VCI calculations.
 +  * **''MIN(n)''=//value//** Defines the minimum $value$ of coordinate $n$.
 +  * **''MAX(n)''=//value//** Defines the maximum $value$ of coordinate $n$.
 +-->
 +
 +
  
 ==== Fit Functions ==== ==== Fit Functions ====
Line 404: Line 424:
 ==== Point Selection ==== ==== Point Selection ====
  
-''POINTSELEC'',//options//+''POINTS'',//options//
  
 The positioning of the ab initio single points along a coordinate can be controlled by this directive. The default is currently an empirically fixed distribution. Alternatively one can use a positioning based on Gaussian process regression. The positioning of the ab initio single points along a coordinate can be controlled by this directive. The default is currently an empirically fixed distribution. Alternatively one can use a positioning based on Gaussian process regression.
Line 722: Line 742:
   * **''NEL''=//n//** Number of data to be read in for one point.   * **''NEL''=//n//** Number of data to be read in for one point.
   * **''VARx''=//variable//** (x=number) Name of the variable, which shall be read from the input file.   * **''VARx''=//variable//** (x=number) Name of the variable, which shall be read from the input file.
 +<!--==== Internal Coordinates ====
 +
 +''INTC'',//options//
 +
 +The ''XSURF'' programs allows to compute the desired surfaces with the use of internal coordinates.
 +
 +=== Options ===
  
 +  * **''TYPE''=//variable//** Type of internal Coordinate. **variable=**  
 +     * zmat: Zmatrix coordinates (need to be provided via the Input geometry)
 +     * ozmat: Zmatrix coordinates (internally generated)
 +     * pzmat: projected Zmatrix coordinates (Zmatrix needs to be provided via the Input geometry)
 +     * opzmat: projected Zmatrix coordinates (Zmatrix is internally generated)
 +     * nzmat: NOMODECO Zmatrix coordinates (Zmatrix needs to be provided via the Input geometry)
 +     * onzmat: NOMODECO Zmatrix coordinates (Zmatrix is internally generated)
 +     * deloc: Delocalised internal coordinates
 +     * natint: Natural internal coordinates
 +     * pnatint: projected Natural internal coordinates
 +     * poly: polyspherical internal coordiantes
 +   * **''ECKART''=//n//** If $n=1$, the geometry is rotated according to the eckart conditions which is recommended for the use of other properties than the energy
 +   * **''NDIMGMAT''=//n//** Determines the order of the expansion of the Wilson G matrix. Higher than dimension 2 is not recommended
 +   * **''NDIMVG''=//n//**. Determines the order of the expansion of the Pseudopotential. Higher than the dimension 2 is not recommended
 +   * **''RADII''=//x//** $x$ is the threshold for detecting a bon between two atoms
 +   * **''CUTOFF''=//x//** $x$ is the threshold for detecting clusters (not useable currently)
 +   * **''THRGEOM''=//x//** Threshold to determine if the geometry is converged
 +   * **''ITMAX''=//n//** Defines the maximum number of iteration when elongate the geometries
 +   * **''PSCRLAB''=//label//** Defines a label for precomputing the surface to determine a first scaling
 +   * **''ELONG''=//n//** Defines different ways on how to compute the elongations within the backtransformation from internal to Cartesian coordinates
 +      * For Z-Matrix based coordinates it can be either a simple construction($n=0$) or the HOPE algorithm ($n=1$)
 +      * For NatInt coordinates it can either be a standard B matrix algorithm ($n=0$), virtuel geometries ($n=1$) or subsequent elongation of single coordinates ($n=3$)
 +   * **''VAM''=//n//** If $n=1$, rovibrational coupling is considered when the G-matrix is computed-->
 ==== Recommendations ==== ==== Recommendations ====
  
Line 737: Line 787:
 ''SURF'',//options//  ''SURF'',//options// 
  
-The old ''SURF'' program for generating potential energy surfaces is still implemented, but will no longer be supported in the future. The new and much improved ''XSURF'' code follows the same philosophy and many options are the same as in the old ''SURF'' code, but ''XSURF'' cannot read any potential files being generated by ''SURF''. If you need to use the old ''SURF'' program, see older versions of the manual for the corresponding keywords.+The old ''SURF'' program for generating potential energy surfaces is still implemented, but is no longer supported. Several keywords are specific to the ''XSURF'' core and cannot be used together with ''SURF''. The new and much improved ''XSURF'' code follows the same philosophy and many options are the same as in the old ''SURF'' code, but ''XSURF'' cannot read any potential files being generated by ''SURF''. If you need to use the old ''SURF'' program, see older versions of the manual for the corresponding keywords.