Commit Graph

323 Commits

Author SHA1 Message Date
eap
c6bde687aa struct SMESH_ElementSearcher
{
+  virtual const SMDS_MeshElement* FindClosestTo( const gp_Pnt&       point,
+                                                 SMDSAbs_ElementType type) = 0;
 }
+  int Reorient2D (TIDSortedElemSet &       theFaces,
+                  const gp_Dir&            theDirection,
+                  const SMDS_MeshElement * theFace);

+  static double GetDistance( const SMDS_MeshFace* face, const gp_Pnt& point );

+  void ElementBndBoxTree::getElementsInSphere ( const gp_XYZ&     center,
+                                                const double      radius,
+                                                TIDSortedElemSet& foundElems)
2012-06-29 13:41:37 +00:00
eap
6051d0caf8 struct SMESH_ElementSearcher
{
+  virtual const SMDS_MeshElement* FindClosestTo( const gp_Pnt&       point,
+                                                 SMDSAbs_ElementType type) = 0;
 }
+  int Reorient2D (TIDSortedElemSet &       theFaces,
+                  const gp_Dir&            theDirection,
+                  const SMDS_MeshElement * theFace);

+  static double GetDistance( const SMDS_MeshFace* face, const gp_Pnt& point );
2012-06-29 13:40:11 +00:00
eap
35eb82363a - SMDS_MeshNode* AddNode(double x, double y, double z, int ID = 0);
+  SMDS_MeshNode* AddNode(double x, double y, double z, int ID = 0, double u=0., double v=0.);
2012-06-08 07:06:43 +00:00
gdd
86c4cc3003 Fix for compilation with gcc 4.7 2012-06-07 11:26:44 +00:00
vsr
d4a710ce52 Merge from V6_5_BR 05/06/2012 2012-06-05 12:18:07 +00:00
eap
08e8a82bb2 0021530: EDF 2176 SMESH: Projection 1D-2D with compounds
In GetGroupSubMeshesContaining() preview a case where the main
     shape is a group
2012-04-11 08:19:09 +00:00
eap
264238f852 0021208: Performance issue when loading SMESH with an hdf file containing a big mesh
loadDependentMeshes() before algo->Compute()
2012-03-22 14:09:13 +00:00
eap
a75b6e066e 0020749: EDF 1291 SMESH : Create 2D Mesh from 3D improvement
In MakeBoundaryMesh(), try to set new elements to a shape
2012-03-16 16:38:19 +00:00
eap
656d6656d4 0021208: Performance issue when loading SMESH with an hdf file containing a big mesh
rename private methods to start from lower-case letters

