OpenMCTDHB v2.3
Modules | Functions/Subroutines

modulecorrelationfunctions.F90 File Reference

Go to the source code of this file.

Modules

module  modulecorrelationfunctions
 

This module contains routines to compute correlation function and writes them to files, e.g. the one- and two particle densities and momentum distributions.


Functions/Subroutines

subroutine modulecorrelationfunctions::write_correlations (Dims, printCorrelationFuncs, MOMSPACE2D, REALSPACE2D, x1const, x1slice, y1const, y1slice, x2const, x2slice, y2const, y2slice, AbsTime, Psi, rho_jk, rho_ijkl, Pnot, xstart, xstop)
 wrapper routine which manages output of correlations. compute the first and second order correlation functions in 1D calculations and the first and second order correlation functions in 2D calculations if desired.
subroutine modulecorrelationfunctions::get_integratedDensity (rho_jk, AbsTime, PSI, writemode)
 This routine integrates the density over one or more cartesian coordinates and writes the output to a file. Useful for visualizing 2D and 3D densities Which coordinates are integrated out is controlled by the integer writemode=0,...,7 the bit representation of writemode indicates which of x,y,z are integrated out, e.g. writemode=2 is interpreted as 010 and the y-coordinate is integrated out.
subroutine modulecorrelationfunctions::get_densityNonescape (xstart, xstop, rho_jk, time, PSI)
 This routine computes the nonescape probability or any desired integral of the diagonal of the reduced one-body density matrix.
subroutine modulecorrelationfunctions::get_maximum (Psi, rho_jk, maximum)
 This routine computes the maximum of either the one-particle density or the momentum distribution depending on whether th array of orbitals Psi or its Fourier transform FTPsi is given as the first argument.
subroutine modulecorrelationfunctions::get_oneBodyRDMDiagonal (time, Psi, rho_jk, mode, dilation)
 This routine computes the diagonal of the first order correlation function G1(x,x) if Psi is provided or G1(k,k) if FT(Psi) is provided and writes it to a file.
subroutine modulecorrelationfunctions::get_correlations (time, Psi, mode, dilation, rho_jk, rho_ijkl)
 This routine computes the correlation functions G1(r,r), G1(r,r'), G1(r',r') and G2(r,r',r',r), where r=(x,y,z), and writes them to a file. The first six columns contain x,y,z,x',y',z'. Currently only 1D has been tested.
subroutine modulecorrelationfunctions::get_dilation (dilation, Psi, rho_jk)
 This routine was written to deal with the following problem. If the x-domain has length L, then the k-domain has a grid spacing dp=2PI/L. It often turns out that this spacing is very wide. However, if the wave function in x-space is negligibly small at the box boundaries, it can be assumed to be zero outside the box boundaries. Thereby, the length L can be artificially increased and the momentum distribution can be evaluated using a smaller grid. The factor dilation is integer and describes how many times the k-space interval can be made smaller so that still 0.99% fit into it, using the same number of grid points. Using get_dilation allows to make nice plots of the momentum distributions. It should only be used to generate nicer output though. If this is unwanted please set dilation = 1 everywhere the variable appears. This is the default.
subroutine modulecorrelationfunctions::pedestrian_FT (Psi, FTPsi, dilation)
 This routine computes the Fourier integral FTPsi of the orbital array Psi and normalizes it to one. If dilation=1 the FFT grid is used, i.e, the spacing is dp=2pi/L where L is the length of the grid in x-space. Otherwise the integral is evaluated using te spacing 2pi/(dilation*L). Note that this is only OK, if it is clear for some physical reason (e.g. a trap potential) that the wave function is zero outside the intervall of length L.
subroutine modulecorrelationfunctions::get_corr_slice (time, PSI, mode, rho_jk, rho_ijkl, x1const, x1slice, y1const, y1slice, x2const, x2slice, y2const, y2slice)
 computes cuts of the correlation functions G1(r,r), G1(r,r'), G1(r',r') and G2(r,r',r',r), where r=(x,y), and writes them to a file.
subroutine modulecorrelationfunctions::FT_SORTED (PSI, FTPSI)
 -------------------------------------------------------------------------------------------- This subroutine uses the FFTW/ACML routines to Fourier-transform all the Orbitals and returns them in strictly ascending order for analysis purposes.
subroutine modulecorrelationfunctions::sort_FFT_to_ascending_2d (FFT, NDX, NDY)
 ------------------------------------------------------------------------------- sort an array representing a 2D object given in FFT order, compact storage to be in strictly ascending order (needed for gnuplots pm3d), compact storage
subroutine modulecorrelationfunctions::getsliceAsString (d, x, doubleString)
 ------------------------------------------------------------------------------- This subroutine is called to generate the names of the output files of the slices through the 2D correlation functions.
 All Namespaces Files Functions Variables