|
IPCC
1.0
|
Data and operation representation of CSR(Compressed Sparse Row) More...
#include "MatrixOperation.h"

Public Types | |
| enum | OPERATION_TYPE { PLUS, MINUS, MULTIPLE, DIVISION } |
Public Member Functions | |
| CCSR () | |
| Constructor. More... | |
| ~CCSR () | |
| Destructor. More... | |
| unsigned int | GetNoneZeroCount () |
| Getting numbers of none zero elements. More... | |
| unsigned int | GetRowCount () |
| unsigned int | GetColumnCount () |
| Getting row size of matrix. More... | |
| unsigned int | GetRowIndexNo (unsigned int nIndex) |
| Getting column size of matrix. More... | |
| unsigned int | GetColIndexNo (unsigned int nIndex) |
| Getting Column information data by index. More... | |
| CComplex * | GetValue (unsigned int nIndex) |
| Getting none zero element value by index. More... | |
| CComplex | GetElement (unsigned int nRow, unsigned int nColumn, bool &bResult) |
| Get Element by index. More... | |
| void | Finalize () |
| Deallocating memory for member variable. More... | |
| void | ExpandMatrix (unsigned int nMulti, bool bRow, bool bColumn) |
| Expand matrix order. More... | |
| bool | SetAt (CComplex number, unsigned int nRow, unsigned int nColumn) |
| Set element to specific index. More... | |
| bool | InsertRowBefore (unsigned int nRow) |
| Insert row before specific row index. More... | |
| bool | InsertRowAtEnd () |
| Insert row after last row. More... | |
| bool | InsertColumnBefore (unsigned int nColumn) |
| Insert column before specific column index. More... | |
| bool | InsertColumnAtEnd () |
| Insert column after last column. More... | |
| CCSR * | SplitCSR (int nStart, int nEnd) |
| Split CSR to MPI slave. More... | |
| void | BuildDataBuffer () |
| Allocating memory for class member variable. More... | |
| void | SetRowCount (unsigned int nRow) |
| Settting row size of matrix. More... | |
| void | SetColumnCount (unsigned int nColumn) |
| Settting column size of matrix. More... | |
| bool | InsertMatrix (unsigned int nRow, unsigned int nColumn, unsigned int nRowStart, unsigned int nColumnStart, unsigned int nRowCount, unsigned int nColumnCount, CMatrixOperation::CDMatrix *pMatrix, bool bCopyZero) |
| Set element by reference matrix. More... | |
| bool | PushMatrix (unsigned int nRow, unsigned int nColumn, unsigned int nRowStart, unsigned int nColumnStart, unsigned int nRowCount, unsigned int nColumnCount, CMatrixOperation::CDMatrix *pMatrix, bool bCopyZero) |
| Set element by reference matrix to end of buffer. More... | |
| bool | PushMatrixConcurrent (unsigned int nRow, CMatrixOperation::LPFILL_MATRIX_DATA lpData, bool bCopyZeroOnSite, int nBandSize) |
| bool | PushMatrixConcurrentPE (unsigned int nRow, CMatrixOperation::LPFILL_MATRIX_DATA lpData, bool bCopyZeroOnSite) |
| <Added by="" jhkang>=""> More... | |
| bool | ElementScalarMultiple (unsigned int nRow, unsigned int nColumn, CComplex Scalar) |
| <Added by="" jhkang="" end>=""> More... | |
| bool | ElementScalarMultiple (unsigned int nRow, unsigned int nColumn, double fScalar) |
| Scalar multiple operation. More... | |
| bool | AreaScalarMultiple (unsigned int nRowStart, unsigned int nRowCount, unsigned int nColumnStart, unsigned int nColumnCount, CComplex Scalar) |
| Scalar multiple operation to specific area. More... | |
| bool | DiagonalOperation (CVector *pOperand, OPERATION_TYPE type, bool bUseSplitVector, int nBandSize) |
| To diagonal element do operation. More... | |
| bool | DiagonalOperation (double *pOperand, unsigned int nSize, OPERATION_TYPE type, bool bUseSplitVector, int nBandSize) |
| To diagonal element do operation. More... | |
| void | SetFirstRowIndex (double fFirstIndex) |
| double | GetFirstRowIndex () |
| Set first row index. More... | |
| void | PushNoneZeroValue (double fRealValue, double fImaginaryValue, unsigned int nRow, unsigned int nCol) |
| Saving none zero value. More... | |
| void | FinishPush () |
| Insert end index of none zero value index. More... | |
| bool | ConvertDoubleArray (unsigned int *pRowPtr, unsigned int *pColIndex, double *pNNZValueReal, double *pNNZValueImaginary, unsigned int nNNZSize, unsigned int nRowSize, unsigned int nColSize, unsigned int nFirstIndex, bool bZerobase) |
| Convering general CSR format to CSR. More... | |
| CVector | operator* (CVector &vector) |
| operation overload for matrix and vector multiple operation with reference parameter More... | |
| CVector | operator* (CVector *vector) |
| operation overload for matrix and vector multiple operation with pointer parameter More... | |
Public Attributes | |
| unsigned int | nComponentsFirstUnitCell |
| Atom counts for interoperaton with previous node. More... | |
| unsigned int | nComponentsLastUnitCell |
| Atom counts for interoperaton with next node. More... | |
Static Public Attributes | |
| static unsigned int | MAX_INDEX = 0xffffffff |
| constant variable for row that has no element More... | |
Private Member Functions | |
| void | DumpCSR (const char *pstrFileName) |
| For debugging save CSR into file. More... | |
| void | IncreaseNoneZeroCount () |
| Increasing saved none zero elements count. More... | |
| bool | IsNonzeroElement (unsigned int nRow, unsigned int nColumn, unsigned int &nIndex) |
| Checking given index element has nonzero value or not. More... | |
| unsigned int | GetNextNonzeroValueIndex (unsigned int nRow, unsigned int nColumn) |
| Get next index of given row, column index. More... | |
| bool | GetNextRowIndexValue (unsigned int nRowFrom, unsigned int &nValueIndex) |
| Get row index value finding from nRowFrom to end. More... | |
| void | IncreaseRowIndex (unsigned int nRowFrom) |
| Increase m_nRowCount array value + 1 from nRowFrom. It means at m_nRowCount element has been inserted. More... | |
Private Attributes | |
| unsigned int | m_nValueCount |
| Numbers of none zero elements. More... | |
| unsigned int | m_nValueStackCount |
| Currently saved none zero value count. More... | |
| double_vector_t | m_vectValueRealBuffer |
| A member variable for saving none zero elements. More... | |
| double_vector_t | m_vectValueImaginaryBuffer |
| A member variable for saving none zero elements. More... | |
| unsigned int | m_nRowCount |
| A numbers of row. More... | |
| unsigned int | m_nColumnCount |
| A numbers of column. More... | |
| uint_vector_t | m_vectRow |
| A member variable for saving row information. More... | |
| uint_vector_t | m_vectColumn |
| A member variable for saving column information. More... | |
| double | m_fFirstRowIndex |
| First row index in this node. More... | |
| CComplex | m_rtnTemp |
| Temporary variable for return. More... | |
Friends | |
| class | CMatrixOperation |
| class | CUtility |
| class | CTBMS_Solver |
| class | CLanczosLaunching |
| class | CSPLoop |
Data and operation representation of CSR(Compressed Sparse Row)
Definition at line 163 of file MatrixOperation.h.
| CMatrixOperation::CCSR::CCSR | ( | ) |
Constructor.
CDMatrix Class member function - End
CCSR Class member function - Start
< Numbers of none zero elements
< Currently saved none zero value count
< A numbers of row
< A numbers of column
< For Empty remark empty row use max index;
Definition at line 1018 of file MatrixOperation.cpp.
| CMatrixOperation::CCSR::~CCSR | ( | ) |
| bool CMatrixOperation::CCSR::AreaScalarMultiple | ( | unsigned int | nRowStart, |
| unsigned int | nRowCount, | ||
| unsigned int | nColumnStart, | ||
| unsigned int | nColumnCount, | ||
| CComplex | Scalar | ||
| ) |
Scalar multiple operation to specific area.
<Added by="" jhkang="" end>="">
| nRowStart | Target row start index |
| nRowCount | Target row size |
| nColumnStart | Target column start index |
| nColumnCount | Target column size |
| Scalar | Scalar value that want to Multiple |
Definition at line 1188 of file MatrixOperation.cpp.
Referenced by CGeometricShape::RefillPeriodicBinding().