+  void Load();
2012-02-24 10:39:58 +00:00
eap
d5a3c3b28a 0021208: Performance issue when loading SMESH with an hdf file containing a big mesh
rename private methods to start from lower-case letters

  enum compute_event {
+     SUBMESH_LOADED

+  void loadDependentMeshes();
2012-02-24 10:38:22 +00:00
eap
d8cd2598fc 0021208: Performance issue when loading SMESH with an hdf file containing a big mesh
add a note on usage of mySubMeshes while mesh loading
2012-02-24 10:33:21 +00:00
gdd
4ad6a5b19b Replace Descret by Discrete in variable and method names. 2012-02-17 14:30:02 +00:00
ana
e1a3f42b5c 021374: EDF 1898 SMESH: Extrusion of a node to have an edge 2012-02-16 14:48:49 +00:00
gdd
af3910d143 Initialisation of private variable. 2012-02-15 13:07:11 +00:00
eap
785e19b0ca 0021375: EDF 1671 SMESH: Dump study of current state
avoid crash at deletion of SMESH_subMesh::myOwnListeners at mesh removal

-  std::list< std::pair< SMESH_subMesh*, EventListener* > > myOwnListeners;
+  struct OwnListenerData {
+    ...
+  };
+  std::list< OwnListenerData > myOwnListeners;
2012-02-09 13:11:58 +00:00
eap
14e44c7736 0021375: EDF 1671 SMESH: Dump study of current state
+  bool MeshExists( int meshId ) const;
     used to avoid crash at deletion of SMESH_subMesh::myOwnListeners
     at mesh removal
2012-02-09 13:10:52 +00:00
eap
7a57f9da6e 0021489: EDF 2096: Regression in Prism algorithm between 6.3.1 and 6.4.0
fix LoadNodeColumns()
2012-02-09 12:30:06 +00:00
prascle
fda2d7b99e PR: flat elements on 2D meshes 2012-02-02 17:06:56 +00:00
eap
fe663d61f6 0021480: EDF 2084 SMESH: SIGSEGV when validating Netgen3D hypothesis
In destructor, delete all data and delete mesh DS in a thread
2012-01-24 12:59:44 +00:00
eap
fe75082f74 0021480: EDF 2084 SMESH: SIGSEGV when validating Netgen3D hypothesis
in CreateMesh(), fix storing a new mesh in aStudyContext:

-  aStudyContext->mapMesh[_localId] = aMesh;
+  aStudyContext->mapMesh[_localId-1] = aMesh;
2012-01-24 12:58:12 +00:00
eap
b35e752a84 0021480: EDF 2084 SMESH: SIGSEGV when validating Netgen3D hypothesis
+	$(BOOST_LIB_THREAD)  \
2012-01-24 12:57:05 +00:00
eap
6a9e9ab497 0021472: EDF 2080 SMESH: Projection1D2D on a Voronoi structure fails
fix GetMediumPos() to return EDGE instead of FACE for 2 VERTEXes
2012-01-18 12:42:06 +00:00
eap
fbae18cd7f Add "const char* name" argument to consrtucctor of SMESH_subMeshEventListener 2012-01-18 12:07:14 +00:00
ana
253807f5b3 Fix for the bug IPAL22851: Sub-shapes spelling 2012-01-13 15:11:09 +00:00
eap
98921cf0d1 0021330: EDF 1919 SMESH: Convert to quadratic gives wrong elements
fix convertElemToQuadratic()
2012-01-11 08:43:41 +00:00
eap
bfb3c2e489 0021270: EDF 1870 SMESH: ExtrusionAlongPathObjX + Merge nodes remove 3D elements
in MergeNodes(), fix detection of replaced nodes of an elem
2012-01-11 08:15:48 +00:00
eap
e8b482055b 0021457: [CEA] import check_mesh stability
in Transform(), reverse elements only if needed
2012-01-10 14:36:48 +00:00
jfa
5acab3d327 Porting to OCCT development version: Standard_PI -> M_PI 2011-12-26 13:07:08 +00:00
eap
fd5de6779a 0021347: [CEA 497] Visualisation into SMESH and VISU of hexagonal prism cells (MED_OCTA12)
0021380: EDF 1937 SMESH: Take into account QUAD9 and HEXA27

fix AddPolygonalFace()
2011-12-16 09:22:06 +00:00
eap
032bca98c2 0021347: [CEA 497] Visualisation into SMESH and VISU of hexagonal prism cells (MED_OCTA12)
0021380: EDF 1937 SMESH: Take into account QUAD9 and HEXA27
Update
  AddElement()
  QuadToTri()
  SplitVolumesIntoTetra ()
  RotationSweep()
  ExtrusionSweep()
  Transform()
  ConvertToQuadratic()
  Make2DMeshFrom3D()
  MakeBoundaryMesh()
2011-12-16 09:21:35 +00:00
eap
da68d59ab6 0021347: [CEA 497] Visualisation into SMESH and VISU of hexagonal prism cells (MED_OCTA12)
0021380: EDF 1937 SMESH: Take into account QUAD9 and HEXA27

+  int NbBiQuadQuadrangles() const throw(SALOME_Exception);
+  int NbTriQuadraticHexas() const throw(SALOME_Exception);
+  int NbHexagonalPrisms() const throw(SALOME_Exception);
2011-12-16 09:14:54 +00:00
eap
d9297961f7 0021440: EDF 2040 SMESH: Bug translation of a mesh
GetMediumNode(): use Force3D=true if projection on EDGE fails
2011-12-12 11:00:48 +00:00
vsr
493747e8ea Merge from V6_4_BR 05/12/2011 2011-12-05 11:03:04 +00:00
eap
41d7b89b3b 0021336: EDF 1717 SMESH: New algorithm "body fitting" cartesian unstructured
1) catch SMESH_ComputeError thrown by algo->Compute()
2)
+  SMESH_Algo* GetAlgo() const;
2011-10-28 12:48:56 +00:00
eap
07f1cc8292 speed up NotifySubMeshesHypothesisModification()
+  if ( !GetMeshDS()->IsUsedHypothesis( hyp ))
+    return;
2011-10-28 12:47:11 +00:00
eap
577f41d12d improve comment 2011-10-28 12:46:32 +00:00
vsr
b6174726d9 Merge from V6_3_BR branch (Windows porting) 27/10/2011 2011-10-27 15:33:35 +00:00
eap
1c3b8d413b 0021096: EDF 1729 SMESH: Create a Projection 1D-2D algorithm
In CleanDependants(), do not call ComputeStateEngine(CLEAN) of a
dependant subMesh if it IsEmpty() in order to prevent infinite CLEAN
via event lesteners
2011-10-17 09:59:32 +00:00
eap
f95be2abe0 0021106: EDF 1691 SMESH: MEsh.Group(SubShape) fails on Shells
Forbid 3D mesh on the SHELL
2011-10-13 06:35:00 +00:00
eap
ce1fe98019 fix a comment 2011-10-13 05:28:23 +00:00
eap
9484b374c3 0021096: EDF 1729 SMESH: Create a Projection 1D-2D algorithm
+  static TopoDS_Shape GetCommonAncestor(const TopoDS_Shape& shape1,
+                                        const TopoDS_Shape& shape2,
+                                        const SMESH_Mesh&   mesh,
+                                        TopAbs_ShapeEnum    ancestorType);

