IPCC  1.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
KNLanczosTest.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "KNMatrixOperation.h"
4 #include "KNLanczosMethod.h"
5 
7 {
8 public:
11 
12  static void TestCSRBuilding();
13  static void TestSimpleLanczos();
14  static void TestLanczos(int nIteration, int nInterval, int nEigCount, bool bCalcuVector);
15  static void CompareWithMatLabSeOrth(int nIteration, int nInterval, int nEigCount, bool bSelect, bool bCalcuVector);
16  static void CompareWithMatLabSeOrth_(int nIteration, int nInterval, int nEigCount, bool bSelect, bool bCalcuVector);
17  static void COmpareWIthMatLabSeOrthMPI(int nRowCount, int nIteration, int nInterval, int nEigCount, bool bSelect, bool bCalcuVector, int nFileIndex);
18  static void LargeSizeMatrixMPI(int nRowCount, int nIteration, int nInterval, int nEigCount, bool bSelect, bool bCalcuVector, bool bWaveFunction);
19  static void SaveResult(CKNLanczosMethod::LPEIGENVALUE_RESULT lpResult, unsigned int nMatrixSize, bool bCalcuEigenvalue, bool bWaveFunction);
20  static void SaveResultCVS();
21  static void SolvingLargeSizeHamlitonian(int nIteration, int nInterval, int nEigCount, bool bSelect, bool bCalcuVector, bool bWaveFunction);
22  static void AuditResult(int nIndex, int nFindEigenValue, CKNLanczosMethod::LPEIGENVALUE_RESULT lpResult, double fMin, double fMax);
23  static void AuditResult_Seorth(int nIndex, int nFindEigenValue, CKNLanczosMethod::LPEIGENVALUE_RESULT lpResult, double fMin, double fMax);
24  static void AuditResult_EV(CKNMatrixOperation::CKNCSR *pCSR, CKNLanczosMethod::LPEIGENVALUE_RESULT lpResult, double fTolerance);
25  static void AuditResult_WF(CKNLanczosMethod::LPEIGENVALUE_RESULT lpResult, double fTolerance, unsigned int nWaveFunctionSize);
26  static void ShowMsg(char *pszBuffer);
27  static void StopLanczos();
28 
29  //static bool IsSame(double operand1, double operand2, double tol);
30 
31  static CKNMatrixOperation::CKNCSR* TestCSRBuildingViaFileLoadOrigin(char *pszFileName, int nMatrixSize);
32  static CKNMatrixOperation::CKNCSR* TestCSRBuildingViaFileLoad(char *pszFileName, int nMatrixSize);
33  static CKNMatrixOperation::CKNCSR* TestCSRBuildingViaFileLoad_(char *pszFileName, int nMatrixSize);
34  static CKNMatrixOperation::CKNCSR* LargeCSRBuildingViaFileForMPI(char *pszFileName, int nMatrixSize);
36 
38 
39 #ifdef _WIN32
40 #if _MFC_VER == 0x0C00
41  static UINT _cdecl LanczosThread(void *pParam);
42  static UINT _cdecl LanczosThreadForMPI(void *pParam);
43  static CWinThread *m_pLanczosThread;
44 #else _MFC_VER == 0x0C00
45  void* LanczosThread(void *pParam);
46  void* LanczosThreadForMPI(void *pParam);
47 #endif //_MFC_VER == 0x0C00
48 #else //_WIN32
49  void* LanczosThread(void *pParam);
50  void* LanczosThreadForMPI(void *pParam);
51 #endif //_WIN32
52 };
53 
static void CompareWithMatLabSeOrth(int nIteration, int nInterval, int nEigCount, bool bSelect, bool bCalcuVector)
static void ShowMsg(char *pszBuffer)
static void AuditResult_EV(CKNMatrixOperation::CKNCSR *pCSR, CKNLanczosMethod::LPEIGENVALUE_RESULT lpResult, double fTolerance)
static CKNMatrixOperation::CKNCSR * LargeCSRBuildingViaFileForMPI(char *pszFileName, int nMatrixSize)
static void SaveResult(CKNLanczosMethod::LPEIGENVALUE_RESULT lpResult, unsigned int nMatrixSize, bool bCalcuEigenvalue, bool bWaveFunction)
static void TestLanczos(int nIteration, int nInterval, int nEigCount, bool bCalcuVector)
static void StopLanczos()
static CKNMatrixOperation::CKNCSR * TestCSRBuildingViaFileLoadOrigin(char *pszFileName, int nMatrixSize)
Show message and debugging variable.
Data and operation representation of CSR(Compressed Sparse Row)
This class for doing Lanczos method.
void * LanczosThread(void *pParam)
static void COmpareWIthMatLabSeOrthMPI(int nRowCount, int nIteration, int nInterval, int nEigCount, bool bSelect, bool bCalcuVector, int nFileIndex)
static void AuditResult_Seorth(int nIndex, int nFindEigenValue, CKNLanczosMethod::LPEIGENVALUE_RESULT lpResult, double fMin, double fMax)
static CKNMatrixOperation::CKNCSR * TestCSRBuildingViaFileLoad(char *pszFileName, int nMatrixSize)
static void SolvingLargeSizeHamlitonian(int nIteration, int nInterval, int nEigCount, bool bSelect, bool bCalcuVector, bool bWaveFunction)
static void LargeSizeMatrixMPI(int nRowCount, int nIteration, int nInterval, int nEigCount, bool bSelect, bool bCalcuVector, bool bWaveFunction)
static void TestCSRBuilding()
Collection of vector and matrix operation.
static CKNLanczosMethod * m_pCurrentLanczosInstance
Definition: KNLanczosTest.h:37
Structure for engienvalue computing.
static void SaveResultCVS()
static CKNMatrixOperation::CKNCSR * TestCSRBuildingViaFileLoad_(char *pszFileName, int nMatrixSize)
static void AuditResult(int nIndex, int nFindEigenValue, CKNLanczosMethod::LPEIGENVALUE_RESULT lpResult, double fMin, double fMax)
static void AuditResult_WF(CKNLanczosMethod::LPEIGENVALUE_RESULT lpResult, double fTolerance, unsigned int nWaveFunctionSize)
static CKNMatrixOperation::CKNCSR * TestCSRBuildingViaArray()
static void TestSimpleLanczos()
static void CompareWithMatLabSeOrth_(int nIteration, int nInterval, int nEigCount, bool bSelect, bool bCalcuVector)
void * LanczosThreadForMPI(void *pParam)