warp.fem.make_conforming_basis_space#

warp.fem.make_conforming_basis_space(raw_basis)[source]#

Eliminate the hanging nodes of a continuous Lagrange basis, such as on an AdaptiveNanogrid.

Nodes of a finer cell lying on a side shared with a coarser cell take the value of the coarser cell’s interpolant, so that fields are continuous across cells of different sizes. This works for any element type and polynomial degree of an interpolatory basis; on geometries whose sides always match their neighbors’ facets, the result has the raw basis’s nodes.

The returned basis enumerates only independent nodes. Its trace is built during this call and is ready for side restrictions and assembly. This is make_constrained_basis_space() applied to hanging_node_prolongation(), without re-validating the prolongation and without a limit on the cell node lists.

Parameters:

raw_basis (BasisSpace)

Return type:

ConstrainedBasisSpace