IPCC  1.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
KNHamiltonianBuilder.h
Go to the documentation of this file.
1 
7 #pragma once
8 #include "KNCommandFileParser.h"
9 #include "CKNAtomMapInfo.h"
10 #include "CKNGeometricParameter.h"
11 #include "KNMatrixOperation.h"
12 #include "KNGeometricAtom.h"
13 #include <map>
14 
15 using namespace std;
16 
24 {
25 public:
28 
29  static bool BuildHamiltonian(CKNCommandFileParser::LPINPUT_CMD_PARAM lpParam, LPNEIGHBOR_MAP_INFO lpMapInfo, CKNMatrixOperation::CKNCSR *pCSRResult, unsigned int fAtomStartID);
30  static void ResetPeriodicBinding(CKNMatrixOperation::CKNCSR *pResult, LPNEIGHBOR_MAP_INFO lpMapInfo);
31  static void FinalizeMatrixBuffer();
32 
33 private:
34  static void BuildHccDiagonalFor10Band(CKNMatrixOperation::CKNVector *pVector, LPGEO_PARAMETER lpParameter);
35  static void BuildHaaDiagonalFor10Band(CKNMatrixOperation::CKNVector *pVector, LPGEO_PARAMETER lpParameter);
36  static void BuildHonsiteBasicMatrixFor10Band(CKNMatrixOperation::CKNDMatrix *pMatrixHonsiteAnion, CKNMatrixOperation::CKNDMatrix *pMatrixHonsiteCation, LPGEO_PARAMETER lpParameter);
37  static void BuildOffsiteMatrixFor10Band(GEO_PARAMETER &parameter, CKNMatrixOperation::CKNDMatrix *pMatrixACNbr, MATERIAL_INDEX materialFrom, MATERIAL_INDEX materialDest, CKNGeometricAtom::ATOM_TYPE type);
38  static bool FillMatrixFor10Band(CKNMatrixOperation::CKNCSR *pResult, CKNCommandFileParser::LPINPUT_CMD_PARAM lpParam, LPNEIGHBOR_MAP_INFO lpMapInfo);
39  static void BuildACCANeighborFor10Band(CKNMatrixOperation::CKNDMatrix *pMatrixACNbr, CKNMatrixOperation::CKNDMatrix *pMatrixCANbr, CKNCommandFileParser::LPINPUT_CMD_PARAM lpParam);
40  static void InitMatirxsFor10BandFillMatrix(CKNMatrixOperation::CKNDMatrix *pMatrixTransAnion, CKNMatrixOperation::CKNDMatrix *pMatrixTransAnionTranspos, CKNMatrixOperation::CKNDMatrix *pMatrixTransCation, CKNMatrixOperation::CKNDMatrix *pMatrixTransCationTranspos, CKNMatrixOperation::CKNDMatrix *pMatrixTempSpinUp, CKNMatrixOperation::CKNDMatrix *pMatrixTempSpinUpResult, CKNMatrixOperation::CKNDMatrix *pMatrixHonsiteAnion, CKNMatrixOperation::CKNDMatrix *pMatrixHonsiteCation);
41  static void RotateTransMatrixFor10Band();
42  static void InitTransMatrixFor10Band();
43  static unsigned int m_fAtomIDStartIndex;
44  static unsigned int m_nBandSize;
45  static double m_Trans_anion[4][4];
46  static double m_Trans_cation[4][4];
47 
48 
49  static vector<CKNMatrixOperation::CKNDMatrix*> m_vectMatrixNbr;
50  static map<int, unsigned int> m_mapMatrixIndex;
51 
52 };
53 
MATERIAL_INDEX
Definition: CKNGlobal.h:106
Meterial parameter definition.
static unsigned int m_fAtomIDStartIndex
Start index of atom in shape, using in MPI running enviroment.
static unsigned int m_nBandSize
Band size 5, 10, 20.
Data and operation representation of Matrix.
Data and operation representation of CSR(Compressed Sparse Row)
This class for parsing input command file.
Class for Atom.
static map< int, unsigned int > m_mapMatrixIndex
Hamiltonian offdiagonal elements mapper.
static vector< CKNMatrixOperation::CKNDMatrix * > m_vectMatrixNbr
Hamiltonian offdiagonal elements.
Structure for save input command file parsing result.
Collection of vector and matrix operation.
Structure for neighbor information.
This class includes functions for Hamiltonian building.
Structure for saving geometric parameter.
Structure for neighbor information.
This class for describing vector for Lanczos method.