Forum Message



We have moved the forum to . This is an archived version of the topics until 05/05/23. All the topics were moved to the new forum and conversations can be continued there. This forum is just kept as legacy to not invalidate old links. If you want to continue a conversation just look for the topic in the new forum.


The forum is in read only mode.

Customary Element: Static Condensation and bddc

3 years 3 months ago #2859 by THaubold
Hi again,

I'm interested in testing my element definition in combination with static condensation (and the bddc preconditioner).

Up to now i followed the mylittlengsolve example on how to define high order H^1 basic functions and implement the integrator and so on.
Since both static condensation flags, do nothing for my element, i guess i need to implement the static condensation my self, is that correct? What is the correct syntax for this?
Can i implement the static condensation such that i can reuse the standard bddc preconditioner or do i need to implement it by hand as well? (Or do i need to consider something else as well?)

3 years 3 months ago - 3 years 3 months ago #2860 by lkogler
Wether a DOF is eliminated by static condensation or not is given by the FESpace, not the element itself.

Any DOFs of coupling type LOCAL_DOF are eliminated. Those of INTERFACE_DOF and WIREBASKET_DOF
remain. The bddc Preconditioner further reduces the problem to only the WIREBASKET_DOF ones. Per default, all DOFs are seen as wirebasket DOFs.

On the C++ side, the FESpace has an array called "ctofdof", which gives the coupling type for every DOF.
You have to overload the "UpdateCouplingDofArray" method of the FESpace and set it there. (See, for example, comp/h1hofespace.cpp, lines 776-831)

Alternatively, you can also set it from python via the "SetCouplingType" method of the FESpace.

You should be able to reuse the bddc preconditioner as long as you set the ctofdof array correctly.

Last edit: 3 years 3 months ago by lkogler.
The following user(s) said Thank You: THaubold
Time to create page: 0.132 seconds