# GRADIENT BOUNDS FOR WACHSPRESS COORDINATES ON POLYTOPES

```GRADIENT BOUNDS FOR WACHSPRESS COORDINATES ON
POLYTOPES
MICHAEL FLOATER∗ , ANDREW GILLETTE† , AND N. SUKUMAR‡
Abstract. We derive upper and lower bounds on the gradients of Wachspress coordinates
defined over any simple convex d-dimensional polytope P . The bounds are in terms of a single geometric quantity h∗ , which denotes the minimum distance between a vertex of P and any hyperplane
containing a non-incident face. We prove that the upper bound is sharp for d = 2 and analyze the
bounds in the special cases of hypercubes and simplices. Additionally, we provide an implementation
of the Wachspress coordinates on convex polyhedra using Matlab and employ them in a 3D finite
element solution of the Poisson equation on a non-trivial polyhedral mesh. As expected from the
upper bound derivation, the H 1 -norm of the error in the method converges at a linear rate with
respect to the size of the mesh elements.
Key words. Wachspress coordinates, interpolation estimate, generalized barycentric coordinates, polyhedral finite element method.
AMS subject classifications. 65D05, 65N30, 41A25, 41A30.
1. Introduction. Given a set of generalized barycentric coordinates {φv } on a
polytope P , viewed as an open set in Rd with vertex set V , the standard vertex-based
interpolation I of a function u : P → R is given by
X
(1.1)
I(u) :=
u(v)φv .
v∈V
Let | · | denote the standard Euclidean norm. Observe that if φv ∈ C 1 (P ) for all
v ∈ V , then
X
sup |∇I(u)(x)| ≤ sup
|u(v)∇φv (x)| ≤ Λ max |u(v)|,
x∈P
x∈P
v∈V
v∈V
where
(1.2)
Λ := sup λ(x)
with λ(x) :=
x∈P
X
|∇φv (x)|.
v∈V
The main result of this paper is an upper bound on Λ over the class of simple convex
polytopes when the φv coordinates in I are generalized Wachspress coordinates. We
also derive lower bounds on Λ to illustrate the sharpness of the upper bound and
provide code written in Matlab for numerical experimentation with the Wachspress
coordinates on polygons and polyhedra.
Our motivation for this analysis stems from the growing interest in using generalized barycentric coordinates for finite element methods on polygonal and polyhedral
meshes [3, 7, 13, 18, 23]. In such methods, the interpolant I is suitable if it admits
an a priori error estimate of the form
(1.3)
ku − I(u)kH 1 (P ) ≤ C diam(P ) |u|H 2 (P )
∀u ∈ H 2 (P ),
∗ Department of Mathematics, University of Oslo, P.O. Box 1053 Blindern, 0316 Oslo, Norway,
[email protected]
† Department of Mathematics, University of California, San Diego, 9500 Gilman Drive MC 0112,
La Jolla, CA 92093 [email protected]
‡ Department of Civil & Environmental Engineering, University of California, Davis, One Shields
Avenue, Davis, CA 95616 [email protected]
1
2
where H k (P ) denotes the degree k Sobolev space over P . Following [7, Section 4] and
classical finite element sources [2, 16], we can take the constant C to be
q
2 ,
(1.4)
C := (1 + CS (1 + Λ)) 1 + CBH
with CS the Sobolev embedding constant satisfying kukC 0 (P ) ≤ CS kukH 2 (P ) independent of u ∈ H 2 (P ) and CBH the Bramble-Hilbert constant for linear approximation
on a class of polytopes of diameter 1. Therefore, to prove (1.3) in this context, it
suffices to provide an upper bound on Λ holding over the class of polytopes to be
used as domain mesh elements and the set of coordinate functions φv to be used for
interpolation via I. Here we consider the class of polytopes of dimension d that are
simple, meaning the number of faces incident to each vertex is exactly d.
We summarize our results in Table 1.1. Our bounds are in terms of a single
geometric quantity h∗ , which denotes the minimum distance between a vertex of P and
any hyperplane containing a non-incident face. The bounds are inversely proportional
to h∗ , representing the fact that geometries with small h∗ values can result in large
values of constant C in the a priori error estimate (1.3). The usefulness of h∗ as a
measure of geometric quality is discussed further in Section 5.
simple convex polytope in Rd
1
h∗
≤
Λ
≤
2d
h∗
d-simplex in Rd
1
h∗
≤
Λ
≤
d+1
h∗
d
1
h∗
≤
Λ
≤
√
d+ d
h∗
2(1 + cos(π/n))
h∗
≤
Λ
≤
4
h∗
hyper-rectangle in R
regular n-gon in R2
Table 1.1
Our bounds on Λ for various polytope types are summarized above. In the case of simplices and
hyper-rectangles, Λ obtains the upper bound when the shapes are regular. The lower bound for
regular n-gons approaches the upper bound as n → ∞, meaning 2d/h∗ is a sharp upper bound in
the case d = 2.
The lower bounds on Λ hold for any generalized barycentric coordinates {φv }
that are C 1 at the vertices of P , while the upper bounds hold in the specific case of
generalized Wachspress coordinates. The namesake of the Wachspress coordinates is
the author of the book where they first appeared in the context of polygonal finite
elements [19]; see also [20]. Warren first generalized this definition to polytopes in [21]
and later to convex sets with coauthors in [22]. Our notation in this work follows the
definition of the coordinates in Warren et al. [22] and Ju et al. [9].
The outline of the paper is as follows. In Section 2, we define generalized barycentric coordinates, generalized Wachspress coordinates, and h∗ precisely before deriving
the upper bounds given in Table 1.1. In Section 3, we derive the lower bounds given in
Table 1.1. In Section 4, we present an implementation of the Wachspress coordinates
on convex polyhedra and employ them in a 3D finite element solution of the Poisson
3
equation on a non-trivial polyhedral mesh. We present our conclusions and discuss
future directions in Section 5.
nf 2
v
nf1
hf2 (x)
hf1 (x)
x
P
Fig. 2.1. The value of the generalized Wachspress basis function φv at a point x inside a
convex polytope P is defined in terms of the location of v, the normals nfi to the faces fi incident
to v, and the distances hi (x) to the planes containing the fi .
2. Upper bounds. We start by fixing notation for describing polytope geometry. Let P ⊂ Rd be a convex d-dimensional polytope, viewed as an open set, with
V and F the sets of vertices and (d − 1)-dimensional faces of ∂P , respectively. Let
Vf ⊂ V denote the set of vertices of face f ∈ F , and Fv ⊂ F denote the set of faces
incident to the vertex v ∈ V . Assume that P is simple meaning |Fv | = d for all
v ∈V.
For any x in P , let hf (x) denote the perpendicular distance from x to the (d − 1)hyperplane in Rd containing the face f ∈ F . Letting nf denote the outward unit
normal to f and v any vertex in f , we can compute hf (x) via
hf (x) = (v − x) · nf .
(2.1)
We will also make use of scaled normal vectors defined by
pf (x) := nf /hf (x).
(2.2)
The generalized Wachspress coordinates for a simple polytope P as above are the
functions φv : P → R, for v ∈ V , given by the formula,
(2.3)
φv (x) :=
wv (x)
,
W (x)
where
(2.4)
W (x) :=
X
wu (x),
and wv (x) := det(pf1 (x), · · · , pfd (x)),
u∈V
where f1 , . . . , fd are the d faces adjacent to v listed in an counter-clockwise ordering
around v as seen from outside P , and det denotes the regular vector determinant in
Rd . The notation is summarized for the case d = 2 in Figure 2.1.
We have hv (x) > 0 on P and det(nf1 , · · · , nfd ) > 0 by the strict convexity
assumption and incident face ordering convention. Thus,
P wv (x) > 0, W (x) > 0, and
hence φv (x) > 0 on P . The partition of unity property v∈V φv (x) = 1 is immediate
4
P
from (2.3) and a proof of the linear precision property v∈V φv (x)v = x can be found
in [22] and [9]. The linear completeness property then follows immediately: for any
linear function L : P → R,
X
(2.5)
φv (x)L(v) = L(x).
v∈V
Before bounding Λ, we first derive a convenient expression for ∇φv in terms of
the coordinates φu and the (vector-valued) ratios
Rv (x) :=
(2.6)
∇wv (x)
.
wv (x)
Lemma 2.1. For v ∈ V ,
∇φv = φv (Rv −
(2.7)
X
φu Ru ).
u∈V
Proof. Taking the gradient of φv yields
∇φv =
wv ∇W
∇W
∇wv
−
= φ v Rv − φv
.
2
W
W
W
The result follows from the observation that
X ∇wu
X
∇W
=
=
φu Ru .
W
W
u∈V
u∈V
The bound on Λ will be in terms of the minimum distance between a vertex
of P and any hyperplane containing a non-incident face. We denote this geometric
quantity by
(2.8)
h∗ := min min hf (u).
f ∈F u∈V \Vf
We also introduce the notation µf to denote the sum of the coordinates associated
with the face f , i.e.
X
(2.9)
µf (x) :=
φv (x).
v∈Vf
Lemma 2.2. For f ∈ F ,
1
1 − µf (x)
≤
.
hf (x)
h∗
(2.10)
Proof. Since hf : P → R is linear, the linear completeness property (2.5) implies
that
X
X
X
hf (x) =
φu (x)hf (u) =
φu (x)hf (u) ≥ h∗
φu (x)
u∈V
u∈V \Vf
u∈V \Vf
5
Theorem 2.3. Let P be a simple convex polytope in Rd and let Λ from (1.2) be
defined using generalized Wachspress coordinates from (2.3). Then
Λ≤
(2.11)
2d
.
h∗
Proof. We first compute the gradient of wv as defined in (2.4). Observing that
∇hf (x) = −nf for x ∈ P ,
!
!
d
X
1
1
nf`
(2.12)
∇ Qd
= Qd
.
hf`
`=1 hf`
`=1 hf`
`=1
Thus, recalling the definition of pfi from (2.2), we have
!
d
X
X
det(nf1 , · · · , nfd )
(2.13)
∇wv = ∇
= wv
pf` = wv
pf .
Qd
`=1 hf`
`=1
f ∈Fv
Recalling the definition of Rv from (2.6), we have just shown
X
(2.14)
Rv =
pf .
f ∈Fv
Hence, by Lemma 2.1,
X
X
X
∇φv
=
pf −
φu
pf
φv
u∈V
f ∈Fv
f ∈Fu
X
X
=
pf −
µf pf
f ∈Fv
X
=
f ∈F
X
(1 − µf )pf −
f ∈Fv
µf pf ,
f ∈F \Fv
and therefore,
|∇φv | ≤ Av + Bv ,
where
Av = φ v
X
(1 − µf )
f ∈Fv
1
,
hf
Bv = φv
X
f ∈F \Fv
µf
1
.
hf
Switching from summation over vertices-then-faces to faces-then-vertices, we have
(2.15)
X
Av =
v∈V
X X
φv (1 − µf )
f ∈F v∈Vf
X
1
1
=
µf (1 − µf )
=: C,
hf
hf
f ∈F
and
(2.16)
X
v∈V
Bv =
X
X
f ∈F v∈V \Vf
φv µf
X
1
1
=
(1 − µf )µf
= C,
hf
hf
f ∈F
6
as well, and thus λ ≤ 2C. By Lemma 2.2,
X
X
1
1
d
(2.17)
C≤
µf
=
|Fv |φv
=
.
h∗
h∗
h∗
f ∈F
v∈V
Therefore Λ ≤ 2d/h∗ as claimed.
The result of Theorem 2.3 can be viewed as an improvement and generalization
of a bound on |∇φv | for Wachspress coordinates on polygons given by Gillette, Rand
and Bajaj in [7, Lemma 6]. Using Propositions 4, 7, and 8 from [7], we can write their
bound as
2β ∗ /(π−β ∗ )
π2
4
,
|∇φv | ≤
2 (d∗ )4 sin(β∗ /2) cos(β ∗ /2) sin β ∗
where the interior angle βv at vertex v is assumed to lie in [β∗ , β ∗ ] ⊂ (0, π) and the
length of an edge of P is at least d∗ . We now characterize our bound in terms of these
same geometric quality measures to further illustrate the simplification provided here.
Corollary 2.4. Let P be a strictly convex polygon with minimum and maximum
interior angles β∗ and β ∗ , respectively, and minimum edge length d∗ . Then
|∇φv | ≤
(2.18)
4
.
d∗ (sin β∗ )(sin β ∗ )
Proof. Label the vertices of P in a counterclockwise fashion and let βk :=
∠vk−1 vk vk+1 be the interior angle of P at vk . Either βk < π/2 and sin(βk ) > sin β∗ or
βk ≥ π/2 and sin(βk ) ≥ sin β ∗ . Since P is strictly convex, we have sin β∗ , sin β ∗ ∈ (0, 1]
and hence sin(βk ) ≥ (sin β∗ )(sin β ∗ ) > 0, without any qualification on βk . Now, again
by the convexity of P , we have that
min hk (v` ) = min(hk (vk−1 ), hk (vk+2 )).
`6=k,k+1
Observe that
hk (vk−1 ) = |vk−1 − vk | sin(βk ) ≥ d∗ (sin β∗ )(sin β ∗ ),
and, similarly, hk (vk+2 ) ≥ d∗ (sin β∗ )(sin β ∗ ). It follows that h∗ ≥ d∗ (sin β∗ )(sin β ∗ ).
By Theorem 2.3, |∇φv | ≤ 4/h∗ and the result follows.
2.1. Simplices. When P is a simplex, we can improve the upper bound, as the
following lemma demonstrates.
Lemma 2.5. Let P be a d-simplex in Rd . Then
Λ≤
d+1
,
h∗
with equality in the case that P is regular.
Proof. Note that |V | = d + 1. For any v ∈ V and x ∈ P , we have ∇φv (x) =
−nf /hf (v), where f is the unique face opposite to v. It follows that
X 1
d+1
Λ = sup
≤
,
hf (v)
h∗
x∈P
v∈V
with equality in the case of a regular d-simplex.
7
v01
v11
v10
v00
Fig. 2.2. Notation for the hyper-rectangle case in d = 2: v00 = (a1 , a2 ), v10 = (b1 , a2 ),
v01 = (a1 , b2 ), v11 = (a2 , b2 ).
2.2. Hyper-rectangles. We can also improve the upper bound in the case of a
hyper-rectangle, i.e.
P = [a1 , b1 ] × [a2 , b2 ] × · · · × [ad , bd ] ⊂ Rd .
In this case, the Wachspress coordinates are just the standard multilinear basis functions, allowing for direct computation of their gradients and the following theorem.
Theorem 2.6. Let P be a hyper-rectangle in Rd . Then
√
d+d
Λ≤
,
h∗
with equality in the case that P is a hypercube.
Proof. The 2d vertices of P can be indexed by ∈ {0, 1}d , with (v )i = ai if
i = 0 and (v )i = bi if i = 1, i = 1, . . . , d. The notation is shown in Figure 2.2.
Then, with hi := bi − ai , we have
φ (x) =
d
Y
1
(xi − ai )i (bi − xi )1−i ,
h
i
i=1
Since each factor is linear, we have that
∂
1 Y 1
φ (x) = (−1)1−i
(xj − aj )j (bj − xj )1−j ,
∂xi
hi
hj
j6=i
whence
(2.19)
|∇φ (x)| =
d
Y
1
h
i=1 i
1/2
! d
XY

(xj − aj )2j (bj − xj )2(1−j )  .
i=1 j6=i
Now, observe that on an interval [a, b] and for any c, d ≥ 0, the two functions
p
p
c(x − a)2 + d and
c(b − x)2 + d
are convex for x ∈ [a, b]. For any variable xi , |∇φ (x)| takes on one of these forms
when the other d − 1 variables are held fixed, meaning it is axially convex. Since axial
convexity is a closed property under addition, λ is also axially convex. We thus have
λ(x1 , x2 , . . . , xd ) ≤ max { λ(a1 , x2 , . . . , xd ), λ(b1 , x2 , . . . , xd ) } .
8
Similarly,
λ(a1 , x2 , x3 , . . . , xd ) ≤ max { λ(a1 , a2 , x3 , . . . , xd ), λ(a1 , b2 , x3 , . . . , xd ) } ,
λ(b1 , x2 , x3 , . . . , xd ) ≤ max { λ(b1 , a2 , x3 , . . . , xd ), λ(b1 , b2 , x3 , . . . , xd ) } .
Thus, by induction, we arrive at
Λ = max λ(v ).
∈{0,1}d
Evaluating λ(v ) using (2.19), we see that
|∇φ (v )| =
d
X
1
h2
i=1 i
!1/2
.
The vertex v has d neighbors, vτi , where τi = (1 , . . . , 1 − i , . . . , d ). We find that
|∇φτi (v )| =
1
.
hi
Further, for fixed , if η ∈ {0, 1}d with η 6∈ {, τi }, then |∇φη (v )| = 0. Therefore,
Λ = λ(v ) =
d
X
1
h2
i=1 i
!1/2
+
d
X
1
.
h
i=1 i
Since h∗ = mini hi , the desired inequality follows. In the special case of a cube, all hi
are equal, thereby completing the result.
While Lemma 2.5 and Theorem 2.6 suggest that the upper bound from Theorem 2.3 could possibly be improved, we will see in the next section that when d = 2,
the bound from the Theorem 2.3 is in fact sharp over the class of simple convex
polygons.
3. Lower bounds. Our lower bounds on Λ are based on the observation that
for any v ∈ V , Λ ≥ λ(v). We now broaden our scope from generalized Wachspress
coordinates to allow any generalized barycentric coordinates satisfying the linear completeness property (2.5) and that are C 1 at the vertices of v. To be clear, we do not
assume that piecewise interpolation using the φv is C 1 , only that on a given polytope
P , the associated functions φv have well-defined gradients at the vertices of P . We
start with the polygonal case in order to clarify the subsequent generalizations to
d > 2.
3.1. Polygons. We start with a general lemma. Suppose f : R2 → R is C 1 in a
neighborhood of a point x ∈ R2 . Then f has a directional derivative Dv f (x) for any
non-zero vector v = (v1 , v2 ) ∈ R2 , which can be expressed in terms of its gradient as
Dv f (x) = v · ∇f (x).
Lemma 3.1. If v and w are two linearly independent vectors in R2 then
(3.1)
∇f =
(Dw f )v⊥ − (Dv f )w⊥
,
v×w
9
and
(3.2)
|∇f | =
|(Dw f )v − (Dv f )w|
,
|v × w|
where v⊥ := (−v2 , v1 ), v × w := v1 w2 − v2 w1 , and | · | is the Euclidean norm.
Proof. To show (3.1) it is sufficient to show that v · ∇f = Dv f and w · ∇f =
Dw f . These follow from taking the scalar product of the first equation with v and
w respectively, using the fact that v · w⊥ = −v × w. Equation (3.2) follows from the
fact that (Dw f )v⊥ − (Dv f )w⊥ = ((Dw f )v − (Dv f )w)⊥ .
We now use Lemma 3.1 to estimate Λ from below. Suppose that P ∈ R2 is a
convex polygon with vertices v1 , . . . , vn indexed in some counterclockwise ordering,
and that φi : P → R, i = 1, . . . , n are any set of generalized barycentric coordinates.
Let u : P → R with ui := u(vi ) so that the formula (1.1) for I(u) gives
I(u) =
n
X
φi (x)ui .
i=1
Observe that I(u) : P → R is piecewise linear on ∂P . Thus, at any vertex vi , we have
Dei−1 u(vi ) = di−1
and Dei u(vi ) = di
where ej = vj+1 − vj and dj = uj+1 − uj . Letting g := I(u) to ease notation and
evaluating (3.2) with f = g at x = vi yields
(3.3)
|∇g(vi )| =
|di ei−1 − di−1 ei |
.
ei−1 × ei
Corollary 3.2. Let P be a convex polygon as above. Then
λ(vi ) =
|ei | + |ei + ei−1 | + |ei−1 |
.
ei−1 × ei
Proof. Note that if u = φj then ui = δij so that I(u) = φj . Using this fact and
(3.3), we have the following formulae. For u = φi−1 , di−1 = −1, di = 0, and so
|∇φi−1 (vi )| =
|ei |
.
ei−1 × ei
For u = φi , di−1 = 1, di = −1, and so
|∇φi (vi )| =
|ei + ei−1 |
.
ei−1 × ei
For u = φi+1 , di−1 = 0, di = 1, and so
|∇φi+1 (vi )| =
|ei−1 |
.
ei−1 × ei
Since ∇φj (vi ) = 0 for all other j, the result follows.
10
Theorem 3.3. Let P be the regular n-gon with vertices on the unit circle. Then
Λ≥
2(1 + cos(π/n))
h∗
and
h∗ = 4 sin2 (π/n) cos(π/n).
Proof. Let vi = (cos(iθ), sin(iθ)), i = 1, . . . , n, with θ = 2π/n. Since Λ ≥ λ(vn ),
it suffices to show that λ(vn ) is equal to the desired lower bound. Since
vn−1 = (cos θ, − sin θ),
vn = (1, 0),
v1 = (cos θ, sin θ),
we have
en−1 = vn − vn−1 = (1 − cos θ, sin θ)
and en = v1 − vn = (cos θ − 1, sin θ).
Therefore,
|en | = |en−1 | = 2 sin(θ/2),
|en + en−1 | = |v1 − vn−1 | = 2 sin(θ),
and
en−1 × en = 2(1 − cos θ) sin θ.
Thus by Corollary 3.2 and the double angle formulas,
λ(vn ) =
1 + cos(θ/2)
2 sin(θ/2) + sin θ
=
.
(1 − cos θ) sin θ
2 sin2 (θ/2) cos(θ/2)
Thus, it only remains to show that h∗ has the desired expression. We have that
h∗ = h1 (vn ) = (v1 − vn ) · n1 .
Since n1 is the unit normal to the edge between v1 and v2 , we have
"
#
cos(3θ/2)
n1 =
.
sin(3θ/2)
Using summation and sum-to-product trigonometric identities, we compute that
h∗ = (cos θ − 1) cos(3θ/2) + sin θ sin(3θ/2) = 4 sin2 (θ/2) cos(θ/2).
We obtain a further lower bound on Λ, this time for general convex polygons.
Theorem 3.4. Let P be a convex polygon in R2 . For any generalized barycentric
coordinates φ1 , . . . , φn on P that are C 1 at the vertices of P ,
Λ≥
1
.
h∗
Further, if all the interior angles of P are obtuse,
Λ≥
2
.
h∗
11
Proof. There is some index i such that either h∗ = hi (vi−1 ) or h∗ = hi−1 (vi+1 ).
Without loss of generality, assume that h∗ = hi (vi−1 ). Then, with βi the interior
angle of P at vi , whether acute or obtuse, hi (vi−1 ) = |ei−1 | sin βi , and so
ei−1 × ei = |ei−1 ||ei | sin βi = |ei |h∗ .
Then by Corollary 3.2, λ(vi ) ≥ 1/h∗ . In the case that βi is obtuse, i.e., βi ≥ π/2,
|ei−1 + ei | = |vi+1 − vi−1 | ≥ |ei |, and Corollary 3.2 gives λ(vi ) ≥ 2/h∗ .
3.2. Simple polyhedra. We now consider the case where P is a simple convex
polyhedron in R3 and φv are any set of generalized barycentric coordinates on P that
are C 1 at the vertices of P . We first prove a lemma about the geometry of P .
Lemma 3.5. For any face f ∈ F , let w ∈ V \ Vf be a vertex of P satisfying
(3.4)
hf (w) = min hf (u).
u∈V \Vf
Then w is a neighbor of a vertex in f .
Proof. We show first that any vertex u ∈ V \ Vf has a neighbor v ∈ Nu such that
hf (v) < hf (u). Indeed, if to the contrary, hf (v) ≥ hf (u) for all v ∈ Nu then, by the
convexity of P , the half-space H ⊂ R3 defined by the equation
{y ∈ R3 : hf (y) ≥ hf (u)}
must contain P , which contradicts the fact that the vertices of f lie outside H.
Suppose now that w ∈ V \ Vf is any vertex satisfying (3.4). By the above argument, there must be some neighbor v ∈ Nw such that hf (v) < hf (w). If v 6∈ Vf , this
contradicts the definition of w. Therefore v ∈ Vf , which proves the lemma.
Similar to the planar case, if u, v, w are linearly independent vectors in R3 , then
for a smooth enough function f : R3 → R,
(3.5)
∇f =
(Dw f )u × v + (Du f )v × w + (Dv f )w × u
.
det(u, v, w)
Let u : P → R with uv := u(v) so that the formula (1.1) for I(u) gives
X
I(u)(x) =
φv (x)uv .
v∈V
Fix v ∈ V and let wi , i = 1, 2, 3 be the three neighbors of v, in some clockwise
ordering as seen from outside P . Let ei = wi − v and di = uwi − uv . Since I(u) is
linear along the edges of P , Dwi u(v) = di . Letting g := I(u) to ease notation and
evaluating (3.5) with f = g at x = v yields the formula
(3.6)
∇g(v) =
d1 e2 × e3 + d2 e3 × e1 + d3 e1 × e2
.
det(e1 , e2 , e3 )
We use this to prove a lower bound on Λ for convex polyhedra.
12
Theorem 3.6. Let P be a convex polyhedron in R3 . For any generalized barycentric coordinates φv on P that are C 1 at the vertices of P ,
Λ≥
1
.
h∗
Proof. By Lemma 3.5, we can set f ∈ F and v ∈ f so that h∗ = hf (w3 ). Since
φu (v) = δuv ,
λ(v) = |∇φv (v)| +
3
X
|∇φwi (v)|.
i=1
By (3.6),
∇φv (v) =
−(e2 × e3 + e3 × e1 + e1 × e2 )
,
det(e1 , e2 , e3 )
and
∇φw1 (v) =
e2 × e3
,
det(e1 , e2 , e3 )
∇φw2 (v) =
e3 × e1
,
det(e1 , e2 , e3 )
∇φw3 (v) =
e1 × e2
.
det(e1 , e2 , e3 )
Note that f is the face of P containing the vertices v, w1 , and w2 . We thus have
det(e1 , e2 , e3 ) = (e1 × e2 ) · e3 = |e1 × e2 |(−nf ) · e3 ,
Using this and (2.1), we see that |∇φw3 (v)| = 1/|ee · nf | = 1/hf (w3 ), and hence
λ(v) ≥
1
1
=
.
hf (w3 )
h∗
Since Λ ≥ λ(v) for any v ∈ V , we have completed the proof.
3.3. Simple polytopes. For a simple convex polytope P in Rd with d > 3, the
bound Λ ≥ 1/h∗ holds by the same analysis as in the polyhedral case just presented.
Note that the proof technique of Lemma 3.5 is not specific to R3 and thus carries over
to the generic d case immediately. The proof technique for Theorem 3.6 is also not
specific to R3 , although the notation becomes more dense. Since the cases d > 3 are
of less interest from an application perspective, and in the interest of space, we omit
stating the straightforward generalizations of the proof.
4. Numerical Experiments. As discussed in the introduction, the upper bounds
derived on Λ suffice to ensure that a Lagrange-style finite element method employing generalized Wachspress coordinates as basis functions will obtain a linear order
a priori error estimate as stated in (1.3). We provide numerical evidence of this
convergence not only to confirm its theoretical validity, but also to demonstrate that
implementing such basis functions is computationally viable. The numerical computations were carried out in MATLABTM . We include code for the computation of the
basis functions on polygons and polyhedra in the Appendix.
Consider the following three-dimensional Poisson boundary-value problem:
(4.1a)
−∇2 u = f
(4.1b)
u=0
in Ω = (0, 1)3 ,
on ∂Ω.
13
(a)
(b)
(c)
(d)
Fig. 4.1. Polyhedral meshes on which we solve a Poisson problem using generalized Wachspress
basis functions in a finite element method. A fifth mesh (e) of even finer resolution is not shown.
Table 4.1
Relative error norms for solution of the Poisson problem on the polyhedral meshes shown in Figure 4.1. The quantity h denotes the maximum diameter of a mesh element.
Mesh
# of nodes
h
a
b
c
d
e
78
380
2340
16388
122628
0.7071
0.3955
0.1977
0.0989
0.0494
||u − uh ||0,P
||u||0,P
2.0 × 10−1
5.4 × 10−2
1.4 × 10−2
3.5 × 10−3
8.8 × 10−4
Rate
–
2.28
1.96
1.99
2.00
|u − uh |1,P
|u|1,P
4.1 × 10−1
2.1 × 10−1
1.1 × 10−1
5.4 × 10−2
2.7 × 10−2
Rate
–
1.14
0.97
0.99
0.99
The weak form of this problem is: find u ∈ H01 (Ω) such that
Z
Z
(4.2)
∇u · ∇w dx =
f w dx, ∀w ∈ H01 (Ω),
Ω
Ω
H01 (Ω)
where
is the standard Sobolev space of degree 1 with vanishing values on the
boundary.
We define a Galerkin method for approximating the solution to (4.2). First, we fix
a sequence of meshes made of polygonal prismatic elements, as shown in Figure 4.1.
The meshes have increasingly smaller values of h, the maximum diameter of a mesh
element, but the geometric quality of the elements does not degrade with h. More
precisely, there is a constant γ > 0 such that if any element from any mesh in the
sequence is scaled to have diameter 1, the computed value of h∗ will be ≥ γ.
For each simple polyhedral element Pe , we label the vertices v1 , . . . , vn , and
associate the basis function φi (x) := φv (x) to the vertex vi . Note that different
elements need not have the same number of vertices. We choose the set of generalized
Wachspress coordinates {φi (x)}ni=1 to be the basis for the trial and test spaces on Pe .
This yields the linear system
Z
Z
i
(4.3)
Ke de = fe , with Kij
=
∇φ
·
∇φ
dx,
f
=
f φi dx,
i
j
e
e
Pe
Pe
and de is a vector of unknown coefficients. The global stiffness matrix K is formed by
assembling contributions from all the Ke ; similarly, the global element source vector
f is formed by assembling contributions from all the fe . The global linear system,
Kd = f , is solved after imposing the homogeneous Dirichlet boundary conditions.
14
We choose f (x) in (4.1) so that the exact solution to the Poisson problem is
u(x) = xyz(1 − x)(1 − y)(1 − z). To evaluate Ke and fe in (4.3), we partition
each polyhedral element into tetrahedra, and use a second-order accurate polynomialprecision quadrature rule (four quadrature points) within each tetrahedron [15]. The
relative error norms are listed in Table 4.1. The polyhedral finite element method
delivers optimal convergence rates of 2 and 1 in the L2 norm and the H 1 seminorm,
respectively, as expected from the a priori estimate (1.3).
5. Conclusion and Future Directions. The results presented in this paper
help to answer a significant question in finite element theory: what makes a good
linear finite element? While the notion of a ‘good’ element is highly dependent on the
application context, it is generally acknowledged that avoiding large angles [1, 8] or
large circumradii [11, 12] is desirable for finite element methods. The circumradius
rcirc of a triangle is defined as the radius of its circumcircle. Using results from
Shewchuk [14] for geometric properties of triangles, we find that rcirc = `min `med /2h∗
where `min , `med are the lengths of the shortest two sides of the triangle. Scaling the
largest edge of the triangle to length 1, we see that
rcirc =
(`min + `med )2
1
`min `med
≤
≤
.
2h∗
8h∗
2h∗
Therefore, a triangular mesh that avoids small h∗ values also avoids large circumradii.
The question of what makes a ‘good’ linear finite element becomes much more
difficult for polytopes as their geometry can be quite exotic and difficult to characterize by only a few parameters. Even on tetrahedra, this question is quite subtle as
evidenced by the wealth of literature in this area. Hence, our work is only a first viewpoint toward a generic characterization of the relationship between polytope element
geometry and interpolation error estimates. The quantity h∗ is easily computed and
relates closely to the operator norm of the interpolant I, as evidenced both by our
bounds on Λ and by our numerical experiments.
Additionally, as discussed at the beginning of Section 3, recall that our lower
bounds on Λ pertain to any set of generalized barycentric coordinates that are C 1
at the vertices of simple polytopes. Our proof technique reveals that no generalized
barycentric coordinates can be C 1 at a non-simple vertex (i.e. a vertex incident to
more than d faces of P ) as this would require the gradient at the vertex to satisfy more
than d linearly independent constraints. Further, while the Wachspress coordinates
are indeed C 1 at simple vertices, other coordinates may not be, leaving open the
possibility that Λ may in fact be smaller than 1/h∗ for a different choice of generalized
barycentric coordinates [4, 5, 6, 10, 17]. We plan to pursue this question in future
work.
Finally, the code used in our experiments, which appears in the Appendix, is
designed to simplify the process of computing and integrating the Wachspress coordinate functions and their gradients on convex polygons and generic (i.e. simple or
non-simple) convex polyhedra. The code follows the definitions and derivations of Section 2. We were motivated to develop this code after learning at a recent workshop [24]
of the growing interest in the computer graphics and finite element communities for
efficient implementation of polyhedral generalized barycentric coordinates.
15
Acknowledgments. The authors thank Gianmarco Manzini for providing the
polyhedral meshes that were used in the convergence study and Alexander Rand for
as a postdoc from NSF Award DMS-0715146 and by NBCR at UC San Diego. NS
acknowledges support from NSF Award CMMI-1334783 at UC Davis.
Appendix A. MATLABTM codes for the computation of Wachspress basis functions on convex polygons and polyhedra are listed. For geometric computations on
polyhedra, the geom3d library is used [25].
Wachspress basis functions on convex polygons. We restate the formulae
for the Wachspress coordinates from (2.3) and (2.4) and their gradients from (2.6)
and (2.7) in the case d = 2 before giving the code used to compute them.
Let P ⊂ R2 be a convex polygon, with vertices v1 , . . . , vn ∈ R2 in some counterclockwise ordering. Let ni ∈ R2 be the outward unit normal to the edge ei = [vi , vi+1 ],
with vertices indexed cyclically, i.e., vn+1 := v1 etc. For any x in P , let hi (x) be the
perpendicular distance of x to the edge ei and define pi (x) := ni /hi (x). Then the
coordinate functions φi := φvi : P → R are given by
(5.1)
φi =
wi
n
X
wj
where
wi := det(pi−1 , pi ).
j=1
The gradient functions are given by
(5.2)
∇φi = φi (Ri −
n
X
φj Rj )
where
Ri := pi−1 + pi .
j=1
These functions are implemented in MATLABTM as follows.
function [phi dphi] = wachspress2d(v,x)
%
% Evaluate Wachspress basis functions and their gradients in a convex polygon
%
% Inputs:
% v
: [x1 y1; x2 y2; ...; xn yn], the n vertices of the polygon in ccw
% x
: [x(1) x(2)], the point at which the basis functions are computed
% Outputs:
% phi : output basis functions = [phi_1; ...; phi_n]
% dphi : output gradient of basis functions = [dphi_1; ...; dphi_n]
n = size(v,1);
w = zeros(n,1);
R = zeros(n,2);
phi = zeros(n,1);
dphi = zeros(n,2);
un = getNormals(v);
p = zeros(n,2);
for i = 1:n
16
h = dot(v(i,:) - x,un(i,:));
p(i,:) = un(i,:) / h;
end
for i = 1:n
im1 = mod(i-2,n) + 1;
w(i) = det([p(im1,:);p(i,:)]);
R(i,:) = p(im1,:) + p(i,:);
end
wsum = sum(w);
phi = w/wsum;
phiR = phi’ * R;
for k = 1:2
dphi(:,k) = phi .* (R(:,k) - phiR(:,k));
end
function un = getNormals(v)
% Function to compute the outward unit normal to each edge
n = size(v,1);
un = zeros(n,2);
for i = 1:n
d = v(mod(i,n)+1,:) - v(i,:);
un(i,:) = [d(2) -d(1)]/norm(d);
end
Wachspress basis functions on convex polyhedra. We state the formulae
for generalized Wachspress coordinates and their gradients on generic (simple or nonsimple) convex polyhedra before giving the code used to compute them. In the case
of a simple polyhedron, this definition recovers the d = 3 case of (2.3), (2.4), (2.6)
and (2.7).
Let P ⊂ R3 be a convex polyhedron, with vertex set V . For each v ∈ V , denote
the k ≥ 3 faces incident on v by f1 , f2 , . . . , fk , in some counter-clockwise order as
seen from outside P . Let n1 , n2 , . . . , nk be the outward unit normals to these faces,
respectively. Let hi (x) > 0 be the perpendicular distance of x from the face fi and
define pi (x) := ni /hi (x). Then the coordinate functions φv : P → R are given by
(5.3)
wv
φv = X
wu
where
wv :=
k−2
X
wi,v
wi,v := det(pi , pi+1 , pk ).
and
i=1
u∈V
The gradient functions are then given by
!
X
(5.4) ∇φv = φv Rv −
φu Ru
where
u∈V
Rv :=
k−2
1 X
wi,v (pi + pi+1 + pk ).
wv i=1
These functions are implemented in MATLABTM as follows.
17
function [phi dphi] = wachspress3d(v,g,un,x)
%
%
%
%
%
%
%
%
%
%
%
%
%
Evaluate Wachspress basis functions and their gradients
in a convex polyhedron
Inputs:
v
: [x1 y1 z1; x2 y2 z2; ...; xn yn zn], the n vertices of the polyhedron
g
: cell array: [i1 i2 ... i_{k1}]; . . . ; [i1 i2 ... i_{kn}],
which are the n neighborhood graphs, each in some counter-clockwise order
as seen from outside the polyhedron
un
: [x1 y1 z1; x2 y2 z2; ...; xm ym zm], unit normal to each facet
x
: [x(1) x(2) x(3)], the point at which the basis functions are computed
Outputs:
phi : basis functions = [phi_1; ...; phi_n]
dphi : gradient of basis functions = [dphi_1; ...; dphi_n]
n = size(v,1);
w = zeros(n,1);
R = zeros(n,3);
phi = zeros(n,1);
dphi = zeros(n,3);
for i = 1:n
f = g{i};
k = length(f);
p = zeros(k,3);
for j = 1:k
h = dot(v(i,:) - x,un(f(j),:));
p(j,:) = un(f(j),:) / h;
end
wloc = zeros(k-2,1);
Rloc = zeros(k-2,3);
for j = 1:k-2
wloc(j) = det([p(j,:); p(j+1,:); p(k,:)]);
Rloc(j,:) = p(j,:) + p(j+1,:) + p(k,:);
end
w(i) = sum(wloc);
R(i,:) = (wloc’ * Rloc) / w(i);
end
wsum = sum(w);
phi = w/wsum;
phiR = phi’ * R;
for d = 1:3
dphi(:,d) = phi .* (R(:,d) - phiR(:,d));
end
18
REFERENCES
[1] I. Babuška and A. K. Aziz, On the angle condition in the finite element method, SIAM Journal
on Numerical Analysis 13:2 (1976) 214–226.
[2] S. Brenner, L. Scott, The Mathematical Theory of Finite Element Methods, Texts in Applied
Mathematics, vol. 15, third edition, Springer, New York (2008)
[3] L. B. da Veiga, F. Brezzi, A. Cangiani, G. Manzini, L. D. Marini, and A. Russo, Basic principles
of virtual element methods, Math. Mod. Meth. App. Sci. 23:1 (2013) 199–214.
[4] M. S. Floater, Mean value coordinates, Comp. Aided Geom. Design 20 (2003), 19–27.
[5] M. S. Floater, K. Hormann, and G. Kós, A general construction of barycentric coordinates over
convex polygons, Adv. in Comp. Math. 24 (2006), 311–331.
[6] M. S. Floater, G. Kos, and M. Reimers, Mean value coordinates in 3D, Comp. Aided Geom.
Design 22 (2005), 623-631.
[7] A. Gillette, A. Rand, C. Bajaj, Error estimates for generalized barycentric interpolation, Adv.
Comp. Math. 37:3 (2012), 417–439.
[8] P. Jamet, Estimations d’erreur pour des éléments finis droits presque dégénérés, ESAIM:
Mathematical Modelling and Numerical Analysis-Modélisation Mathématique et Analyse
Numérique, 10:R1 (1976), 43–60.
[9] T. Ju, S. Schaefer, J. Warren, and M. Desbrun, A geometric construction of coordinates for
convex polyhedra using polar duals, in Geometry Processing 2005, M. Desbrun and H.
Pottman (eds.), Eurographics Association 2005, 181–186.
[10] T. Ju, S. Schaefer, and J. Warren, Mean value coordinates for closed triangular meshes, ACM
TOG 24 (2005), 561–566.
[11] M. Křı́žek, On semiregular families of triangulations and linear interpolation, Applications of
Mathematics, 36:3, (1991), 223–232.
[12] A. Rand, Average interpolation under the maximum angle condition, SIAM Journal on Numerical Analysis, 50:5 (2012),2538–2559.
[13] A. Rand, A. Gillette, C. Bajaj, Interpolation error estimates for mean value coordinates, Adv.
Comp. Math., 39:2, (2013), 327–347.
[14] J. Shewchuk, What is a good linear element? Interpolation, conditioning, and quality measures,
in Eleventh International Meshing Roundtable, (2002), 115–126.
[15] L. Shunn and F. Ham, Symmetric quadrature rules for tetrahedra based on a cubic closepacked lattice arrangement, Journal of Computational and Applied Mathematics. 235
(2012), 4348–4364.
[16] G. Strang and G. Fix, An Analysis of the Finite Element Method. Prentice-Hall, Englewood
Cliffs, N.J., 1973.
[17] N. Sukumar, Construction of polygonal interpolants: a maximum entropy approach, Int. J.
Num. Meth. Eng. 61:12, (2004) 2159–2181.
[18] N. Sukumar and A. Tabarraei, Conforming polygonal finite elements, Int. J. Num. Meth. Eng.
61:12, (2004) 2045–2066.
[19] E. L. Wachspress, A Rational Finite Element Basis, Academic Press, 1975.
[20] E. L. Wachspress, Barycentric coordinates for polytopes, Comp. Aided Geom. Design 61 (2011),
3319–3321.
[21] J. Warren, Barycentric coordinates for convex polytopes, Adv. in Comp. Math. 6 (1996), 97–
108.
[22] J. Warren, S. Schaefer, A. Hirani, and M. Desbrun, Barycentric coordinates for convex sets,
Adv. in Comp. Math. 27 (2007), 319–338.
[23] M. Wicke, M. Botsch, and M. Gross, A finite element method on convex polyhedra, in Proceedings of Eurographics 07 (2007), pp. 355–364.
[24] NSF Workshop on Barycentric Coordinates in Graphics Processing and Finite/Boundary
Element Methods, Columbia University, New York, NY, 2012. Web page:
http://www.inf.usi.ch/hormann/nsfworkshop/.
[25] D. Legland, geom3d, http://www.mathworks.com/matlabcentral/fileexchange/24484-geom3d,
2012.
```