335
// create periodic mesh relationships
336
for(std::map<int,int>::iterator it = _geo_internals->periodicEdges.begin();
337
it != _geo_internals->periodicEdges.end(); ++it){
338
GEdge *ge = getEdgeByTag(abs(it->first));
340
int MASTER = it->second * (it->first > 0 ? 1 : -1);
341
ge->setMeshMaster(MASTER);
344
for(std::map<int,int>::iterator it = _geo_internals->periodicFaces.begin();
345
it != _geo_internals->periodicFaces.end(); ++it){
346
GFace *gf = getFaceByTag(abs(it->first));
347
if (gf)gf->setMeshMaster(it->second * (it->first > 0 ? 1 : -1));
349
for(eiter it = firstEdge() ; it != lastEdge() ; ++it){
350
int meshMaster = (*it)->meshMaster();
351
if (meshMaster != (*it)->tag()){
352
GEdge *ge_master = getEdgeByTag(abs(meshMaster));
354
(*it)->getBeginVertex()->setMeshMaster((meshMaster > 0) ? ge_master->getBeginVertex()->tag() :
355
ge_master->getEndVertex()->tag());
357
(*it)->getEndVertex()->setMeshMaster((meshMaster < 0) ? ge_master->getBeginVertex()->tag() :
358
ge_master->getEndVertex()->tag());
335
std::map<int,GEO_Internals::MasterEdge>::iterator peIter =
336
_geo_internals->periodicEdges.begin();
337
for (;peIter!=_geo_internals->periodicEdges.end();++peIter) {
338
int iTarget = peIter->first;
339
GEO_Internals::MasterEdge& me = peIter->second;
340
int iSource = me.tag;
341
GEdge* target = getEdgeByTag(iTarget);
342
GEdge* source = getEdgeByTag(abs(iSource));
344
Msg::Error("Unknown target line for periodic connection from %d to %d",
347
Msg::Error("Unknown source line for periodic connection from %d to %d",
349
if (me.affineTransform.size()==16)
350
target->setMeshMaster(source,me.affineTransform);
352
target->setMeshMaster(source,me.tag > 0 ? 1 : -1);
355
std::map<int,GEO_Internals::MasterFace>::iterator pfIter =
356
_geo_internals->periodicFaces.begin();
357
for (;pfIter!=_geo_internals->periodicFaces.end();++pfIter) {
358
int iTarget = pfIter->first;
359
GEO_Internals::MasterFace& mf = pfIter->second;
360
int iSource = mf.tag;
361
GFace* target = getFaceByTag(iTarget);
362
GFace* source = getFaceByTag(iSource);
364
Msg::Error("Unknown target surface for periodic connection from %d to %d",
367
Msg::Error("Unknown source surface for periodic connection from %d to %d",
369
if (mf.affineTransform.size()==16)
370
target->setMeshMaster(source,mf.affineTransform);
372
target->setMeshMaster(source,mf.edgeCounterparts);
362
375
Msg::Debug("Gmsh model (GModel) imported:");