diff --git a/python/dune/perftool/pdelab/driver/gridfunctionspace.py b/python/dune/perftool/pdelab/driver/gridfunctionspace.py index 2c042e09af6adf17dd2aca45aed913eaf7888c48..bf47920a94513d0075b92d3b65bc8357081e371e 100644 --- a/python/dune/perftool/pdelab/driver/gridfunctionspace.py +++ b/python/dune/perftool/pdelab/driver/gridfunctionspace.py @@ -137,16 +137,21 @@ def typedef_fem(element, name): # of the same type ('CG' or 'DG') assert(len(set(subel._short_name for subel in element.sub_elements())) == 1) + # Anisotropic degree is not yet supported in Dune + degrees = element.degree() + for deg in degrees: + assert (deg == degrees[0]) + # TensorProductElements have Qk structure -> no Pk if isLagrange(element.sub_elements()[0]): include_file("dune/pdelab/finiteelementmap/qkfem.hh", filetag="driver") return "using {} = Dune::PDELab::QkLocalFiniteElementMap<{}, {}, {}, {}>;" \ - .format(name, gv, df, r, max(element.degree())) + .format(name, gv, df, r, degrees[0]) elif isDG(element.sub_elements()[0]): include_file("dune/pdelab/finiteelementmap/qkdg.hh", filetag="driver") # TODO allow switching the basis here! return "using {} = Dune::PDELab::QkDGLocalFiniteElementMap<{}, {}, {}, {}>;" \ - .format(name, df, r, max(element.degree()), dim) + .format(name, df, r, degrees[0], dim) raise NotImplementedError("FEM not implemented in dune-perftool") elif isQk(element): include_file("dune/pdelab/finiteelementmap/qkfem.hh", filetag="driver") diff --git a/python/dune/perftool/pdelab/quadrature.py b/python/dune/perftool/pdelab/quadrature.py index 6a29242044c4c7bf3b360dedf0d0b82a20774c22..4f28b9c52c8a2fe51b0b31ce7c34145ea63a7985 100644 --- a/python/dune/perftool/pdelab/quadrature.py +++ b/python/dune/perftool/pdelab/quadrature.py @@ -218,9 +218,9 @@ def quadrature_order(): Notes: - In PDELab quadrature order m means that integration of - polynomials of degree m is excat. + polynomials of degree m is exact. - - If you sue sum factorization and TensorProductElement it is + - If you use sum factorization and TensorProductElement it is possible to use a different quadrature_order per direction. """ if get_option("quadrature_order"): diff --git a/python/dune/perftool/sumfact/basis.py b/python/dune/perftool/sumfact/basis.py index bdb5badd85a4c125f118ba7941cda861b4fdeb95..c73f9afef66918acd10ac6725bff055f43a821ba 100644 --- a/python/dune/perftool/sumfact/basis.py +++ b/python/dune/perftool/sumfact/basis.py @@ -105,7 +105,8 @@ def _basis_functions_per_direction(element): basis_size = tuple(deg + 1 for deg in degree) # Anisotropic finite elements are not (yet) supported by Dune - assert(size == basis_size[0] for size in basis_size) + for size in basis_size: + assert(size == basis_size[0]) return basis_size