|
IPCC
1.0
|
Class for Atom. More...
#include "KNGeometricAtom.h"

Public Types | |
| enum | ATOM_TYPE { A = 0, C } |
| enum | NEIGHOR_RELATION { A2C, C2A } |
| enum | COUPLING_TYPE { NORMAL_CP, PERIODIC_CP } |
| enum | PERIODIC_DIRECTION { NONE = 0, X_DIRECTION = 1, Y_DIRECTION = 2, Z_DIRECTION = 4 } |
Public Member Functions | |
| CKNGeometricAtom () | |
| ~CKNGeometricAtom () | |
| void | SetID (double fID) |
| Set atom ID. More... | |
| double | GetID () |
| void | ShiftID (double fShift) |
| Get atom ID. More... | |
| void | SetType (ATOM_TYPE type, MATERIAL_INDEX number) |
| Set atom information. More... | |
| void | SetMaterial (MATERIAL_INDEX number) |
| void | SetDomainMaterial (MATERIAL_INDEX number) |
| Set atom material information. More... | |
| ATOM_TYPE | GetType () |
| MATERIAL_INDEX | GetMaterialNumber () |
| Get atom typpe. More... | |
| MATERIAL_INDEX | GetDomainMaterialNumber () |
| Get atom material type. More... | |
| CKNGeometricCoordination | GetCoordination () |
| Get Domain atom material type. More... | |
| void | SetCoordination (CKNGeometricCoordination coordination) |
| Get atom coordination. More... | |
| void | SetCoordination (double *pfCoordination) |
| Get atom coordination. More... | |
| void | SetCoordination (double fXCoordination, double fYCoordination, double fZCoordination) |
| Get atom coordination. More... | |
| void | SetRatio (double fRatio[3]) |
| Set ratio. More... | |
| unsigned int | GetNeighborCount () |
| double | GetNeighborAtomID (unsigned int nIndex) |
| Get neighbor atom count. More... | |
| MATERIAL_INDEX | GetMaterialMaterialNumber (unsigned int nIndex) |
| Get Neighbor material type. More... | |
| void | SetNeighbor (unsigned int nIndex, CKNGeometricAtom *pNeighbor) |
| Set neighbor information. More... | |
| void | SetPeriodic (bool bPeriodic) |
| bool | IsPeriodicAtom () |
| Set atom is periodic. More... | |
| bool | IsPeriodicCoupling (int nIndex) |
| Check is this periodic atom. More... | |
| CKNGeometricCoordination | GetNeighborCoordination (int nIndex) |
| Get neighbor coordination. More... | |
| int | GetNeighborPeriodicDirection (int nIndex) |
| Get neighbor coupling periodic direction if has coupling with periodic atom. More... | |
| void | SetPeriodicDirection (int periodicDirection) |
| void | AddPeridoicDirection (PERIODIC_DIRECTION periodicDirection) |
| Set periodic direction. More... | |
| int | GetPeriodicDirection () |
| Adding periodic direction. More... | |
Static Public Member Functions | |
| static void | SetNeighborNumber (unsigned int nNeighborNumber) |
| Get periodic direction information. More... | |
Private Attributes | |
| ATOM_TYPE | m_AtomType |
| Atom type. More... | |
| MATERIAL_INDEX | m_MaterialNumber |
| Atom material number. More... | |
| MATERIAL_INDEX | m_DomainMaterialNumber |
| Domain Atom material number. More... | |
| CKNGeometricCoordination | m_coordination |
| Atom coordination. More... | |
| double | m_fAtomID |
| Atom ID. More... | |
| std::vector< double > | m_vectNeighbor |
| Array of neighbor atom. More... | |
| std::vector< MATERIAL_INDEX > | m_vectNeighborMaterial |
| Array of neighbor material number. More... | |
| std::vector < CKNGeometricCoordination > | m_vectNeighborCoordination |
| Array of neighbor coordination. More... | |
| std::vector< int > | m_vectNeighborPeriodicDirection |
| std::vector< COUPLING_TYPE > | m_vectCouplingType |
| Array of neighbor periodic direction. More... | |
| bool | m_bPeriodic |
| Periodic information of atom. More... | |
| int | m_periodicDirection |
| Periodic direction information. More... | |
Static Private Attributes | |
| static unsigned int | m_snNeighborNumber = 4 |
| Neighbor count. More... | |
| Enumerator | |
|---|---|
| A | |
| C | |
Definition at line 23 of file KNGeometricAtom.h.
| Enumerator | |
|---|---|
| NORMAL_CP | |
| PERIODIC_CP | |
Definition at line 25 of file KNGeometricAtom.h.
| Enumerator | |
|---|---|
| A2C | |
| C2A | |
Definition at line 24 of file KNGeometricAtom.h.
| Enumerator | |
|---|---|
| NONE | |
| X_DIRECTION | |
| Y_DIRECTION | |
| Z_DIRECTION | |
Definition at line 26 of file KNGeometricAtom.h.
| CKNGeometricAtom::CKNGeometricAtom | ( | ) |
Definition at line 13 of file KNGeometricAtom.cpp.
References ATOM_DEFAULT_INDEX, ATOM_NUM_BASE, m_bPeriodic, m_coordination, m_fAtomID, m_periodicDirection, m_snNeighborNumber, m_vectCouplingType, m_vectNeighbor, m_vectNeighborCoordination, m_vectNeighborMaterial, m_vectNeighborPeriodicDirection, NONE, NORMAL_CP, and CKNGeometricCoordination::SetCoordination().

