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

Class for Geometric unit cell for cubic. More...

#include "GeometricUnitCellInfo_zincblende.h"

Inheritance diagram for CGeometricUnitCellInfo_zincblende:
Inheritance graph
Collaboration diagram for CGeometricUnitCellInfo_zincblende:
Collaboration graph

Public Member Functions

 CGeometricUnitCellInfo_zincblende ()
 
 ~CGeometricUnitCellInfo_zincblende ()
 
virtual void SetAtomCoordination ()
 Atom coordination setting. More...
 
virtual void SetNeighborCoordination ()
 Neighbor atom coordiantion setting. More...
 
virtual void SetUnitCellSize (double fUnitcellSize[3])
 Unitcell size setting. More...
 
void SetDireciton (int nDirectionSingle)
 Set direction information. More...
 
- Public Member Functions inherited from IGeometricUnitCellInfo
void InitCoordination ()
 Initial Coordination information. More...
 
int GetA2CNeighborCount ()
 Get neigbhor relation count. More...
 
int GetC2ANeighborCount ()
 Get neigbhor relation count. More...
 
 IGeometricUnitCellInfo ()
 
 ~IGeometricUnitCellInfo ()
 
unsigned int GetAnionCount ()
 
unsigned int GetCationCount ()
 Get anion count in Unitcell. More...
 
double * GetUnitcCellSize ()
 Get cation count in Unitcell. More...
 
CGeometricCoordination GetAtomCoordination (CGeometricAtom::ATOM_TYPE atomType, unsigned int nIndex)
 Get Unitcell size x, y, z direction axis. More...
 
CGeometricCoordination GetNeighborCoordination (CGeometricAtom::NEIGHOR_RELATION neighborType, unsigned int nIndex)
 Get neigbhor atom coordination from Unitcell. More...
 
void RotateNeighbor (CMatrixOperation::CDMatrix *pRotationMatrix)
 Rotating neighbor coordination. More...
 
void RotateAxis (CMatrixOperation::CDMatrix *pRotationMatrix)
 Rotating axis. More...
 

Private Attributes

int m_nDirectionSingle
 Directoin information. More...
 

Additional Inherited Members

- Protected Member Functions inherited from IGeometricUnitCellInfo
void SetAtomCoordination (CGeometricAtom::ATOM_TYPE type, double x, double y, double z)
 Set single atom coordination. More...
 
void SetNeighborCoordination (CGeometricAtom::NEIGHOR_RELATION type, double x, double y, double z)
 Set single neighbor coordination. More...
 
- Protected Attributes inherited from IGeometricUnitCellInfo
double m_UnitCellSize [3]
 Unitcell size x, y, z direction axis. More...
 
double m_NeigbhorOriginSize [3]
 For neighbor distance calculation. More...
 
std::vector< CGeometricAtomm_vectAtomList_1
 Atom list in Unitcell for anion. More...
 
std::vector< CGeometricAtomm_vectAtomList_2
 Atom list in Unitcell for cation. More...
 
std::vector
< CGeometricCoordination
m_vectNeighborRelation1To2
 Neighbor relation list in Unitcell for anion to cation. More...
 
std::vector
< CGeometricCoordination
m_vectNeighborRelation2To1
 Neighbor relation list in Unitcell for cation to anion. More...
 

Detailed Description

Class for Geometric unit cell for cubic.

Date
02/July/2015

Definition at line 14 of file GeometricUnitCellInfo_zincblende.h.

Constructor & Destructor Documentation

CGeometricUnitCellInfo_zincblende::CGeometricUnitCellInfo_zincblende ( )

Definition at line 11 of file GeometricUnitCellInfo_zincblende.cpp.

References m_nDirectionSingle.

12 {
13  m_nDirectionSingle = 100;
14 }
CGeometricUnitCellInfo_zincblende::~CGeometricUnitCellInfo_zincblende ( )

Definition at line 16 of file GeometricUnitCellInfo_zincblende.cpp.

17 {
18 }

Member Function Documentation