+  std::pair<int, TopAbs_ShapeEnum> GetMediumPos(const SMDS_MeshNode* n1,
+                                                const SMDS_MeshNode* n2);
2011-10-13 05:27:59 +00:00
eap
eaff026082 0021371: EDF SMESH: The propagation of elements courbure is sometimes wrong in quadratic conversion with nodes on geometry
In FixQuadraticElements(), enhance detection of straight links
2011-10-06 16:01:08 +00:00
eap
bc5760bd4e untabify 2011-10-06 12:10:14 +00:00
eap
9ff48e7e76 0021370: EDF SMESH: Hexahedron + Composite Side Disretization generate a bad mesh
Redesign LoadNodeColumns() to work with a composite base side
2011-10-06 09:42:51 +00:00
eap
d36c35f9a2 fix comment 2011-10-06 09:39:29 +00:00
rnv
4a818e20d5 Fix for the issue "21356: EDF 1705 SMESH: Extrusion along a path using a mesh w/o geometry". 2011-09-22 07:07:55 +00:00
eap
c267141b79 Fix a bug reported to SALOME forum at "Bug: Salome 6.3.1 Auto Tetrahedron meshing" discussion 2011-08-19 12:36:55 +00:00
jfa
33fc29c42a Porting to OCCT6.5.1 2011-08-12 13:12:13 +00:00
jfa
d566947c69 Porting to OCCT6.5.1 2011-08-11 13:54:07 +00:00
eap
39841ffadd 0020511: EDF 1101 SMESH : Add CGNS to Mesh Format Supported
make CGNS library an optional prerequisite
2011-08-11 11:38:37 +00:00
eap
418c46e962 0020511: EDF 1101 SMESH : Add CGNS to Mesh Format Supported
Move general utils independent of SMESH data structures to SMESHUtils
2011-08-10 10:18:40 +00:00
eap
4913698067 0020511: EDF 1101 SMESH : Add CGNS to Mesh Format Supported
+  SMESH_Group (SMESHDS_GroupBase* groupDS);
2011-08-10 10:17:44 +00:00
eap
111c7a0cd2 0020511: EDF 1101 SMESH : Add CGNS to Mesh Format Supported 2011-08-10 10:17:29 +00:00
eap
d867e9b08b 0021330]: EDF 1919 SMESH: Convert to quadratic gives wrong elements
if ( surface->IsUPeriodic() || surface->IsVPeriodic() ||
+         surface->IsUClosed()   || surface->IsVClosed() )
2011-08-02 09:35:37 +00:00
vsr
39f36db219 Merge from V6_3_BR 19/07/2011 2011-07-19 12:05:24 +00:00
vsr
91c92cb543 Merge from V6_3_BR 15/07/2011 2011-07-15 11:19:53 +00:00
eap
fa4bd0dfc4 0021271: [CEA 473] Implement min size in netgen plugin
struct TDefaults
   {
     double        _elemLength;
     int           _nbSegments;
+    TopoDS_Shape* _shape; // future shape of the mesh being created
   };
2011-07-05 12:06:17 +00:00
eap
0650af74ab IPAL22173 TC6.2.0: "Netgen1D-2D" algorithm doesn't work on "flight_solid.brep"
1) Treate a case where a valid mesh is computed anyhow while the algo reports errors
    2) Remove unused
-  bool ApplyToCollection (SMESH_Algo*         theAlgo,
-                          const TopoDS_Shape& theCollection);
2011-06-28 11:54:43 +00:00
eap
3eefc085d8 IPAL22173 TC6.2.0: "Netgen1D-2D" algorithm doesn't work on "flight_solid.brep"
Treate a case where a valid mesh is computed anyhow while the algo reports errors