| CKNGeometricAtom::~CKNGeometricAtom | ( | ) |
Definition at line 33 of file KNGeometricAtom.cpp.
|
inline |
Set periodic direction.
Definition at line 52 of file KNGeometricAtom.h.
References m_periodicDirection.
|
inline |
Get Domain atom material type.
Definition at line 37 of file KNGeometricAtom.h.
References m_coordination.
Referenced by CKNGeometricShape::ConstructMapInfo(), CKNGeometricUnitCell::IsMachedNeighborRule(), CKNGeometricShape::RefillPeriodicBinding(), and SetNeighbor().

|
inline |
Get atom material type.
Definition at line 36 of file KNGeometricAtom.h.
References m_DomainMaterialNumber.
Referenced by CKNGeometricShape::ConstructMapInfo().

|
inline |
Definition at line 29 of file KNGeometricAtom.h.
References m_fAtomID.
Referenced by CKNGeometricShape::ConstructMapInfo(), CKNGeometricUnitCell::CopyInnerAtomIndex(), and SetNeighbor().

| MATERIAL_INDEX CKNGeometricAtom::GetMaterialMaterialNumber | ( | unsigned int | nIndex | ) |
Get Neighbor material type.
| nIndex | Neighbor index |
Definition at line 159 of file KNGeometricAtom.cpp.
References ATOM_NUM_BASE, m_vectNeighborMaterial, and m_vectNeighborPeriodicDirection.
Referenced by CKNGeometricShape::ConstructMapInfo().

|
inline |
Get atom typpe.
Definition at line 35 of file KNGeometricAtom.h.
References m_MaterialNumber.
Referenced by CKNGeometricShape::ConstructMapInfo(), and SetNeighbor().

| double CKNGeometricAtom::GetNeighborAtomID | ( | unsigned int | nIndex | ) |
Get neighbor atom count.
Get neibhbor atom index
| nIndex | Neighbor index |
Definition at line 83 of file KNGeometricAtom.cpp.
References m_vectNeighbor.
Referenced by CKNGeometricUnitCell::BuildNeighborInformation(), CKNGeometricShape::ConstructMapInfo(), and CKNGeometricUnitCell::IsMachedNeighborRule().

| CKNGeometricCoordination CKNGeometricAtom::GetNeighborCoordination | ( | int | nIndex | ) |
Get neighbor coordination.
| nIndex | Neighbor index |
Definition at line 135 of file KNGeometricAtom.cpp.
References m_coordination, and m_vectNeighborCoordination.
Referenced by CKNGeometricShape::RefillPeriodicBinding().

|
inline |
Definition at line 42 of file KNGeometricAtom.h.
References m_vectNeighbor.
Referenced by CKNGeometricUnitCell::BuildNeighborInformation(), and CKNGeometricShape::ConstructMapInfo().

