From 02874b0e45ae880dba5c0f292605319dc178f903 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20He=C3=9F?= <rene.hess@iwr.uni-heidelberg.de> Date: Fri, 1 Sep 2017 11:33:15 +0200 Subject: [PATCH] Fix typos, add assertion and fix small bug --- python/dune/perftool/pdelab/driver/gridfunctionspace.py | 9 +++++++-- python/dune/perftool/pdelab/quadrature.py | 4 ++-- python/dune/perftool/sumfact/basis.py | 3 ++- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/python/dune/perftool/pdelab/driver/gridfunctionspace.py b/python/dune/perftool/pdelab/driver/gridfunctionspace.py index 2c042e09..bf47920a 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 6a292420..4f28b9c5 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 bdb5badd..c73f9afe 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 -- GitLab