Skip to content

Latest commit

 

History

History
357 lines (238 loc) · 33.4 KB

EVR-doc.textile

File metadata and controls

357 lines (238 loc) · 33.4 KB

ElVibRot

1) Introduction

This code enables to perform quantum dynamics calculations with curvilinear coordinates.

  • Time independent calculations: energy levels, spectrum with intensities…
  • Time dependent calculations (wavepacket propagations): propagations with time dependent field, relaxation, optimal control …

The main originality concerns the use of numerical kinetic energy operator (Tnum), which enables a large flexibility in the choice of the curvilinear coordinates.

2) Input file

The input file has four mains sections:

  1. SYSTEM and CONSTANTS, which define general parameters for parallelization, printing levels, energy unit, physical constants…
  2. COORDINATES, which defines the curvilinear coordinates, the coordinates transformations and some aspects of the physical models (constraints….). This section is part of Tnum.
  3. OPERATORS and BASIS SETS, which define parameters of scalar operators (potential, dipole moments…) and the active and inactive basis set (contracted).
  4. ANALYSIS, which defines parameters for time dependent (including optimal control) or independent calculations, intensities.

2.1) &system namelist

This namelist can be used without parameter. The default values should work for most of the situations. However, the following parameters can be used in this namelist:

  • printlevel (default -1): The value -1 gives the minimal output. The value 0 gives more output and 1 gives even more.
  • RMatFormat (default “f18.10”): This parameter controls the format to print a REAL matrix.
  • CMatFormat (default “f15.7”): This parameter controls the format to print a COMPLEX matrix.
  • EneFormat (default “f18.10”): This parameter controls the format to print the energy.
  • intensity_only (default F): The value T (for true) enables to calculate only the intensities (for time independent calculation) with the restart file (restart.int). It is useful, when one want to change temperature.
  • Popenmp (default T): The value T (for true) enables OPENMP parallelization in some parts of the code. The value F disables OPENMP parallelization. When its value is T, the following parameters enable to control more precisely the OPENMP parallelization.
    • PMatOp_omp (default 1): The value 1 enables parallelization in matrix calculation (direct=0). The value 0 disables this parallelization.
    • POpPsi_omp (default 0): The value 1 or 2 enables parallelization in the action of an operator on a wavepacket. The value 0 disables this parallelization.
    • PFBRDVR_omp (default 0): The value 1 enables parallelization in the FBR <→ DVR transformation. The value 0 disables this parallelization. This feature is disabled.
    • PGrid_omp (default 1): The value 1 enables parallelization in grid calculation. The value 0 disables this parallelization.
  • EVR (default T): The value T (for true) enables to use ElVibRot. The value F disables the ElVibRot calculation (see cart).
  • cart (default T): The value T (for true) enables to use cart. The value F disables the cart calculation (see EVR).
  • EVRT_path (default directory of compilation): it enables to read the isotopic masses from an internal file (Internal_data/IsotopicMass.txt). This parameter can be change also in the namelist “constantes”.

2.2) &constantes namelist

This namelist can be used without parameter, it enables to change energy unit and selects different version of physical constants or to redefine some of them. The following parameters can be used in this namelist:

  • version (default “CODATA2006”): The value “CODATA2006” enables to use physical constants defined in codat2006. Otherwise, the constants are the ones from the 70ed of the Physical chemistry Handbook. The atomic masses are from the Handbook.
  • ene_unit (default “cm-1”): This value stores the name of the printed energy unit and it enables to select some energy conversion (see auTOenergy). If the value of ene_unit is different from the following list, a personal unit is used and ene_unit is just the name of the unit. The conversion from atomic unit to the personal the unit is selected with auTOenergy parameter. The possible values are of ene_unit are:
    • “cm-1”: wave number unit (default).
    • “au” or “hartree”: atomic unit or Hartree unit (the working energy unit).
    • “ev” or “eV”: electron volt unit.
  • auTOenergy: This parameter enables to change printed energy unit conversion.

