Commit Graph

375 Commits

Author SHA1 Message Date
eap
7daf8d6589 0022183: EDF SMESH: Error with ConvertToQuadratic
In getMediumNodeOnComposedWire(), prevent an exception at setting a
medium node, already added to a sub-mesh in AddNode() due to
mySetElemOnShape==true, to another EDGE.
2013-03-29 15:20:32 +00:00
eap
b017154701 0022183: EDF SMESH: Error with ConvertToQuadratic
In ConvertToQuadratic(), not set quadratic elements on shapes when converting
linear elements not assigned to any shape
2013-03-29 15:17:24 +00:00
eap
b59de0167b 0022182: EDF SMESH: Mesh does not compute after a "Clear Mesh Data"
bool SMESH_subMesh::ComputeStateEngine(int event)
{
...
+  if ( event == CLEAN )
+    _alwaysComputed = false; // Unset 'true' set by MergeNodes() (issue 0022182)
}
2013-03-29 14:24:07 +00:00
akl
f89c0586c1 Copyrights update 2013 2013-03-29 08:57:56 +00:00
eap
44ce7a32cd In IsStructured()
-  if ( nbWires != 1 || nbEdgesInWires.front() != 4 )
+  if ( nbWires != 1 /*|| nbEdgesInWires.front() != 4*/ ) // allow composite sides
2013-03-28 15:13:04 +00:00
eap
b5f12761af 0022166: [CEA 792] Regression on 07_Pentahedron.py, 12_3d_extrusion.py
and 13_projection_3d.py scripts from CEA test base

Set implicitly created nodes (medium and central ones) to shape
independently of mySetElemOnShape
2013-03-13 17:14:05 +00:00
eap
1303d07964 In MergeNodes():
+        // set _alwaysComputed to a sub-mesh of VERTEX to enable mesh computing
+        // after MergeNodes() w/o creating node in place of merged ones.
+        ...
2013-03-12 11:26:10 +00:00
eap
fd24bd006b Fix a bug reported in SALOME Forum
http://www.salome-platform.org/forum/forum_10/862626562

