an issue with static condensation and BND symbolicBFI

Hi

I am having trouble with static condensation when a facet-BND BFI is used.

In the attached code, HDG is used to solve Poisson equation with 1 Neumann bc.
I artifically increase the stab parameter by a factor of 2 on the Neumann boundary with the following command,

a += SymbolicBFI(alphaorder**2/hjump_u*jump_v, BND, skeleton=True)

The local solver in the static condensation implementation seems not seeing this BFI, and produce a wrong solution (comparing with condensation=False).

Best,
Guosheng

Attachment: testBND.py

Dear Guosheng,

Static condensation of inner unknowns is only provided for (the sum of) element-based integrals, i.e. standard volume integrals or element_boundary integrals.
For skeleton-based integrals (i.e. loops over facets) the general assumptions on the couplings prohibits an element-wise static condensation.

For the specific case that you mean hear, the integrals could theoretically be added to the element-wise integrals and thus allow for static condensation. But that is not how it is implemented right now. It is treated as a “skeleton”-integral and his hence not considered during static condensation.

To fix your problem make sure to implement your integrals as element_boundary integrals.

Best,
Christoph

i see!
i will try to put everything in element boundary formulation… it should be easy to do with the help of a facet dg p0 space.
thanks fotr the clarification