: partition elements and nodes and vertices
More...
Go to the source code of this file.
: partition elements and nodes and vertices
Definition in file ElementsAndVerticesPartitioning.cpp.
◆ ElementsAndVerticesPartitioning()
void ElementsAndVerticesPartitioning |
( |
IoModel * |
iomodel | ) |
|
All elements have been partitioned above, only deal with elements for this cpu:
Definition at line 17 of file ElementsAndVerticesPartitioning.cpp.
19 int numberofelements2d;
20 int numberofvertices2d;
27 int *elements2d = NULL;
41 numberofelements2d = 0;
42 numberofvertices2d = 0;
47 numberofelements2d = 0;
48 numberofvertices2d = 0;
53 iomodel->
FetchData(&elements2d,NULL,NULL,
"md.mesh.elements2d");
54 iomodel->
FindConstant(&numberofelements2d,
"md.mesh.numberofelements2d");
55 iomodel->
FindConstant(&numberofvertices2d,
"md.mesh.numberofvertices2d");
56 iomodel->
FindConstant(&numlayers,
"md.mesh.numberoflayers");
67 iomodel->
FetchData(&icelevelset,NULL,NULL,
"md.mask.ice_levelset");
71 if(icelevelset[i]>=0) weights[i] = 1;
72 if(icelevelset[i]<0) weights[i] = 100;
74 xDelete<IssmDouble>(icelevelset);
78 MeshPartitionx(&epart,&npart,iomodel->
numberofelements,iomodel->
numberofvertices,iomodel->
elements,numberofelements2d,numberofvertices2d,elements2d,weights,numlayers,elements_width,iomodel->
meshelementtype,num_procs);
79 xDelete<int>(elements2d);
81 xDelete<int>(weights);
88 _printf_(
"Partition #"<<i<<
" number of elements: "<<temp<<
"\n");
99 iomodel->
FetchData(&riftinfo,&numrifts,NULL,
"md.rifts.riftstruct");
100 for(
int i=0;i<numrifts;i++){
101 const int RIFTINFOSIZE = 12;
102 int el1=reCast<int>(*(riftinfo+RIFTINFOSIZE*i+2))-1;
103 int el2=reCast<int>(*(riftinfo+RIFTINFOSIZE*i+3))-1;
104 epart[el2]=epart[el1];
106 iomodel->
DeleteData(riftinfo,
"md.rifts.riftstruct");
116 if(my_rank==epart[i]) my_elements[i]=
true;
120 iomodel->
epart =epart;
int MeshPartitionx(int **pepart, int **pnpart, int numberofelements, int numberofnodes, int *elements, int numberofelements2d, int numberofnodes2d, doubletype *elements2d, int *vweights, int numlayers, int elements_width, int meshelementtype, int num_procs)