Partial Differential Equation
Toolbox™ uses meshes with triangular elements for 2-D geometries and meshes
with tetrahedral elements for 3-D geometries. Earlier versions of Partial Differential Equation
Toolbox use meshes in the form of a [p,e,t]
triple. The
matrices p
, e
, and t
represent the
points (nodes), elements, and triangles or tetrahedra of a mesh, respectively. Later
versions of the toolbox support the [p,e,t]
meshes for compatibility
reasons.
Note
New features might not be compatible with the legacy workflow. For description of the mesh data in the recommended workflow, see Mesh Data.
The mesh data for a 2-D mesh has these components:
p
(points, the mesh nodes) is a
2
-by-Np
matrix of nodes, where
Np
is the number of nodes in the mesh. Each column
p(:,k)
consists of the x-coordinate of
point k
in p(1,k)
and the
y-coordinate of point k
in
p(2,k)
.
e
(edges) is a 7
-by-Ne
matrix of edges, where Ne
is the number of edges in the mesh. The
mesh edges in e
and the edges of the geometry have a one-to-one
correspondence. The e
matrix represents the discrete edges of the
geometry in the same manner as the t
matrix represents the
discrete faces. Each column in the e
matrix represents one
edge.
e(1,k)
is the index of the first point in mesh edge
k
.
e(2,k)
is the index of the second point in mesh edge
k
.
e(3,k)
is the parameter value at the first point of
edge k
. The parameter value is related to the arc length
along the geometric edge.
e(4,k)
is the parameter value at the second point of
edge k
.
e(5,k)
is the ID of the geometric edge containing the
mesh edge. You can see edge IDs by using the command
pdegplot(geom,'EdgeLabels','on')
.
e(6,k)
is the subdomain number on the left side of the
edge. The direction along the edge is given by increasing parameter values.
The subdomain 0
is the exterior of the geometry.
e(7,k)
is the subdomain number on the right side of the
edge.
t
(triangles) is a
4
-by-Nt
matrix of triangles or a
7
-by-Nt
matrix of triangles, depending on
whether you call generateMesh
with the
GeometricOrder
name-value pair set to
'quadratic'
or 'linear'
, respectively.
initmesh
creates only 'linear'
elements,
which have size 4
-by-Nt
. Nt
is the number of triangles in the mesh. Each column of t
contains
the indices of the points in p
that form the triangle. The
exception is the last entry in the column, which is the subdomain number. Triangle
points are ordered as shown.
The mesh data for a 3-D mesh has these components:
p
(points, the mesh nodes) is a
3
-by-Np
matrix of nodes, where
Np
is the number of nodes in the mesh. Each column
p(:,k)
consists of the x-coordinate of
point k
in p(1,k)
, the
y-coordinate of point k
in
p(2,k)
, and the z-coordinate of point
k
in p(3,k)
.
e
is an object that associates the mesh faces with the geometry
boundaries. Partial
Differential Equation Toolbox functions use this association when
converting the boundary conditions, which you set on geometry boundaries, to the
mesh boundary faces.
t
(tetrahedra) is either an 11-by-Nt
matrix
of tetrahedra or a 5-by-Nt
matrix of tetrahedra, depending on
whether you call generateMesh
with the
GeometricOrder
name-value pair set to
'quadratic'
or 'linear'
, respectively.
Nt
is the number of tetrahedra in the mesh. Each column of
t
contains the indices of the points in p
that form the tetrahedron. The exception is the last element in the column, which is
the subdomain number. Tetrahedron points are ordered as shown.
You can create a [p,e,t]
mesh by using one of these approaches:
Use the initmesh
function to create a 2-D
[p,e,t]
mesh.
Use the generateMesh
function to create a 2-D or
3-D mesh as a FEMesh
object. Then use the
meshToPet
function to convert the mesh to
a [p,e,t]
mesh.