From 8f24d927bb988ed14a79a9978f3be4b394f82634 Mon Sep 17 00:00:00 2001
From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de>
Date: Mon, 19 Dec 2016 16:43:31 +0100
Subject: [PATCH] Add additional sumfact poisson dg tests

---
 test/sumfact/poisson/CMakeLists.txt     |  4 ++--
 test/sumfact/poisson/poisson_dg_2d.mini |  8 +++++--
 test/sumfact/poisson/poisson_dg_3d.mini | 25 +++++++++++++++++++++
 test/sumfact/poisson/poisson_dg_3d.ufl  | 29 +++++++++++++++++++++++++
 4 files changed, 62 insertions(+), 4 deletions(-)
 create mode 100644 test/sumfact/poisson/poisson_dg_3d.mini
 create mode 100644 test/sumfact/poisson/poisson_dg_3d.ufl

diff --git a/test/sumfact/poisson/CMakeLists.txt b/test/sumfact/poisson/CMakeLists.txt
index 6d88816a..889b2985 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 747a5b7d..ed6b6795 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 00000000..7bab7f81
--- /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 00000000..b7e20157
--- /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]
-- 
GitLab