From 68a6c65766263c83d8c2cdb37710f8a0bfbe6c73 Mon Sep 17 00:00:00 2001
From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de>
Date: Tue, 25 Jul 2017 13:55:58 +0200
Subject: [PATCH] Add sumfact linear acoustics

---
 test/sumfact/hyperbolic/CMakeLists.txt       |  5 ++++
 test/sumfact/hyperbolic/linearacoustics.mini | 25 ++++++++++++++++++++
 test/sumfact/hyperbolic/linearacoustics.ufl  | 24 +++++++++++++++++++
 3 files changed, 54 insertions(+)
 create mode 100644 test/sumfact/hyperbolic/linearacoustics.mini
 create mode 100644 test/sumfact/hyperbolic/linearacoustics.ufl

diff --git a/test/sumfact/hyperbolic/CMakeLists.txt b/test/sumfact/hyperbolic/CMakeLists.txt
index 8399811d..25388b32 100644
--- a/test/sumfact/hyperbolic/CMakeLists.txt
+++ b/test/sumfact/hyperbolic/CMakeLists.txt
@@ -2,3 +2,8 @@ dune_add_formcompiler_system_test(UFLFILE lineartransport.ufl
                                   BASENAME sumfact_lineartransport
                                   INIFILE lineartransport.mini
                                   )
+
+dune_add_formcompiler_system_test(UFLFILE linearacoustics.ufl
+                                  BASENAME sumfact_linearacoustics
+                                  INIFILE linearacoustics.mini
+                                  )
diff --git a/test/sumfact/hyperbolic/linearacoustics.mini b/test/sumfact/hyperbolic/linearacoustics.mini
new file mode 100644
index 00000000..9ac464c0
--- /dev/null
+++ b/test/sumfact/hyperbolic/linearacoustics.mini
@@ -0,0 +1,25 @@
+__name = sumfact_linearacoustics_{__exec_suffix}
+__exec_suffix = {diff_suffix}
+
+diff_suffix = numdiff, symdiff | expand diff
+
+extension = 1.0 1.0
+cells = 20 20
+elementType = hexahedral
+
+[instat]
+T = 1.5
+dt = 0.0025
+
+[wrapper.vtkcompare]
+name = {__name}
+extension = vtu
+
+[formcompiler]
+numerical_jacobian = 1, 0 | expand diff
+explicit_time_stepping = 0
+sumfact = 1
+# This tests that all mass is transported out of the domain.
+# While this is not the best of tests, it is something easily checked for.
+#exact_solution_expression = g
+#compare_l2errorsquared = 1e-10
diff --git a/test/sumfact/hyperbolic/linearacoustics.ufl b/test/sumfact/hyperbolic/linearacoustics.ufl
new file mode 100644
index 00000000..09386752
--- /dev/null
+++ b/test/sumfact/hyperbolic/linearacoustics.ufl
@@ -0,0 +1,24 @@
+cell = quadrilateral
+x = SpatialCoordinate(cell)
+
+#V = FiniteElement("DG", cell, 1)
+
+MV = VectorElement("DG", cell=cell, degree=1, dim=3)
+
+n = FacetNormal(cell)('+')
+
+u = TrialFunction(MV)
+v = TestFunction(MV)
+
+rho, q0, q1 = split(u)
+rhot, q0t, q1t = split(v)
+
+mass = inner(u, v)*dx
+
+flux = as_matrix([[q0, q1], [rho, 0.], [0., rho]])
+
+r = -1.*inner(flux, grad(v))*dx \
+  + inner(dot(avg(flux), n) + 0.5*jump(u), jump(v))*dS \
+  + inner(u, v)*ds
+
+forms = [mass, r]
-- 
GitLab