using orderinner with H1 space


I saw in this example that it is possible to set orderinner=0 on HDiv spaces:

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?


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”)

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:


Hi Joachim,

Thanks for the response. So both

V = H1(mesh, order=order, dirichlet="bottom|right|top|left") V.SetOrder(TRIG,1)


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

for el in V.Elements(VOL): print(type(el)) print (el.dofs)

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


you get a difference if you set


or higher.

H1 - trig-bubbles start with order 3

The order on the edges can be set by:

  • Joachim