Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:user:geometry:mesh:3d

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:user:geometry:mesh:3d [2014/08/08 22:32] jorisdoc:user:geometry:mesh:3d [2021/11/19 14:52] (current) papeleux
Line 1: Line 1:
-====== 3D meshers ======+====== 3D Meshers (Volumes) ======
  
  
-===== Transfinite mesher =====+===== Transfinite Mesher =====
  
 Metafor possesses a simple transfinite mesher, which is able to mesh hexahedra (object with 6 sides, such as a cube). For more complex geometries, it is necessary to divide it into hexaedra or use external meshers ([[doc:user:general:glossaire#Samcef]], [[http://tetgen.berlios.de/|TetGen]], ...) and import the mesh in Metafor (see [[doc:user:geometry:import:tuto2]]). Metafor possesses a simple transfinite mesher, which is able to mesh hexahedra (object with 6 sides, such as a cube). For more complex geometries, it is necessary to divide it into hexaedra or use external meshers ([[doc:user:general:glossaire#Samcef]], [[http://tetgen.berlios.de/|TetGen]], ...) and import the mesh in Metafor (see [[doc:user:geometry:import:tuto2]]).
Line 19: Line 19:
 | ''type''   | = ''True'' if mesh elements must be generated (''CELL_HEXA'')\\ = ''False''  if only nodes must be generated (useful to debug only)      | | ''type''   | = ''True'' if mesh elements must be generated (''CELL_HEXA'')\\ = ''False''  if only nodes must be generated (useful to debug only)      |
  
-In this case, the ''[[doc:user:geometry:user:peaux|Skin]]'' must be defined tith the orientation shown below:+In this case, the ''[[doc:user:geometry:user:peaux|Skin]]'' must be defined with the orientation shown below:
  
 {{ doc:user:mesh-3d-2.gif |Définition de la skin du domaine pour l'autodétection}} {{ doc:user:mesh-3d-2.gif |Définition de la skin du domaine pour l'autodétection}}
Line 79: Line 79:
 ===== Mesher by extrusion ===== ===== Mesher by extrusion =====
  
-This method can be used, but could be improved upon: density non-constant along the extrusion direction, improvement of meshing speed, giving the extruded nodes as groups (internal ones, external surface, ...). For now on, a [[doc:user:geometry:user:faces|Side]]'', a ''[[doc:user:geometry:user:peaux|Skin]]'' or a ''[[doc:user:geometry:user:selections|Group]]'' can be extruded along any direction, with any number of elements.+This method can be used, but could be improved upon: density non-constant along the extrusion direction, improvement of meshing speed, giving the extruded nodes as groups (internal ones, external surface, ...). For now on, a ''[[doc:user:geometry:user:faces|Side]]'', a ''[[doc:user:geometry:user:peaux|Skin]]'' or a ''[[doc:user:geometry:user:selections|Group]]'' can be extruded along any direction, with any number of elements.
  
-The geometry associated to the extrusion can also be created (only for a ''[[doc:user:geometry:user:faces|Side]]''). For a ''[[doc:user:geometry:peaux|Skin]]'' or a ''Group'', we can create the ''[[doc:user:geometry:user:points|Points]]'' and ''[[doc:user:geometry:user:Courbes|Curves]]'' associated by extrusion to the ''[[doc:user:geometry:user:points|Points]]'' and ''[[doc:user:geometry:user:Courbes|Curves]]'' of the object.+The geometry associated to the extrusion can also be created (only for a ''[[doc:user:geometry:user:faces|Side]]''). For a ''[[doc:user:geometry:user:peaux|Skin]]'' or a ''Group'', we can create the ''[[doc:user:geometry:user:points|Points]]'' and ''[[doc:user:geometry:user:Courbes|Curves]]'' associated by extrusion to the ''[[doc:user:geometry:user:points|Points]]'' and ''[[doc:user:geometry:user:Courbes|Curves]]'' of the object.
  
 === Example ==== === Example ====
  
-Extrusion of a circle pierced by a square (see''apps.qs.extruMesher3d'').+Extrusion of a circle pierced by a square (see ''apps.qs.extruMesher3d'' and ''apps.qs.extruMesher3dTx'' or ''apps.qs.extruMesher3dTorsion'' ''apps.qs.extruMesher3dDist03'' for modified extrusions).
  
-{{ commit:2006:extru2_000.jpg?200 |Extrusion d'un cercle troué}}+{{commit:2006:extru2_000.jpg?200|Extrusion d'un cercle troué}} 
 +{{:doc:user:geometry:mesh:extrusionmeshertx.jpg?150|setXfct(fctX) }} 
 +{{:doc:user:geometry:mesh:extrusionmesherrot.jpg?150|setAnglefct(fctAngle)}} 
 +{{:doc:user:geometry:mesh:extrusionmesherDist.png?100|setNbOfLayers(10,0.3)}}
  
 The definition and meshing of the circle can be seen in the the file. To extrude the result (''[[doc:user:geometry:user:faces|Side]]'' #1): The definition and meshing of the circle can be seen in the the file. To extrude the result (''[[doc:user:geometry:user:faces|Side]]'' #1):
Line 94: Line 97:
   mesher.setFillGroup(True)   mesher.setFillGroup(True)
   mesher.setDirection(0.0,0.0,1.0)   mesher.setDirection(0.0,0.0,1.0)
-  mesher.setLength(8+  mesher.setLength(length
-  mesher.setNbOfLayers(10)+  mesher.setNbOfLayers(nLayers, dist = 1.0) 
 +  mesher.setAnglefct(fctAngle)  
 +  mesher.setXfct(fctX)  
 +  mesher.setYfct(fctY)
   mesher.execute()   mesher.execute()
   grpNo = mesher.getLastLayer(no)   grpNo = mesher.getLastLayer(no)
Line 104: Line 110:
 | setLength        | length of the extrusion | | setLength        | length of the extrusion |
  
-| setNbOfLayers    | number of extruded elements                                                         |+| setNbOfLayers    | nLayers : number of extruded elements                                          | 
 +|                  | dist  : ratio between the length of the last and first element (default : dist = 1.0) | 
 +| setAnglefct(fctAngle) | Application of a rotation of slices around extrusion vector (direction 'z' but starting from origin!!!) |  
 +| fctAngle | One parameter defining rotation of slices function in degrees (t) - t=[0,1] ATTENTION : fctAngle(0) = 0 | 
 +| setXfct(fctX) | Application of a modification of the generatrice direction in X Direction |  
 +| setYfct(fctY) | Application of a modification of the generatrice direction in Y Direction |  
 +| fctX/fctY | One parameter defining modification of generatrice : fct(t) - ATTENTION t=[0,Length] and fctX/fctY(0) = 0 |
 | execute          | execute the extrusion                                                               | | execute          | execute the extrusion                                                               |
 | getLastLayer(no) | returns the group grpNo (number ''no'') which contains the nodes of the last layer  | | getLastLayer(no) | returns the group grpNo (number ''no'') which contains the nodes of the last layer  |
Line 169: Line 181:
 ===== Mesher by extrusion of revolution ===== ===== Mesher by extrusion of revolution =====
  
-Asymmetric extrusion of a meshed side.+Axisymmetric extrusion of a meshed side.
 The extrusion can be open ($0 < \mbox{angle} < 360^\circ$) or close ($\mbox{angle} = 360^\circ$). The extrusion can be open ($0 < \mbox{angle} < 360^\circ$) or close ($\mbox{angle} = 360^\circ$).
  
Line 179: Line 191:
   mesher.execute()   mesher.execute()
  
-| gobject          | Meshed 2D geometrical entity                                                              +| gobject          | Meshed 2D geometrical entity                                                            
-| group            | Group father of the 3D mesh elements                                                             +| group            | Group father of the 3D mesh elements                                                    
-| axe              | Line which defines the revolution axis                                       +| axe              | Line which defines the revolution axis                                                  
-setLength        length of the extrusion                                                                    |+setAngle         Angle of the extrusion (in degrees 0.0 < angle <= 360.0 - default = 180.0)              |
 | setNbOfLayers    | number of extruded elements                                                             | | setNbOfLayers    | number of extruded elements                                                             |
 +| setFillGroup     | fill the reference group with all nodes (base & generated)                              |
 | execute          | executes the extrusion                                                                  | | execute          | executes the extrusion                                                                  |
 +| getLastLayer     | return the group of the last layer (if not closed extrusion)                            |
  
 ==== Example ==== ==== Example ====
  
 {{:commit:2012:revolutionextusion1.png?200|}} {{:commit:2012:revolutionextrusion2.png?200|}} {{:commit:2012:revolutionextrusion3.png?200|}} {{:commit:2012:revolutionextusion1.png?200|}} {{:commit:2012:revolutionextrusion2.png?200|}} {{:commit:2012:revolutionextrusion3.png?200|}}
doc/user/geometry/mesh/3d.1407529931.txt.gz · Last modified: 2016/03/30 15:22 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki