MCTDH-X  v2.22
 All Classes Files Functions Variables Pages
auxiliary_analysis_routines Module Reference

This Module collects auxiliary routines that perform transforms on the one-body and two-body matrix-elements or the coefficients, the orbitals, or Routines that get Filenames. More...

Public Member Functions

subroutine get_m_0_from_xyz (m_0, xref, yref, zref)
 
subroutine get_reduced1bodyelements (VIN, Nconf, Reduced_OneBodyElements, Nparticles)
 
subroutine loopy_main_reducedelements (Npar, Morb, Sh_m, Sh_p, CJ, CK, nconf, I_current_term, I_term, RDIM, VIN, Reduced_OneBodyElements)
 Routine to compress the mapping for one-body operators to only the non-zero contributions. More...
 
recursive subroutine loopy_core_reducedelements (depth, FromN, ToN, lix, ix, Sh_m, Sh_p, Morb, NPAR, nconf, CJ, CK, I_current_term, I_Term, RDIM, VIN, RIJ)
 Recursive core of the compression of the mapping. More...
 
subroutine get_reduced_coefficients (VIN, VRED, PSI, Npar, Nconf, NConf_Red)
 
subroutine convolute_singleshot (Shot, SampleIndexes)
 
subroutine get_reduced_density (PSI, rho_jk_compact, Density)
 
subroutine drawfromdensity (PSI, rho_jk_compact, sample, SampleIndex, Nparticles)
 
subroutine get_weightormomentumgrid (mom_x, mom_y, mom_z, w, dilation, mode)
 
subroutine assemble_outputfilename (FullName, Time, NParticles, Morbitals, KorX, Suffix)
 This routine puts together output filenames from some system parameters. More...
 
subroutine get_full_rij (Rho_JK)
 This routine computes the full one-body matrix elements from the compact upper triangular storage. More...
 
subroutine get_full_rijkl (Rho_ijkl)
 This routine computes the full two-body matrix elements from the compact upper triangular storage. More...
 
subroutine get_full_wijkl (W_ijkl)
 This routine computes the full two-body matrix elements from the compact upper triangular storage. More...
 
subroutine diag_dns (ALLZ1, natural_occupations, natural_vectors)
 This routine computes the eigenvalues and eigenvectors of the reduced one-body density matrix elements. More...
 
subroutine getsliceasstring (d, x, doubleString)
 Writes a real number in 4 digit format for naming files. More...
 
subroutine get_dilation (dilation, Psi, rho_jk)
 This routine computes the k-space interval which is optimal to represent the orbitals in k-space. More...
 
subroutine get_kineticenergyaction_allorbitalsanalysis (temp, pot, time)
 Wrapper routine that evaluates the action of the one-body operators (kinetic energy and angular momentum) for the chosen DVR. More...
 
subroutine u_trans (TRAFO, VIN, V_TRANS, PHIIN, PHI_TRANS, NGRID, MODE)
 Compute (unitary) transform of a multiconfigurational wavefunction MODE decides how the transform is done: MODE=1 Just takes the MxM matrix TRAFO and applies it to both coeffs and orbs MODE=2 Constructs the transformation from PHIIN to PHI_TRANS and applies it to the coefficients. More...
 
subroutine get_maximum (PSI, rho_jk, maximum)
 
subroutine get_trafo (PHIIN, PHI_TRANS, TRAFO, MORB, NGRID)
 
recursive subroutine loopy_permanent (More, Depth, Configuration, First, TMP1, TMP2, L, Trans, Coefficients, Coefficients_Out)
 Compute the transformation of a single configuration (permanent). More...
 
subroutine u_transform (time, VIN)
 This routine computes a unitary transform of of the coefficients' vector. More...
 

Detailed Description

This Module collects auxiliary routines that perform transforms on the one-body and two-body matrix-elements or the coefficients, the orbitals, or Routines that get Filenames.

Member Function/Subroutine Documentation

subroutine auxiliary_analysis_routines::convolute_singleshot ( real*8, dimension(ndvr_x*ndvr_y*ndvr_z)  Shot,
integer, dimension(npar)  SampleIndexes 
)

References auxiliary_routines::get_ijk_from_m().

Referenced by analysis_routines_manybody::get_singleshot().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine auxiliary_analysis_routines::diag_dns ( complex*16, dimension(morb*(morb+1)/2)  ALLZ1,
real*8, dimension(morb)  natural_occupations,
complex*16, dimension(morb,morb)  natural_vectors 
)

This routine computes the eigenvalues and eigenvectors of the reduced one-body density matrix elements.

References addresses::nadr().