The following parameters can be use to modify some physical constants (to reproduce calculations with wrong ones).

  • auTOcm_inv : This parameter enables to modify energy conversion factor to “cm-1”. It has an effect only if ene_unit=“cm-1”.
  • inv_Name : This parameter enables to modify mass conversion factor (au <=> g/mol).
  • EVRT_path (default directory of compilation): it enables to read the isotopic masses from an internal file (Internal_data/IsotopicMass.txt). This parameter can be change also in the namelist “constantes”.

2.3) &variables namelist

This namelist is part of Tnum and it enables to define the curvilinear coordinates used in the dynamics. It enables to set reduced dimensionality models (rigid or flexible constraints, some part of adiabatic approximation…).
See the Tnum manual.

2.4) &minimun namelist

The parameters of this namelist define two mains features:

a) The reference geometry (used to define rigid constraints for Tnum). The relevant parameters are the following:

  • read_Qdyn0 (default T): When the value is T (for true), the reference geometry is defined with the dynamical coordinates (see Tnum). Remark, in previous version, this parameter was defined as read_Qsym0.
  • read_Qact0 (default F): When the value is T (for true), the reference geometry is defined with the active coordinates (see Tnum).
  • read_xyz0 (default F): When the value is T (for true), the reference geometry is defined with the Cartesian coordinates. Be careful, the transformation from Cartesian to dynamical coordinates is always possible with the present Tnum version.
  • read_itQ0transfo (default -1): The value defines the coordinate transformation number for which the reference geometry is read. Any numbers from 0 (for Cartesian coordinates), nb_Qtransfo (for dynanical coordinates) are possible (see Tnum for more details). This parameter should be used only when the parameters Old_Qtransfo=f and nb_Qtransfo are used in the &variable namelist.
  • read_nameQ (default F): When the value is T (for true), the coordinate names are read.
  • unit (default “au”): When the value is “au” (for atomic unit), the coordinate units are the “bohr” and the “radian”. Otherwise, the units are the “�ngstr�m” and the “degree”.

b) Options for the scalar operators (part of ElVibRot). The relevant parameters are the following:

  • nb_elec (default 1): This parameter defines the number of electronic (diabatic) surface used in the dynamic. All the operators calculated in calcN_op subroutine (sub_system.f or sub_system.f90 files) are defined as matrices (nb_elec x nb_elec).
  • nb_scalar_Op (default 0): This parameter defines the number of scalar operators (without the PES). It enables to calculate the spectral representation of these operators and it is used when intensities are calculated. Remark, when nb_scalar_Op=0 and when intensity=t is set up in the &analysis namelist, the nb_scalar_Op is modified to 3.The scalar operators (mat_ScalOp) are calculated in calcN_op.
  • pot_cplx (default F): When the value is T, the potential energy surfaces are complex. The imaginary part (mat_imV) of the PES is calculate in calcN_op subroutine.
  • OnTheFly (default F): When the value is T, the scalar operators and the potential energy surfaces are calculated “on-the-fly” with quantum chemistry codes (only Gaussian and Gamess-US are defined). Only the 3 components of the dipole moment can be calculated (nb_scalar_Op=3).
  • pot0 (default 0.): This value is the energy reference of the PES. This value is not automatically defined from the PES grid, therefore it has to be set-up. Otherwise, the printed energy with respect to the pot0 value might be not printable. Nevertheless, the quantum dynamics calculation will be correct.
  • pot_act (default T): When the value is T, the scalar operators and the potential energy surfaces are evaluated with dynamical coordinates in active order.
  • pot_cart (default F): When the value is T, the scalar operators and the potential energy surfaces are evaluated with Cartesian coordinates.