+  enum EMeshError { MEr_OK = 0, MEr_HOLES, MEr_BAD_ORI, MEr_EMPTY };
+
+  /*!
+   * \brief Finds topological errors of a sub-mesh
+   */
+  static EMeshError GetMeshError(SMESH_subMesh* subMesh);
2011-06-28 11:53:37 +00:00
eap
454d871477 IPAL22173 TC6.2.0: "Netgen1D-2D" algorithm doesn't work on "flight_solid.brep"
Treate a case where a valid mesh is computed anyhow while the algo reports errors

+  COMPERR_WARNING        = -10  //!< algo reports error but sub-mesh is computed anyway

+  bool IsKO()     { return myName != COMPERR_OK && myName != COMPERR_WARNING; }
2011-06-28 11:52:56 +00:00
eap
b21414354c 0021014: EDF 1583 SMESH: Improvement of the Python Dump for the creation of groups
SMESH_Group* AddGroup (const SMDSAbs_ElementType theType,
                          const char*               theName,
                          int&                      theId,
                          const TopoDS_Shape&       theShape=TopoDS_Shape(),
+                         const SMESH_PredicatePtr& thePredicate=SMESH_PredicatePtr());
2011-06-23 12:12:22 +00:00
eap
f1c62974f6 0021014: EDF 1583 SMESH: Improvement of the Python Dump for the creation of groups
SMESH_Group (int                       theID,
               const SMESH_Mesh*         theMesh,
               const SMDSAbs_ElementType theType,
               const char*               theName,
               const TopoDS_Shape&       theShape = TopoDS_Shape(),
+              const SMESH_PredicatePtr& thePredicate = SMESH_PredicatePtr());
2011-06-23 12:11:40 +00:00
eap
eb57bc9623 improve comments 2011-06-14 13:51:55 +00:00
eap
00fdc117cd 0020743: EDF 1271 SMESH : Create a mesh from a group / export groups
void ExportMED(const char *file,
                  const char* theMeshName = NULL,
                  bool theAutoGroups = true,
-                 int theVersion = 0)
+                 int theVersion = 0,
+                 const SMESHDS_Mesh* meshPart = 0)
2011-06-14 13:51:27 +00:00
vsr
2c607013a2 Merge from V6_3_BR 06/06/2011 2011-06-06 08:15:39 +00:00
prascle
ecea4040f1 PR: create flat elements on face groups (ASTER calculations) 2011-03-30 15:48:07 +00:00
prascle
4ac8d07584 PR: DoubleNodesOnGroupBoundaries in progress 2011-03-28 14:46:16 +00:00
vsr
a593ecab98 Fix compilation error on gcc 4.2 2011-03-21 15:12:11 +00:00
adam
0f635a43a3 EA: Fix compilation with gcc-4.5.2 2011-03-19 22:21:45 +00:00
prascle
9f36bbc95a PR: double nodes and flat elements for ASTER calculations in progress 2011-03-19 06:55:48 +00:00
adam
c4bd4ff43b Implement Cancel Compute (end) 2011-03-17 09:53:14 +00:00
eap
77e2a3970b 0020978: EDF 1475 SMESH: Convert linear to quadratic on a submesh
+  void AddTLinks(const SMDS_MeshEdge*   edge);
+  void AddTLinks(const SMDS_MeshFace*   face);
+  void AddTLinks(const SMDS_MeshVolume* vol);
2011-03-16 15:36:40 +00:00
eap
59fe802c13 0020978: EDF 1475 SMESH: Convert linear to quadratic on a submesh
+  void ConvertToQuadratic(const bool theForce3d, TIDSortedElemSet& theElements);
+  void ConvertFromQuadratic(TIDSortedElemSet& theElements);
2011-03-16 15:36:15 +00:00
prascle
fcae5eda64 PR: double nodes and flat elements for ASTER calculations in progress 2011-03-16 10:51:52 +00:00
prascle
bdfc51bda9 PR: double nodes and flat elements for ASTER calculations in progress 2011-03-12 15:07:47 +00:00
eap
bd4cadfcf0 020749: EDF 1291 SMESH : Create 2D Mesh from 3D improvement
int MakeBoundaryMesh(const TIDSortedElemSet& elements,
                        Bnd_Dimension           dimension,
                        SMESH_Group*            group = 0,
                        SMESH_Mesh*             targetMesh = 0,
                        bool                    toCopyElements = false,
                        bool                    toCopyExistingBondary = false,
+                       bool                    toAddExistingBondary = false,
+                       bool                    aroundElements = false);
2011-03-11 10:15:41 +00:00
prascle
b3a725059c PR: doubleNodesOnGroupBoundaries in progress 2011-03-09 16:05:51 +00:00
prascle
293e2534c0 PR: doubleNodesOnGroupBoundaries in progress 2011-03-09 08:42:21 +00:00
rnv
fa15bee5e1 Fix for the issue "21203: EDF 1797 SMESH: SIGSEGV with move node on a Mesh with 0D elements" 2011-03-01 09:35:50 +00:00
eap
b712c057d5 Modification of hypothesis parameters modifies the mesh
+  GetMeshDS()->Modified();
2011-02-10 09:08:32 +00:00
eap
e5ac48bcf7 Addition and removal of hypotheses modifies the mesh
+  GetMeshDS()->Modified();
2011-02-10 09:02:43 +00:00
eap
3c96a71bde Regression of the test case patterns/A8
1) fix an error made during SMDS redesign
-      if (node->getshapeId() <0) {
+      if (node->getshapeId() <1) {
   2) fix an error of Clear() that not all fields are cleared
   3) create polyhedrons only if volume boundary is split by refinement
2011-02-09 13:29:33 +00:00
eap
0953f1790f Regression of test case bugs/P1
Restore the lost initialization of _nbSegments
2011-02-07 15:08:52 +00:00
eap
d419c86499 fix indentation 2011-01-31 13:07:39 +00:00
eap
861641c25a 0020973: EDF 1554 GHS3DPLUGIN: Make possible to have a mixed mesh hexa-tetra with GHS3D
enlarge box size of each branch by 1e-10 of root size
2011-01-31 13:07:07 +00:00
eap
40b9d1ba43 0021130: EDF 1746 SMESH: Issue with export in STL format
1) move instantiations of templates from separate files to SMESH_TypeDefs.hxx
   2) move frequently used typedefs and small classes from SMESH_MeshEditor to to SMESH_TypeDefs.hxx
2011-01-27 16:44:48 +00:00
eap
b337ba17f3 not initialized value 2011-01-27 13:40:10 +00:00
eap
cbe632e32e unused variable 2011-01-27 13:37:31 +00:00
eap
812e5de47f 0021134: EDF 1749 GHS3D: GHS3D can't compute the 3D elements from 2D skin elements
Fix SplitVolumesIntoTetra() taking into account changed behavior
    of the complex SMESHDS_SubMesh
2011-01-26 13:40:27 +00:00
eap
bc4ff5ff6c remove useless dump of vertices of failed shape 2011-01-25 14:45:01 +00:00
eap
80ac3613f8 valid IDs count from 1 2011-01-24 09:15:52 +00:00
eap
02201a772d no more memostat() 2011-01-18 12:11:56 +00:00
eap
78d0067647 0020832: EDF 1359 SMESH : Automatic meshing of boundary layers
prevent from an infinite recursion via the event listener
2011-01-18 12:11:00 +00:00
eap
4466dfe1ce 0020832: EDF 1359 SMESH : Automatic meshing of boundary layers
1) make CheckNodeUV() and CheckNodeU() optionally return XYZ of node
      projection to shape
   2) prevent ancestors iterator from returning duplicates
   3) move IsClosedEdge() to SMESH_MesherHelper from StdMeshers_ProjectionUtils
   4) for hexa 3D
   static bool LoadNodeColumns(TParam2ColumnMap & theParam2ColumnMap,
                               const TopoDS_Face& theFace,
                               const TopoDS_Edge& theBaseEdge,
                               SMESHDS_Mesh*      theMesh,
+                              SMESH_ProxyMesh*   theProxyMesh=0);
2011-01-18 12:09:32 +00:00
eap
121d45ed88 0020832: EDF 1359 SMESH : Automatic meshing of boundary layers
make SMESH_ElementSearcher work on a sub-set of elements
2011-01-18 11:03:09 +00:00
eap
c0b03d98ac 0020832: EDF 1359 SMESH : Automatic meshing of boundary layers
Make const some requiring methods
2011-01-18 11:02:33 +00:00
eap
7b1bae1651 minor change 2011-01-18 11:02:03 +00:00
eap
20cf4f072b 0020832: EDF 1359 SMESH : Automatic meshing of boundary layers
+	SMESH_ProxyMesh.hxx
2011-01-18 11:01:28 +00:00
inv
2de294b09a Merge from V6_2_BR 23/12/2010 2010-12-24 08:18:34 +00:00
prascle
7013eafe2d PR: debug split into tetras 2010-12-05 22:57:20 +00:00