|
IPCC
1.0
|
Data and operation representation of Matrix. More...
#include "KNMatrixOperation.h"

Public Types | |
| enum | APPEND_DRIECTION { ROW_DIRECTION, COLUMN_DIRECTION } |
Public Member Functions | |
| CKNDMatrix () | |
| Constructor. More... | |
| ~CKNDMatrix () | |
| Destructor. More... | |
| bool | BuildMatrixFirst (unsigned int nRow, unsigned int nColumn) |
| Building matrix elements. More... | |
| bool | SetElement (unsigned int nRow, unsigned int nColumn, CKNComplex element) |
| Set matrix elements value. More... | |
| bool | SetElement (unsigned int nRow, unsigned int nColumn, double fRealNumber, double fImageNumber) |
| Set matrix elements value. More... | |
| void | AppendMatrix (APPEND_DRIECTION direction, unsigned int nCount) |
| Appending matrix with direction. More... | |
| unsigned int | GetRowCount () |
| Get matrix row counts. More... | |
| unsigned int | GetColumnCount () |
| Get matrix column counts. More... | |
| bool | SetDiagonal (CKNVector vector) |
| Set diagonal elements. More... | |
| CKNComplex | GetElement (unsigned int nRowIndex, unsigned int nColumnIndex) |
| Get matrix element with row, column index. More... | |
| bool | SetColumnElement (CKNVector vector, unsigned int nColumnIndex) |
| Set matrix column. More... | |
| bool | SetRowElement (CKNVector vector, unsigned int nRowIndex) |
| Set matrix element with row, column index. More... | |
| bool | SetElement (unsigned int nRowStart, unsigned int nColumnStart, unsigned int nSrcRowStart, unsigned int nSrcColumnStart, unsigned int nSrcRowCount, unsigned int nSrcColumnCount, CKNDMatrix matrix) |
| Set elements with arrange information. More... | |
| void | ScalarMultiple (CKNComplex Scalar) |
| Scalar multiple operation. More... | |
| void | ScalarMultiple (double fScalar) |
| Scalar multiple operation. More... | |
| bool | GetRowByVector (unsigned int nRowIndex, CKNMatrixOperation::CKNVector *pVector) |
| Get row elements. More... | |
| bool | GetColumnByVector (unsigned int nColumnIndex, CKNMatrixOperation::CKNVector *pVector) |
| Get column elements. More... | |
| bool | GetSmallMatrix (unsigned int nRowStartIndex, unsigned int nColumnStartIndex, unsigned int nRowCount, unsigned int nColumnCount, CKNMatrixOperation::CKNDMatrix *pMatrix) |
| Get matrix from large matrix. More... | |
| void | ScalarDivision (double fScalar) |
| Scalar division operation. More... | |
| bool | TrnasPos () |
| Transpos matrix. More... | |
| void | operator= (CKNDMatrix &matrix) |
| operation overload for subsitution with reference parameter More... | |
| void | operator= (CKNDMatrix *matrix) |
| operation overload for subsitution with pointer parameter More... | |
| void | operator+= (CKNDMatrix &matrix) |
| operation overload for adding with reference parameter More... | |
| void | operator+= (CKNDMatrix *matrix) |
| operation overload for adding with pointer parameter More... | |
Private Attributes | |
| std::vector< CKNComplex > | m_vectValueBuffer |
| 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... | |
Data and operation representation of Matrix.
Definition at line 120 of file KNMatrixOperation.h.
| Enumerator | |
|---|---|
| ROW_DIRECTION | |
| COLUMN_DIRECTION | |
Definition at line 125 of file KNMatrixOperation.h.
| CKNMatrixOperation::CKNDMatrix::CKNDMatrix | ( | ) |
Constructor.
CKNVector Class member function - End
CKNDMatrix Class member function - Start
Definition at line 572 of file KNMatrixOperation.cpp.
| CKNMatrixOperation::CKNDMatrix::~CKNDMatrix | ( | ) |
| void CKNMatrixOperation::CKNDMatrix::AppendMatrix | ( | APPEND_DRIECTION | direction, |
| unsigned int | nCount | ||
| ) |
Appending matrix with direction.
| direction | Appending direction |
| nCount | Appending size |
Definition at line 676 of file KNMatrixOperation.cpp.
References CKNComplex::GetImaginaryNumber(), and CKNComplex::GetRealNumber().

| bool CKNMatrixOperation::CKNDMatrix::BuildMatrixFirst | ( | unsigned int | nRow, |
| unsigned int | nColumn | ||
| ) |
Building matrix elements.
| nRow | Row size |
| nColumn | Column size |
Definition at line 585 of file KNMatrixOperation.cpp.
Referenced by CKNHamiltonianBuilder::BuildACCANeighborFor10Band(), CKNZincblendeParam::BuildBondVector(), CKNZincblendeParam::BuildMatrix(), CKNHamiltonianBuilder::BuildOffsiteMatrixFor10Band(), CKNGeometricShape::BuildRotationMatrix(), CKNHamiltonianBuilder::FillMatrixFor10Band(), CKNHamiltonianBuilder::InitMatirxsFor10BandFillMatrix(), CKNMatrixOperation::MMMul(), and CKNGeometricShape::RotateMatrix().

| bool CKNMatrixOperation::CKNDMatrix::GetColumnByVector | ( | unsigned int | nColumnIndex, |
| CKNMatrixOperation::CKNVector * | pVector | ||
| ) |
Get column elements.
| nColumnIndex | Target column index |
| pVector[out] | Vector that column saving |
Definition at line 819 of file KNMatrixOperation.cpp.
References CKNMatrixOperation::CKNVector::SetAt(), and CKNMatrixOperation::CKNVector::SetSize().

|
inline |
Get matrix column counts.
Definition at line 132 of file KNMatrixOperation.h.
References m_nColumnCount.
Referenced by CKNZincblendeParam::BuildBondVector(), GetSmallMatrix(), CKNMatrixOperation::CKNCSR::InsertMatrix(), CKNMatrixOperation::MMMul(), CKNMatrixOperation::MVMul(), operator+=(), and operator=().

| CKNComplex CKNMatrixOperation::CKNDMatrix::GetElement | ( | unsigned int | nRowIndex, |
| unsigned int | nColumnIndex | ||
| ) |
Get matrix element with row, column index.
| nRowIndex | Target row index |
| nColumnIndex | Target column index |
Definition at line 735 of file KNMatrixOperation.cpp.
Referenced by CKNZincblendeParam::CalculateLatticeCoonstants(), CKNHamiltonianBuilder::FillMatrixFor10Band(), CKNMatrixOperation::CKNCSR::InsertMatrix(), CKNMatrixOperation::MMMul(), CKNMatrixOperation::MVMul(), operator+=(), operator=(), CKNMatrixOperation::CKNCSR::PushMatrix(), CKNMatrixOperation::CKNCSR::PushMatrixConcurrent(), SetElement(), CKNMatrixDebug::ShowDenseMatrix(), and CKNIPCCUtility::ShowDenseMatrix().

| bool CKNMatrixOperation::CKNDMatrix::GetRowByVector | ( | unsigned int | nRowIndex, |
| CKNMatrixOperation::CKNVector * | pVector | ||
| ) |
Get row elements.
| nRowIndex | Target row index |
| pVector[out] | Vector that column saving |
Definition at line 840 of file KNMatrixOperation.cpp.
References CKNMatrixOperation::CKNVector::SetAt(), and CKNMatrixOperation::CKNVector::SetSize().
Referenced by CKNHamiltonianBuilder::BuildOffsiteMatrixFor10Band().


|
inline |
Get matrix row counts.
Definition at line 131 of file KNMatrixOperation.h.
References m_nRowCount.
Referenced by CKNZincblendeParam::BuildBondVector(), GetSmallMatrix(), CKNMatrixOperation::CKNCSR::InsertMatrix(), CKNMatrixOperation::MMMul(), CKNMatrixOperation::MVMul(), operator+=(), and operator=().

| bool CKNMatrixOperation::CKNDMatrix::GetSmallMatrix | ( | unsigned int | nRowStartIndex, |
| unsigned int | nColumnStartIndex, | ||
| unsigned int | nRowCount, | ||
| unsigned int | nColumnCount, | ||
| CKNMatrixOperation::CKNDMatrix * | pMatrix | ||
| ) |
Get matrix from large matrix.
| nRowStartIndex | Start index of target row |
| nColumnStartIndex | Start index of target column |
| nRowCount | Copy size or row |
| nColumnCount | Copy size of column |
| pMatrix | Source matrix |
Definition at line 864 of file KNMatrixOperation.cpp.
References GetColumnCount(), GetRowCount(), and SetElement().
Referenced by CKNHamiltonianBuilder::FillMatrixFor10Band().


| void CKNMatrixOperation::CKNDMatrix::operator+= | ( | CKNDMatrix & | matrix | ) |
operation overload for adding with reference parameter
| matrix | Matrix operand |
Definition at line 913 of file KNMatrixOperation.cpp.
References GetColumnCount(), GetElement(), and GetRowCount().

| void CKNMatrixOperation::CKNDMatrix::operator+= | ( | CKNDMatrix * | matrix | ) |
operation overload for adding with pointer parameter
| matrix | Matrix operand |
Definition at line 905 of file KNMatrixOperation.cpp.
| void CKNMatrixOperation::CKNDMatrix::operator= | ( | CKNDMatrix & | matrix | ) |
operation overload for subsitution with reference parameter
| matrix | Matrix operand |
Definition at line 940 of file KNMatrixOperation.cpp.
References GetColumnCount(), GetElement(), and GetRowCount().

| void CKNMatrixOperation::CKNDMatrix::operator= | ( | CKNDMatrix * | matrix | ) |
operation overload for subsitution with pointer parameter
| matrix | Matrix operand |
Definition at line 932 of file KNMatrixOperation.cpp.
| void CKNMatrixOperation::CKNDMatrix::ScalarDivision | ( | double | fScalar | ) |
Scalar division operation.
| fScalar | Scalar factor |
Definition at line 894 of file KNMatrixOperation.cpp.
Referenced by CKNHamiltonianBuilder::FillMatrixFor10Band().

| void CKNMatrixOperation::CKNDMatrix::ScalarMultiple | ( | CKNComplex | Scalar | ) |
Scalar multiple operation.
| fScalar | Scalar value that want to use in operation |
Definition at line 787 of file KNMatrixOperation.cpp.
Referenced by CKNZincblendeParam::BuildBondVector().

| void CKNMatrixOperation::CKNDMatrix::ScalarMultiple | ( | double | fScalar | ) |
Scalar multiple operation.
| fScalar | Scalar value that want to use in operation |
Definition at line 800 of file KNMatrixOperation.cpp.
| bool CKNMatrixOperation::CKNDMatrix::SetColumnElement | ( | CKNVector | vector, |
| unsigned int | nColumnIndex | ||
| ) |
Set matrix column.
| vector | Source vector |
| nColumnIndex | Target column index |
Definition at line 745 of file KNMatrixOperation.cpp.
References CKNMatrixOperation::CKNVector::GetAt(), and CKNMatrixOperation::CKNVector::GetSize().

| bool CKNMatrixOperation::CKNDMatrix::SetDiagonal | ( | CKNVector | vector | ) |
Set diagonal elements.
| vector | Source vector |
Definition at line 713 of file KNMatrixOperation.cpp.
References CKNMatrixOperation::CKNVector::GetAt(), and CKNMatrixOperation::CKNVector::GetSize().
Referenced by CKNHamiltonianBuilder::BuildHonsiteBasicMatrixFor10Band().


| bool CKNMatrixOperation::CKNDMatrix::SetElement | ( | unsigned int | nRow, |
| unsigned int | nColumn, | ||
| CKNComplex | element | ||
| ) |
Set matrix elements value.
| nRow | Target row index |
| nColumn | Target column index |
| element | Value that want to set |
Definition at line 615 of file KNMatrixOperation.cpp.
References CKNComplex::GetImaginaryNumber(), and CKNComplex::GetRealNumber().
Referenced by CKNHamiltonianBuilder::BuildACCANeighborFor10Band(), CKNZincblendeParam::BuildBondVector(), CKNGeometricShape::BuildRotationMatrix(), CKNHamiltonianBuilder::FillMatrixFor10Band(), GetSmallMatrix(), CKNHamiltonianBuilder::InitMatirxsFor10BandFillMatrix(), CKNMatrixOperation::MMMul(), and CKNGeometricShape::RotateMatrix().


| bool CKNMatrixOperation::CKNDMatrix::SetElement | ( | unsigned int | nRow, |
| unsigned int | nColumn, | ||
| double | fRealNumber, | ||
| double | fImageNumber | ||
| ) |
Set matrix elements value.
| nRow | Target row index |
| nColumn | Target column index |
| fRealNumber | Real number that want to set |
| fImageNumber | Imaginary number that want to set |
Definition at line 627 of file KNMatrixOperation.cpp.
| bool CKNMatrixOperation::CKNDMatrix::SetElement | ( | unsigned int | nRowStart, |
| unsigned int | nColumnStart, | ||
| unsigned int | nSrcRowStart, | ||
| unsigned int | nSrcColumnStart, | ||
| unsigned int | nSrcRowCount, | ||
| unsigned int | nSrcColumnCount, | ||
| CKNDMatrix | matrix | ||
| ) |
Set elements with arrange information.
| nRowStart | Target row index want to set data |
| nColumnStart | Target column index want to set data |
| nSrcRowStart | Start row index of source that want to copy |
| nSrcColumnStart | Start column index of source that want to copy |
| nSrcRowCount | Row count that want to copy |
| nSrcColumnCount | Column count that want to copy |
| matrix | Source matrix |
Definition at line 650 of file KNMatrixOperation.cpp.
References GetElement().

| bool CKNMatrixOperation::CKNDMatrix::SetRowElement | ( | CKNVector | vector, |
| unsigned int | nRowIndex | ||
| ) |
Set matrix element with row, column index.
| vector | Source vector |
| nRowIndex | Target row index |
Definition at line 767 of file KNMatrixOperation.cpp.
References CKNMatrixOperation::CKNVector::GetAt(), and CKNMatrixOperation::CKNVector::GetSize().
Referenced by CKNZincblendeParam::BuildMatrix().


| bool CKNMatrixOperation::CKNDMatrix::TrnasPos | ( | ) |
Transpos matrix.
Definition at line 955 of file KNMatrixOperation.cpp.
Referenced by CKNHamiltonianBuilder::BuildACCANeighborFor10Band(), CKNGeometricShape::BuildRotationMatrix(), CKNHamiltonianBuilder::FillMatrixFor10Band(), and CKNGeometricShape::RotateMatrix().

|
private |
A numbers of column.
Definition at line 154 of file KNMatrixOperation.h.
Referenced by GetColumnCount().
|
private |
|
private |
A member variable for saving none zero elements.
Definition at line 152 of file KNMatrixOperation.h.