| void CMatrixOperation::CCSR::BuildDataBuffer | ( | ) |
Allocating memory for class member variable.
Definition at line 1040 of file MatrixOperation.cpp.
Referenced by CTBMS_Solver::AllocateCSR(), CSPLoop::AllocateCSR(), CMatrixOperation::BuildCSRFromFile_(), CMatrixOperation::BuildCSRFromFileTemp(), CMatrixOperation::BuildCSRFromFileUnsortdata(), CMatrixOperation::BuildCSRFromOneDimArray(), and SplitCSR().

| bool CMatrixOperation::CCSR::ConvertDoubleArray | ( | unsigned int * | pRowPtr, |
| unsigned int * | pColIndex, | ||
| double * | pNNZValueReal, | ||
| double * | pNNZValueImaginary, | ||
| unsigned int | nNNZSize, | ||
| unsigned int | nRowSize, | ||
| unsigned int | nColSize, | ||
| unsigned int | nFirstIndex, | ||
| bool | bZerobase | ||
| ) |
Convering general CSR format to CSR.
| pRowPtr | Row index data |
| pColIndex | Column index data |
| pNNZValueReal | Non zero real element data |
| pNNZValueImaginary | Non zero imaginary elements data |
| nNNZSize | Non zero elements counts |
| nRowSize | Row counts |
| nColSize | Column counts |
| nFirstIndex | First index for split matrix |
| bZerobase | Zero based index or not |
Definition at line 1372 of file MatrixOperation.cpp.
| bool CMatrixOperation::CCSR::DiagonalOperation | ( | CVector * | pOperand, |
| OPERATION_TYPE | type, | ||
| bool | bUseSplitVector, | ||
| int | nBandSize | ||
| ) |
To diagonal element do operation.
| pOperand | Operand vector to use for operation |
| type | Operation type |
| bUseSplitVector | Using split vector that has same size(1/10) with CSR row or Total size that means CSR row size that Origianl Hamiltonian |
| nBandSize | Band size |
Definition at line 2079 of file MatrixOperation.cpp.
References CMatrixOperation::CVector::GetAt(), and CMatrixOperation::CVector::GetSize().
Referenced by CTBMS_Solver::ApplyPhPotential(), and CSPLoop::SolveSchroedinger().


| bool CMatrixOperation::CCSR::DiagonalOperation | ( | double * | pOperand, |
| unsigned int | nSize, | ||
| OPERATION_TYPE | type, | ||
| bool | bUseSplitVector, | ||
| int | nBandSize | ||
| ) |
To diagonal element do operation.
| pOperand | Operand vector to use for operation |
| type | Operation type |
| bUseSplitVector | Using split vector that has same size(1/10) with CSR row or Total size that means CSR row size that Origianl Hamiltonian |
Definition at line 2060 of file MatrixOperation.cpp.
References CMatrixOperation::CVector::SetAt(), and CMatrixOperation::CVector::SetSize().

|
private |
For debugging save CSR into file.
| pstrFileName | File name for saving |
Definition at line 2152 of file MatrixOperation.cpp.
Referenced by CMatrixOperation::DumpCSR().

| bool CMatrixOperation::CCSR::ElementScalarMultiple | ( | unsigned int | nRow, |
| unsigned int | nColumn, | ||
| CComplex | Scalar | ||
| ) |
<Added by="" jhkang="" end>="">
Scalar multiple operation
| nRow | Target row index |
| nColumn | Target column index |
| Scalar | Scalar value that want to use in operation |
Definition at line 1214 of file MatrixOperation.cpp.
| bool CMatrixOperation::CCSR::ElementScalarMultiple | ( | unsigned int | nRow, |
| unsigned int | nColumn, | ||
| double | fScalar | ||
| ) |
Scalar multiple operation.
| nRow | Target row index |
| nColumn | Target column index |
| fScalar | Scalar value that want to use in operation |
Definition at line 1235 of file MatrixOperation.cpp.
| void CMatrixOperation::CCSR::ExpandMatrix | ( | unsigned int | nMulti, |
| bool | bRow, | ||
| bool | bColumn | ||
| ) |
Expand matrix order.
| nMulti | Multiple number for expanding matrix order |
| bRow | Option for expanding row or not bColumn: Option for expanding column or not |
Definition at line 1437 of file MatrixOperation.cpp.
| void CMatrixOperation::CCSR::Finalize | ( | ) |
Deallocating memory for member variable.
Definition at line 1414 of file MatrixOperation.cpp.
Referenced by CMatrixOperation::FreeCSR().

