output<<nb_element<<" to partitionate between "<<psize<<" processsors"<<std::endl;
Array<UInt>part=partitions(*first,*gt);
for(UInti=0;i<part.getSize();++i){
output<<i<<" "<<part(i)<<std::endl;
}
}
}
output<<"Nodes are also read and set with type -1 (normal node)"<<std::endl;
printNodeList(mesh);
}
SolidMechanicsModelCohesivemodel(mesh);
output<<"Before initParallel(), non-root processors have empty Mesh object"<<std::endl;
printMeshContent(mesh);
model.initParallel(partition);
output<<"After initParallel(), Mesh object on each processor is a local partionated mesh containing ghost elements"<<std::endl;
printMeshContent(mesh);
output<<"Nodes are also partionated and new node types are defined:"<<std::endl;
printNodeList(mesh);
output<<"-3: pure ghost node -> not a local node"<<std::endl
<<"-2: master node -> node shared with other processor(s) -> local and global node"<<std::endl
<<">0: slave node -> -> node shared with other processor(s) -> only local node (its id is the rank of the processor owning the master node)"<<std::endl;
output<<"Each local node has a corresponding global id used during assembly: "<<std::endl;
getGlobalIDs(mesh);
Mesh&mesh_facets=mesh.getMeshFacets();
output<<"Within cohesive element model, initParallel() creates a second Mesh object usually called mesh_facet"<<std::endl
<<"This Mesh object contains all sub-dimensional elements where potential cohesive element can be inserted"<<std::endl;