Absolutely, the FENothing approach seems like a great fix. If you could send me any pointers, that would be great. I will start looking at the implementation of similar classes.



Now, here's something I've thought about for a few years already for
situations like yours: we have the hp::DoFhandler class that allows to use
different finite elements on different cells. One class that doesn't
currently exist but that would be rather trivial to implement (all its
functions are empty, and it just makes sure it calls the base class's
constructor correctly) is something I've mentally always called
FENothing -- a finite element that simply doesn't have any degrees of
freedom at all and so can only express the zero function. Assuming such a class existed, you could set the active_fe_index of each cell where you want to compute something to the FE you are currently using, and on the inactive cells you would set it to use the FENothing. The hp::DoFHandler would then assign degrees of freedom on each cell according to the finite
element that lives there -- which means no dofs on the cells in your
inactive region. The hp::DoFHandler is quite happy to produce
discontinuous function spaces, which is what is going to happen when you use FENothing, so you will somehow have to describe boundary conditions at the active-inactive interface, but I suppose you have to do that anyhow.

If you're interested in going down this road and try your hand implementing
the FENothing let us know and we'll give you pointers where to start.

Best
W.


--
--- ----------------------------------------------------------------------
Wolfgang Bangerth                email:            [email protected]
                                www: http://www.math.tamu.edu/~bangerth/

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

Reply via email to