Fix LoadNodeColumns() for the base EDGE w/o viscous layers but on
which the mesh is squeezed by viscous layers on adjacent EDGEs
2013-03-07 08:50:01 +00:00
eap
f3304d692b Translate(022150: [CEA 789] Projection_1D2D not taken into account by BLSURF
Fix the previous integration
2013-03-06 14:16:29 +00:00
eap
71b66afd04 022150: [CEA 789] Projection_1D2D not taken into account by BLSURF
enum compute_event {
     ...
+    COMPUTE_SUBMESH
2013-03-06 13:34:53 +00:00
eap
f2d9abb577 0021859: SMESH : Add conversion from QUAD8 to QUAD9 and from HEXA20 to HEXA27
+  inline static gp_XY calcTFI(double x, double y, ...
+  void SetIsBiQuadratic(const bool theBuildBiQuadratic);
+  const SMDS_MeshNode* GetCentralNode(const SMDS_MeshNode* n1, ...

+  std::map< TBiQuad, SMDS_MeshNode* > myMapWithCentralNode; // central nodes of faces
+  bool            myCreateBiQuadratic;
2013-03-06 08:14:30 +00:00
eap
b3b654c67b 0021859: SMESH : Add conversion from QUAD8 to QUAD9 and from HEXA20 to HEXA27
-  void ConvertToQuadratic(const bool theForce3d);
+  void ConvertToQuadratic(const bool theForce3d, const bool theToBiQuad);
2013-03-06 08:12:22 +00:00
eap
0cf41cbddc a bit more comments 2013-03-01 16:44:43 +00:00
eap
9f9b9d6ceb fix failure of non-regression test SMESH_TEST/Grids/smesh/mesh_Projection_2D/A1
Avoid returning EDGE position for 2 nodes on the same EDGE, while the
 medium node should be on FACE. The case is a triangle whose 3 nodes are on
 the same EDGE. The worst is that in this case the medium node which
 is logically on FACE falls to a straight EDGE, as the triangle is of
 zero area (thanks to MEFISTO)

 std::pair<int, TopAbs_ShapeEnum> GetMediumPos(const SMDS_MeshNode* n1,
                                               const SMDS_MeshNode* n2,
+                                              const bool           useCurSubShape=false);
2013-03-01 14:32:53 +00:00
eap
6444728ac0 fix failure of non-regression test SMESH_TEST/Grids/smesh/mesh_Projection_2D/A0
Allow assigning "3D Extrusion" algo to a computed 2D mesh w/o
  clearing existing 2D elements

-  void cleanDependsOn( bool keepSupportedsubMeshes = false );
+  void cleanDependsOn( SMESH_Algo* algoRequiringCleaning=0 );
2013-03-01 11:11:43 +00:00
eap
3fa0d8a978 fix failure of non-regression test SMESH_TEST/Grids/smesh/mesh_Projection_2D/A0
Fix IsStructured( SMESH_subMesh* faceSM ) for a cylindrical FACE
2013-03-01 11:10:18 +00:00
eap
54cd5176e8 fix failure of non-regression test SMESH_TEST/Grids/smesh/imps8/I1
Fix cleanDependsOn() which mush do at least CHECK_COMPUTE_STATE even in empty mesh
2013-02-28 15:12:29 +00:00
eap
694e1f27be fix failure of non-regression test SMESH_TEST/Grids/smesh/imps7/H5
Synchronize Evaluate() with Compute()
2013-02-27 15:32:39 +00:00
eap
27bf438fc0 0022124: [CEA 763] Projection 1D does not work with Netgen 1D2D
Move struct AlgoData from SMESH_Gen.cxx to struct SMESH_Algo::Features
2013-02-26 10:37:45 +00:00
eap
98e6b6eb53 0022005: Error at the end of NETGEN 3D spheres mesh while tetrahedrons have been generated
SMESH_Algo::IsReversedSubMesh() is fixed and moved to SMESH_MesherHelper
2013-02-20 08:45:49 +00:00
eap
9c8fdf5101 0022124: [CEA 763] Projection 1D does not work with Netgen 1D2D
Do not call algo->Compute() if !algo->NeedDiscreteBoundary() and
  computing a sub-mesh of the current sub-mesh already failed.
2013-02-19 12:04:39 +00:00
eap
3060a379b0 0022124: [CEA 763] Projection 1D does not work with Netgen 1D2D
-  bool SubMeshesComputed() const;
+  bool SubMeshesComputed(bool * isFailedToCompute=0) const;

   TopoDS_Shape getCollection(SMESH_Gen * theGen,
                              SMESH_Algo* theAlgo,
                              bool &      theSubComputed,
+                             bool &      theSubFailed);

+  SMESH_Algo *          _algo; // the algorithm found by last *StateEngine() call
2013-02-19 12:02:54 +00:00
eap
12443c9c47 0021893: EDF 2133 SMESH : Improvement of 3D extrusion algorithm
Not to clear sub-meshes computed by local algos when an
   all-dimensional global algorithm is assigned

-  void cleanDependsOn();
+  void cleanDependsOn( bool keepSupportedsubMeshes = false );
2013-02-18 12:58:39 +00:00
eap
5ea0315b7f 0022091: [CEA 760] Regression on test test check_mesh_stability.py
In Compute(), call aHelper.FixQuadraticElements() only if everything is OK
2013-02-06 13:04:18 +00:00
eap
ed7d4ac971 0021893: EDF 2133 SMESH : Improvement of 3D extrusion algorithm
In Compute(), do not call Compute() of a more local algo if this
!algo->NeedDiscreteBoundary() also
2013-02-01 10:52:04 +00:00
eap
0cd977f8bf 0021893: EDF 2133 SMESH : Improvement of 3D extrusion algorithm
arg theFirstVertex of SMESH_Block::GetOrderedEdges() became optional
2013-01-28 08:35:50 +00:00
eap
154b1ad73e 0021893: EDF 2133 SMESH : Improvement of 3D extrusion algorithm
Make SubMeshesComputed() public

Make getDependsOnIterator() const
2013-01-28 08:19:29 +00:00
eap
907db98bc4 0021893: EDF 2133 SMESH : Improvement of 3D extrusion algorithm
Improve LoadNodeColumns() to add columns to already loaded ones

+  static bool IsSameElemGeometry(const SMESHDS_SubMesh* smDS,
+                                 SMDSAbs_GeometryType   shape,
+                                 const bool             nullSubMeshRes = true);

+  static bool IsStructured( SMESH_subMesh* faceSM );

+  static int Count(const TopoDS_Shape&    shape,
+                   const TopAbs_ShapeEnum type,
+                   const bool             ignoreSame);
2013-01-28 08:17:43 +00:00
eap
6cc402aa1b 0021893: EDF 2133 SMESH : Improvement of 3D extrusion algorithm
+  static bool IsSameElemGeometry(const SMESHDS_SubMesh* smDS,
+                                 SMDSAbs_GeometryType   shape,
+                                 const bool             nullSubMeshRes = true);

+  static bool IsStructured( SMESH_subMesh* faceSM );

+  static int Count(const TopoDS_Shape&    shape,
+                   const TopAbs_ShapeEnum type,
+                   const bool             ignoreSame);

-  void SetElementsOnShape(bool toSet) { mySetElemOnShape = toSet; }
+  bool SetElementsOnShape(bool toSet)
+  { bool res = mySetElemOnShape; mySetElemOnShape = toSet; return res; }
2013-01-28 08:16:00 +00:00
eap
6390e82888 0021893: EDF 2133 SMESH : Improvement of 3D extrusion algorithm
+  SMESH_Gen*  GetGen() const { return (SMESH_Gen*) _gen; }
2013-01-28 08:13:58 +00:00
eap
9b0f684048 0021893: EDF 2133 SMESH : Improvement of 3D extrusion algorithm
Use aGlobIgnoAlgo->NeedLowerHyps( dim ) in checkConformIgnoredAlgos()
2013-01-28 08:13:42 +00:00
eap
3a62786158 0021893: EDF 2133 SMESH : Improvement of 3D extrusion algorithm
+  bool NeedLowerHyps(int dim) const { return _neededLowerHyps[ dim ]; }

+  void addBadInputElements(const SMESHDS_SubMesh* sm,
+                           const bool             addNodes=false);

+  bool _neededLowerHyps[4];     // hyp dims needed by algo that !NeedDiscreteBoundary(). Df. FALSE
2013-01-28 08:12:41 +00:00
rnc
af15920c77 added BOOST_LIB_SYSTEM to the linker for support of boost 1.52.0 2013-01-24 10:52:43 +00:00
eap
8d0826c197 021860: EDF 2196 SMESH : Create all the groups in an extrusion operation 2013-01-11 12:00:35 +00:00
eap
7f5d1328b1 21397: EDF SMESH: a quadrangle face mesh can't be projected to a cylinder
after successful algo->Compute(), send SUBMESH_COMPUTED to all lower sub-meshes if ( !algo->NeedDiscreteBoundary() )
2013-01-10 11:29:37 +00:00
eap
293883f8d4 21397: EDF SMESH: a quadrangle face mesh can't be projected to a cylinder
bool Load (SMESH_Mesh*        theMesh,
              const TopoDS_Face& theFace,
              bool               theProject = false,
+             TopoDS_Vertex      the1stVertex=TopoDS_Vertex());
2013-01-10 11:26:34 +00:00
eap
a94078a14b improve comments 2013-01-10 11:25:42 +00:00
eap
752ad5bd14 untabify 2012-12-28 16:30:38 +00:00
eap
9ed5632be0 22017: [CEA 739] Get an error code returned by cadsurf_set_param
Remove "Salome " from "Salome Exception" prefix returned by
  SALOME_Exception::what() while composing an error message
2012-12-18 13:33:32 +00:00
eap
b69677548c 22011: [CEA 736] Mesh ends with "Global 2D algorithm is missing"
In checkMissing(), check only sub-meshes on meshable shapes (edges,faces,solids)
2012-12-17 16:37:18 +00:00
eap
7973c25121 21948: EDF SMESH : Memory is not freed when deleting a mesh
In DeleteEventListener() fix removal of listeners
2012-12-14 13:25:12 +00:00
eap
413fec58c7 21948: EDF SMESH : Memory is not freed when deleting a mesh
Use _id instead of _idDoc

-  _myMeshDS      = theDocument->GetMesh(_idDoc);
+  _myMeshDS      = theDocument->NewMesh(theIsEmbeddedMode,theLocalId);
2012-12-14 13:24:26 +00:00
eap
730908a7f4 21948: EDF SMESH : Memory is not freed when deleting a mesh
-  int                        _idDoc;        // id given by SMESHDS_Document
2012-12-14 13:23:20 +00:00
eap
0d9cd77ceb 21948: EDF SMESH : Memory is not freed when deleting a mesh
minor changes
2012-12-14 13:22:42 +00:00
eap
d3fb998efd 21948: EDF SMESH : Memory is not freed when deleting a mesh
Delete SMESHDS_Document's at destruction
2012-12-14 13:21:56 +00:00
vsr
13ff1c4641 Merge from V6_6_BR (V6_6_0rc2) 11/12/2012 2012-12-11 13:23:39 +00:00
ana
e77525fc4f win32 compatibility 2012-10-17 13:42:00 +00:00
eap
7e1dee49ad 0021543: EDF 1978 SMESH: Viscous layer for 2D meshes
Fix setEventListener() for a case of a listener found by name
2012-10-16 11:19:06 +00:00
eap
b648205fec 0021543: EDF 1978 SMESH: Viscous layer for 2D meshes
1) Fix notifyListenersOnEvent() for the case if a listener is deleted
2) in setEventListener(), use a listener name to find an existing listener
2012-10-15 13:15:55 +00:00
eap
c0f78ed06c + const SMESHDS_SubMesh * GetSubMeshDS() const; 2012-10-15 13:04:17 +00:00