Hi Markus, 

alright that might be the dodge I was searching for! 
But is this FECollection policy only valid in hp namespace? As far as
I've not quite fully understood what this hp FEM does, but taking a
glimpse at the description it might be designed to use collections of FE
types and adaptively use them.
If it's not possible just to do sth similar with a FESystem, then I
guess I'll start getting into that hp stuff.
Thanks for the quick answer!

Ciao
Till  
 


-------- Weitergeleitete Nachricht --------
Von: Markus Bürg <[email protected]>
An: Till Heinemann <[email protected]>
Kopie: [email protected], Duc Vu <[email protected]>
Betreff: Re: [deal.II] assembling a single system from two DoFHandlers
Datum: Thu, 03 Dec 2009 10:40:13 +0100

Hello Till,

I would propose the following way:
Create one triangulation for the entire domain and set the material_id 
for all cells in the first part of the domain to 1 and let them be set 
to 0 (the default value) on the second part.
Then you can create an hp::FECollection containing both FESystems, where 
the first FESystem is set active on the first part of the domain and the 
second on the second part of the domain.
With this idea you can assemble the system and sparsity pattern as 
usual, because you do not have to take care of the two different 
FESystems anymore. Anyway, if you want to assemble the system 
differently on the two parts of the domain, you can simply check, 
whether the cell you are currently processing has material_id 0 or 1, 
and then do the assembling procedure you want.

Best Regards,
Markus



Till Heinemann schrieb:
> Hello!
>
> I fear the solution to my problem is obvious, but I think my approach is
> way too complicated and a dead-end. 
>
> I have two different FE systems, one domain surrounding the other one at
> its outer boundary, but they are codependent. On their common interface
> they are supposed to "share" dofs, those shall be equal in value at
> least. (Imagine maybe from structure mechanics a strained body in the
> middle, somewhat effected by a electrical field / heat and supported on
> its boundary by strings connecting it to a wall, that behave just
> differently and aren't effected by this electrical field.)  
>
> Now what I did is basically create two triangulations with coinciding
> nodes on the interface and upon that a mapping that can refer from the
> FEM_A dof_numbers to the FEM_B dof_numbers that have the same position
> on the interface. Then I assemble a single common system_matrix where I
> put entries from the FEM_B interface dofs to the mapped FEM_A ones and
> equal the undefined FEM_B dofs to their partners on FEM_A. 
> This works for my purposes, but I've come to realize that I cannot
> generate an effective sparsity_pattern this way; my bandwidth of course
> explodes and I don't know how to renumber dofs effectively...
>
> Anyhow I think my approach is not best practice and I was wondering how
> I can use more deal.ii own methods for my purpose... 
>
> I guess I could define two DoFHandlers on a single large tria that
> covers the entire domain and when I iterate over the cells, I use
> preconditioners to guarantee I only cover those belonging to the
> respective domain. 
> Then I assemble the system, where I somehow replace the entries from the
> redundant dofs with the ones from the second DoFHandler (how do I map
> dof_numbers?) ? 
> Is this the way to go and how would I do that? 
>
> Or would I use an entirely different approach and maybe create two
> system_matrices with some kind of connection?
>
>
>
> Any hint on which way to go would be great, or some tips on where
> something similar has been done, because I don't recognize an analogue
> problem within the tutorials... 
>
>
> Thank you very much greetings
> Till
>
> _______________________________________________
> dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii
>
>   


_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii

Reply via email to