Mesh Generation Timothy J. Tautges Principle Member Technical Staff Sandia National Laboratories Adjunct Professor, Engineering Physics University of Wisconsin-Madison Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy under contract DE-AC04-94AL85000.
What is mesh generation? Continuous domain Discretized Domain Discrete Solution (Geometry) (Mesh) (FEA Results) • Geometry from CAD (SDRC Ideas, Pro/Engineer, etc.) • Mesh type determined by analysis; tetrahedra, hexahedra most common
What Kind of Mesh Should I Use? • Tetrahedra – Automatic generation possible – Quadratic elements (10-node tets) typically used – More elements/nodes to resolve a given domain – More cpu time per unit accuracy for some analyses, but not all! • Hexahedra – Much more difficult to generate (but getting better…) – Fewer elements/nodes – Conventional wisdom says they perform better (very little hard data to show that though) • 2d plates/shells – All-quad mesh generation solved – Similar arguments regarding number elements, accuracy – ?
Tetrahedral Mesh Generation Delaunay Triangulation Point distribution, P • • Generate triangulation T(P) using “Delaunay criterion”, D • Recover (non-convex) boundary • Why Delaunay? Quality guarantee: ( ) : ( ) ∀ α > α T P D min, Delaunay • However, in 3D, Delaunay criterion allows “slivers” • Almost everyone uses (modified) Delaunay: – Automatic – Anisotropic mesh from point distribution – Automatic
Tetrahedral Mesh Generation Delaunay Triangulation • Start with domain boundary
Tetrahedral Mesh Generation Delaunay Triangulation • Point distribution, P – Distribute in irregular pattern through domain – Find convex hull, start triangulation with that
Tetrahedral Mesh Generation Delaunay Triangulation • Point distribution, P • Triangulate points using “Delaunay criterion”, D(P) • Recover boundary
Tetrahedral Mesh Generation Delaunay Triangulation • Point distribution, P • Triangulate points using “Delaunay criterion”, D(P) – Delaunay criterion: circumcircle (2D) or circumsphere (3D) cannot contain any other point in P – Triangulation methods: • Point/triangle insertion: insert new point, remove elements whose circumcircles contain point, retriangulate region • Arbitrary starting point, refine until Delaunay criterion met – Transformations (e.g. diagonal flip) to improve mesh quality or achieve Delaunay:
Hexahedral Mesh Generation Why Is It Difficult? • Hex elements match face to face throughout the mesh • Chord propagation: – Small change in surface mesh can effect non-local changes in mesh – Mesh changes propagate across entire assembly because of shared surfaces • In assemblies, shared surfaces introduce coupling – Coupling introduces global components to hex meshing – Coupling is reduced for tet meshes
Hexahedral Mesh Generation • No “automatic” hex meshing algorithm known! • Lots of semi-automated algorithms Quad (surface) algorithms N-Side Primitives Sweeping (extrusion) Multisweep
Hexahedral Mesh Generation • No “automatic” hex meshing algorithm known! • Lots of semi-automated algorithms Combined Use in Large Assemblies Quad (surface) algorithms N-Side Primitives Sweeping (extrusion) Multisweep B61 Antenna Support Structural Analysis ~258K Hex elements
Assembly Hex Mesh Generation Toolkit Approach Geometry Validity, Geometry Mesh Scheme BC Assignment Decomposition Selection Shell Symm 10 8 12 12 22 Mesh Quality Mesh Size/Interval Mesh Generation Analysis Assignment
The CUBIT Mesh Toolkit Hex Improv. Adv. Hex Smoothing WW Multi Advanced Hex Smoothing Automatic Sweep Tet Dicing Geode Algorithm Hex Selection Auto Dicing Auto Decomp H.T.P. OPT MS Submap Feat. Manual M ap Int. Ass.. Plaster Tets MSC Remove Pave Decomp ANSYS LP Skew Control Virtual Geometry, Topology & Mesh Interface Exodus II Net CDF Composite & Partition ABAQUS Hoops Viz Merge Topology Geometry Healing IGES STEP CUBIT Pro E IDEAS Local Ops . . . Geometry ACIS Geometry Geometry Geometry
Example: Sphere Octant > ~tautges/cubit/cubit • Start cubit > Sphere radius 1 xpos ypos zpos • Create sphere octant > Left: rotate • Click & drag mouse in graphics > Middle: zoom window > Right: pan > Webcut body 1 cyl rad .2 axis z • Cut into 2 bodies along cylindrical surface > Merge all • Merge coincident surfaces > Volume all scheme auto • Assign mesh schemes > Volume all size .1 • Set mesh size > Mesh volume all • Mesh > Quality volume all • Check mesh quality > Export genesis ‘octant.g’ • Export
Some More Useful CUBIT Commands > List surface 3 • Pick geometry in graphics window – <Ctrl>-Left on geometry in graphics window • Switch picking to entities of dimension 0/1/2/3 – With mouse in graphics window, type 0/1/2/3 > Delete mesh > Curve 3 size .2 • Set node-based BC group on 2 surfaces > Nodeset 100 surface 2 10 • Import solid model from file > Import acis ‘/pong/usr1/t/tautges/cubit/spindle.sat’
Next Time… • Will learn more about how various meshing algorithms work • Will mesh the spindle & transfer mesh to Ansys • Next assignment: – Generate tet mesh (in Ansys) & analyze for torsion – Generate hex mesh (in cubit) & analyze for torsion – Compare results wrt element count, accuracy
Day 2 Outline • Boundary condition grouping in Cubit • Exporting mesh • Translating to Ansys format • Reading into Ansys • Setting up for analysis • But first: a taste of quad/hex meshing algorithms
Hex Meshing Begins With Quad Meshing • Structured algorithms – Mapping [COO82] – Submapping [WHI96] • Primitives [LI95] • Advancing-front algorithms – Paving [BLA91, CAS96] – Qmorph [OWE99a]
Hex Meshing Primitives Sweeping • Fundamental assumption: match all source faces, nodes with counterparts on target (may be implied mesh on target) • Fundamental problem: placement of nodes inside boundary loops on target & intermediate layers • Fidelity to: – Side surface variations – Source/target surface variations • Implementations: – Morph-based (CUBIT) – BMSweep (Ansys) – Cooper
Hex Meshing Tools Interval Assignment • Task: quad-mesh a collection of surfaces which share edges • Challenge: quad meshes constrain the number of intervals on boundary of a surface to be even Surface Chords:
Interval Assignment Constraints • Some quad algorithms further constrain intervals Triangle Primitive: Map: Submap: I 2 + I 3 > 2I 1 I 1 = I 3 I 1 = I 2 + I 3 + I 4 + I 5 + I 6 I 2 = I 4 ... I 1 I 2 I 4 I 3 I 1 I 3 I 1 I 4 I 2 I 3 I 5 I 2 I 6
Auto Algorithm Selection Auto Sweep Detect [WHI99] • Swept volumes must be bounded by non-intersecting chains of mapped/submapped surfaces: Ch ain A Ch ain B • Can parameterize chain surfaces in a consistent global parameter system – Consistent means C0-continuous parameters where surfaces meet – Chains will have periodic boundary where parameter “jumps”
To Learn More… • Plenty of small project topics for your final project • If you’re interested in programming, also some hourly work I have • Meshing Research Corner: http://www.andrew.cmu.edu/user/sowen/mesh.html • Mesh Generation & Grid Generation on the Web: http://www-users.informatik.rwth-aachen.de/~roberts/meshgeneration.html
Key Technology: A Geometry-Centric Process • Why: “steel ⇓ ⇓ ⇓ interactive detail ⇓ case” “impact” Fine geom ≈ ≈ Coarse ≈ ≈ “foam” geom Basis: initial CAD model symm plane ⊗ ⊗ ⊗ ⊗ position • Model generation: Material Bound Cond Init Cond 1 Start with well- defined design model
Boundary Conditions • Three primary types of boundary condition groupings: – Element Block: not really a BC; groups elements for purposes of material type identification – Nodeset: for assigning loads on nodes in the model, e.g. Temperature, Force – Sideset: for assigning loads on faces in the model, e.g. Pressure • Import into Ansys as named components , then use to assign loads to model there • Examples : � Block 100 volume 1 � Nodeset 2001 surface 1 2 3 curve 100 volume 3 � Export genesis ‘test.g’
Mesh Translation to Ansys • Mesh translated to Ansys using a translator outside cubit: � ~tautges/cubit/exoans test.g myfile • Produces 5 files: – myfile : Overall command file, which imports others – myfile.node : node definitions – myfile.elem : element definitions – myfile.eset : component EB<block_id> definitions, one component per element block – myfile.nset : component NS<nodeset_id> definitions, one component per nodeset – myfile.sset : component definitions for sidesets, not used right now • To use in Ansys, use File->Import commands from file to read commands from myfile
(Slides From Past Semesters…)
Recommend
More recommend