Forum Message

 

 

We have moved the forum to https://forum.ngsolve.org . 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.

Notice

The forum is in read only mode.

Jump of function in HDiv

More
6 years 3 weeks ago #420 by rhebergens
Hello,

Let V = HDiv(mesh, order = order, dirichlet="bottom|right|top|left")

Is it possible to compute the jump of a function u \in V in the tangential direction? I tried a few things, among others, using u.Other(), but this gives me the following error

illegal dnumsin Assemble BilinearForm 'bfa'.

I'm trying to implement the weak form (4.20) of the following paper:
doi.org/10.1137/15M1047696

Thanks,
Sander
More
6 years 3 weeks ago #421 by schruste
Replied by schruste on topic Jump of function in HDiv
Hi Sander,

The problem is the sparsity pattern. If you just use the HDiv space as you do and set up a bilinear form, the sparsity pattern is set up so that only the normal dofs couple across element interfaces. For the DG formulation that you are looking for, you require a different sparsity pattern. The one that allows coupling between neighboring element dofs (also tangential) is obtained if you add the flag dgjumps=True or flags={"dgjumps": True} to the HDiv space.

Best,
Christoph
More
6 years 3 weeks ago #422 by rhebergens
Replied by rhebergens on topic Jump of function in HDiv
Hi Christoph,

Thanks for the quick response. So I now have

V = HDiv(mesh, order = order, dirichlet="bottom|right|top|left", dgjumps=True)

and I would like to add the following IP-stabilization on interior facets:

a_stokes += SymbolicBFI(alpha*(u-u.Other())*(v-v.Other()), VOL, skeleton=True)

This still gives me the error

RuntimeError: SparseMatrixTM::AddElementMatrix: illegal dnumsin Assemble BilinearForm 'bfa'

Maybe I'm still missing something?

Sander
More
6 years 3 weeks ago #423 by rhebergens
Replied by rhebergens on topic Jump of function in HDiv
Oh, I think I found it. If I have a mixed space I need to include the dgjumps also in the mixed space:
V = HDiv(mesh, order = order, dirichlet="bottom|right|top|left", dgjumps = True)
Q = L2(mesh, order = order-1)
X = FESpace ([V, Q], dgjumps = True)

Thanks,
Sander
Time to create page: 0.148 seconds