diff --git a/python/dune/perftool/loopy/transformations/collect_rotate.py b/python/dune/perftool/loopy/transformations/collect_rotate.py index 510075c9f6ab9fa2173a554915f753cdb3553b86..f37b5df0e9cd9bda881d8f1ddceacaa9924814ce 100644 --- a/python/dune/perftool/loopy/transformations/collect_rotate.py +++ b/python/dune/perftool/loopy/transformations/collect_rotate.py @@ -17,7 +17,7 @@ from loopy.kernel.creation import parse_domains from loopy.symbolic import pw_aff_to_expr from loopy.match import Tagged -from pymbolic.mapper.dependency import DependencyMapper +from loopy.symbolic import DependencyMapper import pymbolic.primitives as prim import loopy as lp diff --git a/python/dune/perftool/sumfact/sumfact.py b/python/dune/perftool/sumfact/sumfact.py index afae030a8ee52a736b14b4ad72c16bf79e219305..b038e763fd7a7168d6aec101ecc397bc50639203 100644 --- a/python/dune/perftool/sumfact/sumfact.py +++ b/python/dune/perftool/sumfact/sumfact.py @@ -131,10 +131,7 @@ def generate_accumulation_instruction(visitor, accterm, measure, subdomain_id): a_matrices, buffer, input, index = get_vectorization_info(a_matrices, restriction) # Initialize a base storage for this buffer and get a temporay pointing to it - try: - shape = tuple(mat.cols for mat in a_matrices if mat.cols != 1) - except: - from pudb import set_trace; set_trace() + shape = tuple(mat.cols for mat in a_matrices if mat.cols != 1) dim_tags = ",".join(['f'] * local_dimension()) if index is not None: shape = shape + (4,) diff --git a/python/dune/perftool/sumfact/switch.py b/python/dune/perftool/sumfact/switch.py index 4fa630646510532ac1956db6fff82085911d310e..d2361c3b052b0ed51fcc584eccfa74ba0f97ce42 100644 --- a/python/dune/perftool/sumfact/switch.py +++ b/python/dune/perftool/sumfact/switch.py @@ -56,7 +56,7 @@ def decide_if_kernel_is_necessary(facedir_s, facemod_s, facedir_n, facemod_n): if not get_option("diagonal_transformation_matrix"): return True - # A codim1 entity is can never be on the upper resp. lower side of the ref element + # A codim1 entity can never be on the upper resp. lower side of the ref element # in both inside and outside cell in a YaspGrid if facemod_n == facemod_s: return False diff --git a/test/poisson/opcount_poisson_dg.ufl b/test/poisson/opcount_poisson_dg.ufl new file mode 100644 index 0000000000000000000000000000000000000000..1ca65e1eaf16d4ff71444bd71626c277b82328c9 --- /dev/null +++ b/test/poisson/opcount_poisson_dg.ufl @@ -0,0 +1,27 @@ +cell = "quadrilateral" + +f = Expression("return -2.0*x.size();", cell=cell) +g = Expression("return x.two_norm2();", on_intersection=True, cell=cell) + +V = FiniteElement("DG", cell, 1) + +u = TrialFunction(V) +v = TestFunction(V) + +n = FacetNormal(cell)('+') + +gamma = 1.0 +theta = 1.0 + +r = inner(grad(u), grad(v))*dx \ + + inner(n, avg(grad(u)))*jump(v)*dS \ + + gamma*jump(u)*jump(v)*dS \ + + theta*jump(u)*inner(avg(grad(v)), n)*dS \ + - inner(n, grad(u))*v*ds \ + + gamma*u*v*ds \ + - theta*u*inner(grad(v), n)*ds \ + - f*v*dx \ + + theta*g*inner(grad(v), n)*ds \ + - gamma*g*v*ds + +forms = [r] diff --git a/test/poisson/poisson_dg_quadrilateral.mini b/test/poisson/poisson_dg_quadrilateral.mini new file mode 100644 index 0000000000000000000000000000000000000000..2cb4d1d2a909290f725f026fbf5e8d062470057e --- /dev/null +++ b/test/poisson/poisson_dg_quadrilateral.mini @@ -0,0 +1,14 @@ +__name = poisson_dg_quadrilateral_{__exec_suffix} +__exec_suffix = numdiff, symdiff | expand num + +extension = 1.0 1.0 +cells = 32 32 + +[wrapper.vtkcompare] +name = {__name} +extension = vtu + +[formcompiler] +numerical_jacobian = 1, 0 | expand num +exact_solution_expression = g +compare_l2errorsquared = 2e-5