def hermite_dofs(element):
    """Special fix for Hermite elements until Rob fixes in FIAT."""
    dofs_2d = [('PointEval', {(0.0, 0.0): [(1.0, ())]}), ('PointEval', {(
        1.0, 0.0): [(1.0, ())]}), ('PointEval', {(0.0, 1.0): [(1.0, ())]}),
        ('PointDeriv', {(0.0, 0.0): [(1.0, ())]}), ('PointDeriv', {(0.0, 
        0.0): [(1.0, ())]}), ('PointDeriv', {(1.0, 0.0): [(1.0, ())]}), (
        'PointDeriv', {(1.0, 0.0): [(1.0, ())]}), ('PointDeriv', {(0.0, 1.0
        ): [(1.0, ())]}), ('PointDeriv', {(0.0, 1.0): [(1.0, ())]}), (
        'PointEval', {(1.0 / 3, 1.0 / 3): [(1.0, ())]})]
    dofs_3d = [('PointEval', {(0.0, 0.0, 0.0): [(1.0, ())]}), ('PointEval',
        {(1.0, 0.0, 0.0): [(1.0, ())]}), ('PointEval', {(0.0, 1.0, 0.0): [(
        1.0, ())]}), ('PointEval', {(0.0, 0.0, 1.0): [(1.0, ())]}), (
        'PointDeriv', {(0.0, 0.0, 0.0): [(1.0, ())]}), ('PointDeriv', {(0.0,
        0.0, 0.0): [(1.0, ())]}), ('PointDeriv', {(0.0, 0.0, 0.0): [(1.0, (
        ))]}), ('PointDeriv', {(1.0, 0.0, 0.0): [(1.0, ())]}), (
        'PointDeriv', {(1.0, 0.0, 0.0): [(1.0, ())]}), ('PointDeriv', {(1.0,
        0.0, 0.0): [(1.0, ())]}), ('PointDeriv', {(0.0, 1.0, 0.0): [(1.0, (
        ))]}), ('PointDeriv', {(0.0, 1.0, 0.0): [(1.0, ())]}), (
        'PointDeriv', {(0.0, 1.0, 0.0): [(1.0, ())]}), ('PointDeriv', {(0.0,
        0.0, 1.0): [(1.0, ())]}), ('PointDeriv', {(0.0, 0.0, 1.0): [(1.0, (
        ))]}), ('PointDeriv', {(0.0, 0.0, 1.0): [(1.0, ())]}), ('PointEval',
        {(1.0 / 3, 1.0 / 3, 1.0 / 3): [(1.0, ())]}), ('PointEval', {(0.0, 
        1.0 / 3, 1.0 / 3): [(1.0, ())]}), ('PointEval', {(1.0 / 3, 0.0, 1.0 /
        3): [(1.0, ())]}), ('PointEval', {(1.0 / 3, 1.0 / 3, 0.0): [(1.0, (
        ))]})]
    if element.cell().cellname() == 'triangle':
        return dofs_2d
    else:
        return dofs_3d
