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

Class for calculating zincblend parameter. More...

#include "KNZincblendeParam.h"

Collaboration diagram for CKNZincblendeParam:
Collaboration graph

Public Member Functions

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

Public Attributes

int m_nAtomBonds
 Atom count. More...
 
CKNMatrixOperation::CKNDMatrix m_matrixCoord
 Matrix for coordination. More...
 
int m_nBasisVectors
 
CKNMatrixOperation::CKNDMatrix m_matrixBasis_Vector
 
CKNMatrixOperation::CKNDMatrix m_matrixType1_Bond_Vector
 
CKNMatrixOperation::CKNDMatrix m_matrixType2_Bond_Vector
 
CKNMatrixOperation::CKNDMatrix m_matrixBond_Vector
 
CKNMatrixOperation::CKNDMatrix 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, CKNMatrixOperation::CKNDMatrix *pMatrix, double parameterBuffer[4][3])
 

Detailed Description

Class for calculating zincblend parameter.

Date
03/Oct/2014
Author
Kyu Nam Cho(mysto.nosp@m.us@k.nosp@m.orea..nosp@m.ac.k.nosp@m.r), Hoo Ryu(elec1.nosp@m.020@.nosp@m.gmail.nosp@m..com)

Definition at line 17 of file KNZincblendeParam.h.

Constructor & Destructor Documentation

CKNZincblendeParam::CKNZincblendeParam ( )

Definition at line 10 of file KNZincblendeParam.cpp.

11 {
12 }
CKNZincblendeParam::~CKNZincblendeParam ( )

Definition at line 15 of file KNZincblendeParam.cpp.

16 {
17 }

Member Function Documentation

void CKNZincblendeParam::BuildBasisVector ( )
private

Definition at line 33 of file KNZincblendeParam.cpp.

References BuildMatrix(), m_matrixBasis_Vector, and m_nBasisVectors.

Referenced by BuildZincblendParam().

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

Here is the call graph for this function:

Here is the caller graph for this function:

void CKNZincblendeParam::BuildBondVector ( )
private

Definition at line 64 of file KNZincblendeParam.cpp.

References CKNMatrixOperation::CKNDMatrix::BuildMatrixFirst(), CKNMatrixOperation::CKNDMatrix::GetColumnCount(), CKNMatrixOperation::CKNDMatrix::GetRowCount(), m_matrixBond_Vector, m_matrixType1_Bond_Vector, m_matrixType2_Bond_Vector, CKNMatrixOperation::CKNDMatrix::ScalarMultiple(), and CKNMatrixOperation::CKNDMatrix::SetElement().

Referenced by BuildZincblendParam().

65 {
70 }
unsigned int GetRowCount()
Get matrix row counts.
void ScalarMultiple(CKNComplex Scalar)
Scalar multiple operation.
CKNMatrixOperation::CKNDMatrix m_matrixType1_Bond_Vector
bool SetElement(unsigned int nRow, unsigned int nColumn, CKNComplex element)
Set matrix elements value.
unsigned int GetColumnCount()
Get matrix column counts.
CKNMatrixOperation::CKNDMatrix m_matrixType2_Bond_Vector
CKNMatrixOperation::CKNDMatrix m_matrixBond_Vector
bool BuildMatrixFirst(unsigned int nRow, unsigned int nColumn)
Building matrix elements.

Here is the call graph for this function:

Here is the caller graph for this function:

void CKNZincblendeParam::BuildCoord ( )
private

Definition at line 106 of file KNZincblendeParam.cpp.

References BuildMatrix(), and m_matrixCoord.

Referenced by BuildZincblendParam().

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

Here is the call graph for this function:

Here is the caller graph for this function:

void CKNZincblendeParam::BuildCrystalOriginalAxis ( )
private

Definition at line 72 of file KNZincblendeParam.cpp.

References BuildMatrix(), and m_matrixCrystal_Original_Axis.

