def __init__(self, ref_el, degree): element = Lagrange(ref_el, degree) cell_dim = ref_el.get_dimension() assert cell_dim == max(element.entity_dofs().keys()) cell_entity_dofs = element.entity_dofs()[cell_dim][0] if len(cell_entity_dofs) == 0: raise RuntimeError('Bubble element of degree %d has no dofs' % degree) super(Bubble, self).__init__(element, indices=cell_entity_dofs)
def __init__(self, ref_el, degree, codim): element = Lagrange(ref_el, degree) cell_dim = ref_el.get_dimension() assert cell_dim == max(element.entity_dofs().keys()) dofs = list( sorted(chain(*element.entity_dofs()[cell_dim - codim].values()))) if len(dofs) == 0: raise RuntimeError( 'Bubble element of degree %d and codimension %d has no dofs' % (degree, codim)) super(CodimBubble, self).__init__(element, indices=dofs)