From 9f6ed35937382525269349cf569c0ba6e490c96a Mon Sep 17 00:00:00 2001
From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de>
Date: Fri, 10 Jun 2016 13:42:57 +0200
Subject: [PATCH] Enhance testing suite

---
 test/poisson/poisson_dg_neumann.ufl          | 31 ++++++++++++++++++++
 test/poisson/poisson_dg_neumann_numdiff.mini | 11 +++++++
 test/poisson/poisson_dg_neumann_symdiff.mini | 11 +++++++
 test/poisson/poisson_dg_symdiff.mini         | 11 +++++++
 test/stokes/CMakeLists.txt                   |  4 +++
 test/stokes/stokes_numdiff.mini              |  7 +++++
 6 files changed, 75 insertions(+)
 create mode 100644 test/poisson/poisson_dg_neumann.ufl
 create mode 100644 test/poisson/poisson_dg_neumann_numdiff.mini
 create mode 100644 test/poisson/poisson_dg_neumann_symdiff.mini
 create mode 100644 test/poisson/poisson_dg_symdiff.mini
 create mode 100644 test/stokes/stokes_numdiff.mini

diff --git a/test/poisson/poisson_dg_neumann.ufl b/test/poisson/poisson_dg_neumann.ufl
new file mode 100644
index 00000000..eeda053a
--- /dev/null
+++ b/test/poisson/poisson_dg_neumann.ufl
@@ -0,0 +1,31 @@
+f = Expression("Dune::FieldVector<double,2> c(0.5); c-= x; return 4.*(1.-c.two_norm2())*std::exp(-1.*c.two_norm2());")
+g = Expression("Dune::FieldVector<double,2> c(0.5); c-= x; return std::exp(-1.*c.two_norm2());", on_intersection=True)
+j = Expression("Dune::FieldVector<double,2> c(0.5); c-= x; double s; if (x[1]>0.5) s=1.; else s=-1.; return -2.*s*(x[1]-0.5)*std::exp(-1.*c.two_norm2());", on_intersection=True)
+bctype = Expression("if ((x[1]<1e-8) || (x[1]>1.-1e-8)) return 0; else return 1;", on_intersection=True)
+
+cell = triangle
+V = FiniteElement("DG", cell, 1)
+
+u = TrialFunction(V)
+v = TestFunction(V)
+
+n = FacetNormal(cell)('+')
+
+ds = ds(subdomain_data=bctype)
+
+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(1) \
+  + gamma*u*v*ds(1) \
+  - theta*u*inner(grad(v), n)*ds(1) \
+  - f*v*dx \
+  + theta*g*inner(grad(v), n)*ds(1) \
+  - gamma*g*v*ds(1) \
+  - j*v*ds(0)
+
+forms = [r]
diff --git a/test/poisson/poisson_dg_neumann_numdiff.mini b/test/poisson/poisson_dg_neumann_numdiff.mini
new file mode 100644
index 00000000..b0847a74
--- /dev/null
+++ b/test/poisson/poisson_dg_neumann_numdiff.mini
@@ -0,0 +1,11 @@
+__name = poisson_dg_neumann_numdiff
+
+lowerleft = 0.0 0.0
+upperright = 1.0 1.0
+elements = 32 32
+elementType = simplical
+
+[wrapper.vtkcompare]
+name = {__name}
+reference = poisson_dg_ref
+extension = vtu
diff --git a/test/poisson/poisson_dg_neumann_symdiff.mini b/test/poisson/poisson_dg_neumann_symdiff.mini
new file mode 100644
index 00000000..4dd175dd
--- /dev/null
+++ b/test/poisson/poisson_dg_neumann_symdiff.mini
@@ -0,0 +1,11 @@
+__name = poisson_dg_neumann_symdiff
+
+lowerleft = 0.0 0.0
+upperright = 1.0 1.0
+elements = 32 32
+elementType = simplical
+
+[wrapper.vtkcompare]
+name = {__name}
+reference = poisson_dg_ref
+extension = vtu
diff --git a/test/poisson/poisson_dg_symdiff.mini b/test/poisson/poisson_dg_symdiff.mini
new file mode 100644
index 00000000..fe696b11
--- /dev/null
+++ b/test/poisson/poisson_dg_symdiff.mini
@@ -0,0 +1,11 @@
+__name = poisson_dg_symdiff
+
+lowerleft = 0.0 0.0
+upperright = 1.0 1.0
+elements = 32 32
+elementType = simplical
+
+[wrapper.vtkcompare]
+name = {__name}
+reference = poisson_dg_ref
+extension = vtu
diff --git a/test/stokes/CMakeLists.txt b/test/stokes/CMakeLists.txt
index d9ea51a0..1e8651d2 100644
--- a/test/stokes/CMakeLists.txt
+++ b/test/stokes/CMakeLists.txt
@@ -2,3 +2,7 @@ add_generated_executable(UFLFILE stokes.ufl
                          TARGET stokes_numdiff
                          FORM_COMPILER_ARGS --numerical-jacobian
                          )
+
+dune_add_system_test(TARGET stokes_numdiff
+                     INIFILE stokes_numdiff.mini
+                     )
diff --git a/test/stokes/stokes_numdiff.mini b/test/stokes/stokes_numdiff.mini
new file mode 100644
index 00000000..671667ea
--- /dev/null
+++ b/test/stokes/stokes_numdiff.mini
@@ -0,0 +1,7 @@
+__name = stokes_numdiff
+
+lowerleft = 0.0 0.0
+upperright = 1.0 1.0
+elements = 4 4
+elementType = simplical
+printmatrix = true
-- 
GitLab