Referenced by BuildZincblendParam().

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

Here is the call graph for this function:

Here is the caller graph for this function:

void CKNZincblendeParam::BuildMatrix ( int  nRowCount,
int  nColumnCount,
CKNMatrixOperation::CKNDMatrix pMatrix,
double  parameterBuffer[4][3] 
)
private

Definition at line 116 of file KNZincblendeParam.cpp.

References CKNMatrixOperation::CKNDMatrix::BuildMatrixFirst(), CKNMatrixOperation::CKNVector::SetAt(), CKNMatrixOperation::CKNDMatrix::SetRowElement(), and CKNMatrixOperation::CKNVector::SetSize().

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

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

Here is the call graph for this function:

Here is the caller graph for this function:

void CKNZincblendeParam::BuildType1Bond ( )
private

Definition at line 54 of file KNZincblendeParam.cpp.

References BuildMatrix(), and m_matrixType1_Bond_Vector.

Referenced by BuildZincblendParam().

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

Here is the call graph for this function:

Here is the caller graph for this function:

void CKNZincblendeParam::BuildType2Bond ( )
private

Definition at line 43 of file KNZincblendeParam.cpp.

References BuildMatrix(), m_matrixType2_Bond_Vector, and m_nAtomBonds.

Referenced by BuildZincblendParam().

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

Here is the call graph for this function:

Here is the caller graph for this function:

void CKNZincblendeParam::BuildZincblendParam ( GEO_PARAMETER parameter)

Calculating zincblend parameter.

Parameters
[out]paramterGeometric parameters

Definition at line 22 of file KNZincblendeParam.cpp.

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

23 {
24  BuildCoord();
30  CalculateLatticeCoonstants(parameter);
31 }
void CalculateLatticeCoonstants(GEO_PARAMETER &parameter)

Here is the call graph for this function:

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

Definition at line 85 of file KNZincblendeParam.cpp.

References GEO_PARAMETER::fL, GEO_PARAMETER::fM, GEO_PARAMETER::fN, CKNMatrixOperation::CKNDMatrix::GetElement(), CKNComplex::GetRealNumber(), and m_matrixCrystal_Original_Axis.

Referenced by BuildZincblendParam().

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

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

CKNMatrixOperation::CKNDMatrix CKNZincblendeParam::m_matrixBasis_Vector

Definition at line 30 of file KNZincblendeParam.h.

Referenced by BuildBasisVector().

CKNMatrixOperation::CKNDMatrix CKNZincblendeParam::m_matrixBond_Vector

Definition at line 34 of file KNZincblendeParam.h.

Referenced by BuildBondVector().

CKNMatrixOperation::CKNDMatrix CKNZincblendeParam::m_matrixCoord

Matrix for coordination.

Definition at line 27 of file KNZincblendeParam.h.

Referenced by BuildCoord().

CKNMatrixOperation::CKNDMatrix CKNZincblendeParam::m_matrixCrystal_Original_Axis

Definition at line 36 of file KNZincblendeParam.h.

Referenced by BuildCrystalOriginalAxis(), and CalculateLatticeCoonstants().

CKNMatrixOperation::CKNDMatrix CKNZincblendeParam::m_matrixType1_Bond_Vector

Definition at line 32 of file KNZincblendeParam.h.

Referenced by BuildBondVector(), and BuildType1Bond().

CKNMatrixOperation::CKNDMatrix CKNZincblendeParam::m_matrixType2_Bond_Vector

Definition at line 33 of file KNZincblendeParam.h.

Referenced by BuildBondVector(), and BuildType2Bond().

int CKNZincblendeParam::m_nAtomBonds

Atom count.

Definition at line 26 of file KNZincblendeParam.h.

Referenced by BuildType2Bond().

int CKNZincblendeParam::m_nBasisVectors

Definition at line 29 of file KNZincblendeParam.h.

Referenced by BuildBasisVector().


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