Remark: when both values of pot_act and pot_cart are F, the scalar operators and the potential energy surfaces are evaluated with dynamical coordinates (not in active order).

  • pot_itQtransfo (default -1): The value defines the coordinate transformation number for which the scalar operators and the potential energy surfaces are evaluated. Any numbers from 0 (for Cartesian coordinates), nb_Qtransfo (for dynanical coordinates) are possible (see Tnum for more details). This parameter should be used only when the parameters Old_Qtransfo=f and nb_Qtransfo are used in the &variable namelist.
  • HarD (default T): This parameter is relevant only when Harmonic adiabatic separation is used (HADA or cHAC, coordinate types, 21 or 22). When the value is T, the scalar operators and the potential energy surfaces are evaluated only along the “active” coordinates (coordinate type, 1) and an harmonic contribution is added in d0d1d2_h subroutine (sub_system.f or sub_system.f90 files).When the value is F, the scalar operators and the potential energy surfaces are evaluated only along all coordinates (coordinate types, 1, 21 or 22). It enables to recover exact calculation with coupled Harmonic Adiabatic Channels (cHAC).

2.5) &basis_nD namelist

This namelist enables to define mutidimensional basis sets associated with the active coordinates (type 1). The basis set associated with inactive coordinates (type 21 or 22) will be defined in the next namelist.
The definition of the basis-set can be recursive without limitation in the recursivity level.

For instance a 6D-basis-set can be define as a direct-product of 6 1D-basis-sets, or as a direct-product of 2 3D-basis-set and each of them can be defined from a direct-product of 3 1D-basis-set, or other contraction schemes.

General parameters of the namelist:

  • name (no default): This parameter defines the basis-set (the list basis-sets is given below). It must be set up. All basis-functions are normalized to one and are real.
  • iQdyn(:) (default, 0): The values of this table define the coordinate list (in dynamical order) of the basis-set (only for primitive basis-set).
  • iQact(:) (default, 0): The values of this table define the coordinate list (in active order) of the basis-set (only for primitive basis-set). It is preferable to use iQdyn(:).
  • cplx (default, F): The value T (for true) enables a complex basis-set (not used).
  • nb (default, 0): The value defines the number of basis functions (only for primitive basis-set).
  • nq (default, 0): The value defines the number of quadrature grid points (only for primitive basis-set).
  • packed (default, F): When the value is T, the basis functions is represented on a multidimensional grid. It only relevant for “direct product” basis set. All primitive and contracted basis sets are packed (packed=T).
  • nb_basis (default, 0): The value enables to define the number of basis sets used for a “direct product” basis set or other ones derived from a “direct product” basis set (basis with Sparse Grid …). This value can be different from the dimension of the basis set.
  • A and B (default, 0 and 0): The values define the range [A:B] of some basis-set (boxAB and cosAB).
  • Q0 and scaleQ (default, 0 and 0): The values define the scaling parameters of Hermite (harmonic oscillator) basis functions: (Qnew = Q0 + Qquadra / scaleQ). For instance, Q0 can be the equilibrium value of the coordinate.

Parameters which control the basis set contraction:

  • contrac (default, F): The value T (for true) enables the contraction of the basis-set.
  • name_contrac_file (no default): when contrac=T and when name_contrac_file is not empty the contracted basis-functions are read from the name_contrac_file file. When the name_contrac_file is empty, the contracted basis-functions are read from the input data file. The contracted coefficients can be obtained from a previous calculation using the parameter print_psi in the namelist &analyse.
  • nbc (default, -1): The values defines the number of contracted basis functions.
  • auto_contrac (default, F): The value T (for true) enables an automatic contraction of a basis-set. It is working for multidimensional basis-set (recursive feature).
  • max_ene_contrac (default, 10000 cm-1): The value enables to define the number of contracted basis-functions for the automatic procedure (only if nbc is not defined).
  • min_nbc (default, 0): The value enables to define the minimal number of contracted basis-functions for the automatic procedure (only if nbc is not defined).
  • max_nbc (default, 0): The value enables to define the maximal number of contracted basis-functions for the automatic procedure (only if nbc is not defined).
  • auto_contrac_type1_TO (default, 100): The value enables to define the constraints of the coordinates (of type 1) which are not the coordinates of the contracted basis set (automatic procedure). The possible values are 0 (rigid constraints) or 100 (see Tnum for more details).
  • auto_contrac_type21_TO (default, 200): The value enables to define the constraints of the coordinates (of types 21 or 22) which are not the coordinates of the contracted basis set (automatic procedure). The possible values are 20 (flexible constraints) or 200 (see Tnum for more details).

