mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-25 17:00:34 +05:00
Adding SetNbThreads in Python to set if compute will be done in parallel
This commit is contained in:
parent
0be5e44fdf
commit
5d3c1425f8
@ -156,7 +156,7 @@ module SMESH
|
|||||||
Geom_BALL,
|
Geom_BALL,
|
||||||
Geom_LAST
|
Geom_LAST
|
||||||
};
|
};
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* ElementOrder points out entities of what order are requested
|
* ElementOrder points out entities of what order are requested
|
||||||
*/
|
*/
|
||||||
@ -238,7 +238,7 @@ module SMESH
|
|||||||
DRS_FAIL // general failure (exception etc.)
|
DRS_FAIL // general failure (exception etc.)
|
||||||
};
|
};
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief A structure containing information about MED file
|
* \brief A structure containing information about MED file
|
||||||
*/
|
*/
|
||||||
struct MedFileInfo
|
struct MedFileInfo
|
||||||
@ -263,7 +263,7 @@ module SMESH
|
|||||||
*/
|
*/
|
||||||
const long EXTRUSION_FLAG_BOUNDARY = 1;
|
const long EXTRUSION_FLAG_BOUNDARY = 1;
|
||||||
const long EXTRUSION_FLAG_SEW = 2;
|
const long EXTRUSION_FLAG_SEW = 2;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Structure used in mesh edit preview data (MeshPreviewStruct)
|
* Structure used in mesh edit preview data (MeshPreviewStruct)
|
||||||
*/
|
*/
|
||||||
@ -344,7 +344,7 @@ module SMESH
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Get geom shape to mesh. A result should not be nil. Use HasShapeToMesh()
|
* Get geom shape to mesh. A result should not be nil. Use HasShapeToMesh()
|
||||||
* to know if a returned shape
|
* to know if a returned shape
|
||||||
*/
|
*/
|
||||||
GEOM::GEOM_Object GetShapeToMesh()
|
GEOM::GEOM_Object GetShapeToMesh()
|
||||||
raises (SALOME::SALOME_Exception);
|
raises (SALOME::SALOME_Exception);
|
||||||
@ -457,7 +457,7 @@ module SMESH
|
|||||||
in SMESH_GroupBase aGroup2,
|
in SMESH_GroupBase aGroup2,
|
||||||
in string name )
|
in string name )
|
||||||
raises (SALOME::SALOME_Exception);
|
raises (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Union of list of groups
|
* Union of list of groups
|
||||||
* New group is created. All mesh elements that are
|
* New group is created. All mesh elements that are
|
||||||
@ -476,7 +476,7 @@ module SMESH
|
|||||||
in SMESH_GroupBase aGroup2,
|
in SMESH_GroupBase aGroup2,
|
||||||
in string name )
|
in string name )
|
||||||
raises (SALOME::SALOME_Exception);
|
raises (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Intersection of list of groups
|
* Intersection of list of groups
|
||||||
* New group is created. All mesh elements that are
|
* New group is created. All mesh elements that are
|
||||||
@ -495,7 +495,7 @@ module SMESH
|
|||||||
in SMESH_GroupBase aToolGroup,
|
in SMESH_GroupBase aToolGroup,
|
||||||
in string name )
|
in string name )
|
||||||
raises (SALOME::SALOME_Exception);
|
raises (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Cut of lists of groups
|
* Cut of lists of groups
|
||||||
* New group is created. All mesh elements that are present in
|
* New group is created. All mesh elements that are present in
|
||||||
@ -505,14 +505,14 @@ module SMESH
|
|||||||
in ListOfGroups aToolGroups,
|
in ListOfGroups aToolGroups,
|
||||||
in string name)
|
in string name)
|
||||||
raises (SALOME::SALOME_Exception);
|
raises (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Create a group of entities basing on nodes of other groups.
|
* Create a group of entities basing on nodes of other groups.
|
||||||
* \param [in] aListOfGroups - list of either groups, sub-meshes or filters.
|
* \param [in] aListOfGroups - list of either groups, sub-meshes or filters.
|
||||||
* \param [in] anElemType - a type of elements to include to the new group.
|
* \param [in] anElemType - a type of elements to include to the new group.
|
||||||
* \param [in] name - a name of the new group.
|
* \param [in] name - a name of the new group.
|
||||||
* \param [in] nbCommonNodes - criterion of inclusion of an element to the new group.
|
* \param [in] nbCommonNodes - criterion of inclusion of an element to the new group.
|
||||||
* \param [in] underlyingOnly - if \c True, an element is included to the
|
* \param [in] underlyingOnly - if \c True, an element is included to the
|
||||||
* new group provided that it is based on nodes of an element of
|
* new group provided that it is based on nodes of an element of
|
||||||
* \a aListOfGroups
|
* \a aListOfGroups
|
||||||
* \return SMESH_Group - the created group
|
* \return SMESH_Group - the created group
|
||||||
@ -679,12 +679,12 @@ module SMESH
|
|||||||
* med files in 4.0.0 (default format) or 3.2.1 or 3.3.1 formats.
|
* med files in 4.0.0 (default format) or 3.2.1 or 3.3.1 formats.
|
||||||
* The minor must be between 0 and the current minor version of MED file library.
|
* The minor must be between 0 and the current minor version of MED file library.
|
||||||
* If version is equal to -1, the version is not changed (default).
|
* If version is equal to -1, the version is not changed (default).
|
||||||
* - autoDimension : if @c True, a space dimension for export is defined by mesh
|
* - autoDimension : if @c True, a space dimension for export is defined by mesh
|
||||||
* configuration; for example a planar mesh lying on XOY plane
|
* configuration; for example a planar mesh lying on XOY plane
|
||||||
* will be exported as a mesh in 2D space.
|
* will be exported as a mesh in 2D space.
|
||||||
* If @a autoDimension == @c False, the space dimension is 3.
|
* If @a autoDimension == @c False, the space dimension is 3.
|
||||||
* - fields : list of GEOM fields defined on the shape to mesh.
|
* - fields : list of GEOM fields defined on the shape to mesh.
|
||||||
* - geomAssocFields : each character of this string means a need to export a
|
* - geomAssocFields : each character of this string means a need to export a
|
||||||
* corresponding field; correspondence between fields and characters is following:
|
* corresponding field; correspondence between fields and characters is following:
|
||||||
* - 'v' stands for _vertices_ field;
|
* - 'v' stands for _vertices_ field;
|
||||||
* - 'e' stands for _edges_ field;
|
* - 'e' stands for _edges_ field;
|
||||||
@ -724,7 +724,7 @@ module SMESH
|
|||||||
* encoded in 10*major+minor (for instance, code for med 3.2.1 is 32)
|
* encoded in 10*major+minor (for instance, code for med 3.2.1 is 32)
|
||||||
*/
|
*/
|
||||||
long_array GetMEDVersionsCompatibleForAppend();
|
long_array GetMEDVersionsCompatibleForAppend();
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Export Mesh to different Formats
|
* Export Mesh to different Formats
|
||||||
* (UNV supported version is I-DEAS 10)
|
* (UNV supported version is I-DEAS 10)
|
||||||
@ -735,17 +735,17 @@ module SMESH
|
|||||||
in boolean renumer ) raises (SALOME::SALOME_Exception);
|
in boolean renumer ) raises (SALOME::SALOME_Exception);
|
||||||
void ExportSTL( in string file,
|
void ExportSTL( in string file,
|
||||||
in boolean isascii ) raises (SALOME::SALOME_Exception);
|
in boolean isascii ) raises (SALOME::SALOME_Exception);
|
||||||
void ExportCGNS( in SMESH_IDSource meshPart,
|
void ExportCGNS( in SMESH_IDSource meshPart,
|
||||||
in string file,
|
in string file,
|
||||||
in boolean overwrite,
|
in boolean overwrite,
|
||||||
in boolean groupElemsByType) raises (SALOME::SALOME_Exception);
|
in boolean groupElemsByType) raises (SALOME::SALOME_Exception);
|
||||||
void ExportGMF( in SMESH_IDSource meshPart,
|
void ExportGMF( in SMESH_IDSource meshPart,
|
||||||
in string file,
|
in string file,
|
||||||
in boolean withRequiredGroups) raises (SALOME::SALOME_Exception);
|
in boolean withRequiredGroups) raises (SALOME::SALOME_Exception);
|
||||||
void ExportPartToDAT( in SMESH_IDSource meshPart,
|
void ExportPartToDAT( in SMESH_IDSource meshPart,
|
||||||
in string file,
|
in string file,
|
||||||
in boolean renumer ) raises (SALOME::SALOME_Exception);
|
in boolean renumer ) raises (SALOME::SALOME_Exception);
|
||||||
void ExportPartToUNV( in SMESH_IDSource meshPart,
|
void ExportPartToUNV( in SMESH_IDSource meshPart,
|
||||||
in string file,
|
in string file,
|
||||||
in boolean renumer ) raises (SALOME::SALOME_Exception);
|
in boolean renumer ) raises (SALOME::SALOME_Exception);
|
||||||
void ExportPartToSTL( in SMESH_IDSource meshPart,
|
void ExportPartToSTL( in SMESH_IDSource meshPart,
|
||||||
@ -857,10 +857,10 @@ module SMESH
|
|||||||
|
|
||||||
smIdType_array GetNodesId()
|
smIdType_array GetNodesId()
|
||||||
raises (SALOME::SALOME_Exception);
|
raises (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Returns type of mesh element
|
* Returns type of mesh element
|
||||||
*/
|
*/
|
||||||
ElementType GetElementType( in smIdType id, in boolean iselem )
|
ElementType GetElementType( in smIdType id, in boolean iselem )
|
||||||
raises (SALOME::SALOME_Exception);
|
raises (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
@ -875,7 +875,7 @@ module SMESH
|
|||||||
|
|
||||||
smIdType_array GetSubMeshNodesId(in long ShapeID, in boolean all )
|
smIdType_array GetSubMeshNodesId(in long ShapeID, in boolean all )
|
||||||
raises (SALOME::SALOME_Exception);
|
raises (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
ElementType GetSubMeshElementType(in long ShapeID)
|
ElementType GetSubMeshElementType(in long ShapeID)
|
||||||
raises (SALOME::SALOME_Exception);
|
raises (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
@ -899,6 +899,10 @@ module SMESH
|
|||||||
*/
|
*/
|
||||||
boolean SetMeshOrder(in submesh_array_array theSubMeshArray);
|
boolean SetMeshOrder(in submesh_array_array theSubMeshArray);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Set Number of Threads
|
||||||
|
*/
|
||||||
|
void SetNbThreads(in long nbThreads);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Get mesh description
|
* Get mesh description
|
||||||
@ -939,7 +943,7 @@ module SMESH
|
|||||||
long GetShapeID(in smIdType id);
|
long GetShapeID(in smIdType id);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* For given element returns ID of result shape after
|
* For given element returns ID of result shape after
|
||||||
* ::FindShape() from SMESH_MeshEditor
|
* ::FindShape() from SMESH_MeshEditor
|
||||||
* If there is not element for given ID - returns -1
|
* If there is not element for given ID - returns -1
|
||||||
*/
|
*/
|
||||||
@ -1072,7 +1076,7 @@ module SMESH
|
|||||||
*/
|
*/
|
||||||
smIdType_array GetElementsByType( in ElementType theType )
|
smIdType_array GetElementsByType( in ElementType theType )
|
||||||
raises (SALOME::SALOME_Exception);
|
raises (SALOME::SALOME_Exception);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Returns type of mesh element (same as SMESH_Mesh::GetElementType() )
|
* Returns type of mesh element (same as SMESH_Mesh::GetElementType() )
|
||||||
*/
|
*/
|
||||||
|
@ -385,9 +385,14 @@ class SMESH_EXPORT SMESH_Mesh
|
|||||||
|
|
||||||
std::ostream& Dump(std::ostream & save);
|
std::ostream& Dump(std::ostream & save);
|
||||||
|
|
||||||
|
// Data for parallel computation
|
||||||
|
|
||||||
void Lock() {_my_lock.lock();};
|
void Lock() {_my_lock.lock();};
|
||||||
void Unlock() {_my_lock.unlock();};
|
void Unlock() {_my_lock.unlock();};
|
||||||
|
|
||||||
|
int GetNbThreads(){return _NbThreads;};
|
||||||
|
void SetNbThreads(int nbThreads){_NbThreads=nbThreads;};
|
||||||
|
|
||||||
// Temporary folder used during parallel Computation
|
// Temporary folder used during parallel Computation
|
||||||
boost::filesystem::path tmp_folder;
|
boost::filesystem::path tmp_folder;
|
||||||
|
|
||||||
@ -439,6 +444,7 @@ protected:
|
|||||||
|
|
||||||
// Mutex for multhitreading write in SMESH_Mesh
|
// Mutex for multhitreading write in SMESH_Mesh
|
||||||
std::mutex _my_lock;
|
std::mutex _my_lock;
|
||||||
|
int _NbThreads=0;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
SMESH_Mesh();
|
SMESH_Mesh();
|
||||||
|
@ -271,8 +271,7 @@ bool SMESH_subMesh::IsMeshComputed() const
|
|||||||
TopExp_Explorer exp( _subShape, (TopAbs_ShapeEnum) type );
|
TopExp_Explorer exp( _subShape, (TopAbs_ShapeEnum) type );
|
||||||
for ( ; exp.More(); exp.Next() )
|
for ( ; exp.More(); exp.Next() )
|
||||||
{
|
{
|
||||||
SMESHDS_SubMesh * smDS = meshDS->MeshElements( exp.Current() );
|
if ( SMESHDS_SubMesh * smDS = meshDS->MeshElements( exp.Current() ) )
|
||||||
if ( smDS )
|
|
||||||
{
|
{
|
||||||
bool computed = (dim > 0) ? smDS->NbElements() : smDS->NbNodes();
|
bool computed = (dim > 0) ? smDS->NbElements() : smDS->NbNodes();
|
||||||
if ( computed )
|
if ( computed )
|
||||||
@ -1595,7 +1594,6 @@ bool SMESH_subMesh::ComputeStateEngine(compute_event event)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// TODO: Replace by call to ParallelCompute
|
|
||||||
ret = algo->Compute((*_father), shape);
|
ret = algo->Compute((*_father), shape);
|
||||||
}
|
}
|
||||||
// algo can set _computeError of submesh
|
// algo can set _computeError of submesh
|
||||||
@ -1656,7 +1654,6 @@ bool SMESH_subMesh::ComputeStateEngine(compute_event event)
|
|||||||
bool isComputeErrorSet = !checkComputeError( algo, ret, shape );
|
bool isComputeErrorSet = !checkComputeError( algo, ret, shape );
|
||||||
if ( isComputeErrorSet )
|
if ( isComputeErrorSet )
|
||||||
ret = false;
|
ret = false;
|
||||||
// TODO: See why IsMeshCompited() returns false
|
|
||||||
// check if anything was built
|
// check if anything was built
|
||||||
TopExp_Explorer subS(shape, _subShape.ShapeType());
|
TopExp_Explorer subS(shape, _subShape.ShapeType());
|
||||||
if ( ret )
|
if ( ret )
|
||||||
@ -2053,9 +2050,7 @@ bool SMESH_subMesh::checkComputeError(SMESH_Algo* theAlgo,
|
|||||||
if ( !_computeError || _computeError->IsOK() )
|
if ( !_computeError || _computeError->IsOK() )
|
||||||
{
|
{
|
||||||
// no error description is set to this sub-mesh, check if any mesh is computed
|
// no error description is set to this sub-mesh, check if any mesh is computed
|
||||||
//TODO: See why this does not work
|
_computeState = IsMeshComputed() ? COMPUTE_OK : FAILED_TO_COMPUTE;
|
||||||
//_computeState = IsMeshComputed() ? COMPUTE_OK : FAILED_TO_COMPUTE;
|
|
||||||
_computeState = COMPUTE_OK;
|
|
||||||
if ( _computeState != COMPUTE_OK )
|
if ( _computeState != COMPUTE_OK )
|
||||||
{
|
{
|
||||||
if ( _subShape.ShapeType() == TopAbs_EDGE &&
|
if ( _subShape.ShapeType() == TopAbs_EDGE &&
|
||||||
|
@ -2212,7 +2212,7 @@ bool _pyMesh::NeedMeshAccess( const Handle(_pyCommand)& theCommand )
|
|||||||
"GetElemNode","IsMediumNode","IsMediumNodeOfAnyElem","ElemNbEdges","ElemNbFaces",
|
"GetElemNode","IsMediumNode","IsMediumNodeOfAnyElem","ElemNbEdges","ElemNbFaces",
|
||||||
"GetElemFaceNodes", "GetFaceNormal", "FindElementByNodes",
|
"GetElemFaceNodes", "GetFaceNormal", "FindElementByNodes",
|
||||||
"IsPoly","IsQuadratic","BaryCenter","GetHypothesisList", "SetAutoColor", "GetAutoColor",
|
"IsPoly","IsQuadratic","BaryCenter","GetHypothesisList", "SetAutoColor", "GetAutoColor",
|
||||||
"Clear", "ConvertToStandalone", "GetMeshOrder", "SetMeshOrder"
|
"Clear", "ConvertToStandalone", "GetMeshOrder", "SetMeshOrder", "SetNbThreads"
|
||||||
,"" }; // <- mark of end
|
,"" }; // <- mark of end
|
||||||
sameMethods.Insert( names );
|
sameMethods.Insert( names );
|
||||||
}
|
}
|
||||||
|
@ -2506,7 +2506,7 @@ void SMESH_Mesh_i::CheckGeomModif( bool theIsBreakLink )
|
|||||||
}
|
}
|
||||||
old2newShapeMap.Bind( group->GetShape(), groupsData.back()._shape );
|
old2newShapeMap.Bind( group->GetShape(), groupsData.back()._shape );
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// store assigned hypotheses
|
// store assigned hypotheses
|
||||||
@ -6170,8 +6170,8 @@ SMESH::SMESH_Mesh_ptr SMESH_Mesh_i::GetMesh()
|
|||||||
/*!
|
/*!
|
||||||
* \brief Return false if GetMeshInfo() return incorrect information that may
|
* \brief Return false if GetMeshInfo() return incorrect information that may
|
||||||
* happen if mesh data is not yet fully loaded from the file of study.
|
* happen if mesh data is not yet fully loaded from the file of study.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
//================================================================================
|
//================================================================================
|
||||||
|
|
||||||
@ -7037,6 +7037,16 @@ TListOfListOfInt SMESH_Mesh_i::findConcurrentSubMeshes()
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* \brief Set the number of threads for a parallel computation
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
void SMESH_Mesh_i::SetNbThreads(int nbThreads){
|
||||||
|
_impl->SetNbThreads(nbThreads);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
/*!
|
/*!
|
||||||
* \brief Convert submesh ids into submesh interfaces
|
* \brief Convert submesh ids into submesh interfaces
|
||||||
@ -7229,7 +7239,7 @@ smIdType SMESH_MeshPartDS::MinNodeID() const
|
|||||||
{
|
{
|
||||||
if ( _meshDS ) return _meshDS->MinNodeID();
|
if ( _meshDS ) return _meshDS->MinNodeID();
|
||||||
return NbNodes() == 0 ? 0 : (*_elements[ SMDSAbs_Node ].begin())->GetID();
|
return NbNodes() == 0 ? 0 : (*_elements[ SMDSAbs_Node ].begin())->GetID();
|
||||||
}
|
}
|
||||||
// -------------------------------------------------------------------------------------
|
// -------------------------------------------------------------------------------------
|
||||||
smIdType SMESH_MeshPartDS::MaxElementID() const
|
smIdType SMESH_MeshPartDS::MaxElementID() const
|
||||||
{
|
{
|
||||||
|
@ -226,7 +226,7 @@ public:
|
|||||||
const char* file,
|
const char* file,
|
||||||
CORBA::Boolean withRequiredGroups);
|
CORBA::Boolean withRequiredGroups);
|
||||||
|
|
||||||
|
|
||||||
template<class SPECLS>
|
template<class SPECLS>
|
||||||
void ExportPartToMEDCommon(SPECLS& speCls,
|
void ExportPartToMEDCommon(SPECLS& speCls,
|
||||||
SMESH::SMESH_IDSource_ptr meshPart,
|
SMESH::SMESH_IDSource_ptr meshPart,
|
||||||
@ -571,7 +571,7 @@ public:
|
|||||||
* Persistence of geometry tick
|
* Persistence of geometry tick
|
||||||
*/
|
*/
|
||||||
int& MainShapeTick() { return _mainShapeTick; }
|
int& MainShapeTick() { return _mainShapeTick; }
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Sets list of notebook variables used for Mesh operations separated by ":" symbol
|
* Sets list of notebook variables used for Mesh operations separated by ":" symbol
|
||||||
@ -673,6 +673,8 @@ private:
|
|||||||
SMESH::submesh_array_array& theSubMeshOrder,
|
SMESH::submesh_array_array& theSubMeshOrder,
|
||||||
const bool theIsDump);
|
const bool theIsDump);
|
||||||
|
|
||||||
|
void SetNbThreads(int nbThreads);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Finds concurrent sub-meshes
|
* \brief Finds concurrent sub-meshes
|
||||||
*/
|
*/
|
||||||
|
@ -1864,7 +1864,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
return self.smeshpyD.Evaluate(self.mesh, geom)
|
return self.smeshpyD.Evaluate(self.mesh, geom)
|
||||||
|
|
||||||
|
|
||||||
def Compute(self, geom=0, discardModifs=False, refresh=False):
|
def Compute(self, geom=0, discardModifs=False, refresh=False, nbThreads=0):
|
||||||
"""
|
"""
|
||||||
Compute the mesh and return the status of the computation
|
Compute the mesh and return the status of the computation
|
||||||
|
|
||||||
@ -1874,6 +1874,7 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
a last total re-compute and that may prevent successful partial re-compute,
|
a last total re-compute and that may prevent successful partial re-compute,
|
||||||
then the mesh is cleaned before Compute()
|
then the mesh is cleaned before Compute()
|
||||||
refresh: if *True*, Object Browser is automatically updated (when running in GUI)
|
refresh: if *True*, Object Browser is automatically updated (when running in GUI)
|
||||||
|
nbThreads: Number of threads to use for a parallel computation
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
True or False
|
True or False
|
||||||
@ -1885,6 +1886,8 @@ class Mesh(metaclass = MeshMeta):
|
|||||||
try:
|
try:
|
||||||
if discardModifs and self.mesh.HasModificationsToDiscard(): # issue 0020693
|
if discardModifs and self.mesh.HasModificationsToDiscard(): # issue 0020693
|
||||||
self.mesh.Clear()
|
self.mesh.Clear()
|
||||||
|
# Setting parallel parameters
|
||||||
|
self.mesh.SetNbThreads(nbThreads)
|
||||||
ok = self.smeshpyD.Compute(self.mesh, geom)
|
ok = self.smeshpyD.Compute(self.mesh, geom)
|
||||||
except SALOME.SALOME_Exception as ex:
|
except SALOME.SALOME_Exception as ex:
|
||||||
print("Mesh computation failed, exception caught:")
|
print("Mesh computation failed, exception caught:")
|
||||||
|
Loading…
Reference in New Issue
Block a user