HPhi++
3.1.0
|
Functions to perform spectrum calculations with the full-diagonalization method. More...
#include <complex>
#include "global.hpp"
#include <ctime>
#include "struct.hpp"
#include "lapack_diag.hpp"
#include "mltply.hpp"
#include "mltplyCommon.hpp"
#include "CalcTime.hpp"
#include "common/setmemory.hpp"
#include "CalcSpectrum.hpp"
Go to the source code of this file.
Functions | |
int | CalcSpectrumByFullDiag (struct EDMainCalStruct *X, int Nomega, int NdcSpectrum, std::complex< double > **dcSpectrum, std::complex< double > *dcomega, std::complex< double > **v1Org) |
Compute the Green function with the Lehmann representation and FD \[ G(z) = \sum_n \frac{|\langle n|c|0\rangle|^2}{z - E_n} \] . More... | |
Functions to perform spectrum calculations with the full-diagonalization method.
Definition in file CalcSpectrumByFullDiag.cpp.
int CalcSpectrumByFullDiag | ( | struct EDMainCalStruct * | X, |
int | Nomega, | ||
int | NdcSpectrum, | ||
std::complex< double > ** | dcSpectrum, | ||
std::complex< double > * | dcomega, | ||
std::complex< double > ** | v1Org | ||
) |
Compute the Green function with the Lehmann representation and FD
\[ G(z) = \sum_n \frac{|\langle n|c|0\rangle|^2}{z - E_n} \]
.
Generate fully stored Hamiltonian. Because v0 & v1 are overwritten, copy v0 into ::vg.
v0 becomes eigenvalues in lapack_diag(), and v1 becomes eigenvectors
Compute \(|\langle n|c|0\rangle|^2\) for all \(n\) and store them into v1, where \(c|0\rangle\) is ::vg.
\[ \sum_n \frac{|\langle n|c|0\rangle|^2}{z - E_n} \]
[in,out] | X | |
[in] | Nomega | Number of frequencies |
[out] | dcSpectrum | [Nomega] Spectrum |
[in] | dcomega | [Nomega] Frequency |
Definition at line 37 of file CalcSpectrumByFullDiag.cpp.
References EDMainCalStruct::Bind, BindStruct::Check, PhysList::energy, GetExcitedState(), CheckList::idim_max, lapack_diag(), mltply(), BindStruct::Phys, StartTimer(), StopTimer(), v0, v1, and zclear().
Referenced by CalcSpectrum().