| int CKNGeometricAtom::GetNeighborPeriodicDirection | ( | int | nIndex | ) |
Get neighbor coupling periodic direction if has coupling with periodic atom.
| nIndex | Neighbor index |
Definition at line 147 of file KNGeometricAtom.cpp.
References m_vectNeighborPeriodicDirection, and NONE.
Referenced by CKNGeometricShape::RefillPeriodicBinding().

|
inline |
Adding periodic direction.
Definition at line 53 of file KNGeometricAtom.h.
References m_periodicDirection.
Referenced by SetNeighbor().

|
inline |
Definition at line 34 of file KNGeometricAtom.h.
References m_AtomType.
Referenced by CKNGeometricUnitCell::BuildNeighborInformation(), CKNGeometricShape::ConstructMapInfo(), and CKNGeometricUnitCell::FindingNeighborInUnitcell().

|
inline |
Set atom is periodic.
Definition at line 47 of file KNGeometricAtom.h.
References m_bPeriodic.
Referenced by CKNGeometricShape::ConstructMapInfo(), CKNGeometricShape::GetAtomByIndex(), and SetNeighbor().

| bool CKNGeometricAtom::IsPeriodicCoupling | ( | int | nIndex | ) |
Check is this periodic atom.
Check with neighbor coupling match with periodic atom
| nIndex | Neighbor index |
Definition at line 123 of file KNGeometricAtom.cpp.
References m_vectCouplingType, and PERIODIC_CP.
Referenced by CKNGeometricShape::ConstructMapInfo(), and CKNGeometricShape::RefillPeriodicBinding().

| void CKNGeometricAtom::SetCoordination | ( | CKNGeometricCoordination | coordination | ) |
Get atom coordination.
Get atom coordination
| coordination | Coordination that want to set |
Definition at line 48 of file KNGeometricAtom.cpp.
References CKNGeometricCoordination::GetCoordinationAll(), m_coordination, and CKNGeometricCoordination::SetCoordination().
Referenced by CKNGeometricUnitCell::ArrangeAtom(), CKNGeometricUnitCell::Deserialize(), CKNGeometricAtomFactory::SetAtomCoordination(), and IKNGeometricUnitCellInfo::SetAtomCoordination().


| void CKNGeometricAtom::SetCoordination | ( | double * | pfCoordination | ) |
Get atom coordination.
| pfCoordination | Coordination that want to set |
Definition at line 56 of file KNGeometricAtom.cpp.
References m_coordination, and CKNGeometricCoordination::SetCoordination().

| void CKNGeometricAtom::SetCoordination | ( | double | fXCoordination, |
| double | fYCoordination, | ||
| double | fZCoordination | ||
| ) |
Get atom coordination.
| fXCoordination | Coordination that want to set, x axis |
| fYCoordination | Coordination that want to set, y axis |
| fZCoordination | Coordination that want to set, z axis |
Definition at line 66 of file KNGeometricAtom.cpp.
References m_coordination, and CKNGeometricCoordination::SetCoordination().

|
inline |
Set atom material information.
Set Domain atom material information
Definition at line 33 of file KNGeometricAtom.h.
References m_DomainMaterialNumber.
Referenced by CKNGeometricUnitCell::ArrangeAtom().

| void CKNGeometricAtom::SetID | ( | double | fID | ) |
Set atom ID.
| fID | ID |
Definition at line 40 of file KNGeometricAtom.cpp.
References m_fAtomID.
Referenced by CKNGeometricUnitCell::Deserialize().

|
inline |
Definition at line 32 of file KNGeometricAtom.h.
References m_MaterialNumber.
| void CKNGeometricAtom::SetNeighbor | ( | unsigned int | nIndex, |
| CKNGeometricAtom * | pNeighbor | ||
| ) |
Set neighbor information.
| nIndex | Neighbor index |
| pNeighbor | Neighbor instance address |
Definition at line 95 of file KNGeometricAtom.cpp.
References GetCoordination(), GetID(), GetMaterialNumber(), GetPeriodicDirection(), IsPeriodicAtom(), m_vectCouplingType, m_vectNeighbor, m_vectNeighborCoordination, m_vectNeighborMaterial, m_vectNeighborPeriodicDirection, and PERIODIC_CP.
Referenced by CKNGeometricUnitCell::BuildNeighborInformation(), and CKNGeometricUnitCell::FindingNeighborInUnitcell().