Parameters which control the grid contraction like PODVR. The basis set has to contracted with the automatic procedure (auto_contrac=T). This feature is experimental:

  • PODVR (default, F): The value T (for true) enables the definition of PODVR grid from a contracted 1D-basis set (be careful, it gives non-orthogonal basis functions).
  • PODVR_polyortho (default, F): The value T (for true) enables the definition of a new orthogonal polynomials from a contracted 1D-basis set (be careful, non-hermiticity issue).
  • nqc (default, -1): The values defines the number of PODVR grid points.
  • nqPLUSnbc_TO_nqc (default, 2): The values enables to define the number of PODVR grid points from the number of contracted basis functions such that nqc = nbc + nqPLUSnbc_TO_nqc, (only if nqc is not defined ).

There are two kind of basis-sets (i) the primitive ones. (ii) the direct product one (contracted or not).

2.5.1) Primitive basis-set:

  • name=“Pl0”: Legendre polynomials. The coordinate is x (x=cos(theta)).
  • name=“Pl0_0”: Even Legendre polynomials. The coordinate is x (x=cos(theta)).
  • name=“Pl0_1”: Odd Legendre polynomials. The coordinate is x (x=cos(theta)).
  • name=“Pl0_a”: Legendre polynomials. The coordinate is theta, (x=cos(theta)).
  • name=“Pl0_a_0”: Even Legendre polynomials. The coordinate is theta, (x=cos(theta)).
  • name=“Pl0_a_1”: Odd Legendre polynomials. The coordinate is theta, (x=cos(theta)).
  • name=“Hm”: Hermite polynomials (harmonic Oscillator basis-functions). It needs to define Q0 and scaleQ.
  • name=“Hm_0”: Even Hermite polynomials (harmonic Oscillator basis-functions). It needs to define Q0 and scaleQ.
  • name=“Hm_1”: Odd Hermite polynomials(harmonic Oscillator basis-functions).It needs to define Q0 and scaleQ.
  • name=“cos” or name=“sin” or name=“fourier”: Fourir series, in the range [-Pi:Pi]. The grid is symmetric with respect to 0, the first grid point is -Pi+dx/2. We are not using FFT.
  • name=“cosAB”: Fourier series, in the range [A:B]. The grid is symmetric with respect to (A+B)/2, the first grid point is A+dx/2. We are not using FFT.
  • name=“cosABnosym”: Fourier series, in the range [A:B]. The grid is not symmetric, the first grid point is A+dx. We are not using FFT.
  • name=“boxAB”: Sine functions (particle-in-a-box basis-functions), in the range [A:B]. The grid is symmetric with respect to (A+B)/2, the first grid point is A+dx/2.
  • name=“boxABnosym”: Sine functions (particle-in-a-box basis-functions). The grid is not symmetric, the first grid point is A+dx.
  • name=“Ylm”: Sperical harmonic basis-functions (in theta and phi).
  • name=“Ylm_0a”: Sperical harmonic basis-functions (in theta and phi) with even functions in x=cos(theta).
  • name=“Ylm_1a”: Sperical harmonic basis-functions (in theta and phi) with odd functions in x=cos(theta).

Parameters which control the symmetry (abelian group) of the primitive (1D) basis functions. One cannot have more than 3 elements of symmetry.

  • symab (default, -1): Enable to set up the symmetry with respect to one element of symmetry.
    • “-1”: no symmetry
    • “0” equivalent to [0 0 0]: the basis functions are symmetric with respect to all elements of symmetry.
    • “1” equivalent to [0 0 1]: the odd (even) basis functions are symmetric (antisymmetric) with respect to the first element.
    • “2” equivalent to [0 1 0]: the odd (even) basis functions are symmetric (antisymmetric) with respect to the second element.
    • “4” equivalent to [1 0 0]: the odd (even) basis functions are symmetric (antisymmetric) with respect to the fird element.

