The following programs in the example directory show how to use the data structures and algorithms to generate and optimize meshes.
Element Quality
- The quality program prints quality statistics for a mesh.
- simplexQuality assesses the quality of a single simplex.
- jacobianDecomposition calculates the decomposition of the Jacobian of mapping from the ideal simplex to the physical simplex.
- mapSimplexJac maps a simplex using a Jacobian matrix.
- mapSimplexOSA maps a simplex using the orientation, skew and aspect ratio matrices.
Geometric Optimization
- geometricOptimize uses geometric optimization to optimize the position of interior vertices in a mesh.
- geomOptBoundaryCondition uses geometric optimization subject to the constraint that the boundary vertices remain on a specified curve/surface.
- geomOptContentConstraint uses geometric optimization of vertex positions subject to a constant content constraint. That is, the area/volume of the mesh remains constant.
- laplacianSolve applies Laplacian smoothing to the interior vertices.
- laplacian applies sweeps of Laplacian smoothing to the interior vertices.
- laplacianBoundary applies sweeps of Laplacian smoothing to the boundary vertices.
Topological Optimization
- The flip program performs edges flips in a 2-D mesh to improve quality.
- topologicalOptimize does topological optimization of 3-D meshes. It performs edge removal and face removal operations to improve the mesh quality.
- incidenceOptimize optimizes the cell-node incidence relations.
Coarsening and Refinement
- The coarsen program coarsens a mesh by collapsing edges.
- The refine program refines a mesh by splitting edges.
- coarsenCells removes a specified set of cells by collapsing edges.
- refineCells refines a specified set of cells by splitting edges.
- refineBoundaryDistance refines a mesh according to the distance from the boundary.
- The refineBoundary program refines the boundary cells of a mesh so the boundary more closely matches a specified curve.
Subspace Methods
- The subspace program coarsens and refines a mesh by collapsing and splitting edges. During this process the node-cell incidence relationships are optimized and the node positions are updated with Laplacian smoothing.
Boundary Operations
- The moveBoundary program moves the boundary vertices of a 2-D/3-D mesh to lie on a curve/surface.
- fitBoundary fits the boundary of a mesh to a specified curve.
- fitMesh fits a mesh to a specified curve.
Mesh Generation
- tile meshes a curve/surface by tiling the interior with triangles/tetrahedra.
- centerPointMesh creates a mesh from the boundary and a center point.
Utilities
- The boundary program extracts the boundary of a simplicial mesh.
- iss2vtk converts a text file for a simplicial mesh to a VTK file. (VTK files can be viewed with Paraview.)
- The orientPositive orients the simplices of a mesh to have non-negative content.
- randomize randomly moves the interior vertices of a mesh to produce a distorted mesh.
- The removeLowAdjacencies progam removes the simplices that have low adjacencies.
- reverseOrientation reverses the orientation of a mesh.
- orient tries to orient the simplices in a mesh.