|
inlinestatic |
Get periodic direction information.
Set Neighbor count
Definition at line 54 of file KNGeometricAtom.h.
References m_snNeighborNumber.
Referenced by CKNGeometricShape::SetAtomAndNeighborInformation().

|
inline |
Definition at line 46 of file KNGeometricAtom.h.
References m_bPeriodic.
Referenced by CKNGeometricUnitCell::Deserialize().

|
inline |
Definition at line 51 of file KNGeometricAtom.h.
References m_periodicDirection.
Referenced by CKNGeometricUnitCell::Deserialize().

| void CKNGeometricAtom::SetRatio | ( | double | fRatio[3] | ) |
Set ratio.
| fRatio | Ratio value |
Definition at line 74 of file KNGeometricAtom.cpp.
References m_coordination, and CKNGeometricCoordination::SetRatio().

| void CKNGeometricAtom::SetType | ( | ATOM_TYPE | type, |
| MATERIAL_INDEX | number | ||
| ) |
Set atom information.
| type | Atom type |
| number | Material number |
Definition at line 171 of file KNGeometricAtom.cpp.
References m_AtomType, and m_MaterialNumber.
Referenced by CKNGeometricUnitCell::ArrangeAtom(), CKNGeometricUnitCell::Deserialize(), CKNGeometricAtomFactory::SetAtomCoordination(), and IKNGeometricUnitCellInfo::SetAtomCoordination().

| void CKNGeometricAtom::ShiftID | ( | double | fShift | ) |
Get atom ID.
Shift ID for atom in n node
| fShift | Shift id |
Definition at line 113 of file KNGeometricAtom.cpp.
References m_fAtomID.
|
private |
|
private |
Periodic information of atom.
Definition at line 67 of file KNGeometricAtom.h.
Referenced by CKNGeometricAtom(), IsPeriodicAtom(), and SetPeriodic().
|
private |
Atom coordination.
Definition at line 60 of file KNGeometricAtom.h.
Referenced by CKNGeometricAtom(), GetCoordination(), GetNeighborCoordination(), SetCoordination(), and SetRatio().
|
private |
Domain Atom material number.
Definition at line 59 of file KNGeometricAtom.h.
Referenced by GetDomainMaterialNumber(), and SetDomainMaterial().
|
private |
Atom ID.
Definition at line 61 of file KNGeometricAtom.h.
Referenced by CKNGeometricAtom(), GetID(), SetID(), and ShiftID().
|
private |
Atom material number.
Definition at line 58 of file KNGeometricAtom.h.
Referenced by GetMaterialNumber(), SetMaterial(), and SetType().
|
private |
Periodic direction information.
Definition at line 68 of file KNGeometricAtom.h.
Referenced by AddPeridoicDirection(), CKNGeometricAtom(), GetPeriodicDirection(), and SetPeriodicDirection().
|
staticprivate |
Neighbor count.
Definition at line 69 of file KNGeometricAtom.h.
Referenced by CKNGeometricAtom(), and SetNeighborNumber().
|
private |
Array of neighbor periodic direction.
Array of coupling type with neighbor atom
Definition at line 66 of file KNGeometricAtom.h.
Referenced by CKNGeometricAtom(), IsPeriodicCoupling(), and SetNeighbor().
|
private |
Array of neighbor atom.
Definition at line 62 of file KNGeometricAtom.h.
Referenced by CKNGeometricAtom(), GetNeighborAtomID(), GetNeighborCount(), and SetNeighbor().
|
private |
Array of neighbor coordination.
Definition at line 64 of file KNGeometricAtom.h.
Referenced by CKNGeometricAtom(), GetNeighborCoordination(), and SetNeighbor().
|
private |
Array of neighbor material number.
Definition at line 63 of file KNGeometricAtom.h.
Referenced by CKNGeometricAtom(), GetMaterialMaterialNumber(), and SetNeighbor().
|
private |
Definition at line 65 of file KNGeometricAtom.h.
Referenced by CKNGeometricAtom(), GetMaterialMaterialNumber(), GetNeighborPeriodicDirection(), and SetNeighbor().