refinemesh
Refine triangular mesh
This page describes the legacy workflow. New features might not be compatible with the
legacy workflow. For the corresponding step in the recommended workflow, see generateMesh
.
Syntax
Description
[
refines the mesh and extends the solution p1
,e1
,t1
,u1
] = refinemesh(g
,p
,e
,t
,u
)u
to the new mesh nodes by
linear interpolation. The number of rows in u
must correspond to the
number of columns in p
, and u1
has as many rows as
there are points in p1
.
refinemesh
interpolates each column of u
separately.
[___] = refinemesh(___,
uses the input and output arguments from the previous syntaxes and specifies the list
it
)it
of geometric faces or triangles to refine. A scalar or a row
vector specifies faces. A column vector specifies triangles.
[___] = refinemesh(___,"longest")
uses the
longest edge refinement, where the longest edge of each triangle is bisected. By default,
refinemesh
uses the regular refinement, where all triangles are divided
into four triangles of the same shape. You also can explicitly specify
"regular"
instead of "longest"
. If you use a column
vector it
to specify the triangles to refine, then
refinemesh
can refine some triangles outside of the specified set to
preserve the triangulation and its quality.
Examples
Input Arguments
Output Arguments
Algorithms
The refinement algorithm follows these steps:
Pick the initial set of triangles to refine.
Divide all edges of the selected triangles in half (regular refinement) or divide the longest edge in half (longest edge refinement).
Divide the longest edge of any triangle that has a divided edge.
Repeat step 3 until no more edges are divided.
Introduce new points of all divided edges, and replace all divided entries in
e
by two new entries.Form the new triangles. If all three sides are divided, new triangles are formed by joining the side midpoints. If two sides are divided, the midpoint of the longest edge is joined with the opposing corner and with the other midpoint. If only the longest edge is divided, its midpoint is joined with the opposing corner.
Version History
Introduced before R2006a