I second Wolfgang comment on the fact that Q1Q1 is not difficult to implement. You can also scale it to arbitrary Qn-Qn elements if you are interested in higher order. We have implemented such an approach in our code based on dealii ( https://github.com/lethe-cfd/lethe) Q1Q1 is already very diffusive (which is why it is so robust I guess), so I am not sure that going with Q1-Q0 to save a few pressure degree of freedom is actually worth it. Best! Bruno
On Tuesday, 10 September 2019 00:03:27 UTC-4, Wolfgang Bangerth wrote: > > On 9/9/19 1:57 AM, Richard Schussnig wrote: > > > > FINALLY, MY QUESTIONS: > > > > Using the Q1Q1, I would in the end (FSI) need to come up with a space > made > > from Q1 elements with a discontinuity at the interface - which shall be > > realized using different material_id(). - how may I do that other than > > using a FE_DGQ space for the pressure and enforce continuity 'manually' > > through a giant ConstraintMatrix? > > That's inefficient, of course :-) I assume that your interface is in the > interior of the domain? In that case, take a look at step-46, where > solution > variables only live on certain cells, and are discontinuous at the > interface > between the two parts of the domain. > > > > Using the Q1Q0, the main problem is data transfer and 'node searching' > in > > the parallel case - example: the stabilization matrix from cell 16 has > > pressure dof 45 and shares edges or maybe only a single vertex (!) with > > cells with pressure dofs 1 2 3 4 5. The cell matrix for the projection > from > > Q0(dc) to Q1(c) is an area-weighted sum of the pressures on the cells > > touching the vertex of the support of the matching bilinear function, > > therefore we get a 6x6 local matrix and entries into all 'touching' > cells. > > Yes, you'd have to create a map that for each vertex gives you a list of > all > adjacent cells. I think I recall that there is a function in GridTools for > this, though. > > > > Since these cells are not only the direct neighbors of the current cell, > > things may get complicated quite fast, if we consider the 3d case with > > hanging nodes, but on the other hand side, looping in the element loop > over > > all elements again(!) to check the vertex_index() is extremely slow. > > Yes, you'd reverse this approach by looping over all vertices first, and > then > in this loop over all adjacent cells. > > > > Do you know of any better-fitting stabilizations for the Q1Q0 pair? Or > do > > you think there are better options around? > > Q1-Q1 is a pretty good method, and not very difficult to implement. I'll > note > that Q1-Q0 *sounds* like a good idea, but has a very low convergence rate > and > so will not yield particularly good accuracy if that's what you actually > care > about. Of course, Q2-Q1 is the standard for good reasons. > > Best > W. > > > -- > ------------------------------------------------------------------------ > Wolfgang Bangerth email: bang...@colostate.edu > <javascript:> > 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 dealii+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/169fb0a3-a042-4a01-b25f-2fd46c20bde9%40googlegroups.com.