void CGeometricUnitCellInfo_zincblende::SetAtomCoordination ( )
virtual

Atom coordination setting.

< Anion

< Cation

< Anion

< Cation

< Anion

< Cation

Implements IGeometricUnitCellInfo.

Definition at line 20 of file GeometricUnitCellInfo_zincblende.cpp.

References CGeometricAtom::A, CGeometricAtom::C, m_nDirectionSingle, IGeometricUnitCellInfo::m_UnitCellSize, and IGeometricUnitCellInfo::SetAtomCoordination().

21 {
22  char szMsg[1024];
23  switch (m_nDirectionSingle)
24  {
25  case 100:
27  /*IGeometricUnitCellInfo::SetAtomCoordination(CGeometricAtom::A, 0.13577375, 0.40732125, 0.13577375);
28  IGeometricUnitCellInfo::SetAtomCoordination(CGeometricAtom::A, 0.40732125, 0.13577375, 0.13577375);
29  IGeometricUnitCellInfo::SetAtomCoordination(CGeometricAtom::A, 0.13577375, 0.13577375, 0.40732125);
30  IGeometricUnitCellInfo::SetAtomCoordination(CGeometricAtom::A, 0.40732125, 0.40732125, 0.40732125);*/
40  break;
41  case 110:
42  /*///< Anion
43  IGeometricUnitCellInfo::SetAtomCoordination(CGeometricAtom::C, 0.384026168773379417142876945945, 0.384026157328507977695153385866, 0.543094983814507603625543197268);
44  IGeometricUnitCellInfo::SetAtomCoordination(CGeometricAtom::C, 0.192013084386689680815862857344, 0.192013078664253988847576692933, 0.271547487860880731869173132509);
46  IGeometricUnitCellInfo::SetAtomCoordination(CGeometricAtom::A, 0.192013087247907499044430323920, 0.384026157328507977695153385866, 0.407321237860880647208006166693);
47  IGeometricUnitCellInfo::SetAtomCoordination(CGeometricAtom::A, 0.384026160189725795923720852443, 0.192013078664253933336425461675, 0.135773741907253858718362948821);*/
48 
55  break;
56  case 111:
57  /*///< Anion
58  IGeometricUnitCellInfo::SetAtomCoordination(CGeometricAtom::A, 0.391945055556924770723270512462, 0.384026157328507977695153385866, 0.221717605309471682550892523977);
59  IGeometricUnitCellInfo::SetAtomCoordination(CGeometricAtom::A, 0.705501100002464687221959138697, 0.384026157328507977695153385866, 0.665152815928415019897101956303);
60  IGeometricUnitCellInfo::SetAtomCoordination(CGeometricAtom::A, 0.078389011111384965246884348744, 0.192013078664254016603152308562, 0.110858802654735841275446261989);
61  IGeometricUnitCellInfo::SetAtomCoordination(CGeometricAtom::A, 0.391945055556924826234421743720, 0.192013078664254016603152308562, 0.554294013273679220255019117758);
62  IGeometricUnitCellInfo::SetAtomCoordination(CGeometricAtom::A, 0.078389011111385020758035580002, 0.384026157328508033206304617124, 0.443435210618943309590633816697);
63  IGeometricUnitCellInfo::SetAtomCoordination(CGeometricAtom::A, 0.705501100002464687221959138697, 0.192013078664253933336425461675, 0.332576407964207509948550978152);
65  IGeometricUnitCellInfo::SetAtomCoordination(CGeometricAtom::C, 0.627112088891079721975074789952, 0.384026157328507977695153385866, 0.221717605309471627039741292720);
66  IGeometricUnitCellInfo::SetAtomCoordination(CGeometricAtom::C, 0.940668133336619582962612184929, 0.384026157328507977695153385866, 0.665152815928415019897101956303);
67  IGeometricUnitCellInfo::SetAtomCoordination(CGeometricAtom::C, 0.313556044445539916498688626234, 0.192013078664253988847576692933, 0.110858802654735855153234069803);
68  IGeometricUnitCellInfo::SetAtomCoordination(CGeometricAtom::C, 0.627112088891079721975074789952, 0.192013078664253988847576692933, 0.554294013273679220255019117758);
69  IGeometricUnitCellInfo::SetAtomCoordination(CGeometricAtom::C, 0.313556044445539916498688626234, 0.384026157328507977695153385866, 0.443435210618943309590633816697);
70  IGeometricUnitCellInfo::SetAtomCoordination(CGeometricAtom::C, 0.940668133336619582962612184929, 0.192013078664253961092001077304, 0.332576407964207509948550978152);*/
71 
79 
87  break;
88  }
89 }
double m_UnitCellSize[3]
Unitcell size x, y, z direction axis.
virtual void SetAtomCoordination()=0
Atom coordination setting.

Here is the call graph for this function:

void CGeometricUnitCellInfo_zincblende::SetDireciton ( int  nDirectionSingle)
inline

Set direction information.

Definition at line 24 of file GeometricUnitCellInfo_zincblende.h.

References m_nDirectionSingle.

Referenced by CGeometricShape::SetAtomAndNeighborInformation().

Here is the caller graph for this function:

void CGeometricUnitCellInfo_zincblende::SetNeighborCoordination ( )
virtual

Neighbor atom coordiantion setting.

Implements IGeometricUnitCellInfo.

Definition at line 91 of file GeometricUnitCellInfo_zincblende.cpp.

References CGeometricAtom::A2C, CGeometricAtom::C2A, IGeometricUnitCellInfo::m_NeigbhorOriginSize, and IGeometricUnitCellInfo::SetNeighborCoordination().

92 {
97 
102 }
virtual void SetNeighborCoordination()=0
Neighbor atom coordiantion setting.
double m_NeigbhorOriginSize[3]
For neighbor distance calculation.

Here is the call graph for this function:

void CGeometricUnitCellInfo_zincblende::SetUnitCellSize ( double  fUnitcellSize[3])
virtual

Unitcell size setting.

Parameters
fUnitcellSizeUnitcell size for x, y, z direciton

Implements IGeometricUnitCellInfo.

Definition at line 107 of file GeometricUnitCellInfo_zincblende.cpp.

References m_nDirectionSingle, IGeometricUnitCellInfo::m_NeigbhorOriginSize, and IGeometricUnitCellInfo::m_UnitCellSize.

108 {
109  for (int i = 0; i < 3; ++i)
110  {
111  m_NeigbhorOriginSize[i] = fUnitcellSize[i];
112  m_UnitCellSize[i] = fUnitcellSize[i];
113  }
114 
115  switch (m_nDirectionSingle)
116  {
117  case 110:
118  /*m_UnitCellSize[0] = 0.384026157328507866672850923351;
119  m_UnitCellSize[1] = 0.384026157328507866672850923351;
120  m_UnitCellSize[2] = 0.543095;*/
121  m_UnitCellSize[0] = m_UnitCellSize[0] * (1 / sqrt(2.));
122  m_UnitCellSize[1] = m_UnitCellSize[1] * (1 / sqrt(2.));
123  m_UnitCellSize[2] = m_UnitCellSize[2];
124  break;
125  case 111:
126  /*m_UnitCellSize[0] = 0.940668133336619582962612184929;
127  m_UnitCellSize[1] = 0.384026157328508033206304617124;
128  m_UnitCellSize[2] = 0.665152815928415019897101956303;*/
129  m_UnitCellSize[0] = m_UnitCellSize[0] * 1.732050807568878;
130  m_UnitCellSize[1] = m_UnitCellSize[1] * (1 / sqrt(2.));
131  m_UnitCellSize[2] = m_UnitCellSize[2] * 1.224744871391589;
132  break;
133  }
134 }
double m_UnitCellSize[3]
Unitcell size x, y, z direction axis.
double m_NeigbhorOriginSize[3]
For neighbor distance calculation.

Member Data Documentation

int CGeometricUnitCellInfo_zincblende::m_nDirectionSingle
private

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