Dear W.

Many thanks for your suggestion. I guess I have to implement a new class 
for my own bubbles at some point.

A follow-up question on (1).

I implemented the local elimination as you suggested and it works. However, 
this ends up with many extra "redundant" DOFs in the global system. For 
example, if I am using N*N linear elements for a scalar 2D problem with 
structured mesh, instead of (N+1)^2 global DOFs, I end up with (N+1)^2 + 
N^2 global DOFs. The extra DOFs are coming from the bubble supports. Of 
course, they won't affect the solution at vertices due to the nature of 
bubble functions, but such an increase of DOFs may require more memory in 
the solution process. How should I also reduce the size of the global 
system?

Regards,
Lixing

On Friday, January 8, 2021 at 6:37:29 AM UTC+8 Wolfgang Bangerth wrote:

>
> > 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.
>
> -- 
> ------------------------------------------------------------------------
> Wolfgang Bangerth email: [email protected]
> www: http://www.math.colostate.edu/~bangerth/
>
>

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/9a22492d-feac-4392-89a3-130651b9004en%40googlegroups.com.

Reply via email to