is: inf
p[L 2
Q pÞ0
sup
~ u[ðH
1 Q
Þ2 ~
uÞ0
~ =·~
u ,
p k~=~uk·kpk
c . 0 7
where c is a positive constant. Among possible space dis- cretizations satisfying the LBB condition, we choose the
‘mini-element’ formulation,
1
which permits the resolution of the Stokes problem on a single grid for all the unknowns.
The basic idea of the mini-element formulation is that the pressure is discretized by polynomials of degree 1 P
1
, while the velocity is also discretized by polynomials of
degree 1, augmented by a polynomial of degree 3 bub- ble-function which vanishes on the edges of the triangle
t. With the mini-element formulation, the discretized Stokes system is written as:
Find ~
u
h
, p
h
[ V
1 h
g
3 H
1 h
such that m
~ =
~ u
h
, ~
= ~v
¹ p
h
, ~
=·~v ¼ ~
; ~v [ V
1 h
¹ q
, ~
=·~ u
h
¼ ;q [ H
1 h
8
: 8
where ~ v and q are the test functions associated with ~
u
h
and p
h
, respectively. Using elementwise integration, the ‘mini- element’ discretization leads eqn 8 to the following stiff-
ness matrix equation of ~
u
h
[ V
1 h
g
, p
h
[ H
1 h
for each t: A
t
e
t
B
t t
, x
e
t t
j
9 t
w
t t
, x
A
t
e
t
B
t t
, y
e
t t
j
9 t
w
t t
, y
B
t ,
x
w
t ,
x
B
t ,
y
w
t ,
y
B B
B B
B B
B B
B 1
C C
C C
C C
C C
C A
u
h ,
l
u
h ,
b
v
h ,
l
v
h ,
b
p
h ,
l
B B
B B
B B
B B
1 C
C C
C C
C C
C A
¼ B
B B
B B
B B
B 1
C C
C C
C C
C C
A
9 where the solution
~ u
h
, p
h
can be uniquely decomposed into its linear part
~ u
h ,
l
, p
h
at three vertices of the triangle t and its bubble part
~ u
h ,
b
, at the centoid of t here, the
subscripts l and b represent the piecewise linear and cubic interpolations, respectively; thus, for the triangle t, there
are totally 11 unknowns: 4 unknowns for each component of the velocity and 3 for the pressure. The 3 3 3 matrices
A
t
,B
t,x
,B
t;y
correspond to inner products involving linear basis function for the velocity and the pressure, the scalar
j
9 t
is the contribution to the H
1
inner product from the cubic bubble functions for the velocity, and the 3-vectors w
t,w
and w
t,y
correspond to contributions to the divergence term for bilinear basis functions 1-order derivative of the
cubic bubble functions for the velocity and linear functions for the pressure. The detailed expressions of
each bloc in eqn 9 can be found elsewhere
11
where the Stokes problem is studied in its most general form.
For further discussion, we specify here only the expression of j
9 t
: j
9 t
¼ m
h
2 1
þ h
2 2
þ h
2 3
720 ltl
10 where h
i
i ¼ 1,2,3 and ltl are the length of three edges and
the area of t, respectively. As mentioned, the bubble function turns out to be zero on
the triangle edges. We use in fact only the linear part of the velocity solution. In practice, we can eliminate formally the
bubble unknowns u
h,b
and v
h,b
from the left-hand side of eqn 9. This can be done elementwisely. With the bubble
unknowns statically condensed,
11
eqn 9 is now reduced into the following form:
A
9 t
B
9 t t
, x
A
9 t
B
9 t t
, y
B
9 t
, x
B
9 t
, y
¹ C
9 t
B B
B 1
C C
C A
u
h ,
l
v
h ,
l
p
h ,
l
B B
1 C
C A
¼ F
1
F
2
H B
B 1
C C
A 11
Interested readers are referred elsewhere
11
for the details of each bloc in eqn 11. We give here only the form of C
9 t
which is no longer zero as in eqn 9: C
9 t
¼ 1
j
9 t
w
t ,
x
w
t t
, x
þ w
t ,
y
w
t t
, y
12 In fact, the solvability of the Stokes problem is owing to the
condensation terms appearing in eqn 12.
2.3 A Stokes solver
The assembly of all elementwise contributions and right- hand sides leads the Stokes system of eqn 11 to the follow-
ing global equation: ¯
A ¯
B ¯
B
t
¯ C
¯u ¯p
¼ ¯
F ¯
H 13
We solve the linear Stoke problem using a multigrid algo- rithm with hierarchical basis.
4
Since we will adopt in this study the ‘longest edge bisection’ rule for triangle refine-
ment see Section 4 for details whose hierarchical nature is not obvious, an auxiliary process is required to help us
construct an ‘artificial multigrid’ structure on an arbitrary mesh according to the distribution of granularity of the
triangulation.
7
With transitions within V-cycle multigrid structure, the following UZAWA-like conjugate gradient
method
15,24,10
is used to solve the whole Stokes system.
11
Step 1:
give e p 1; give ¯p
; solve ¯
A¯u ¼ ¯
F ¹ ¯ B¯p
; g
¼ ¯ H ¹ ¯
B
t
¯u ¹ ¯
C ¯p ;
if kg
k e, the solution ¯u ¼ ¯u , ¯p ¼ ¯p
is achieved; otherwise go to Step 2.
Step 2:
solve S¯g ¼
g ;
h ¼ ¹
¯g ;
solve ¯ Ax
¼ ¹ ¯ Bh
; h
¼ ¹ ¯ Ch
¹ ¯ B
t
x ;
a ¼ ð
g ,
¯g Þ=ð
h ,
h Þ
; 20
J. Cao, P. K. Kitanidis
¯u
1
¼ ¯u
þ a
x ;
¯p
1
¼ ¯p
þ a
h ;
g
1
¼ g
þ a
h ;
if kg
1
k e, the solution ¯u ¼ ¯u
1
, ¯p ¼ ¯p
1
is achieved; otherwise go to Step 3.
Step 3: for m 1:
solve S¯g
m
¼ g
m
; g
m
¼ g
m
, ¯g
m
= g
m ¹ 1
, ¯g
m ¹ 1
; h
m
¼ ¹ ¯g
m
þ g
m
h
m ¹ 1
; solve ¯
Ax
m
¼ ¹ ¯ Bh
m
; h
m
¼ ¹ ¯ Ch
m
¹ ¯ B
t
x
m
; a
m
¼ g
m
, ¯g
m
= h
m
, h
m
; ¯u
m þ 1
¼ ¯u
m
þ a
m
x
m
; ¯p
m þ 1
¼ ¯p
m
þ a
m
h
m
; g
m þ 1
¼ g
m
þ a
m
h
m
; if
kg
m þ 1
k e, the solution ¯u ¼ ¯u
m þ 1
, ¯p ¼ ¯p
m
is achieved; otherwise replace m by m þ 1 and go to
the beginning of Step 3. In Steps 2 and 3, S is a preconditioner and this precondi-
tioning is optional.
3 A POSTERIORI ERROR ESTIMATOR
We have chosen an a posteriori error estimate as the criter- ion of our adaptive mesh algorithms. The complete deriva-
tion and detailed analysis of our estimator is too lengthy to be presented in this paper. The interested reader is referred
elsewhere
11
for more details on the a posteriori error esti- mate for the generalized Stokes problem. Here, we just
reduce that research result into the case of the Stokes problem eqn 1.
Our a posteriori error estimator requires the element-by- element solution of a local Neumann problem, discretized
by a finite element discretization of higher order, to obtain a local error indicator for each physical variable ¯u and p in the
Stokes problem as expressed in eqn 1. Let B
t
be the set of quadratic polynomials over t which are zero at the vertices
of t. Because in Section 2 we solve the Stokes problem using linear elements even with the mini-element formula-
tion, the velocity is represented by only its linear part after the static condensation of bubble unknowns, the local error
approximations should be computed with at least the ‘bump’ basis functions constructed in B
t
. Then, ~e
S
, e
S
[ B
t 3
will be elementwisely solved, the error unknowns arising at the middle points of the three edges of the triangle t; for
the solution group ¯u,p each has 3 error unknowns on three edges, totally resulting in 9 error unknowns. The local
approximate error estimate
~e
S
, e
S
¼ ~
u ,
p ¹
~ u
h ,
l
, p
h ,
l
is computed by solving the following 9 3 9 linear equation
for each triangle t: with
~ u
h ,
l
, p
h
, the piecewise linear solution resulting from the mini-element formulation for the velocity, only the
linear part of the numerical solution is used. In eqn 14, the notation of ·,·
t
represents the usual inner product strictly over triangle t while
, ·,· .
]t
represents the inner product along the boundary of t;
[ ]
~ u
h ,
l
=]n ]
A
is the average normal derivative of ~
u
h ,
l
across the edges of t; l
t
a positive multiple for each triangle t, we define it as: l
t
¼ ltl
3600j
9 t
15 with j
9 t
given in eqn 10. Finally, using these local error indicators, we can form
both local and global energy norms: lk
~e ,
e kl
2
¼ m
k~=~ek
2
þ 1
m kek
2
16 for use in our adaptive mesh algorithms.
4 ADAPTIVE MESH ALGORITHMS
A simple bisection algorithm,
5
called longest edge bisec- tion, is applied in this work. According to the suggestion
of Rivara,
29
elements selected for refinement are bisected along their longest edge. The neighbor element sharing the
longest edge is also bisected along its longest edge. If the result is a compatible triangulation, the process stops. Other-
wise, it is recursively applied to the longest edge neighbors of all refined elements. An example is shown in Fig. 4. This
process is known to have finite termination, typically in a very small number of steps.
Although there is also a natural tree data structure which could be used in this case, we have implemented our longest
edge bisection algorithm with no refinement tree, keeping only those elements which are currently in the mesh. This
has allowed us to study coarsening algorithms for use on completely unstructured meshes. Such algorithms have
applications in the adaptive unrefinement of an unstructured mesh, as well as certain algebraic hierarchial basis multi-
level iterative methods.
7
For both refinement and unrefinement algorithms, a posteriori error estimates are used to decide which ele-
ments to refineunrefine. The guiding principle is that of mesh equilibration; i.e. we attempt through the refine-
mentunrefinement process to create a final mesh in which all elements have approximately the same error regardless
of size.
Our mesh moving algorithm also uses an a posteriori error estimator, but in a slightly different fashion. In our
algorithm, the mesh topology connectivity remains fixed, but the locations of the mesh points themselves are allowed
to move in response to the error estimator. Our procedure
m ~
= ~e
S
, ~
= ~v
t
¹ e
S
, ~
=·~v
t
¼ ¹ m
~ =
~ u
h ,
l
, ~
= ~v
t
þ p
h
, ~
=·~v
t
þ , m
] ~
u
h ,
l
]n
A
¹ p
h
~ n
, ~v.
]t
; ~v [ B
t
3 B
t
¹ q
, ~
=·~e
S t
¹ l
t
~ =e
S
, ~
=q
t
¼ q
, ~
=·~ u
h ,
l t
þ l
t
~ =p
h
, ~
=q
t
;q [ B
t
8 :
14 Adaptive finite element simulation of Stokes flow in porous media
21
consists of a Gauss–Seidel-like iteration on the vertices in the mesh, in which the position of each vertex is locally
optimized with all other vertices held fixed. This is illus- trated in Fig. 5, where the position of vertex v is optimized
within the region Q
v
by approximately minimizing the a posteriori error estimate with respect to vertex location.
Each optimization problem has two degrees of freedom, and is solved using a simple approximate Newton iteration.
Details of this algorithm can be found elsewhere.
6
Not all vertices in the mesh are allowed to move. Some boundary
and interface vertices must remain fixed to preserve the definition of the region; others are allowed only one
degree of freedom.
5 NUMERICAL EXPERIMENTS
We will present in this section three typical test cases of Stokes flow simulation. The first two are associated with
simusoidal channels. For this geometry, with ¯ w
, ¯
w þ 2a, and L denoting the pore unit’s average width, maximum
width, and length, respectively see previous work
14
for specific details on geometry definition, a= ¯
w and L= ¯ w are
the two most important parameters. The former describes the narrowness of throat parts in the tube; the latter
describes how gradually the width changes. The computa- tion will be implemented on single-pore domain see Fig. 1
and on double-pore domain see Fig. 2, respectively, verifying the reasonableness of Dirichlet boundary condition setting
presented in Section 2.1. The third numerical experiment will focus on flow simulation in steeply changing step-like
channel see Fig. 3 as we are particularly interested in flow behavior in the case of large fluctuations.
5.1 Test case 1: flow in single pore with a= ¯ w ¼ 0:45,