IPCC  1.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
CZincblendeParam Class Reference

Class for calculating zincblend parameter. More...

#include "ZincblendeParam.h"

Collaboration diagram for CZincblendeParam:
Collaboration graph

Public Member Functions

 CZincblendeParam ()
 
 ~CZincblendeParam ()
 
void BuildZincblendParam (GEO_PARAMETER &parameter)
 Calculating zincblend parameter. More...
 

Public Attributes

int m_nAtomBonds
 Atom count. More...
 
CMatrixOperation::CDMatrix m_matrixCoord
 Matrix for coordination. More...
 
int m_nBasisVectors
 
CMatrixOperation::CDMatrix m_matrixBasis_Vector
 
CMatrixOperation::CDMatrix m_matrixType1_Bond_Vector
 
CMatrixOperation::CDMatrix m_matrixType2_Bond_Vector
 
CMatrixOperation::CDMatrix m_matrixBond_Vector
 
CMatrixOperation::CDMatrix m_matrixCrystal_Original_Axis
 

Private Member Functions

void BuildCoord ()
 
void BuildBasisVector ()
 
void BuildType1Bond ()
 
void BuildType2Bond ()
 
void BuildBondVector ()
 
void BuildCrystalOriginalAxis ()
 
void CalculateLatticeCoonstants (GEO_PARAMETER &parameter)
 
void BuildMatrix (int nRowCount, int nColumnCount, CMatrixOperation::CDMatrix *pMatrix, double parameterBuffer[4][3])
 

Detailed Description

Class for calculating zincblend parameter.

Date
03/Oct/2014

Definition at line 15 of file ZincblendeParam.h.

Constructor & Destructor Documentation

CZincblendeParam::CZincblendeParam ( )

Definition at line 9 of file ZincblendeParam.cpp.

10 {
11 }
CZincblendeParam::~CZincblendeParam ( )

Definition at line 14 of file ZincblendeParam.cpp.

15 {
16 }

Member Function Documentation

void CZincblendeParam::BuildBasisVector ( )
private

Definition at line 32 of file ZincblendeParam.cpp.

References BuildMatrix(), m_matrixBasis_Vector, and m_nBasisVectors.

Referenced by BuildZincblendParam().

33 {
34  double parameterBuffer[4][3] = { { 0.5, 0.5, 0 },
35  { 0.5, 0, 0.5 },
36  { 0, 0.5, 0.5 },
37  { 0, 0, 0 } };
38  m_nBasisVectors = 4;
39  BuildMatrix(3, 3, &m_matrixBasis_Vector, parameterBuffer);
40 }
void BuildMatrix(int nRowCount, int nColumnCount, CMatrixOperation::CDMatrix *pMatrix, double parameterBuffer[4][3])
CMatrixOperation::CDMatrix m_matrixBasis_Vector

Here is the call graph for this function:

Here is the caller graph for this function:

void CZincblendeParam::BuildBondVector ( )
private

Definition at line 63 of file ZincblendeParam.cpp.

References CMatrixOperation::CDMatrix::BuildMatrixFirst(), CMatrixOperation::CDMatrix::GetColumnCount(), CMatrixOperation::CDMatrix::GetRowCount(), m_matrixBond_Vector, m_matrixType1_Bond_Vector, m_matrixType2_Bond_Vector, CMatrixOperation::CDMatrix::ScalarMultiple(), and CMatrixOperation::CDMatrix::SetElement().

Referenced by BuildZincblendParam().

64 {
69 }
CMatrixOperation::CDMatrix m_matrixType1_Bond_Vector
bool BuildMatrixFirst(unsigned int nRow, unsigned int nColumn)
Building matrix elements.
CMatrixOperation::CDMatrix m_matrixType2_Bond_Vector
void ScalarMultiple(CComplex Scalar)
Scalar multiple operation.
unsigned int GetRowCount()
Get matrix row counts.
bool SetElement(unsigned int nRow, unsigned int nColumn, CComplex element)
Set matrix elements value.
CMatrixOperation::CDMatrix m_matrixBond_Vector
unsigned int GetColumnCount()
Get matrix column counts.

Here is the call graph for this function:

Here is the caller graph for this function:

void CZincblendeParam::BuildCoord ( )
private

Definition at line 105 of file ZincblendeParam.cpp.

References BuildMatrix(), and m_matrixCoord.

Referenced by BuildZincblendParam().

106 {
107  double parameterBuffer[4][3] = { { 0, 0, 0 },
108  { 0.25, 0.25, 0.25},
109  { 0, 0, 0 },
110  { 0, 0, 0 }};
111  BuildMatrix(2, 3, &m_matrixCoord, parameterBuffer);
112 }
void BuildMatrix(int nRowCount, int nColumnCount, CMatrixOperation::CDMatrix *pMatrix, double parameterBuffer[4][3])
CMatrixOperation::CDMatrix m_matrixCoord
Matrix for coordination.

Here is the call graph for this function:

Here is the caller graph for this function:

void CZincblendeParam::BuildCrystalOriginalAxis ( )
private

Definition at line 71 of file ZincblendeParam.cpp.

References BuildMatrix(), and m_matrixCrystal_Original_Axis.

Referenced by BuildZincblendParam().

72 {
73  double parameterBuffer[4][3] = { { 1, 0, 0 },
74  { 0, 1, 0 },
75  { 0, 0, 1 },
76  { 0, 0, 0 } };
77 
78  BuildMatrix(3, 3, &m_matrixCrystal_Original_Axis, parameterBuffer);
79 }
void BuildMatrix(int nRowCount, int nColumnCount, CMatrixOperation::CDMatrix *pMatrix, double parameterBuffer[4][3])
CMatrixOperation::CDMatrix m_matrixCrystal_Original_Axis

Here is the call graph for this function:

Here is the caller graph for this function:

void CZincblendeParam::BuildMatrix ( int  nRowCount,
int  nColumnCount,
CMatrixOperation::CDMatrix pMatrix,
double  parameterBuffer[4][3] 
)
private

Definition at line 115 of file ZincblendeParam.cpp.

References CMatrixOperation::CDMatrix::BuildMatrixFirst(), CMatrixOperation::CVector::SetAt(), CMatrixOperation::CDMatrix::SetRowElement(), and CMatrixOperation::CVector::SetSize().

Referenced by BuildBasisVector(), BuildCoord(), BuildCrystalOriginalAxis(), BuildType1Bond(), and BuildType2Bond().

116 {
117  int i, j;
118  CMatrixOperation::CVector vectorTemp;
119 
120  pMatrix->BuildMatrixFirst(nRowCount, nColumnCount);
121  vectorTemp.SetSize(nColumnCount);
122  for (i = 0; i < nRowCount; i++)
123  {
124  for (j = 0; j < nColumnCount; j++)
125  {
126  vectorTemp.SetAt(j, parameterBuffer[i][j], 0);
127  }
128  pMatrix->SetRowElement(vectorTemp, i);
129  }
130 }
bool BuildMatrixFirst(unsigned int nRow, unsigned int nColumn)
Building matrix elements.
This class for describing vector for Lanczos method.
void SetAt(unsigned int nIndex, CComplex value)
Set element value in specific index, Call by value.
bool SetRowElement(CVector vector, unsigned int nRowIndex)
Set matrix element with row, column index.
void SetSize(unsigned int nSize)
Set Vector elements size.

Here is the call graph for this function:

Here is the caller graph for this function:

void CZincblendeParam::BuildType1Bond ( )
private

Definition at line 53 of file ZincblendeParam.cpp.

References BuildMatrix(), and m_matrixType1_Bond_Vector.

Referenced by BuildZincblendParam().

54 {
55  double parameterBuffer[4][3] = { { 1, 1, 1 },
56  { 1, -1, -1 },
57  { -1, 1, -1 },
58  { -1, -1, 1 } };
59 
60  BuildMatrix(4, 3, &m_matrixType1_Bond_Vector, parameterBuffer);
61 }
CMatrixOperation::CDMatrix m_matrixType1_Bond_Vector
void BuildMatrix(int nRowCount, int nColumnCount, CMatrixOperation::CDMatrix *pMatrix, double parameterBuffer[4][3])

Here is the call graph for this function:

Here is the caller graph for this function:

void CZincblendeParam::BuildType2Bond ( )
private

Definition at line 42 of file ZincblendeParam.cpp.

References BuildMatrix(), m_matrixType2_Bond_Vector, and m_nAtomBonds.

Referenced by BuildZincblendParam().

43 {
44  double parameterBuffer[4][3] = { { -1, -1, -1 },
45  { -1, 1, 1 },
46  { 1, -1, 1 },
47  { 1, 1, -1 } };
48 
49  m_nAtomBonds = 4;
50  BuildMatrix(4, 3, &m_matrixType2_Bond_Vector, parameterBuffer);
51 }
void BuildMatrix(int nRowCount, int nColumnCount, CMatrixOperation::CDMatrix *pMatrix, double parameterBuffer[4][3])
int m_nAtomBonds
Atom count.
CMatrixOperation::CDMatrix m_matrixType2_Bond_Vector

Here is the call graph for this function:

Here is the caller graph for this function:

void CZincblendeParam::BuildZincblendParam ( GEO_PARAMETER parameter)

Calculating zincblend parameter.

Parameters
[out]paramterGeometric parameters

Definition at line 21 of file ZincblendeParam.cpp.

References BuildBasisVector(), BuildBondVector(), BuildCoord(), BuildCrystalOriginalAxis(), BuildType1Bond(), BuildType2Bond(), and CalculateLatticeCoonstants().

22 {
23  BuildCoord();
29  CalculateLatticeCoonstants(parameter);
30 }
void BuildCrystalOriginalAxis()
void CalculateLatticeCoonstants(GEO_PARAMETER &parameter)

Here is the call graph for this function:

void CZincblendeParam::CalculateLatticeCoonstants ( GEO_PARAMETER parameter)
private
Parameters
[out]paramterGeometric parameters

Definition at line 84 of file ZincblendeParam.cpp.

References GEO_PARAMETER::fL, GEO_PARAMETER::fM, GEO_PARAMETER::fN, CMatrixOperation::CDMatrix::GetElement(), CComplex::GetRealNumber(), and m_matrixCrystal_Original_Axis.

Referenced by BuildZincblendParam().

85 {
86  CComplex ax, ay, az;
87  CComplex ax_square, ay_square, az_square;
88  double sqrt_real;
89 
90 
94 
95  ax_square = ax * ax;
96  ay_square = ay * ay;
97  az_square = az * az;
98 
99  sqrt_real = sqrt(ax_square.GetRealNumber() + ay_square.GetRealNumber() + az_square.GetRealNumber());
100  parameter.fL = ax_square.GetRealNumber() / sqrt_real;
101  parameter.fM = ay_square.GetRealNumber() / sqrt_real;
102  parameter.fN = az_square.GetRealNumber() / sqrt_real;
103 }
CMatrixOperation::CDMatrix m_matrixCrystal_Original_Axis
CComplex GetElement(unsigned int nRowIndex, unsigned int nColumnIndex)
Get matrix element with row, column index.
This class for complex operation and saving value.
Definition: Complex.h:16
double GetRealNumber() const
Get real part.
Definition: Complex.h:24

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

CMatrixOperation::CDMatrix CZincblendeParam::m_matrixBasis_Vector

Definition at line 28 of file ZincblendeParam.h.

Referenced by BuildBasisVector().

CMatrixOperation::CDMatrix CZincblendeParam::m_matrixBond_Vector

Definition at line 32 of file ZincblendeParam.h.

Referenced by BuildBondVector().

CMatrixOperation::CDMatrix CZincblendeParam::m_matrixCoord

Matrix for coordination.

Definition at line 25 of file ZincblendeParam.h.

Referenced by BuildCoord().

CMatrixOperation::CDMatrix CZincblendeParam::m_matrixCrystal_Original_Axis

Definition at line 34 of file ZincblendeParam.h.

Referenced by BuildCrystalOriginalAxis(), and CalculateLatticeCoonstants().

CMatrixOperation::CDMatrix CZincblendeParam::m_matrixType1_Bond_Vector

Definition at line 30 of file ZincblendeParam.h.

Referenced by BuildBondVector(), and BuildType1Bond().

CMatrixOperation::CDMatrix CZincblendeParam::m_matrixType2_Bond_Vector

Definition at line 31 of file ZincblendeParam.h.

Referenced by BuildBondVector(), and BuildType2Bond().

int CZincblendeParam::m_nAtomBonds

Atom count.

Definition at line 24 of file ZincblendeParam.h.

Referenced by BuildType2Bond().

int CZincblendeParam::m_nBasisVectors

Definition at line 27 of file ZincblendeParam.h.

Referenced by BuildBasisVector().


The documentation for this class was generated from the following files: