8 #error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
12 #include "../../classes/classes.h"
13 #include "../../shared/shared.h"
14 #include "../MeshPartitionx/MeshPartitionx.h"
15 #include "../ModelProcessorx/ModelProcessorx.h"
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;