00001
00002
00003
00004
00005
00006
00007
00008 #ifndef DIRECT_CALCULATION_H_
00009 #define DIRECT_CALCULATION_H_
00010
00011 #include "../Utility/types.h"
00012 #include "../Utility/misc.h"
00013 #include "../basis_set/basis.h"
00014 #include "../formMatrix/formMatrix.h"
00015 #include "../IO/binaryIO.h"
00016 #include "../IO/textIO.h"
00017 #include "../IO/MatrixIO.h"
00018
00019
00020 void formAllBasisSets(LatticeShape& lattice, IMatrix& basisIndex,
00021 std::vector<Basis>& basisSets);
00022
00023 void formHamiltonianMatrix(LatticeShape& lattice, DMatrix& hamiltonian, IMatrix& basisIndex,
00024 std::vector<Basis>& basisSets);
00025
00026 void obtainEigenVectors(DMatrix& hamiltonian, DVector& eigenValues, DMatrix& eigenVectors);
00027
00028 void numeratorHelper(LatticeShape& lattice, Basis& bra, Basis& ket, IMatrix& basisIndex,
00029 DMatrix& eigenVectors, CDArray& numerator);
00030
00031 void denominatorHelper(dcomplex z, DVector& eigenValues, CDArray& oneOverDenominator);
00032
00033 dcomplex greenFuncHelper(CDArray& numerator, CDArray& oneOverDenominator);
00034
00035 void greenFunc_direct(LatticeShape& lattice, Basis& bra, Basis& ket, std::vector<dcomplex >& zList,
00036 std::vector<dcomplex>& gfList);
00037
00038 void densityOfState_direct(LatticeShape& lattice, Basis& basis, std::vector<dcomplex >& zList,
00039 std::vector<double>& dosList);
00040
00044 void calculateAllGreenFunc_direct(LatticeShape& lattice, Basis& initialSites,
00045 std::vector<dcomplex >& zList,
00046 std::vector<std::string>& fileList);
00047
00056 void densityOfStateAll_direct(LatticeShape& lattice, std::vector<dcomplex >& zList,
00057 std::vector<std::string>& fileList);
00058
00059 #endif