IPCC  1.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
KNGeometricAtomFactory.h
Go to the documentation of this file.
1 
7 #pragma once
8 #include <vector>
10 #include "KNGeometricAtom.h"
11 
20 {
21 public:
24 
25  static void SetAtomCoordination(CKNGeometricAtom::ATOM_TYPE type, double x, double y, double z);
26  static void SetNeighborCoordination(CKNGeometricAtom::NEIGHOR_RELATION type, double x, double y, double z);
27  static void SetRatio(double fRatio[3]);
28  static void SetUnitCellSize(double fSize[3]);
29  static void FreeFactoryData();
30  static int GetAtomCountInUnitcell(){ return m_vectAtomList_1.size() + m_vectAtomList_2.size();};
31  static MATERIAL_INDEX GetMaterialNumber(char *pszMaterialName, CKNGeometricAtom::ATOM_TYPE type);
32  static MATERIAL_INDEX GetMaterialNumber(char *pszMaterialName);
33  static void InitAtomList();
34  static void InitNeighborList();
35  static unsigned int GetNeighborCount(){ return m_vectNeighborRelation1To2.size() + m_vectNeighborRelation2To1.size(); };
36 
37 private:
38  static std::vector<CKNGeometricAtom> m_vectAtomList_1;
39  static std::vector<CKNGeometricAtom> m_vectAtomList_2;
40 
41  static std::vector<CKNGeometricCoordination> m_vectNeighborRelation1To2;
42  static std::vector<CKNGeometricCoordination> m_vectNeighborRelation2To1;
43 
44  friend class CKNGeometricUnitCell;
45 };
46 
MATERIAL_INDEX
Definition: CKNGlobal.h:106
Class for coordination.
static void SetNeighborCoordination(CKNGeometricAtom::NEIGHOR_RELATION type, double x, double y, double z)
Setting neighbor coordination.
Class for Geometric unit cell.
Factory class for create CKNGeometricAtom instance.
static void SetAtomCoordination(CKNGeometricAtom::ATOM_TYPE type, double x, double y, double z)
Setting atom coordination.
Class for Atom.
static unsigned int GetNeighborCount()
static MATERIAL_INDEX GetMaterialNumber(char *pszMaterialName, CKNGeometricAtom::ATOM_TYPE type)
Get total atom counts in unit cell.
static std::vector< CKNGeometricCoordination > m_vectNeighborRelation2To1
Neighbor relationship from cation to anion.
static void FreeFactoryData()
Release all setting data.
static std::vector< CKNGeometricAtom > m_vectAtomList_1
Get total Neighbor count in unit cell.
static void SetUnitCellSize(double fSize[3])
Set unitcell size.
static std::vector< CKNGeometricCoordination > m_vectNeighborRelation1To2
Neighbor relationship from anion to cation.
static void SetRatio(double fRatio[3])
Set ratio that applying to length, atom coordination and neighbor position.
static std::vector< CKNGeometricAtom > m_vectAtomList_2
Atom array for cation.