| void CMatrixOperation::CCSR::FinishPush | ( | ) |
Insert end index of none zero value index.
Definition at line 1355 of file MatrixOperation.cpp.
Referenced by CMatrixOperation::BuildCSRFromFile_(), CMatrixOperation::BuildCSRFromFileTemp(), CMatrixOperation::BuildCSRFromFileUnsortdata(), CMatrixOperation::BuildCSRFromOneDimArray(), CMatrixOperation::BuildLocalCSR(), and SplitCSR().

| unsigned int CMatrixOperation::CCSR::GetColIndexNo | ( | unsigned int | nIndex | ) |
Getting Column information data by index.
| nIndex | Index that want to get column information |
Definition at line 1307 of file MatrixOperation.cpp.
References ERROR_OUT_OF_RANGE.
|
inline |
Getting row size of matrix.
Definition at line 172 of file MatrixOperation.h.
References m_nColumnCount.
Referenced by CLanczosResultAudit::AuditResult_EV(), CMatrixOperation::BuildLocalCSR(), CLanczosMethod::DoLanczosMethod(), CLanczosMethod::DoResidualCheck(), CMatrixOperation::MVMul(), CMatrixOperation::MVMulEx_Optimal(), CMatrixOperation::MVMulOptimal(), CMatrixOperation::MVMulOptimal_Nooffload(), CUtility::ShowCSR(), and CMatrixOperation::UpdateLocalCSR().

| CComplex CMatrixOperation::CCSR::GetElement | ( | unsigned int | nRow, |
| unsigned int | nColumn, | ||
| bool & | bResult | ||
| ) |
Get Element by index.
| nRow | Specific index that of want to get element |
| nColumn | Specific index that of want to get element |
| bResult | [out]: If Specific index has element set 'true' else set 'false' |
Definition at line 1594 of file MatrixOperation.cpp.
References CComplex::SetComplexNumber().
Referenced by CUtility::ShowCSR().


|
inline |
Set first row index.
Get first row index
Definition at line 200 of file MatrixOperation.h.
References m_fFirstRowIndex.
Referenced by CMatrixOperation::BuildLocalCSR(), and CMatrixOperation::UpdateLocalCSR().

|
private |
Get next index of given row, column index.
| nRow | Target row index |
| nColumn | Target column index |
Definition at line 1673 of file MatrixOperation.cpp.
|
private |
Get row index value finding from nRowFrom to end.
| nRowFrom | From this row index finding row index value that was not MAX_INDEX |
| nValueIndex | [out] next not MAX_INDEX value |
Definition at line 1474 of file MatrixOperation.cpp.
|
inline |
Getting numbers of none zero elements.
Definition at line 170 of file MatrixOperation.h.
References m_nValueCount.
Referenced by CSPLoop::executeSPLoop(), CTBMS_Solver::Launching_TBMS_Solver(), CLanczosLaunching::LaunchingLanczos(), and CSPLoop::SolveSchroedinger().

|
inline |
Definition at line 171 of file MatrixOperation.h.
References m_nRowCount.
Referenced by CMatrixOperation::BuildLocalCSR(), CGeometricShape::BuildPEHamiltonian(), CUtility::DumpCSR(), CMatrixOperation::MVMul(), CMatrixOperation::MVMulEx_Optimal(), CMatrixOperation::MVMulOptimal(), CMatrixOperation::MVMulOptimal_Nooffload(), CUtility::ShowCSR(), and CMatrixOperation::UpdateLocalCSR().

| unsigned int CMatrixOperation::CCSR::GetRowIndexNo | ( | unsigned int | nIndex | ) |
Getting column size of matrix.
Getting Row information data by index
| nIndex | Index that want to get row information |
Definition at line 1292 of file MatrixOperation.cpp.
References ERROR_OUT_OF_RANGE.
| CComplex * CMatrixOperation::CCSR::GetValue | ( | unsigned int | nIndex | ) |
Getting none zero element value by index.
| nIndex | Index that want to get none zero value |
Definition at line 1323 of file MatrixOperation.cpp.
References ERROR_OUT_OF_RANGE.
Referenced by CMatrixOperation::BuildLocalCSR(), and CMatrixOperation::UpdateLocalCSR().

|
private |
Increasing saved none zero elements count.
Definition at line 1035 of file MatrixOperation.cpp.
|
private |
Increase m_nRowCount array value + 1 from nRowFrom. It means at m_nRowCount element has been inserted.
| nRowFrom | From this row index increaseing row Index value + 1 |
Definition at line 1498 of file MatrixOperation.cpp.
| bool CMatrixOperation::CCSR::InsertColumnAtEnd | ( | ) |
Insert column after last column.
Definition at line 1767 of file MatrixOperation.cpp.
| bool CMatrixOperation::CCSR::InsertColumnBefore | ( | unsigned int | nColumn | ) |
Insert column before specific column index.
| nRow | The index that column inserting point |
Definition at line 1742 of file MatrixOperation.cpp.
| bool CMatrixOperation::CCSR::InsertMatrix | ( | unsigned int | nRow, |
| unsigned int | nColumn, | ||
| unsigned int | nRowStart, | ||
| unsigned int | nColumnStart, | ||
| unsigned int | nRowCount, | ||
| unsigned int | nColumnCount, | ||
| CMatrixOperation::CDMatrix * | pMatrix, | ||
| bool | bCopyZero | ||
| ) |
Set element by reference matrix.
| nRow | Target row index |
| nColumn | Target column index |
| nRowStart | Copying source matrix row start index |
| nColumnStart | Copying source matrix column start index |
| nRowCount | Copying row counts |
| nColumnCount | Copying column counts |
| pMatrix | Copying source matrix |
| bCopyZero | Copying zero with '0' or not |
Definition at line 1261 of file MatrixOperation.cpp.
References CMatrixOperation::CDMatrix::GetColumnCount(), CMatrixOperation::CDMatrix::GetElement(), CComplex::GetImaginaryNumber(), CComplex::GetRealNumber(), and CMatrixOperation::CDMatrix::GetRowCount().
Referenced by CHamiltonianBuilder::ResetPeriodicBinding().


