mpi - topology

This commit is contained in:
Joachim Schoeberl 2012-06-16 12:04:04 +00:00
parent 2c3d08ec2a
commit 0d39c64fbe
3 changed files with 493 additions and 550 deletions

View File

@ -545,7 +545,8 @@ namespace netgen
edgecoeffsindex[0] = 0;
for (int i = 0; i < top.GetNEdges(); i++)
{
int glob = partop.GetDistantEdgeNum (0, i+1);
// int glob = partop.GetDistantEdgeNum (0, i+1);
int glob = partop.GetGlobalEdgeNum (i+1);
edgeorder[i] = master_edgeorder[glob-1];
int ncoefs = master_edgecoeffsindex[glob]-master_edgecoeffsindex[glob-1];
edgecoeffsindex[i+1] = edgecoeffsindex[i] + ncoefs;
@ -554,7 +555,8 @@ namespace netgen
for (int i = 0; i < top.GetNEdges(); i++)
{
int glob = partop.GetDistantEdgeNum (0, i+1);
// int glob = partop.GetDistantEdgeNum (0, i+1);
int glob = partop.GetGlobalEdgeNum (i+1);
int ncoefs = master_edgecoeffsindex[glob]-master_edgecoeffsindex[glob-1];
for (int j = 0; j < ncoefs; j++)
edgecoeffs[edgecoeffsindex[i]+j] = master_edgecoeffs[master_edgecoeffsindex[glob-1]+j];
@ -567,7 +569,8 @@ namespace netgen
facecoeffsindex[0] = 0;
for (int i = 0; i < top.GetNFaces(); i++)
{
int glob = partop.GetDistantFaceNum (0, i+1);
// int glob = partop.GetDistantFaceNum (0, i+1);
int glob = partop.GetGlobalFaceNum (i+1);
faceorder[i] = master_faceorder[glob-1];
int ncoefs = master_facecoeffsindex[glob]-master_facecoeffsindex[glob-1];
facecoeffsindex[i+1] = facecoeffsindex[i] + ncoefs;
@ -576,7 +579,8 @@ namespace netgen
for (int i = 0; i < top.GetNFaces(); i++)
{
int glob = partop.GetDistantFaceNum (0, i+1);
// int glob = partop.GetDistantFaceNum (0, i+1);
int glob = partop.GetGlobalFaceNum (i+1);
int ncoefs = master_facecoeffsindex[glob]-master_facecoeffsindex[glob-1];
for (int j = 0; j < ncoefs; j++)
facecoeffs[facecoeffsindex[i]+j] = master_facecoeffs[master_facecoeffsindex[glob-1]+j];

File diff suppressed because it is too large Load Diff

View File

@ -78,15 +78,29 @@ namespace netgen
int GetNDistantElNums ( int locelnum ) const
{ return loc2distel[locelnum-1].Size() / 2 + 1; }
int GetGlobalPNum ( int locpnum ) const
{ return loc2distvert[locpnum][0]; }
int GetGlobalEdgeNum ( int locedgenum ) const
{ return loc2distedge[locedgenum-1][0]; }
int GetGlobalFaceNum ( int locfacenum ) const
{ return loc2distface[locfacenum-1][0]; }
int GetGlobalElNum ( int locelnum ) const
{ return loc2distel[locelnum-1][0]; }
/*
int GetDistantPNum ( int proc, int locpnum ) const;
int GetDistantEdgeNum ( int proc, int locedgenum ) const;
int GetDistantFaceNum ( int proc, int locedgenum ) const;
int GetDistantElNum ( int proc, int locelnum ) const;
*/
int GetDistantPNums ( int locpnum, int * distpnums ) const;
int GetDistantEdgeNums ( int locedgenum, int * distedgenums ) const;
int GetDistantFaceNums ( int locedgenum, int * distfacenums ) const;
int GetDistantElNums ( int locelnum, int * distfacenums ) const;
void GetDistantPNums ( int locpnum, int * distpnums ) const;
void GetDistantEdgeNums ( int locedgenum, int * distedgenums ) const;
void GetDistantFaceNums ( int locedgenum, int * distfacenums ) const;
void GetDistantElNums ( int locelnum, int * distfacenums ) const;
void Print() const;
@ -97,8 +111,7 @@ namespace netgen
bool IsExchangeElement ( int elnum ) const { return false; }
bool IsExchangeSEl ( int selnum ) const { return loc2distsurfel[selnum-1].Size() > 1; }
// bool IsExchangeSEl ( int selnum ) const { return loc2distsurfel[selnum-1].Size() > 1; }
bool IsExchangeVert (int dest, int vnum ) const
{
@ -124,13 +137,11 @@ namespace netgen
return false;
}
bool IsExchangeElement (int dest, int elnum ) const { return false; }
// bool IsExchangeElement (int dest, int elnum ) const { return false; }
void Update();
void UpdateCoarseGrid();
void UpdateRefinement ();
void UpdateTopology ();
void UpdateExchangeElements();
void UpdateCoarseGridGlobal();