Referenced by analysis_core::apply_analysis().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine auxiliary_analysis_routines::drawfromdensity ( complex*16, dimension(ndvr_x*ndvr_y*ndvr_z,morb), intent(in)  PSI,
complex*16, dimension(morb*(morb+1)/2), intent(in)  rho_jk_compact,
real*8, dimension(dim_mctdh), intent(out)  sample,
integer, intent(out)  SampleIndex,
integer, intent(in)  Nparticles 
)

References auxiliary_routines::get_ijk_from_m(), and random::gnu_rand().

Referenced by analysis_routines_manybody::get_singleshot().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine auxiliary_analysis_routines::get_dilation ( integer, intent(inout)  dilation,
complex*16, dimension(ndvr_x*ndvr_y*ndvr_z,morb)  Psi,
complex*16, dimension(morb,morb), intent(in)  rho_jk 
)

This routine computes the k-space interval which is optimal to represent the orbitals in k-space.

References get_maximum().

Referenced by analysis_core::apply_analysis().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine auxiliary_analysis_routines::get_full_rij ( complex*16, dimension(morb,morb)  Rho_JK)

This routine computes the full one-body matrix elements from the compact upper triangular storage.

Referenced by analysis_core::apply_analysis(), and analysis_routines_manybody::get_loc_frag().

Here is the caller graph for this function:

subroutine auxiliary_analysis_routines::get_full_rijkl ( complex*16, dimension(morb,morb,morb,morb)  Rho_ijkl)

This routine computes the full two-body matrix elements from the compact upper triangular storage.

Referenced by analysis_core::apply_analysis(), analysis_routines_twobody::diag_geminal(), and analysis_routines_manybody::get_loc_frag().

Here is the caller graph for this function:

subroutine auxiliary_analysis_routines::get_full_wijkl ( complex*16, dimension(morb,morb,morb,morb)  W_ijkl)

This routine computes the full two-body matrix elements from the compact upper triangular storage.

Referenced by analysis_routines_manybody::write_hamiltonianelementsanalysis().

Here is the caller graph for this function:

subroutine auxiliary_analysis_routines::get_kineticenergyaction_allorbitalsanalysis ( complex*16, dimension(ndvr_x*ndvr_y*ndvr_z,morb)  temp,
logical, optional  pot,
real*8, optional  time 
)

Wrapper routine that evaluates the action of the one-body operators (kinetic energy and angular momentum) for the chosen DVR.

References get_1bodypotential(), kineticenergyaction::get_kineticenergyaction(), kineticenergyaction::get_kineticenergyaction_fft(), kineticenergyaction::get_kineticenergyaction_fft_2d(), and kineticenergyaction::get_kineticenergyaction_fft_3d().

Referenced by analysis_routines_onebody::get_totalenergy(), and analysis_routines_manybody::write_hamiltonianelementsanalysis().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine auxiliary_analysis_routines::get_m_0_from_xyz ( integer, intent(out)  m_0,
real*8, intent(in)  xref,
real*8, intent(in)  yref,
real*8, intent(in)  zref 
)

References auxiliary_routines::get_ijk_from_m().

Referenced by analysis_routines_manybody::get_anyordercorrelations(), and analysis_routines_twobody::get_structurefactor().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine auxiliary_analysis_routines::get_maximum ( complex*16, dimension(ndvr_x*ndvr_y*ndvr_z,morb)  PSI,
complex*16, dimension(morb,morb), intent(in)  rho_jk,
complex*16, intent(out)  maximum 
)
subroutine auxiliary_analysis_routines::get_reduced1bodyelements ( complex*16, dimension(nconf)  VIN,
integer  Nconf,
complex*16, dimension(rdim)  Reduced_OneBodyElements,
integer  Nparticles 
)

References loopy_main_reducedelements().

Referenced by analysis_routines_manybody::get_anyordercorrelations(), and analysis_routines_manybody::get_singleshot().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine auxiliary_analysis_routines::get_reduced_coefficients ( complex*16, dimension(nconf), intent(in)  VIN,
complex*16, dimension(nconf_red), intent(out)  VRED,
complex*16, dimension(morb), intent(in)  PSI,
integer, intent(in)  Npar,
integer, intent(in)  Nconf,
integer, intent(in)  NConf_Red 
)

References addresses::get_configurationfromindex(), and addresses::get_indexfromconfiguration().

Referenced by analysis_routines_manybody::get_anyordercorrelations(), and analysis_routines_manybody::get_singleshot().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine auxiliary_analysis_routines::get_reduced_density ( complex*16, dimension(ndvr_x*ndvr_y*ndvr_z,morb), intent(in)  PSI,
complex*16, dimension(rdim), intent(in)  rho_jk_compact,
real*8, dimension(ndvr_x*ndvr_y*ndvr_z), intent(out)  Density 
)

