Commit Graph

274 Commits

Author SHA1 Message Date
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
prascle
43a4d0b5c1 PR: debug polygons and merge nodes 2010-12-05 19:22:06 +00:00
prascle
45ed5d9a93 PR: fix Transform method with orphan nodes 2010-12-01 22:56:36 +00:00
prascle
2e16ca1281 PR: correct some warnings 2010-11-30 22:35:24 +00:00
prascle
8fa039a796 merge from branch BR_SMDS_MEMIMP 29 nov 2010 2010-11-29 13:20:53 +00:00
vsr
dd21629a81 Merge from V5_1_main 26/11/2010 2010-11-26 15:48:22 +00:00
vsr
d8f644ca3d Merge from V5_1_main branch 24/11/2010 2010-11-25 12:44:43 +00:00
vsr
3a40107689 Merge from V5_1_main 10/06/2010 2010-06-10 09:43:07 +00:00
vsr
9357f5c870 Merge from V5_1_main 14/05/2010 2010-05-14 15:32:37 +00:00
eap
a710674f83 020697: EDF 1248 SMESH: Sub-mesh on group of face not taken into account
* Correct adding geom groups into map of ansestors
2010-02-18 08:29:00 +00:00
eap
84dcc4efcf 0020693: EDF 1288 SMESH: Problem to recompute a mesh with a sub-mesh and a conversion linear-quadratic
* Add CheckNodeU()
* Compute parameters of created medium nodes even in force3d mode
* Leave doxygen-style comments of functions only in the header
2010-02-11 13:16:51 +00:00
eap
7be9f329c4 0020676: EDF 1212 GEOM: Partition operation creates vertices which causes mesh computation to fail with netgen
* Fix GetOrderedEdges(): workaroud for BRepTools_WireExplorer, which return no edges if they are internal
2010-02-11 08:25:06 +00:00
eap
2536cb0c1b Make TNodeXYZ public, which together with SMDS_StdIterator allows getting coordinates of all nodes of mesh element in a couple of lines of code:
typedef SMDS_StdIterator< SMESH_MeshEditor::TNodeXYZ, SMDS_ElemIteratorPtr > TXyzIterator;
  vector<gp_Pnt> coords( TXyzIterator( elem->nodesIterator()), TXyzIterator() );



class SMESH_EXPORT SMESH_MeshEditor
{
public:
+  //------------------------------------------
+  /*!
+   * \brief SMDS_MeshNode -> gp_XYZ convertor
+   */
+  //------------------------------------------
+  struct TNodeXYZ : public gp_XYZ
2010-02-09 11:13:23 +00:00
eap
a3b1bac8a0 020674: EDF 870 SMESH: Mesh generated by Netgen not usable by GHS3D
* Rename HasDegenenaratedEdges() -> HasDegeneratedEdges()
2010-02-01 14:26:09 +00:00
eap
696fa5df7f 020674: EDF 870 SMESH: Mesh generated by Netgen not usable by GHS3D
+   * \brief Check if the shape set through IsQuadraticSubMesh() or SetSubShape()
+   *        has a degenerated edges
+    * \retval bool - true if it has
+   */
+  bool HasDegenenaratedEdges() const { return !myDegenShapeIds.empty(); }
2010-02-01 14:19:06 +00:00
eap
8d99b0dffe 0019296: EDF 681 SMESH - Pre-evaluation of the number of elements before mesh
* Evaluate(): do not call algo->Evaluate() if needed submeshes failed to evaluate
2010-02-01 11:09:38 +00:00
eap
8726d7811f 0019296: EDF 681 SMESH - Pre-evaluation of the number of elements before mesh
Assure that this submesh is evaluated once
2010-01-27 10:09:15 +00:00
eap
6462277df0 shorten code 2010-01-22 11:29:51 +00:00
eap
9f57d8b5e9 initialize _nbSegments 2010-01-20 08:31:14 +00:00
dmv
7a8e3a50af Unstable warning in release mode, on creating radialQuadrangle1D2D meshes. 2010-01-12 15:34:12 +00:00
dmv
06f0c4f62f correct debug messages 2010-01-12 15:32:37 +00:00
dmv
85d94c3b51 0020635: EDF 1223 SMESH: Error message of RadialQuadrangle algorithm not precise 2010-01-12 08:07:50 +00:00
dmv
d316b3a623 0020635: EDF 1223 SMESH: Error message of RadialQuadrangle algorithm not precise 2010-01-11 15:14:52 +00:00
eap
163dc9b8fd 0020028: EDF 842 SMESH : Can't export to med a mesh with same names
for one group of nodes and one group of faces

avoid duplicated group names within one type of elements only
2009-12-25 11:22:10 +00:00
eap
e6e7b52bbf 0020618: EDF 1208 SMESH: problems with DoubleNodeElemGroup*InRegion
1) fix finding element center in isInside()
    2) add classifying on TopoDS_FAce
2009-12-18 10:36:52 +00:00
eap
339e2f0051 0020139: EDF 944 SMESH : Get 2D/3D element with X, Y, Z coordinates
fix isOut()
2009-12-16 08:27:50 +00:00
eap
e7952c1e1e 0020427: EDF 868 SMESH : Be able to define the submeshing order
fix SortByMeshOrder(), forgot to increment iterator
2009-12-14 09:23:56 +00:00
eap
5e7f07d3da untabify 2009-12-10 14:52:59 +00:00
eap
f2c45dcff7 0020427: EDF 868 SMESH : Be able to define the submeshing order
fix SortByMeshOrder(), which replaces a submesh of lower priority
  by one of higher priority even if the last one is not in
  theListToSort
2009-12-10 09:55:48 +00:00
vsr
b03a1e6001 Merge from BR_phase16 branch (09/12/09) 2009-12-09 15:46:26 +00:00
vsr
2daa321efa Merge from V5_1_3_BR branch (07/12/09) 2009-12-08 13:11:42 +00:00
eap
388cb7d58d 0020139: EDF 944 SMESH : Get 2D/3D element with X, Y, Z coordinates
fix isOut()
2009-11-11 14:58:39 +00:00
eap
4cd62d7138 untabify 2009-10-07 13:14:47 +00:00
eap
6510081be2 020461: EDF 1102 GHS3DPLUGIN: Bad detection of volumes with Ghs3d mesh
SMESH_MesherHelper:

-  void SetCheckNodePosition(bool toCheck) { myCheckNodePos = toCheck; }
   /*!
+   * \brief Check and fix node UV on a face
+   *  \retval bool - false if UV is bad and could not be fixed
+   */
+  bool CheckNodeUV(const TopoDS_Face&   F,
+                   const SMDS_MeshNode* n,
+                   gp_XY&               uv,
+                   const double         tol) const;

-  bool            myCheckNodePos;
+  std::set< int > myOkNodePosShapes;
2009-10-02 16:20:31 +00:00
eap
692b18b251 untabify 2009-10-02 13:09:52 +00:00
eap
69aebe3a10 untabify 2009-09-17 12:22:15 +00:00
eap
794e4ede5b untabify 2009-09-17 07:27:34 +00:00
eap
fd8513f94e untabify 2009-09-15 16:18:08 +00:00
dmv
a448c25876 IPAL21346 After Quadrangle Algorithm failed, visualisation of mesh is bad. Regress to 5.1.2 2009-09-15 15:27:58 +00:00
eap
a269dcbbdf 0020431: EDF 1020 SMESH : Radial Mesh of a cylinder
pb: only the 1st algo is applied

     // apply the algos that do not require descretized boundaries
     // ----------------------------------------------------------
     for ( subIt = smWithAlgoSupportingSubmeshes.rbegin(); subIt != subEnd; ++subIt )
+    {
+      sm = *subIt;
       if ( sm->GetComputeState() == SMESH_subMesh::READY_TO_COMPUTE)
       {
2009-09-15 13:24:04 +00:00
eap
8d7286fc5d untabify 2009-09-15 08:46:22 +00:00
eap
0244669837 untabify 2009-09-10 15:29:29 +00:00
ptv
a44eb77228 0020105: EDF 862 SMESH : Creation of the skin elements (2D) of a 3D Mesh 2009-09-10 12:40:55 +00:00
eap
525249fdfb unatbify 2009-09-10 11:06:18 +00:00
eap
99e3564a09 0020464: EDF 1100 SMESH: Performance issue of the function MoveNode
+#include <limits>
2009-09-10 08:10:41 +00:00
ptv
35c05cab65 0020105: EDF 862 SMESH : Creation of the skin elements (2D) of a 3D Mesh 2009-09-10 06:59:27 +00:00
eap
7512099966 0020464: EDF 1100 SMESH: Performance issue of the function MoveNode
0020139: EDF 944 SMESH : Get 2D/3D element with X, Y, Z coordinates

optimize for performance
2009-09-10 05:49:16 +00:00
eap
0f2c407672 0020464: EDF 1100 SMESH: Performance issue of the function MoveNode
struct SMESH_NodeSearcher
 {
   virtual const SMDS_MeshNode* FindClosestTo( const gp_Pnt& pnt ) = 0;
+  virtual void MoveNode( const SMDS_MeshNode* node, const gp_Pnt& toPnt ) = 0;
 };

0020139: EDF 944 SMESH : Get 2D/3D element with X, Y, Z coordinates

+//=======================================================================
+/*!
+ * \brief Return elements of given type where the given point is IN or ON.
+ *
+ * 'ALL' type means elements of any type excluding nodes and 0D elements
+ */
+//=======================================================================
+
+struct SMESH_ElementSearcher
+{
+  virtual void FindElementsByPoint(const gp_Pnt&                           point,
+                                   SMDSAbs_ElementType                     type,
+                                   std::vector< const SMDS_MeshElement* >& foundNodes)=0;
+};
2009-09-10 05:29:55 +00:00
eap
ec71bd93d2 untabify 2009-09-09 06:17:26 +00:00
ptv
2fa6f3c92b remove compilation error on Windows 2009-09-01 06:56:48 +00:00