diff --git a/test/sumfact/poisson/CMakeLists.txt b/test/sumfact/poisson/CMakeLists.txt index 6d88816a9849c2ff47bbdee9c97c0f488075a037..889b29853ba92c628f91cfbc6a19523189d69fad 100644 --- a/test/sumfact/poisson/CMakeLists.txt +++ b/test/sumfact/poisson/CMakeLists.txt @@ -18,13 +18,13 @@ dune_add_formcompiler_system_test(UFLFILE opcount_poisson_2d_order2.ufl # 3. Poisson Test Case: DG in 2D dune_add_formcompiler_system_test(UFLFILE poisson_dg_2d.ufl - BASENAME sumfact_poisson_dg + BASENAME sumfact_poisson_dg_2d INIFILE poisson_dg_2d.mini ) # 4. Poisson Test Case: DG in 3D dune_add_formcompiler_system_test(UFLFILE poisson_dg_3d.ufl - BASENAME sumfact_poisson_dg + BASENAME sumfact_poisson_dg_3d INIFILE poisson_dg_3d.mini ) diff --git a/test/sumfact/poisson/poisson_dg_2d.mini b/test/sumfact/poisson/poisson_dg_2d.mini index 747a5b7dac42a836c8a4eb0acdfc59b418f58581..ed6b6795cb4d720560b6761adcee293b70ab98e3 100644 --- a/test/sumfact/poisson/poisson_dg_2d.mini +++ b/test/sumfact/poisson/poisson_dg_2d.mini @@ -1,9 +1,10 @@ -__name = sumfact_poisson_dg_{__exec_suffix} -__exec_suffix = {diff_suffix}_{quadvec_suffix}_{gradvec_suffix} +__name = sumfact_poisson_dg_2d_{__exec_suffix} +__exec_suffix = {deg_suffix}_{diff_suffix}_{quadvec_suffix}_{gradvec_suffix} diff_suffix = numdiff, symdiff | expand num quadvec_suffix = quadvec, nonquadvec | expand quad gradvec_suffix = gradvec, nongradvec | expand grad +deg_suffix = deg{formcompiler.ufl_variants.degree} cells = 16 16 extension = 1. 1. @@ -19,3 +20,6 @@ exact_solution_expression = g compare_l2errorsquared = 1e-4 vectorize_quad = 1, 0 | expand quad vectorize_grads = 1, 0 | expand grad + +[formcompiler.ufl_variants] +degree = 1, 2 | expand deg diff --git a/test/sumfact/poisson/poisson_dg_3d.mini b/test/sumfact/poisson/poisson_dg_3d.mini new file mode 100644 index 0000000000000000000000000000000000000000..7bab7f81c1e5a946738540a9ee0b903e38f22140 --- /dev/null +++ b/test/sumfact/poisson/poisson_dg_3d.mini @@ -0,0 +1,25 @@ +__name = sumfact_poisson_dg_3d_{__exec_suffix} +__exec_suffix = {deg_suffix}_{diff_suffix}_{quadvec_suffix}_{gradvec_suffix} + +diff_suffix = numdiff, symdiff | expand num +quadvec_suffix = quadvec, nonquadvec | expand quad +gradvec_suffix = gradvec, nongradvec | expand grad +deg_suffix = deg{formcompiler.ufl_variants.degree} + +cells = 8 8 8 +extension = 1. 1. 1. + +[wrapper.vtkcompare] +name = {__name} +extension = vtu + +[formcompiler] +numerical_jacobian = 1, 0 | expand num +sumfact = 1 +exact_solution_expression = g +compare_l2errorsquared = 1e-4 +vectorize_quad = 1, 0 | expand quad +vectorize_grads = 1, 0 | expand grad + +[formcompiler.ufl_variants] +degree = 1, 2 | expand deg diff --git a/test/sumfact/poisson/poisson_dg_3d.ufl b/test/sumfact/poisson/poisson_dg_3d.ufl new file mode 100644 index 0000000000000000000000000000000000000000..b7e20157ef4f7015b856b572d0a1d84da1800f1e --- /dev/null +++ b/test/sumfact/poisson/poisson_dg_3d.ufl @@ -0,0 +1,29 @@ +cell = "hexahedron" + +x = SpatialCoordinate(cell) +c = (0.5-x[0])**2 + (0.5-x[1])**2 + (0.5-x[2])**2 +g = exp(-1.*c) +f = 6*(1.-c)*g + +V = FiniteElement("DG", cell, degree) + +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]