Referenced by analysis_routines_manybody::get_anyordercorrelations().

Here is the caller graph for this function:

subroutine auxiliary_analysis_routines::get_trafo ( complex*16, dimension(ngrid,morb)  PHIIN,
complex*16, dimension(ngrid,morb)  PHI_TRANS,
complex*16, dimension(morb,morb)  TRAFO,
integer  MORB,
integer  NGRID 
)
Parameters
phiinCompute the transformation matrix of PHIIN to PHITRANS

Referenced by u_trans().

Here is the caller graph for this function:

subroutine auxiliary_analysis_routines::getsliceasstring ( integer  d,
real(kind=dbl)  x,
character(len=7)  doubleString 
)

Writes a real number in 4 digit format for naming files.

Referenced by analysis_routines_2d::get_corr_slice().

Here is the caller graph for this function:

recursive subroutine auxiliary_analysis_routines::loopy_core_reducedelements ( integer, intent(inout)  depth,
integer  FromN,
integer  ToN,
integer, dimension(depth), intent(inout)  lix,
integer  ix,
integer, dimension(morb+1)  Sh_m,
integer, dimension(morb+1)  Sh_p,
integer  Morb,
integer  NPAR,
integer  nconf,
integer  CJ,
integer  CK,
integer  I_current_term,
integer  I_Term,
integer  RDIM,
complex*16, dimension(nconf)  VIN,
complex*16, dimension(rdim)  RIJ 
)

Recursive core of the compression of the mapping.

Referenced by loopy_main_reducedelements().

Here is the caller graph for this function:

subroutine auxiliary_analysis_routines::loopy_main_reducedelements ( integer  Npar,
integer  Morb,
integer, dimension(morb+1)  Sh_m,
integer, dimension(morb+1)  Sh_p,
integer  CJ,
integer  CK,
integer  nconf,
integer  I_current_term,
integer  I_term,
integer  RDIM,
complex*16, dimension(nconf)  VIN,
complex*16, dimension(rdim)  Reduced_OneBodyElements 
)

Routine to compress the mapping for one-body operators to only the non-zero contributions.

References loopy_core_reducedelements().

Referenced by get_reduced1bodyelements().

Here is the call graph for this function:

Here is the caller graph for this function:

recursive subroutine auxiliary_analysis_routines::loopy_permanent ( logical, dimension(morb), intent(inout)  More,
integer  Depth,
integer, dimension(morb), intent(inout)  Configuration,
logical, dimension(morb), intent(inout)  First,
integer, dimension(morb), intent(inout)  TMP1,
integer, dimension(morb), intent(inout)  TMP2,
integer, dimension(morb,morb), intent(inout)  L,
complex*16, dimension(morb,morb)  Trans,
complex*16, dimension(nconf)  Coefficients,
complex*16, dimension(nconf), intent(inout)  Coefficients_Out 
)

Compute the transformation of a single configuration (permanent).

References combinatorial_algorithms::comp_next(), function_library::dlgama(), and addresses::get_indexfromconfiguration().

Referenced by u_transform().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine auxiliary_analysis_routines::u_trans ( complex*16, dimension(morb,morb)  TRAFO,
complex*16, dimension(nconf)  VIN,
complex*16, dimension(nconf)  V_TRANS,
complex*16, dimension(ngrid,morb)  PHIIN,
complex*16, dimension(ngrid,morb)  PHI_TRANS,
integer  NGRID,
integer  MODE 
)

Compute (unitary) transform of a multiconfigurational wavefunction MODE decides how the transform is done: MODE=1 Just takes the MxM matrix TRAFO and applies it to both coeffs and orbs MODE=2 Constructs the transformation from PHIIN to PHI_TRANS and applies it to the coefficients.

References combinatorial_algorithms::comp_next(), function_library::factorial(), addresses::get_configurationfromindex(), addresses::get_indexfromconfiguration(), and get_trafo().

Referenced by analysis_routines_manybody::get_autocorr(), and analysis_routines_manybody::get_loc_frag().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine auxiliary_analysis_routines::u_transform ( real*8  time,
complex*16, dimension(nconf)  VIN 
)

This routine computes a unitary transform of of the coefficients' vector.

References function_library::dlgama(), addresses::get_configurationfromindex(), and loopy_permanent().

Referenced by analysis_core::apply_analysis().

Here is the call graph for this function:

Here is the caller graph for this function:


The documentation for this module was generated from the following file: