|
IPCC
1.0
|
Iterface for Unitcell information. More...
#include "IKNGeometricUnitCellInfo.h"


Public Member Functions | |
| void | InitCoordination () |
| Initial Coordination information. More... | |
| virtual void | SetAtomCoordination ()=0 |
| Atom coordination setting. More... | |
| virtual void | SetNeighborCoordination ()=0 |
| Neighbor atom coordiantion setting. More... | |
| virtual void | SetUnitCellSize (double fUnitcellSize[3])=0 |
| Unitcell size setting. More... | |
| int | GetA2CNeighborCount () |
| Get neigbhor relation count. More... | |
| int | GetC2ANeighborCount () |
| Get neigbhor relation count. More... | |
| IKNGeometricUnitCellInfo () | |
| ~IKNGeometricUnitCellInfo () | |
| unsigned int | GetAnionCount () |
| unsigned int | GetCationCount () |
| Get anion count in Unitcell. More... | |
| double * | GetUnitcCellSize () |
| Get cation count in Unitcell. More... | |
| CKNGeometricCoordination | GetAtomCoordination (CKNGeometricAtom::ATOM_TYPE atomType, unsigned int nIndex) |
| Get Unitcell size x, y, z direction axis. More... | |
| CKNGeometricCoordination | GetNeighborCoordination (CKNGeometricAtom::NEIGHOR_RELATION neighborType, unsigned int nIndex) |
| Get neigbhor atom coordination from Unitcell. More... | |
| void | RotateNeighbor (CKNMatrixOperation::CKNDMatrix *pRotationMatrix) |
| Rotating neighbor coordination. More... | |
| void | RotateAxis (CKNMatrixOperation::CKNDMatrix *pRotationMatrix) |
| Rotating axis. More... | |
Protected Member Functions | |
| void | SetAtomCoordination (CKNGeometricAtom::ATOM_TYPE type, double x, double y, double z) |
| Set single atom coordination. More... | |
| void | SetNeighborCoordination (CKNGeometricAtom::NEIGHOR_RELATION type, double x, double y, double z) |
| Set single neighbor coordination. More... | |
Protected Attributes | |
| double | m_UnitCellSize [3] |
| Unitcell size x, y, z direction axis. More... | |
| double | m_NeigbhorOriginSize [3] |
| For neighbor distance calculation. More... | |
| std::vector< CKNGeometricAtom > | m_vectAtomList_1 |
| Atom list in Unitcell for anion. More... | |
| std::vector< CKNGeometricAtom > | m_vectAtomList_2 |
| Atom list in Unitcell for cation. More... | |
| std::vector < CKNGeometricCoordination > | m_vectNeighborRelation1To2 |
| Neighbor relation list in Unitcell for anion to cation. More... | |
| std::vector < CKNGeometricCoordination > | m_vectNeighborRelation2To1 |
| Neighbor relation list in Unitcell for cation to anion. More... | |
Iterface for Unitcell information.
Definition at line 19 of file IKNGeometricUnitCellInfo.h.
| IKNGeometricUnitCellInfo::IKNGeometricUnitCellInfo | ( | ) |
Definition at line 12 of file IKNGeometricUnitCellInfo.cpp.
References m_UnitCellSize, CKNGeometricAtom::X_DIRECTION, CKNGeometricAtom::Y_DIRECTION, and CKNGeometricAtom::Z_DIRECTION.
| IKNGeometricUnitCellInfo::~IKNGeometricUnitCellInfo | ( | ) |
Definition at line 19 of file IKNGeometricUnitCellInfo.cpp.
|
inline |
Get neigbhor relation count.
Definition at line 26 of file IKNGeometricUnitCellInfo.h.
References m_vectNeighborRelation1To2.
Referenced by CKNGeometricShape::SetAtomAndNeighborInformation().

|
inline |
Definition at line 44 of file IKNGeometricUnitCellInfo.h.
References m_vectAtomList_1.
Referenced by CKNGeometricShape::SetAtomAndNeighborInformation().

| CKNGeometricCoordination IKNGeometricUnitCellInfo::GetAtomCoordination | ( | CKNGeometricAtom::ATOM_TYPE | atomType, |
| unsigned int | nIndex | ||
| ) |
Get Unitcell size x, y, z direction axis.
Get atom coordination from Unitcell
| atomType | Atom type, anion or cation |
| nIndex | Atom Index |
Definition at line 28 of file IKNGeometricUnitCellInfo.cpp.
References CKNGeometricAtom::A, CKNGeometricAtom::C, m_vectAtomList_1, and m_vectAtomList_2.
Referenced by CKNGeometricShape::SetAtomAndNeighborInformation().

|
inline |
Get neigbhor relation count.
Definition at line 27 of file IKNGeometricUnitCellInfo.h.
References m_vectNeighborRelation2To1.
Referenced by CKNGeometricShape::SetAtomAndNeighborInformation().

|
inline |
Get anion count in Unitcell.
Definition at line 45 of file IKNGeometricUnitCellInfo.h.
References m_vectAtomList_2.
Referenced by CKNGeometricShape::SetAtomAndNeighborInformation().

| CKNGeometricCoordination IKNGeometricUnitCellInfo::GetNeighborCoordination | ( | CKNGeometricAtom::NEIGHOR_RELATION | neighborType, |
| unsigned int | nIndex | ||
| ) |
Get neigbhor atom coordination from Unitcell.
| neighborType | Neighbor Atom type, anion or cation |
| nIndex | Atom Index |
Definition at line 54 of file IKNGeometricUnitCellInfo.cpp.
References CKNGeometricAtom::A2C, CKNGeometricAtom::C2A, m_vectNeighborRelation1To2, and m_vectNeighborRelation2To1.
Referenced by CKNGeometricShape::SetAtomAndNeighborInformation().

|
inline |
Get cation count in Unitcell.
Definition at line 46 of file IKNGeometricUnitCellInfo.h.
References m_UnitCellSize.
Referenced by CKNGeometricShape::SetAtomAndNeighborInformation().

| void IKNGeometricUnitCellInfo::InitCoordination | ( | ) |
Initial Coordination information.
Definition at line 179 of file IKNGeometricUnitCellInfo.cpp.
References m_vectAtomList_1, m_vectAtomList_2, m_vectNeighborRelation1To2, and m_vectNeighborRelation2To1.
Referenced by CKNGeometricShape::SetAtomAndNeighborInformation().

| void IKNGeometricUnitCellInfo::RotateAxis | ( | CKNMatrixOperation::CKNDMatrix * | pRotationMatrix | ) |
Rotating axis.
| pRotationMatrix | Rotation matrix |
Definition at line 125 of file IKNGeometricUnitCellInfo.cpp.
References CKNMatrixOperation::CKNVector::GetAt(), CKNComplex::GetRealNumber(), m_UnitCellSize, CKNMatrixOperation::MVMul(), CKNMatrixOperation::CKNVector::SetAt(), and CKNMatrixOperation::CKNVector::SetSize().

| void IKNGeometricUnitCellInfo::RotateNeighbor | ( | CKNMatrixOperation::CKNDMatrix * | pRotationMatrix | ) |
Rotating neighbor coordination.
| pRotationMatrix | Rotation matrix |
Definition at line 146 of file IKNGeometricUnitCellInfo.cpp.
References CKNMatrixOperation::CKNVector::GetAt(), CKNComplex::GetRealNumber(), m_vectNeighborRelation1To2, m_vectNeighborRelation2To1, CKNMatrixOperation::MVMul(), CKNMatrixOperation::CKNVector::SetAt(), and CKNMatrixOperation::CKNVector::SetSize().
Referenced by CKNGeometricShape::SetAtomAndNeighborInformation().


|
pure virtual |
Atom coordination setting.
Implemented in CKNGeometricUnitCellInfo_cubic, and CKNGeometricUnitCellInfo_zincblende.
Referenced by CKNGeometricShape::SetAtomAndNeighborInformation(), CKNGeometricUnitCellInfo_zincblende::SetAtomCoordination(), and CKNGeometricUnitCellInfo_cubic::SetAtomCoordination().

|
protected |
Set single atom coordination.
| type | Atom type |
| x | x coordination |
| y | y coordination |
| z | z coordination |
Definition at line 81 of file IKNGeometricUnitCellInfo.cpp.
References CKNGeometricAtom::A, ATOM_NUM_BASE, CKNGeometricAtom::C, m_vectAtomList_1, m_vectAtomList_2, CKNGeometricAtom::SetCoordination(), and CKNGeometricAtom::SetType().

|
pure virtual |
Neighbor atom coordiantion setting.
Implemented in CKNGeometricUnitCellInfo_cubic, and CKNGeometricUnitCellInfo_zincblende.
Referenced by CKNGeometricShape::SetAtomAndNeighborInformation(), CKNGeometricUnitCellInfo_zincblende::SetNeighborCoordination(), and CKNGeometricUnitCellInfo_cubic::SetNeighborCoordination().

|
protected |
Set single neighbor coordination.
| type | Neighbor relationship type |
| x | x axis distance |
| y | y axis distance |
| z | z axis distance |
Definition at line 105 of file IKNGeometricUnitCellInfo.cpp.
References CKNGeometricAtom::A2C, CKNGeometricAtom::C2A, m_vectNeighborRelation1To2, m_vectNeighborRelation2To1, and CKNGeometricCoordination::SetCoordination().

|
pure virtual |
Unitcell size setting.
Implemented in CKNGeometricUnitCellInfo_cubic, and CKNGeometricUnitCellInfo_zincblende.
Referenced by CKNGeometricShape::SetAtomAndNeighborInformation().

|
protected |
For neighbor distance calculation.
Definition at line 34 of file IKNGeometricUnitCellInfo.h.
Referenced by CKNGeometricUnitCellInfo_zincblende::SetNeighborCoordination(), and CKNGeometricUnitCellInfo_zincblende::SetUnitCellSize().
|
protected |
Unitcell size x, y, z direction axis.
Definition at line 33 of file IKNGeometricUnitCellInfo.h.
Referenced by GetUnitcCellSize(), IKNGeometricUnitCellInfo(), RotateAxis(), CKNGeometricUnitCellInfo_cubic::SetAtomCoordination(), CKNGeometricUnitCellInfo_zincblende::SetAtomCoordination(), CKNGeometricUnitCellInfo_cubic::SetNeighborCoordination(), CKNGeometricUnitCellInfo_cubic::SetUnitCellSize(), and CKNGeometricUnitCellInfo_zincblende::SetUnitCellSize().
|
protected |
Atom list in Unitcell for anion.
Definition at line 35 of file IKNGeometricUnitCellInfo.h.
Referenced by GetAnionCount(), GetAtomCoordination(), InitCoordination(), and SetAtomCoordination().
|
protected |
Atom list in Unitcell for cation.
Definition at line 36 of file IKNGeometricUnitCellInfo.h.
Referenced by GetAtomCoordination(), GetCationCount(), InitCoordination(), and SetAtomCoordination().
|
protected |
Neighbor relation list in Unitcell for anion to cation.
Definition at line 37 of file IKNGeometricUnitCellInfo.h.
Referenced by GetA2CNeighborCount(), GetNeighborCoordination(), InitCoordination(), RotateNeighbor(), and SetNeighborCoordination().
|
protected |
Neighbor relation list in Unitcell for cation to anion.
Definition at line 38 of file IKNGeometricUnitCellInfo.h.
Referenced by GetC2ANeighborCount(), GetNeighborCoordination(), InitCoordination(), RotateNeighbor(), and SetNeighborCoordination().