-// Copyright (C) 2007-2023 CEA, EDF, OPEN CASCADE
+// Copyright (C) 2007-2024 CEA, EDF, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
void SMESH_Gen::send_mesh(SMESH_Mesh& aMesh, std::string file_name)
{
+#ifndef WIN32
SMESH_ParallelMesh& aParMesh = dynamic_cast<SMESH_ParallelMesh&>(aMesh);
// Calling run_mesher
// Path to mesher script
msg += cmd + "\n";
throw SALOME_Exception(msg);
}
+#endif
}
//=============================================================================
// do not mesh vertices of a pseudo shape
const TopoDS_Shape& shape = smToCompute->GetSubShape();
const TopAbs_ShapeEnum shapeType = shape.ShapeType();
- // Not doing in parallel 1D and 2D meshes
+ // Not doing in parallel 1D meshes
if ( !aMesh.HasShapeToMesh() && shapeType == TopAbs_VERTEX )
continue;
// Waiting for all threads for the previous type to end
aMesh.wait();
- std::string file_name;
- switch(previousShapeType){
- case TopAbs_FACE:
- file_name = "Mesh2D.med";
- break;
- //case TopAbs_EDGE:
- // file_name = "Mesh1D.med";
- // break;
- //case TopAbs_VERTEX:
- // file_name = "Mesh0D.med";
- // break;
- case TopAbs_SOLID:
- default:
- file_name = "";
- break;
- }
+ std::string file_name="";
+ if (previousShapeType == aParMesh.GetDumpElement())
+ file_name = "Mesh"+std::to_string(aParMesh.GetParallelismDimension()-1)+"D.med";
+
if(file_name != "")
{
fs::path mesh_file = fs::path(aParMesh.GetTmpFolder()) / fs::path(file_name);
continue;
}
// Parallelism is only for 3D parts
- if(shapeType!=TopAbs_SOLID){
+ if(shapeType!=aMesh.GetParallelElement()){
compute_function(smToCompute, computeEvent,
shapeSM, aShapeOnly, allowedSubShapes,
aShapesId);
aMesh.GetMeshDS()->Modified();
+ // Cleanup done here as in Python the destructor is not called
+ aParMesh.cleanup();
+
return ret;
#endif
};