2.5.2) Direct product basis-set:

  • name=“direct_prod”: Direct product basis-set. The number of basis-sets (nb_basis) which compose the direct product one, has to be defined. With this basis-set, you can defined mutlidimentional contracted basis-set, you can used sparse basis, sparse grid…

Parameters which control the sparse basis and sparse grid (experimental options):

  • Type_OF_nDindB (default, 1): This parameter defines how the multidimensional index associated with the multidimensional basis set is defined and stored. Two values are possible:
    • Type_OF_nDindB=0: it enables to define a sparse basis from a direct-product basis set. A basis function is retained when the “norm” of its index is lower or equal to a threshold (Norm_OF_nDindB).
    • Type_OF_nDindB=1: it enables to define a direct-product basis set. Therefore, it is not a sparse basis (default).
  • Norm_OF_nDindB (default, infinite): This parameter defines the threshold of the index “norm” of a multidimensional basis function.
  • weight_OF_nDindB (default, 1.): This parameter enables to add a weight for the calculation of index norm of a basis function.

The “norm” of a multidimensional index(:) is calculated as follow: Norm = Sum((index(:)-1)*weight(:))

  • L_SparseGrid (default, -1): A value greater than “0” enables to define a basis with a sparse grid (Smolyak procedure).
  • SparseGrid (default, F): The value T (for true) enables to define a basis with a sparse grid (Smolyak procedure). When L_SparseGrid is greater than “0”, this parameter is automatically set up to “T”. This parameters is used mainly when sparse grid is defined recursilvely (Sparse Grid of Sparse grid).

When a sparse grid is used, you have to define Type_OF_nDindB=0 and the value of L_SparseGrid has to be greater than Norm_OF_nDindB.

2.6) &inactive namelist

This namelist enables to control the calculation of Harmonic adiabatic channels along an active coordinates (type 1). The inactive coordinates (type 21) are transformed to normal coordinates along the active coordinates. This method is related to the Reaction Path or Surface Hamiltonian or the Movable Basis Method, but it is more closer to the adiabatic separation.
This approach enables to define a compact multidimensional basis set for the inactive coordinates (type 21). This basis set is a direct product of selected harmonic oscillator basis functions. The selection of the basis functions are made in term of an energy threshold and in term of excitations.

It requires 3 subroutines defined in the file sub_system.f or sub_system.f90:

  • d0d1d2_h subroutine: it enables to calculate the hessian matrix along the active coordinates (no derivative are required).
  • d0d1d2_g subroutine: it enables to calculate the gradient along the active coordinates. It is usefull when it is difficult to calculate rigorously a minimun energy path (when the dynamical coordinates are defined with linear combinations of the primitive coordinates). This calculation is otpional (see below gradTOpot0).
  • d0d1d2d3_Qeq subroutine: it enables to calculate the “optimized” inactive coordiantes (types 21 or 22) along the active coordinates. This subroutine is related to calc_dnQflex subroutine used in Tnum.

Remarks: in a near future, the name of these subroutines will change.

Parameters to select the multidimentional basis functions:

  • max_excit (default, 0): The value of this parameter defines the largest excitation of the mutidimensional basis functions kept in the expansion.
  • tab_nb(:) (default, 0): The value of tab_nb(i) defines the number of basis functions for the ith harmonic oscillator basis set.
  • max_ene_h (default, infinite): The value (in cm-1) enables to select the mutidimensional basis functions in term of the harmonic energy relatively to the harmonic ZPE (inactive coordinates type 21 or 22). The harmonic frequencies are obtained at the reference geometry defined in the minimum namelist.
  • isort (default, 1): This parameter defines how the multidimensional basis functions are sorted.
    • isort=1: they are sorted in term of harmonic energy levels.
    • isort=2: they are sorted in term excitations.
  • n_h (default, -1): This parameter enables to select the number of adiabatic channels used for the dynamics (it can be different from total number of channels).
  • ADA (default, F): When it value T, the channels are the true adiabatic channels and the are not the Harmonic adiabatic channels (do not use, not fully tested).

All defined parameters (max_excit, tab_nb(:) and max_ene_h) are considered to select the mutidimensional basis functions.

