IPCC  1.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
KNGeometricUnitCellInfo_zincblende.cpp
Go to the documentation of this file.
1 
7 #include "stdafx.h"
9 #include "KNIPCCUtility.h"
10 
11 
13 {
14  m_nDirectionSingle = 100;
15 }
16 
18 {
19 }
20 
22 {
23  char szMsg[1024];
24  switch (m_nDirectionSingle)
25  {
26  case 100:
28  /*IKNGeometricUnitCellInfo::SetAtomCoordination(CKNGeometricAtom::A, 0.13577375, 0.40732125, 0.13577375);
29  IKNGeometricUnitCellInfo::SetAtomCoordination(CKNGeometricAtom::A, 0.40732125, 0.13577375, 0.13577375);
30  IKNGeometricUnitCellInfo::SetAtomCoordination(CKNGeometricAtom::A, 0.13577375, 0.13577375, 0.40732125);
31  IKNGeometricUnitCellInfo::SetAtomCoordination(CKNGeometricAtom::A, 0.40732125, 0.40732125, 0.40732125);*/
41  break;
42  case 110:
43  /*///< Anion
44  IKNGeometricUnitCellInfo::SetAtomCoordination(CKNGeometricAtom::C, 0.384026168773379417142876945945, 0.384026157328507977695153385866, 0.543094983814507603625543197268);
45  IKNGeometricUnitCellInfo::SetAtomCoordination(CKNGeometricAtom::C, 0.192013084386689680815862857344, 0.192013078664253988847576692933, 0.271547487860880731869173132509);
47  IKNGeometricUnitCellInfo::SetAtomCoordination(CKNGeometricAtom::A, 0.192013087247907499044430323920, 0.384026157328507977695153385866, 0.407321237860880647208006166693);
48  IKNGeometricUnitCellInfo::SetAtomCoordination(CKNGeometricAtom::A, 0.384026160189725795923720852443, 0.192013078664253933336425461675, 0.135773741907253858718362948821);*/
49 
56  break;
57  case 111:
58  /*///< Anion
59  IKNGeometricUnitCellInfo::SetAtomCoordination(CKNGeometricAtom::A, 0.391945055556924770723270512462, 0.384026157328507977695153385866, 0.221717605309471682550892523977);
60  IKNGeometricUnitCellInfo::SetAtomCoordination(CKNGeometricAtom::A, 0.705501100002464687221959138697, 0.384026157328507977695153385866, 0.665152815928415019897101956303);
61  IKNGeometricUnitCellInfo::SetAtomCoordination(CKNGeometricAtom::A, 0.078389011111384965246884348744, 0.192013078664254016603152308562, 0.110858802654735841275446261989);
62  IKNGeometricUnitCellInfo::SetAtomCoordination(CKNGeometricAtom::A, 0.391945055556924826234421743720, 0.192013078664254016603152308562, 0.554294013273679220255019117758);
63  IKNGeometricUnitCellInfo::SetAtomCoordination(CKNGeometricAtom::A, 0.078389011111385020758035580002, 0.384026157328508033206304617124, 0.443435210618943309590633816697);
64  IKNGeometricUnitCellInfo::SetAtomCoordination(CKNGeometricAtom::A, 0.705501100002464687221959138697, 0.192013078664253933336425461675, 0.332576407964207509948550978152);
66  IKNGeometricUnitCellInfo::SetAtomCoordination(CKNGeometricAtom::C, 0.627112088891079721975074789952, 0.384026157328507977695153385866, 0.221717605309471627039741292720);
67  IKNGeometricUnitCellInfo::SetAtomCoordination(CKNGeometricAtom::C, 0.940668133336619582962612184929, 0.384026157328507977695153385866, 0.665152815928415019897101956303);
68  IKNGeometricUnitCellInfo::SetAtomCoordination(CKNGeometricAtom::C, 0.313556044445539916498688626234, 0.192013078664253988847576692933, 0.110858802654735855153234069803);
69  IKNGeometricUnitCellInfo::SetAtomCoordination(CKNGeometricAtom::C, 0.627112088891079721975074789952, 0.192013078664253988847576692933, 0.554294013273679220255019117758);
70  IKNGeometricUnitCellInfo::SetAtomCoordination(CKNGeometricAtom::C, 0.313556044445539916498688626234, 0.384026157328507977695153385866, 0.443435210618943309590633816697);
71  IKNGeometricUnitCellInfo::SetAtomCoordination(CKNGeometricAtom::C, 0.940668133336619582962612184929, 0.192013078664253961092001077304, 0.332576407964207509948550978152);*/
72 
80 
88  break;
89  }
90 }
91 
93 {
98 
103 }
104 
109 {
110  for (int i = 0; i < 3; ++i)
111  {
112  m_NeigbhorOriginSize[i] = fUnitcellSize[i];
113  m_UnitCellSize[i] = fUnitcellSize[i];
114  }
115 
116  switch (m_nDirectionSingle)
117  {
118  case 110:
119  /*m_UnitCellSize[0] = 0.384026157328507866672850923351;
120  m_UnitCellSize[1] = 0.384026157328507866672850923351;
121  m_UnitCellSize[2] = 0.543095;*/
122  m_UnitCellSize[0] = m_UnitCellSize[0] * (1 / sqrt(2.));
123  m_UnitCellSize[1] = m_UnitCellSize[1] * (1 / sqrt(2.));
124  m_UnitCellSize[2] = m_UnitCellSize[2];
125  break;
126  case 111:
127  /*m_UnitCellSize[0] = 0.940668133336619582962612184929;
128  m_UnitCellSize[1] = 0.384026157328508033206304617124;
129  m_UnitCellSize[2] = 0.665152815928415019897101956303;*/
130  m_UnitCellSize[0] = m_UnitCellSize[0] * 1.732050807568878;
131  m_UnitCellSize[1] = m_UnitCellSize[1] * (1 / sqrt(2.));
132  m_UnitCellSize[2] = m_UnitCellSize[2] * 1.224744871391589;
133  break;
134  }
135 }
virtual void SetAtomCoordination()=0
Atom coordination setting.
Class for Geometric unit cell for cubic.
virtual void SetNeighborCoordination()=0
Neighbor atom coordiantion setting.
virtual void SetNeighborCoordination()
Neighbor atom coordiantion setting.
virtual void SetUnitCellSize(double fUnitcellSize[3])
Unitcell size setting.
This class includes functions for matrix debugging.
double m_NeigbhorOriginSize[3]
For neighbor distance calculation.
virtual void SetAtomCoordination()
Atom coordination setting.
double m_UnitCellSize[3]
Unitcell size x, y, z direction axis.