4 #include "KNGeometicAtomFactory.h"
27 t = localtime(&timer);
29 sprintf(pszBuffer,
"%d:%d:%d", t->tm_hour, t->tm_min, t->tm_sec);
35 PERIODIC_INFO periodicInfo;
44 pShapeOperand = pShape;
46 pShapeOperand = &shape;
51 MPI_Comm_size(MPI_COMM_WORLD, &world_size);
54 MPI_Comm_rank(MPI_COMM_WORLD, &rank);
64 sprintf(szMsg,
"\n-Start Geomatric Construction - [%s]\n", szTime);
90 #ifndef DISABLE_MPI_ROUTINE
92 #endif //DISABLE_MPI_ROUTINE
94 pShapeOperand->BuildNeighborMap();
95 pShapeOperand->BuildNeighborMapInfo(&mapInfo,
false);
98 pShapeOperand->BuildHamiltonian(lpParam, &mapInfo, pResult);
101 catch (
unsigned long dwError)
105 case ERROR_LOAD_BLANCING_FAIL:
120 PERIODIC_INFO periodicInfo;
131 if (NULL == *lpParam)
135 pShapeOperand = pShape;
137 pShapeOperand = &shape;
144 pShapeOperand->BuildNeighborMap();
146 pShapeOperand->BuildNeighborMapInfo(&mapInfo,
true);
149 #ifdef DISABLE_MPI_ROUTINE
156 #else //DISABLE_MPI_ROUTINE
157 #endif //DISABLE_MPI_ROUTINE
160 pShapeOperand->BuildHamiltonian(*lpParam, &mapInfo, pResult);
180 #ifdef DISABLE_MPI_ROUTINE
183 #else //DISABLE_MPI_ROUTINE
188 #endif //DISABLE_MPI_ROUTINE
~CKNGeometricConstructionLaunch()
static void InitCommunicationBufferMetric()
Initializing MPI Communication buffer for MVMul.
static void FinalizeManager()
Get Root rank.
static void SetNeighborCoordination(CKNGeometricAtom::NEIGHOR_RELATION type, double x, double y, double z)
Setting neighbor coordination.
void ExchangeAtomInfoBetweenNode()
Get start index of atom in shape, using in MPI running enviroment.
void SetMaterialType(MATERIAL_INDEX type)
Get maetrial typpe of shap.
static void SetMPIEnviroment(int nRank, int nTotalNode)
Set MPI Enviroment.
void SetConsideringBoundaryCondition(bool bConsider, AXIS_DEFINE direction)
Get bondary condition of shape.
void getCurrentTime(char *pszBuffer)
static void FreeMapInfo(LPNEIGHBOR_MAP_INFO lpMapInfo)
Release mapinfo data.
static void SetShapeInformation(CKNGeometricShape &shape, CKNCommandFileParser::LPINPUT_CMD_PARAM lpParam)
void SetOriginCoordination(double x, double y, double z)
Building Geometric part.
Data and operation representation of CSR(Compressed Sparse Row)
void SetDirection(double x_axis, double y_axis, double z_axis)
Set direciton of shape.
void SetLength(double lx, double ly, double lz)
Set length of shape.
static int GetTotalNodeCount()
static void SetAtomCoordination(CKNGeometricAtom::ATOM_TYPE type, double x, double y, double z)
Setting atom coordination.
void BuildDataBuffer()
Allocating memory for class member variable.
static LPINPUT_CMD_PARAM ParsingInputCommand(char *pszInputCommnadFileName)
Parsing Commaind file.
Class for Geometric shape.
static void SetUnitCellInformation(CKNCommandFileParser::LPINPUT_CMD_PARAM lpParam)
static void LaunchingGeometricConstructionMPI(char *pszInputCommnadFileName, CKNGeometricShape *pShape, bool bReturnCSR)
Common definition for Solver.
Structure for save input command file parsing result.
double fShapeLength[NMAXDOMAIN][3]
Shap length x, y, z, direction.
CKNGeometricConstructionLaunch()
double fItemCount
Item count at atom map.
char szDomainMat[NMAXDOMAIN][1024]
Material type.
bool FillUnitcell(CKNCommandFileParser::LPINPUT_CMD_PARAM lpParam)
Set bondary condition of shape.
double fUnitcellLength[3]
Unitcell length x, y, z direction.
void SetBackendFace(bool bBackendFace)
Check is this back end face side in MPI running enviroment.
static void ShowMsg(char *pszBuffer)
Show message.
This class includes functions for matrix debugging.
static void SetLength(double fLength[3], double fOriginLength[3])
Set unit cell length.
void SetShapeForm(unsigned int form)
Get form type of shape.
void SetFrontFace(bool bFrontFace)
Check is this front face side in MPI running enviroment.
static int GetCurrentRank()
void PeriodicUnitCellNumbering(bool bXAxis=false)
Numbering to periodic unitcell.
void SetRowCount(unsigned int nRow)
Settting row size of matrix.
static CKNMatrixOperation::CKNCSR * LaunchingGeometricConstruction(char *pszInputCommnadFileName, CKNGeometricShape *pShape, CKNCommandFileParser::LPINPUT_CMD_PARAM *lpParam, bool bReturnCSR)
static void LoadBlancingForLanczos(int nRowCount)
Load blancing for MPI, this function only for lanczos solving without geometric constrcution.
void SetColumnCount(unsigned int nColumn)
Settting column size of matrix.
static bool IsRootRank()
Get Total node count.
int nMatrixDemension
Hamiltonian matrix demension.
Structure for neighbor information.
bool bConsiderBoundaryCondition[3]
Considering bondary condition or not x, y, z direction.
double fOrigin[NMAXDOMAIN][3]
Coordinator original coordinate.