Parameters for a direct-product grid:

  • nb_quadrature (default, 10): This parameter defines the number of grid points for all the harmonic oscillator basis sets (used only if sparse grid is not used).
  • tab_nq(:) (default, 0): The value of tab_nq(i) defines the number of grid points for the ith harmonic oscillator basis set. If both nb_quadrature and tab_nq(:) are defined, only the tab_nq(:) values are considered.

Parameters for a sparse grid (Smolyak):

  • SparseGrid (default, F): When the value is T, a sparse grid is used instead of a direct-product one (the nb_quadrature and tab_nq(:) values are ignored). The L_SparseGrid parameter is required.
  • L_SparseGrid (default, -1): The value enables to select the level of the sparse grid (it is related to the norm of the multidimensional index).

Parameters for the harmonic modes:

  • order(:) (default, 1,2,3…): This list enables to change the frequencies order.
  • H0_sym (default, F): When the value is T, the hessian and the kinetic matrices are “symmetrized” (some coupling are forced to zero). It requires definition of the Qinact2n_sym(:) and Qinact2n_eq(:,:) parameters.
  • Qinact2n_sym(:) (default, 0): Each value of the list is associated with an inactive coordinates (type 21 or 22). When the values are differents, the coordinates are uncoupled otherwise there coupled (with the default value, all coordinates are coupled).
  • Qinact2n_eq(:) (default, 0): This table enables to set up equivalent coordinates (do not use).

Parameters for the contraction on the (harmonic) adiabatic channels (HAC):

  • contrac_ba_ON_HAC (default, F): When the value is T, the active basis is contracted on each channels. The number of active basis functions is lower or equal to max_nb_ba_ON_HAC and also it is defined such the energy levels are lower than max_ene_h (cm-1).
  • max_nb_ba_ON_HAC (default, infinite): Largest number of contracted active basis functions.
    Warning: this contraction scheme does not work with direct=2. Instead, you have to use direct=0.

Miscellaneous parameters:

  • gradTOpot0 (default, F): When the value is T, the gradiant along the acitive coordinates (type 1) calculated in the “d0d1d2_g” subroutinea is taken into account in the caluclation of Harmonic channels. Using, the hessian and the gradiant along active path, a new minimum energy path is calculated. Therefore, the potential and the optimal inactive coordiantes along the active path are modified.
  • num (default, T): Actually our approach required the calculation of derivative (harmonic frequencies, normal modes) with respect to the active coordinates. Although, it can be done analitically, the derivatives are done numerically using finite-difference method. Be carrefull, the option num=F can not be used.
  • setp (default, <b0.0001 au): This parameter defines the step used in the finite-difference method (change the value with caution).

2.7) &active namelist

This namelist enables to control some features of the operators (scalars or the Hamiltonian) on active coordinates (type 1):

  • Grid features: saving in memory or file, restart, reading from file
  • Operator representations: matrices (packed or not), without matrices.

Main parameter:

  • direct (default, 0): This parameter is controls the operator representation. The possibilities are the following:
    • direct=0: The grid is stored only in the file name_Grid but not in memory. The operator representations are matrices.
    • direct=1: The grid is stored in the file name_Grid and also in memory. The operator representation are grids. Matrices can be calculated with the option make_MatOp=t.
    • direct=2: The grid is not stored in the file name_Grid but is stored in memory. The operator representation are grids. Matrices can be calculated with the option make_MatOp=t.
    • direct=3: the grid is stored only in the file name_Grid but not in memory. The operator representation are grids.

Remarks: Normally, one has to chose between direct=0 and direct=2 options.
The direct=0 option is used for operators which a small number of basis functions, including HAC (<10000) and when the grid calculation is taking time (adiabatic channels).
The direct=2 option is used for operators which a large number of basis functions, including HAC (>>10000) and when the grid can be stored in memory.

