X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=idl%2FBLSURFPlugin_Algorithm.idl;h=5b889d7f1ef29c0226c7bdaed566925862595fd4;hb=eb4032790e66b175e653da3a6cd843218789c331;hp=d7f9c11d15af114446c658525b61b1d118795bff;hpb=7ff943acaaab8240d6406feb33a05ba0b9a38d6e;p=plugins%2Fblsurfplugin.git diff --git a/idl/BLSURFPlugin_Algorithm.idl b/idl/BLSURFPlugin_Algorithm.idl index d7f9c11..5b889d7 100644 --- a/idl/BLSURFPlugin_Algorithm.idl +++ b/idl/BLSURFPlugin_Algorithm.idl @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D +// Copyright (C) 2007-2024 CEA, EDF // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -26,9 +26,10 @@ #ifndef _SMESH_BLSURFALGORITHM_IDL_ #define _SMESH_BLSURFALGORITHM_IDL_ -#include "SMESH_Hypothesis.idl" #include "GEOM_Gen.idl" #include "SALOME_Exception.idl" +#include "SMESH_Hypothesis.idl" +#include "SMESH_Mesh.idl" /*! * BLSURFPlugin: interfaces to BLSURF related hypotheses and algorithms @@ -37,6 +38,14 @@ module BLSURFPlugin { typedef sequence string_array; + // Enforced 1D Mesh + struct MG_EnforcedMesh1D + { + SMESH::SMESH_IDSource mesh; // mesh, group or sub-mesh + string groupName; // optional name of a group to add mesh edges to + }; + typedef sequence< MG_EnforcedMesh1D > EnforcedMeshesList; + // Enforced vertex name typedef string TEnfName; // Entry @@ -44,12 +53,12 @@ module BLSURFPlugin typedef sequence TEntryList; // Group name typedef string TEnfGroupName; - + // Coordinates of enforced vertex typedef sequence TEnfVertexCoords; // List of coords typedef sequence TEnfVertexCoordsList; - + // Enforced vertex struct TEnfVertex { TEnfName name; @@ -119,6 +128,13 @@ module BLSURFPlugin }; typedef sequence TPeriodicityList; + + // Hyper-patches + typedef sequence< long > THyperPatch; + typedef sequence< THyperPatch > THyperPatchList; + typedef sequence< string > THyperPatchEntries; + typedef sequence< THyperPatchEntries > THyperPatchEntriesList; + typedef sequence< GEOM::ListOfGO > THyperPatchShapesList; /*! * BLSURFPlugin_BLSURF: interface of BLSURF algorithm @@ -134,7 +150,13 @@ module BLSURFPlugin { /*! - * Sets a way to define size of mesh elements to generate + * Get version of MeshGems suite. + * The version is a string in form .-. Example: "2.9-6". + */ + string GetMeshGemsVersion(); + + /*! + *Set a way to define size of mesh elements to generate * 0 - size is defined automatically * 1 - size is set by SetPhySize() method * 2 - size is set by SetPhySize() method. A sizemap is defined. @@ -143,7 +165,7 @@ module BLSURFPlugin long GetPhysicalMesh(); /*! - * Sets a way to define maximum angular deflection of mesh from CAD model + *Set a way to define maximum angular deflection of mesh from CAD model * 0 - deflection is defined automatically * 1 - deflection is set by SetAngleMesh() method * 2 - deflection is set by SetAngleMesh() method. A sizemap is defined (TODO). @@ -152,7 +174,7 @@ module BLSURFPlugin long GetGeometricMesh(); /*! - * Sets size of mesh elements to generate + *Set size of mesh elements to generate */ void SetPhySize(in double size); void SetPhySizeRel(in double size); @@ -160,7 +182,7 @@ module BLSURFPlugin boolean IsPhySizeRel(); /*! - * Sets lower boundary of mesh element size + *Set lower boundary of mesh element size */ void SetMinSize(in double theMinSize); void SetMinSizeRel(in double theMinSize); @@ -168,7 +190,7 @@ module BLSURFPlugin boolean IsMinSizeRel(); /*! - * Sets upper boundary of mesh element size + *Set upper boundary of mesh element size */ void SetMaxSize(in double theMaxSize); void SetMaxSizeRel(in double theMaxSize); @@ -176,7 +198,7 @@ module BLSURFPlugin boolean IsMaxSizeRel(); /*! - * Sets maximal allowed ratio between the lengths of two adjacent edges + *Set maximal allowed ratio between the lengths of two adjacent edges */ void SetUseGradation(in boolean toUse); boolean GetUseGradation(); @@ -184,7 +206,7 @@ module BLSURFPlugin double GetGradation(); /*! - * Sets maximal allowed ratio between the lengths of two adjacent edges in 3D mesh + *Set maximal allowed ratio between the lengths of two adjacent edges in 3D mesh */ void SetUseVolumeGradation(in boolean toUse); boolean GetUseVolumeGradation(); @@ -192,19 +214,20 @@ module BLSURFPlugin double GetVolumeGradation(); /*! - * Sets to create quadrilateral elements or not + *Set to create quadrilateral elements or not */ void SetQuadAllowed(in boolean allowed); - boolean GetQuadAllowed(); + void SetElementType(in long elementType); + long GetElementType(); /*! - * Sets angular deflection (in degrees) of a mesh face and edge from CAD surface + *Set angular deflection (in degrees) of a mesh face and edge from CAD surface */ void SetAngleMesh(in double angle); double GetAngleMesh(); /*! - * Sets the maximum desired distance between a triangle and its supporting CAD surface + *Set the maximum desired distance between a triangle and its supporting CAD surface */ void SetChordalError(in double distance); double GetChordalError(); @@ -269,7 +292,7 @@ module BLSURFPlugin double GetCorrectSurfaceIntersectionMaxCost(); /*! - * This patch independent correction option can be activated to remove the bad + * This patch independent correction option can be activated to remove the bad * elements (often called slivers) from the generated mesh, without taking into account * the tags (attributes) specification. */ @@ -278,7 +301,7 @@ module BLSURFPlugin /*! * This parameter defines the aspect ratio triggering the "bad element" - * classification for the force bad surface element removal option. + * classification for the force bad surface element removal option. */ void SetBadElementAspectRatio(in double ratio); double GetBadElementAspectRatio(); @@ -298,7 +321,7 @@ module BLSURFPlugin boolean GetQuadraticMesh(); /*! - * Sets topology usage way defining how mesh conformity is assured + *Set topology usage way defining how mesh conformity is assured * value=0 - mesh conformity is assured by conformity of a shape * value=1,2 - mesh conformity is assured by pre-processing a CAD model (OBSOLETE) * value=3 - mesh conformity is assured by pre-processing a CAD model with Pre-CAD @@ -306,12 +329,55 @@ module BLSURFPlugin void SetTopology(in long way); long GetTopology(); + + /*! + * Activate/deactivate surface proximity computation + */ + void SetSurfaceProximity( in boolean toUse ); + boolean GetSurfaceProximity(); + + /*! + * Set number of surface element layers to be generated due to surface proximity + */ + void SetNbSurfaceProximityLayers( in short nbLayers ); + short GetNbSurfaceProximityLayers(); + + /*! + * Set coefficient by which size of element refined due to surface proximity is increased + */ + void SetSurfaceProximityRatio( in double ratio ); + double GetSurfaceProximityRatio(); + + /*! + * Activate/deactivate volume proximity computation + */ + void SetVolumeProximity( in boolean toUse ); + boolean GetVolumeProximity(); + + /*! + * Set number of surface element layers to be generated due to volume proximity + */ + void SetNbVolumeProximityLayers( in short nbLayers ); + short GetNbVolumeProximityLayers(); + /*! - * Sets verbosity level in the range 0 to 100. + * Set coefficient by which size of element refined due to volume proximity is increased + */ + void SetVolumeProximityRatio( in double ratio ); + double GetVolumeProximityRatio(); + + /*! + * Set verbosity level in the range 0 to 10. */ void SetVerbosity(in short theVal) raises (SALOME::SALOME_Exception); short GetVerbosity(); + /*! + * Set/Get enforced 1D meshes + */ + void SetEnforcedMeshes( in EnforcedMeshesList enforcedMeshes ); + EnforcedMeshesList GetEnforcedMeshes(); + /*! * Set enforce_cad_edge_sizes parameter * @@ -339,6 +405,15 @@ module BLSURFPlugin void SetJacobianRectification( in boolean allowRectification ); boolean GetJacobianRectification(); + /*! + * Set use_deprecated_patch_mesher parameter (compatibility with older versions of Meshgems) + * + * the use_deprecated_patch_mesher parameter allows to keep the same behaviour than + * in salome < 8.3 (meshgems 2.1.11 instead of meshgems >= 2.4.5) + */ + void SetUseDeprecatedPatchMesher( in boolean useDeprecatedPatchMesher ); + boolean GetUseDeprecatedPatchMesher(); + /*! * Set max_number_of_points_per_patch parameter * @@ -349,6 +424,15 @@ module BLSURFPlugin void SetMaxNumberOfPointsPerPatch( in long nb ) raises (SALOME::SALOME_Exception); long GetMaxNumberOfPointsPerPatch(); + + /*! + * Set max_number_of_threads parameter + * + * Set the maximum of threads to use for multithreading mesh computation. + */ + void SetMaxNumberOfThreads( in long nb ) raises (SALOME::SALOME_Exception); + long GetMaxNumberOfThreads(); + /*! * Set respect_geometry parameter * @@ -431,16 +515,19 @@ module BLSURFPlugin string GetTags(); /*! - * To merges edges. + * Set hyper-patches */ - void SetPreCADMergeEdges(in boolean toMergeEdges); - boolean GetPreCADMergeEdges(); + void SetHyperPatches(in THyperPatchList hpl); + THyperPatchList GetHyperPatches( in GEOM::GEOM_Object mainShape ); + void SetHyperPatchShapes(in THyperPatchShapesList hpsl); + THyperPatchEntriesList GetHyperPatchShapes(); + void SetHyperPatchEntries(in THyperPatchEntriesList hpel); /*! - * To remove tiny UV edges edges. + * To merges edges. */ - void SetPreCADRemoveTinyUVEdges(in boolean toRemoveTinyUVEdges); - boolean GetPreCADRemoveTinyUVEdges(); + void SetPreCADMergeEdges(in boolean toMergeEdges); + boolean GetPreCADMergeEdges(); /*! * To remove duplicate CAD faces. @@ -462,7 +549,7 @@ module BLSURFPlugin boolean GetPreCADDiscardInput(); /*! - * Sets advanced option value + *Set advanced option value */ void SetOptionValue(in string optionName, in string optionValue) raises (SALOME::SALOME_Exception); @@ -579,6 +666,7 @@ module BLSURFPlugin /*! * Set/get/unset an enforced vertex on geom face */ + // OBSOLETE boolean SetEnforcedVertex(in GEOM::GEOM_Object theFace, in double x, in double y, in double z) raises (SALOME::SALOME_Exception); boolean SetEnforcedVertexNamed(in GEOM::GEOM_Object theFace, in double x, in double y, in double z, in TEnfName theVertexName) raises (SALOME::SALOME_Exception); boolean SetEnforcedVertexGeom(in GEOM::GEOM_Object theFace, in GEOM::GEOM_Object theVertex) raises (SALOME::SALOME_Exception); @@ -586,17 +674,27 @@ module BLSURFPlugin boolean SetEnforcedVertexNamedWithGroup(in GEOM::GEOM_Object theFace, in double x, in double y, in double z, in TEnfName theVertexName, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception); boolean SetEnforcedVertexGeomWithGroup(in GEOM::GEOM_Object theFace, in GEOM::GEOM_Object theVertex, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception); - TEnfVertexList GetEnforcedVertices(in GEOM::GEOM_Object theFace) raises (SALOME::SALOME_Exception); - boolean UnsetEnforcedVertex(in GEOM::GEOM_Object theFace, in double x, in double y, in double z) raises (SALOME::SALOME_Exception); boolean UnsetEnforcedVertexGeom(in GEOM::GEOM_Object theFace, in GEOM::GEOM_Object theVertex) raises (SALOME::SALOME_Exception); boolean UnsetEnforcedVertices(in GEOM::GEOM_Object theFace) raises (SALOME::SALOME_Exception); - /*! - * Set/get/unset an enforced vertex on geom face given by entry - */ - boolean SetEnforcedVertexEntry(in TEntry theFaceEntry, in double x, in double y, in double z, + // NEW - no face + boolean AddEnforcedVertex(in double x, in double y, in double z) raises (SALOME::SALOME_Exception); + boolean AddEnforcedVertexNamed(in double x, in double y, in double z, in TEnfName theVertexName) raises (SALOME::SALOME_Exception); + boolean AddEnforcedVertexGeom(in GEOM::GEOM_Object theVertex) raises (SALOME::SALOME_Exception); + boolean AddEnforcedVertexWithGroup(in double x, in double y, in double z, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception); + boolean AddEnforcedVertexNamedWithGroup(in double x, in double y, in double z, in TEnfName theVertexName, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception); + boolean AddEnforcedVertexGeomWithGroup(in GEOM::GEOM_Object theVertex, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception); + + boolean RemoveEnforcedVertex(in double x, in double y, in double z) raises (SALOME::SALOME_Exception); + boolean RemoveEnforcedVertexGeom(in GEOM::GEOM_Object theVertex) raises (SALOME::SALOME_Exception); + boolean RemoveEnforcedVertices() raises (SALOME::SALOME_Exception); + + /*! + * Set/get/unset an enforced vertex on geom face given by entry + */ + boolean SetEnforcedVertexEntry(in TEntry theFaceEntry, in double x, in double y, in double z, in TEnfName theVertexName, in TEntry theVertexEntry, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception); TEnfVertexList GetEnforcedVerticesEntry(in TEntry theFaceEntry) raises (SALOME::SALOME_Exception); @@ -638,34 +736,10 @@ module BLSURFPlugin /////////////////////// /*! - * Sets the file for export resulting mesh in GMF format + *Set the file for export resulting mesh in GMF format */ -// void SetGMFFile(in string theFileName, in boolean isBinary); void SetGMFFile(in string theFileName); string GetGMFFile(); -// boolean GetGMFFileMode(); - - // - // Obsolete methods - To be removed in V7 - // - void SetPhyMin(in double theMinSize); - double GetPhyMin(); - void SetPhyMax(in double theMaxSize); - double GetPhyMax(); - void SetGeoMin(in double theMinSize); - double GetGeoMin(); - void SetGeoMax(in double theMaxSize); - double GetGeoMax(); - void SetAngleMeshS(in double angle); - double GetAngleMeshS(); - void SetAngleMeshC(in double angle); - double GetAngleMeshC(); - void SetDecimesh(in boolean toIgnoreEdges); - boolean GetDecimesh(); - void SetPreCADRemoveNanoEdges(in boolean toRemoveNanoEdges); - boolean GetPreCADRemoveNanoEdges(); - void SetPreCADEpsNano(in double epsNano); - double GetPreCADEpsNano(); }; };