| bool CMatrixOperation::CCSR::InsertRowAtEnd | ( | ) |
Insert row after last row.
Definition at line 1729 of file MatrixOperation.cpp.
| bool CMatrixOperation::CCSR::InsertRowBefore | ( | unsigned int | nRow | ) |
Insert row before specific row index.
| nRow | The index that row inserting point |
Definition at line 1703 of file MatrixOperation.cpp.
|
private |
Checking given index element has nonzero value or not.
| nRow | Target row index |
| nColumn | Target column index |
| nIndex | [out]: Index in nonzero value of Target element |
Definition at line 1631 of file MatrixOperation.cpp.
| CMatrixOperation::CVector CMatrixOperation::CCSR::operator* | ( | CVector & | vector | ) |
operation overload for matrix and vector multiple operation with reference parameter
| vector | Vector operand |
Definition at line 1777 of file MatrixOperation.cpp.
References ERROR_WRONG_ORDER_OPERATION, CMatrixOperation::CVector::GetAt(), CMatrixOperation::CVector::GetSize(), CMatrixOperation::CVector::SetAt(), and CMatrixOperation::CVector::SetSize().

| CMatrixOperation::CVector CMatrixOperation::CCSR::operator* | ( | CVector * | vector | ) |
operation overload for matrix and vector multiple operation with pointer parameter
| vector | Vector operand |
Definition at line 1820 of file MatrixOperation.cpp.
References operator*().

| bool CMatrixOperation::CCSR::PushMatrix | ( | unsigned int | nRow, |
| unsigned int | nColumn, | ||
| unsigned int | nRowStart, | ||
| unsigned int | nColumnStart, | ||
| unsigned int | nRowCount, | ||
| unsigned int | nColumnCount, | ||
| CMatrixOperation::CDMatrix * | pMatrix, | ||
| bool | bCopyZero | ||
| ) |
Set element by reference matrix to end of buffer.
nRow: Target row index
| nColumn | Target column index |
| nRowStart | Source row start index |
| nColumnStart | Source column start index |
| nRowCount | Copy source row size |
| nColumnCount | Copy source column size |
| pMatrix | Source matrix |
| bCopyZero | Copy zero element or not |
Definition at line 1120 of file MatrixOperation.cpp.
References CMatrixOperation::CDMatrix::GetElement(), CComplex::GetImaginaryNumber(), and CComplex::GetRealNumber().

| bool CMatrixOperation::CCSR::PushMatrixConcurrent | ( | unsigned int | nRow, |
| CMatrixOperation::LPFILL_MATRIX_DATA | lpData, | ||
| bool | bCopyZeroOnSite, | ||
| int | nBandSize | ||
| ) |
Pushing matrix into CSR several sub matrixs
| nRow | Target row index |
| lpData | Structure that have Matrix data and column index |
| bCopyZeroOnSite | Create zero value on diagonal element |
| nBadnSize | Band size |
< For Honsite
< Row index
< Matrix index
< Column index
Definition at line 1071 of file MatrixOperation.cpp.
References ATOM_DEFAULT_INDEX, compare(), CMatrixOperation::CDMatrix::GetElement(), CComplex::GetImaginaryNumber(), CComplex::GetRealNumber(), CMatrixOperation::FILL_MATRIX_DATA::nColumnIndex, and CMatrixOperation::FILL_MATRIX_DATA::pMatrix.
Referenced by CHamiltonianBuilder::FillMatrixFor10Band().


| bool CMatrixOperation::CCSR::PushMatrixConcurrentPE | ( | unsigned int | nRow, |
| CMatrixOperation::LPFILL_MATRIX_DATA | lpData, | ||
| bool | bCopyZeroOnSite | ||
| ) |
<Added by="" jhkang>="">
< For Honsite
< Matrix index
Definition at line 1147 of file MatrixOperation.cpp.
References ATOM_DEFAULT_INDEX, compare(), CMatrixOperation::CDMatrix::GetElement(), CComplex::GetImaginaryNumber(), CComplex::GetRealNumber(), CMatrixOperation::FILL_MATRIX_DATA::nColumnIndex, and CMatrixOperation::FILL_MATRIX_DATA::pMatrix.
Referenced by CGeometricShape::BuildPEHamiltonian().


