Moving variables into parallel meshw

This commit is contained in:
Yoann Audouin 2023-01-12 07:59:46 +01:00
parent 9299033da1
commit 1df51f2b07
3 changed files with 12 additions and 5 deletions

View File

@ -360,7 +360,7 @@ bool SMESH_Gen::parallelComputeSubMeshes(
} }
if(file_name != "") if(file_name != "")
{ {
fs::path mesh_file = fs::path(aMesh.tmp_folder) / fs::path(file_name); fs::path mesh_file = fs::path(aMesh.GetTmpFolder()) / fs::path(file_name);
SMESH_DriverMesh::exportMesh(mesh_file.string(), aMesh, "MESH"); SMESH_DriverMesh::exportMesh(mesh_file.string(), aMesh, "MESH");
} }
//Resetting threaded pool info //Resetting threaded pool info
@ -375,7 +375,7 @@ bool SMESH_Gen::parallelComputeSubMeshes(
smToCompute->ComputeStateEngine( SMESH_subMesh::CHECK_COMPUTE_STATE ); smToCompute->ComputeStateEngine( SMESH_subMesh::CHECK_COMPUTE_STATE );
continue; continue;
} }
boost::asio::post(*(aMesh._pool), std::bind(compute_function, smToCompute, computeEvent, boost::asio::post(*(aMesh.GetPool()), std::bind(compute_function, smToCompute, computeEvent,
shapeSM, aShapeOnly, allowedSubShapes, shapeSM, aShapeOnly, allowedSubShapes,
aShapesId)); aShapesId));
} }

View File

@ -404,6 +404,9 @@ class SMESH_EXPORT SMESH_Mesh
virtual bool IsParallel(){std::cout << "Should not pass here" << std::endl;return false;}; virtual bool IsParallel(){std::cout << "Should not pass here" << std::endl;return false;};
virtual boost::filesystem::path GetTmpFolder() {return "";};
virtual boost::asio::thread_pool* GetPool() {return NULL;};
virtual bool ComputeSubMeshes( virtual bool ComputeSubMeshes(
SMESH_Gen* gen, SMESH_Gen* gen,
SMESH_Mesh & aMesh, SMESH_Mesh & aMesh,
@ -416,9 +419,6 @@ class SMESH_EXPORT SMESH_Mesh
const bool complexShapeFirst, const bool complexShapeFirst,
const bool aShapeOnly){(void) gen;(void) aMesh;(void) aShape;(void) aDim;(void) aShapesId;(void) allowedSubShapes;(void) computeEvent;(void) includeSelf;(void) complexShapeFirst;(void) aShapeOnly;std::cout << "Should not pass here" << std::endl;return false;}; const bool aShapeOnly){(void) gen;(void) aMesh;(void) aShape;(void) aDim;(void) aShapesId;(void) allowedSubShapes;(void) computeEvent;(void) includeSelf;(void) complexShapeFirst;(void) aShapeOnly;std::cout << "Should not pass here" << std::endl;return false;};
// TODO: Remove from SMESH_Mesh
boost::filesystem::path tmp_folder;
boost::asio::thread_pool * _pool = nullptr; //thread pool for computation
private: private:
void exportMEDCommmon(DriverMED_W_SMESHDS_Mesh& myWriter, void exportMEDCommmon(DriverMED_W_SMESHDS_Mesh& myWriter,

View File

@ -58,6 +58,9 @@ class SMESH_EXPORT SMESH_ParallelMesh: public SMESH_Mesh
void CreateTmpFolder(); void CreateTmpFolder();
void DeleteTmpFolder(); void DeleteTmpFolder();
boost::filesystem::path GetTmpFolder() override {return tmp_folder;};
boost::asio::thread_pool* GetPool() override {return _pool;};
bool ComputeSubMeshes( bool ComputeSubMeshes(
SMESH_Gen* gen, SMESH_Gen* gen,
SMESH_Mesh & aMesh, SMESH_Mesh & aMesh,
@ -69,5 +72,9 @@ class SMESH_EXPORT SMESH_ParallelMesh: public SMESH_Mesh
const bool includeSelf, const bool includeSelf,
const bool complexShapeFirst, const bool complexShapeFirst,
const bool aShapeOnly) override; const bool aShapeOnly) override;
private:
boost::filesystem::path tmp_folder;
boost::asio::thread_pool * _pool = nullptr; //thread pool for computation
}; };
#endif #endif