Grid options:
The following options are relevent, only when the grid is stored (direct�2). The openmp parallelization of the grid calculation is the default (see &system namelist).

  • Read_Grid (default, F): When the value is T, the grid of all the operators are read from a file (see name_Grid). Otherwise, the grid is calculated. The option Read_Grid=t is usefull only when HAC (type 21) are caluculated (long calculation).
  • Restart_Grid (default, F): When the value is T and when the grid is incomplete in the Grid file (see name_Grid), the grid calculation will be restarted. This option is incompatible with openmp parallelization.
  • num_grid_i and num_grid_f (default, 0 and 0): When one want to calculate an incomplete grid, then the first and the last grid points are set up, respectively, with num_grid_i and num_grid_f. With the default value, the full grid is calculated. This option enables to perform some sort of parallelization.
  • name_Grid (default, ‘SH_HADA’): This parameter enables to change the name of the grid file. When openmp parallelization is on, the grid file will be spilt in several files:
    • SH_HADA (with just one line)
    • SH_HADA.0 (for the grid points of the first thread)
    • SH_HADA.1 (for the grid points of the second thread)
    • and so on, for all threads
  • formatted_Grid (default, T): When the value is F, the grid is stored unformatted.

Operator options:
The following options control the matrix representation of the operators.

  • make_MatOp (default, F): When the value is T, the operator representations are forced to be as a matrices (even when direct>0.
  • read_Op (default, F): When the value is T, the operator matrices are read from the input file.
  • pack_Op (default, F): When the value is T, the matrix operator is packed. Only the absolute values which are larger than a threshold (tol_pack) are used (action of the operator on a wavefunction).
  • tol_pack (default, 1.e-7): This parameter is the threshold for packed an operator (see pack_Op).
  • tol_npack (default, 0.9): This parameter is an option for packed an operator. When the ratio between the number matrix elemments larger than the threshold (tol_pack) and the total the number matrix elemments is larger than tol_npack, the matrix will be not packed.

Miscellaneous parameters:

  • test (default, T): When the value is T, only one grid point (reference geometry), will be calculated (usefull, to check the subroutines in the file sub_system.f or sub_system.f90).
  • comput_S (default, F): When the value is T and when the operators are represented by matrices, the opverlap matrix is calculated. Then it is compared to the identity matrix.
  • JJ (default, 0): Total angular momentum quantum number. When the value is larger than 0, the rotational and coriolis contributinos are calculated along the grid (experimental feature).
  • pot_only (default, F): When the value is T, just the potential is included in the Hamiltonian (the kinetic energy contribution is not included).
  • T_only (default, F): When the value is T, just the kinetic energy contribution is included in the Hamiltonian (the potential is not included).

2.8) &analyse namelist

This namelist enables to specify the use of the program:

  • Energy levels with or without Davidson procedure
  • Intensities
  • Wavepackets propagation
  • Optimal Control

Without any option, the program calculates and makes an analysis of the energy levels. The relevent options are the following:

  • max_ana (default, -1): This parameter defines the number of levels to be analyzed (see max_ene). When the value is -1, all levels are considered.
  • max_ene (default, 10000 cm-1): This parameter enables to define the number of levels to be analyzed. All levels with an energy with respect to the ZPE below max_ene, will be analyzed.
print = .FALSE. psi2 = .FALSE. propa = .FALSE. intensity = .FALSE. control = .FALSE. davidson = .FALSE. Spectral_ScalOp = .FALSE. print_psi = 0 max_ana = 1 ene0 = huge(ONE) Ezpe = huge(ONE) Temp = -ONE max_ene = TEN**4

3) Installation

The installation is simple. However, we do not have an fully automatic procedure (like configure …).
In particular, you have to select or define your compilator in the “makefile”
Then, you have to compile the program with the unix command “make”.
The program needs lapack library (mkl for ifort)

Currently, the program can be compile on

  • linux platform with
    – gfortran -fopenmp -g -O5 (version: 4.4.7)
    – ifort -openmp -O3 -xHost -ipo -g -traceback -mkl -lpthread (version: 12.0.5)
  • osx platform with gfortran

To check that the program has be compile correctly, you can run some tests from the directory: “exa_hcn-dist”. Each input data starts with dat….
To run the “dat_Davidson” example, just the type the “dat_Davidson” command. The output will be in the “res” file.