@@ -851,7 +851,7 @@ create_d_iso(cell::type celltype, int degree, element::lagrange_variant variant,
851
851
_M (i, 0 , i, 0 ) = 1.0 ;
852
852
853
853
return FiniteElement (
854
- element::family::P , celltype, polyset::type::macroedge, degree, {},
854
+ element::family::iso , celltype, polyset::type::macroedge, degree, {},
855
855
impl::mdspan_t <const T, 2 >(math::eye<T>(ndofs).data (), ndofs, ndofs),
856
856
impl::to_mdspan (x), impl::to_mdspan (M), 0 , maps::type::identity,
857
857
sobolev::space::L2, true , degree, degree, variant,
@@ -1434,10 +1434,11 @@ FiniteElement<T> basix::element::create_iso(cell::type celltype, int degree,
1434
1434
lagrange_variant variant,
1435
1435
bool discontinuous)
1436
1436
{
1437
- if (celltype != cell::type::interval && celltype != cell::type::quadrilateral)
1437
+ if (celltype != cell::type::interval && celltype != cell::type::quadrilateral
1438
+ && celltype != cell::type::hexahedron)
1438
1439
{
1439
1440
throw std::runtime_error (" Can currently only create iso elements on "
1440
- " intervals and quadrilaterals " );
1441
+ " intervals, quadrilaterals, and hexahedra " );
1441
1442
}
1442
1443
1443
1444
if (variant == lagrange_variant::unset)
@@ -1575,7 +1576,7 @@ FiniteElement<T> basix::element::create_iso(cell::type celltype, int degree,
1575
1576
auto tensor_factors
1576
1577
= create_tensor_product_factors<T>(celltype, degree, variant);
1577
1578
return FiniteElement<T>(
1578
- family::P , celltype, polyset::type::macroedge, degree, {},
1579
+ family::iso , celltype, polyset::type::macroedge, degree, {},
1579
1580
impl::mdspan_t <T, 2 >(math::eye<T>(ndofs).data (), ndofs, ndofs), xview,
1580
1581
Mview, 0 , maps::type::identity, space, discontinuous, degree, degree,
1581
1582
variant, dpc_variant::unset, tensor_factors);
0 commit comments