OpenMCTDHB v2.3
Modules | Functions/Subroutines | Variables

modulederivesystemvariables.F90 File Reference

Go to the source code of this file.

Modules

module  modulederivesystemvariables
 

This module contains routines that derive system parameters from the variables read in via input.nml. The module ses the function beta of the asa189 library to compute the number of configurations. This is useful for more than M=2 orbitals.


Functions/Subroutines

subroutine modulederivesystemvariables::get_weight (xi, xf, yi, yf, zi, zf, NDX, NDY, NDZ, Dims, weight)
 This routine gets the integration weight given the position grid. Since we are using an equidistant grid there is only one integration weight. All orbitals are stored in the following form: the value !> of the orbital k at the grid point x_m,y_n,z_l is saved at the position Psi(m+NDX*n+NDX*NDY*l,k) which contains the value of the orbital times the weight, such that the norm of the orbital k is one: norm^2 = Sum_j Psi(j,k)^* Psi(j,k). Thus, the weight is just the square root of the distance (1D) area (2D) volume (3D)!> between grid points.
subroutine modulederivesystemvariables::get_nConf (NPar, MOrb, nConf)
 This routine computes the total number of configurations (permanents) given the current system parameters NPar and MOrb: binomial(N+M-1,N). The routine uses the binom function of the asa189 library to compute this number. The real value returned by binom is sufficiently accurate as long as the number nConf is less than about approx 10-50 x 10^6 see the file max_MOrb_NPar_parametersd0.1.txt for the largest values of M and N for which the real*8 result differs from an int by less than d=0.1.
subroutine modulederivesystemvariables::get_nSuperDiags (NPar, MOrb, nSuperDiags)
 This routine computes the number of super diagonals of the Hamiltonian matrix <n|H|n'> depending on the input variable MOrb. Only M=1 and M=2 orbitals are supported. The Hamiltonian matrix can then be build and given to the LAPACK subroutine ZHBMV. For more orbitals it is not a good idea to keep working with band matrix routines, because of the large number of zero elements in them.
subroutine modulederivesystemvariables::get_totalNoGridPts (NDX, NDY, NDZ, Dims, totalNoGridPts)
 This routine computes the total number of grid points and checks for consistency.
REAL *8 modulederivesystemvariables::binomial (n, k)
 This function computes the binomial coefficent (N over k) using the beta function. the result is real and the integer is obtained by using NINT(). This way of computing binomial coefficients is very fast, but becomes inaccurate for results greater than dozens of millions. Please see the routine get_nConf and the file max_MOrb_NPar_parametersd0.1 for details.

Variables

REAL *8, save modulederivesystemvariables::weight
 All Namespaces Files Functions Variables