using orderinner with H1 space

More
6 years 1 month ago #1189 by rhebergens
Hello,

I saw in this example that it is possible to set orderinner=0 on HDiv spaces:
ngsolve.org/docu/nightly/i-tutorials/uni...der/fourthorder.html

I tried setting orderinner=0 on an H1 space, but I get the error message:

WARNING: kwarg 'orderinner' is an undocumented flags option for class <class 'ngsolve.comp.H1'>, maybe there is a typo?

I was wondering if there may be a different way to remove the inner basisfunctions of H1?

Thanks,
Sander
More
6 years 1 month ago #1190 by joachim
Hi Sander,

Although it is undocumented, "orderinner" for H1 should work as well.

As in 2.6 Stokes equation, you can set the order for node-types:

V = H1(mesh, order=2, dirichlet="wall|inlet|cyl")
V.SetOrder(TRIG,3)

With V.SetOrder(TRIG,1) you disable the interior bubbles for triangular elements in 2D , and triangular faces in 3D.

To see what you get you can explore the dofs of elements and nodes, see the tutorial here:

ngsolve.org/docu/latest/i-tutorials/unit...ntId-and-Ngs_Element

Best,
Joachim
More
6 years 1 month ago #1191 by rhebergens
Hi Joachim,

Thanks for the response. So both
Code:
V = H1(mesh, order=order, dirichlet="bottom|right|top|left") V.SetOrder(TRIG,1)

and
Code:
V = H1(mesh, order=order, orderinner=0, dirichlet="bottom|right|top|left")

should give the same result and I can just ignore the warning

WARNING: kwarg 'orderinner' is an undocumented flags option for class <class 'ngsolve.comp.H1'>, maybe there is a typo?

A follow up question, if I explore the dofs using
Code:
for el in V.Elements(VOL): print(type(el)) print (el.dofs)

I find whether I use
Code:
V.SetOrder(TRIG,1)
or
Code:
V.SetOrder(TRIG,2)
, the same dofs are printed to screen. Is it correct to assume that although the dofs for
Code:
V.SetOrder(TRIG,1)
are printed to screen, they are not actually used?

Thanks,
Sander
More
6 years 1 month ago #1192 by joachim
you get a difference if you set
Code:
V.SetOrder(TRIG,3)
or higher.

H1 - trig-bubbles start with order 3

The order on the edges can be set by:
Code:
V.SetOrder(SEGM,2)

- Joachim
The following user(s) said Thank You: rhebergens
Time to create page: 0.100 seconds