Dear Wolfgang,
Thank you very much for looking taking the time to answer my question, 
I really appreciate it - such things do not happen to often on the 
internet! ; )
Please find below my response per answer, I hope it is not too unstructured 
that way!

Am Dienstag, 10. September 2019 06:03:27 UTC+2 schrieb Wolfgang Bangerth:
>
> 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. 
>
>
The interface is indeed in the interior of the domain, resolved of course, 
since I only use
the material_id() to distinguish between solid and fluid.
And the hint is perfect, thanks a lot, I have not looked into step-46 for a 
few months and almost forgot about it.
- I will look into having 2 seperate pressure spaces using FE_nothing, that 
may do the trick (for the Q1Q1 stabilized case).


> > 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. 
>
>
Thanks a ton, I coded that up myself, but there are:
find_cells_adjacent_to_vertex
&
vertex_to_cell_map
that come in handy at this point and probably are written in a more 
efficient way.
Somehow I did not find the functions, sorry for bothering you
(added for people coming after me).
 

>
> > 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. 
>
>
>
I was under the misconception, that I should have the orders matching since 
I am interested in
stresses in the fluid & on the interface, but apparently looking at the 
parameters in the interesting 
case (~4*1e-6 kinem. viscosity for blood [Bazilevs et al 2010, Küttler et 
al 2009, Deparis et al 2016])
it might be worth a lot having a good pressure approximation!
So the conclusion is for me now: 
test Q1Q0dc and perhaps also use Q1Q1 with FE_Nothing!

Thanks once again for your thoughts on the topic!

Kind regards,
Richard

-- 
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/97a9811e-6fc1-4379-a265-b407f6d5ff0e%40googlegroups.com.

Reply via email to