> 1. I looked into the step-51 of the tutorial. It does illustrate a paradigm of
> segregating local DOFs and global DOFs. If I utilize this paradigm, the
> workflow would solve the local DOFs first (virtual node of the bubble
> function), which is a block matrix since bubble support from adjacent cells is
> irrelevant. Then I substitute the solution to the system related to global
> DOFs (vertices of the standard Lagrange shape function), namely, stabilizing
> the system. However, this would require certain FEM space in the barycenter of
> the element (like a FE_Center, in the same fashion as FE_Face), which seems
> not provided in deal.ii.
You can do as you suggest, but you can also do the local elimination as part
of the assembly process. For example, assume that there are n regular and m
bubble functions, then you would build a (n+m)x(n+m) local matrix. You can
then eliminate the m bubble functions from this local system because you know
that they do not couple with any other DoF on other cells. You'd do this by
adding multiples of these m lines to the first n lines so that you end up with
a block structure of the local matrix that looks like this
[ A_nn 0]
[ A_mn X]
You can think of this in the following way: Let's assume you start with the matrix
[ B_nn B_nm ]
[ B_mn B_mm ]
Then you need to multiply the second block row by -B_{nm}B_{mm}^{-1} and add
the result to the first block row. You then have
A_nn = B_nn - B_{nm}B_{mm}^{-1}B_{mn}
You'd have to do the same thing to the right hand side vectors, of course.
If you do this, then the global matrix with also have this block triangular
structure, and you can solve the problem for the "regular" DoFs using
B_nn U_n = ...
You *could* also solve for the bubble DoFs using
B_mm U_m = rhs_m - A_mn U_n
but you don't actually have to do that if you don't care about these DoFs.
> 2. On the other hand, I am more inclined to use element-wise static
> condensation (I guess this is somewhat not a rational decision). Is there any
> example of how to eliminate the virtual DOFs of bubbles from the global system
> once we have eliminated them locally?
Not that I know of, but the method above should work.
> 3. The bubbles in FE_Q_Bubbles for a quadratic and higher-order element are
> not the standard bubbles. Are there any specific references to these bubbles?
> or how hard it is to modify the bubble function in FE_Q_Bubbles for my own choice?
What is "standard"? The implementation uses one way to define bubbles, but I'm
sure there are others. None of these would be very difficult to implement once
you understand how the FE_Q_Bubbles class is implemented.
Best
W.