| void CMatrixOperation::CCSR::PushNoneZeroValue | ( | double | fRealValue, |
| double | fImaginaryValue, | ||
| unsigned int | nRow, | ||
| unsigned int | nCol | ||
| ) |
Saving none zero value.
| fRealValue | None zero value - Real part |
| fImaginaryValue | None zero value - Imaginary part |
| nRow | Row index of zero based index |
| nCol | Column index of zero based index |
Definition at line 1342 of file MatrixOperation.cpp.
Referenced by CMatrixOperation::BuildCSRFromFile_(), CMatrixOperation::BuildCSRFromFileTemp(), CMatrixOperation::BuildCSRFromFileUnsortdata(), CMatrixOperation::BuildCSRFromOneDimArray(), CMatrixOperation::BuildLocalCSR(), and SplitCSR().

| bool CMatrixOperation::CCSR::SetAt | ( | CComplex | number, |
| unsigned int | nRow, | ||
| unsigned int | nColumn | ||
| ) |
Set element to specific index.
| number | Replace element value |
| nRow | Target row index for replacing value |
| nColumn | Target column index for replacing value |
Definition at line 1514 of file MatrixOperation.cpp.
References CComplex::GetImaginaryNumber(), and CComplex::GetRealNumber().
Referenced by CMatrixOperation::UpdateLocalCSR().


|
inline |
Settting column size of matrix.
Definition at line 187 of file MatrixOperation.h.
References m_nColumnCount.
Referenced by CTBMS_Solver::AllocateCSR(), CSPLoop::AllocateCSR(), CMatrixOperation::BuildCSRFromFile_(), CMatrixOperation::BuildCSRFromFileTemp(), CMatrixOperation::BuildCSRFromFileUnsortdata(), CMatrixOperation::BuildCSRFromOneDimArray(), and SplitCSR().

|
inline |
Definition at line 199 of file MatrixOperation.h.
References m_fFirstRowIndex.
Referenced by CTBMS_Solver::AllocateCSR(), and CSPLoop::AllocateCSR().

|
inline |
Settting row size of matrix.
Definition at line 186 of file MatrixOperation.h.
References m_nRowCount.
Referenced by CTBMS_Solver::AllocateCSR(), CSPLoop::AllocateCSR(), CMatrixOperation::BuildCSRFromFile_(), CMatrixOperation::BuildCSRFromFileTemp(), CMatrixOperation::BuildCSRFromFileUnsortdata(), CMatrixOperation::BuildCSRFromOneDimArray(), and SplitCSR().

| CMatrixOperation::CCSR * CMatrixOperation::CCSR::SplitCSR | ( | int | nStart, |
| int | nEnd | ||
| ) |
Split CSR to MPI slave.
| nStart | The start index spilt |
| nEnd | The end index split |
Definition at line 2023 of file MatrixOperation.cpp.
References BuildDataBuffer(), FinishPush(), PushNoneZeroValue(), SetColumnCount(), and SetRowCount().

|
friend |
Definition at line 234 of file MatrixOperation.h.
|
friend |
Definition at line 230 of file MatrixOperation.h.
|
friend |
Definition at line 235 of file MatrixOperation.h.
|
friend |
Definition at line 232 of file MatrixOperation.h.
|
friend |
Definition at line 231 of file MatrixOperation.h.
|
private |
First row index in this node.
Definition at line 227 of file MatrixOperation.h.
Referenced by GetFirstRowIndex(), CMatrixOperation::MVMulEx_Optimal(), CMatrixOperation::MVMulOptimal(), CMatrixOperation::MVMulOptimal_Nooffload(), and SetFirstRowIndex().
|
private |
A numbers of column.
Definition at line 224 of file MatrixOperation.h.
Referenced by GetColumnCount(), and SetColumnCount().
|
private |
A numbers of row.
Definition at line 223 of file MatrixOperation.h.
Referenced by GetRowCount(), and SetRowCount().
|
private |
Numbers of none zero elements.
Definition at line 219 of file MatrixOperation.h.
Referenced by GetNoneZeroCount().
|
private |
Currently saved none zero value count.
Definition at line 220 of file MatrixOperation.h.
|
private |
Temporary variable for return.
Definition at line 228 of file MatrixOperation.h.
|
private |
A member variable for saving column information.
Definition at line 226 of file MatrixOperation.h.
Referenced by CMatrixOperation::BuildLocalCSR(), CUtility::DumpCSR(), CSPLoop::executeSPLoop(), CTBMS_Solver::Launching_TBMS_Solver(), CLanczosLaunching::LaunchingLanczos(), CMatrixOperation::MVMul(), CMatrixOperation::MVMulEx_Optimal(), CMatrixOperation::MVMulOptimal(), CMatrixOperation::MVMulOptimal_Nooffload(), CSPLoop::SolveSchroedinger(), and CMatrixOperation::UpdateLocalCSR().
|
private |
A member variable for saving row information.
Definition at line 225 of file MatrixOperation.h.
Referenced by CMatrixOperation::BuildLocalCSR(), CUtility::DumpCSR(), CSPLoop::executeSPLoop(), CTBMS_Solver::Launching_TBMS_Solver(), CLanczosLaunching::LaunchingLanczos(), CMatrixOperation::MVMul(), CMatrixOperation::MVMulEx_Optimal(), CMatrixOperation::MVMulOptimal(), CMatrixOperation::MVMulOptimal_Nooffload(), CSPLoop::SolveSchroedinger(), and CMatrixOperation::UpdateLocalCSR().
|
private |
A member variable for saving none zero elements.
Definition at line 222 of file MatrixOperation.h.
Referenced by CUtility::DumpCSR(), CSPLoop::executeSPLoop(), CTBMS_Solver::Launching_TBMS_Solver(), CLanczosLaunching::LaunchingLanczos(), CMatrixOperation::MVMul(), CMatrixOperation::MVMulEx_Optimal(), CMatrixOperation::MVMulOptimal(), CMatrixOperation::MVMulOptimal_Nooffload(), and CSPLoop::SolveSchroedinger().
|
private |
A member variable for saving none zero elements.
Definition at line 221 of file MatrixOperation.h.
Referenced by CUtility::DumpCSR(), CSPLoop::executeSPLoop(), CTBMS_Solver::Launching_TBMS_Solver(), CLanczosLaunching::LaunchingLanczos(), CMatrixOperation::MVMul(), CMatrixOperation::MVMulEx_Optimal(), CMatrixOperation::MVMulOptimal(), CMatrixOperation::MVMulOptimal_Nooffload(), and CSPLoop::SolveSchroedinger().
|
static |
constant variable for row that has no element
Definition at line 207 of file MatrixOperation.h.
| unsigned int CMatrixOperation::CCSR::nComponentsFirstUnitCell |
Atom counts for interoperaton with previous node.
Definition at line 208 of file MatrixOperation.h.
Referenced by CSPLoop::BuildHamiltonian(), CTBMS_Solver::Launching_TBMS_Solver(), and CMatrixOperation::MVMulEx_Optimal().
| unsigned int CMatrixOperation::CCSR::nComponentsLastUnitCell |
Atom counts for interoperaton with next node.
Definition at line 209 of file MatrixOperation.h.
Referenced by CSPLoop::BuildHamiltonian(), CTBMS_Solver::Launching_TBMS_Solver(), and CMatrixOperation::MVMulEx_Optimal().