From 7be6d8b94aa6a5ab3acf7309215de4b35a3bb01a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ren=C3=A9=20He=C3=9F?= <rene.hess@iwr.uni-heidelberg.de>
Date: Wed, 25 Oct 2017 15:21:39 +0200
Subject: [PATCH] Add 1/h to penalty factor in Stokes DG

---
 test/stokes/stokes_3d_dg_quadrilateral.mini |  2 +-
 test/stokes/stokes_3d_dg_quadrilateral.ufl  | 10 +++++-----
 test/stokes/stokes_dg.mini                  |  2 +-
 test/stokes/stokes_dg.ufl                   | 16 ++++++++--------
 test/stokes/stokes_dg_quadrilateral.ufl     | 10 +++++-----
 test/sumfact/stokes/stokes_3d_dg.ufl        | 10 +++++-----
 test/sumfact/stokes/stokes_dg.ufl           | 10 +++++-----
 7 files changed, 30 insertions(+), 30 deletions(-)

diff --git a/test/stokes/stokes_3d_dg_quadrilateral.mini b/test/stokes/stokes_3d_dg_quadrilateral.mini
index caeed8bc..d7c82422 100644
--- a/test/stokes/stokes_3d_dg_quadrilateral.mini
+++ b/test/stokes/stokes_3d_dg_quadrilateral.mini
@@ -11,4 +11,4 @@ extension = vtu
 
 [formcompiler]
 numerical_jacobian = 0, 1 | expand num
-compare_l2errorsquared = 2e-8
\ No newline at end of file
+compare_l2errorsquared = 6e-8
\ No newline at end of file
diff --git a/test/stokes/stokes_3d_dg_quadrilateral.ufl b/test/stokes/stokes_3d_dg_quadrilateral.ufl
index 769bd611..84d1003e 100644
--- a/test/stokes/stokes_3d_dg_quadrilateral.ufl
+++ b/test/stokes/stokes_3d_dg_quadrilateral.ufl
@@ -16,21 +16,21 @@ ds = ds(subdomain_id=1, subdomain_data=bctype)
 n = FacetNormal(cell)('+')
 eps = -1.0
 sigma = 1.0
+h_e = Min(CellVolume(cell)('+'), CellVolume(cell)('-')) / FacetArea(cell)
 
 r = inner(grad(u), grad(v))*dx \
   - p*div(v)*dx \
   - q*div(u)*dx \
   + inner(avg(grad(u))*n, jump(v))*dS \
-  + sigma * inner(jump(u), jump(v))*dS \
+  + sigma / h_e * inner(jump(u), jump(v))*dS \
   - eps * inner(avg(grad(v))*n, jump(u))*dS \
   - avg(p)*inner(jump(v), n)*dS \
   - avg(q)*inner(jump(u), n)*dS \
   - inner(grad(u)*n, v)*ds \
-  + p*inner(v, n)*ds \
-  + q*inner(u, n)*ds \
+  + sigma / h_e * inner(u-g_v, v)*ds \
   + eps * inner(grad(v)*n, u-g_v)*ds \
-  + sigma * inner(u-g_v, v)*ds \
-  - q*inner(g_v, n)*ds
+  + p*inner(v, n)*ds \
+  + q*inner(u-g_v, n)*ds
 
 forms = [r]
 exact_solution = g_v, 8.*(1.-x[0])
diff --git a/test/stokes/stokes_dg.mini b/test/stokes/stokes_dg.mini
index 9d65b4a9..7744fa4d 100644
--- a/test/stokes/stokes_dg.mini
+++ b/test/stokes/stokes_dg.mini
@@ -16,4 +16,4 @@ zeroThreshold.data_1 = 1e-6
 
 [formcompiler]
 numerical_jacobian = 0, 1 | expand num
-compare_l2errorsquared = 1e-8
+compare_l2errorsquared = 1e-10
diff --git a/test/stokes/stokes_dg.ufl b/test/stokes/stokes_dg.ufl
index 74b85742..e7176b26 100644
--- a/test/stokes/stokes_dg.ufl
+++ b/test/stokes/stokes_dg.ufl
@@ -16,21 +16,21 @@ ds = ds(subdomain_id=1, subdomain_data=bctype)
 n = FacetNormal(cell)('+')
 eps = -1.0
 sigma = 1.0
+h_e = Min(CellVolume(cell)('+'), CellVolume(cell)('-')) / FacetArea(cell)
 
 r = inner(grad(u), grad(v))*dx \
+  - p*div(v)*dx \
+  - q*div(u)*dx \
   + inner(avg(grad(u))*n, jump(v))*dS \
+  + sigma / h_e * inner(jump(u), jump(v))*dS \
   - eps * inner(avg(grad(v))*n, jump(u))*dS \
+  - avg(p)*inner(jump(v), n)*dS \
+  - avg(q)*inner(jump(u), n)*dS \
   - inner(grad(u)*n, v)*ds \
+  + sigma / h_e * inner(u-g_v, v)*ds \
   + eps * inner(grad(v)*n, u-g_v)*ds \
-  + sigma * inner(jump(u), jump(v))*dS \
-  + sigma * inner(u-g_v, v)*ds \
-  - p*div(v)*dx \
-  - avg(p)*inner(jump(v), n)*dS \
   + p*inner(v, n)*ds \
-  - q*div(u)*dx \
-  - avg(q)*inner(jump(u), n)*dS \
-  + q*inner(u, n)*ds \
-  - q*inner(g_v, n)*ds
+  + q*inner(u-g_v, n)*ds
 
 forms = [r]
 exact_solution = g_v, 8*(1.-x[0])
\ No newline at end of file
diff --git a/test/stokes/stokes_dg_quadrilateral.ufl b/test/stokes/stokes_dg_quadrilateral.ufl
index 1beb3356..8f4415a7 100644
--- a/test/stokes/stokes_dg_quadrilateral.ufl
+++ b/test/stokes/stokes_dg_quadrilateral.ufl
@@ -16,21 +16,21 @@ ds = ds(subdomain_id=1, subdomain_data=bctype)
 n = FacetNormal(cell)('+')
 eps = -1.0
 sigma = 1.0
+h_e = Min(CellVolume(cell)('+'), CellVolume(cell)('-')) / FacetArea(cell)
 
 r = inner(grad(u), grad(v))*dx \
   - p*div(v)*dx \
   - q*div(u)*dx \
   + inner(avg(grad(u))*n, jump(v))*dS \
-  + sigma * inner(jump(u), jump(v))*dS \
+  + sigma / h_e * inner(jump(u), jump(v))*dS \
   - eps * inner(avg(grad(v))*n, jump(u))*dS \
   - avg(p)*inner(jump(v), n)*dS \
   - avg(q)*inner(jump(u), n)*dS \
   - inner(grad(u)*n, v)*ds \
-  + p*inner(v, n)*ds \
-  + q*inner(u, n)*ds \
+  + sigma / h_e * inner(u-g_v, v)*ds \
   + eps * inner(grad(v)*n, u-g_v)*ds \
-  + sigma * inner(u-g_v, v)*ds \
-  - q*inner(g_v, n)*ds
+  + p*inner(v, n)*ds \
+  + q*inner(u-g_v, n)*ds
 
 forms = [r]
 exact_solution = g_v, 8*(1.-x[0])
diff --git a/test/sumfact/stokes/stokes_3d_dg.ufl b/test/sumfact/stokes/stokes_3d_dg.ufl
index 769bd611..84d1003e 100644
--- a/test/sumfact/stokes/stokes_3d_dg.ufl
+++ b/test/sumfact/stokes/stokes_3d_dg.ufl
@@ -16,21 +16,21 @@ ds = ds(subdomain_id=1, subdomain_data=bctype)
 n = FacetNormal(cell)('+')
 eps = -1.0
 sigma = 1.0
+h_e = Min(CellVolume(cell)('+'), CellVolume(cell)('-')) / FacetArea(cell)
 
 r = inner(grad(u), grad(v))*dx \
   - p*div(v)*dx \
   - q*div(u)*dx \
   + inner(avg(grad(u))*n, jump(v))*dS \
-  + sigma * inner(jump(u), jump(v))*dS \
+  + sigma / h_e * inner(jump(u), jump(v))*dS \
   - eps * inner(avg(grad(v))*n, jump(u))*dS \
   - avg(p)*inner(jump(v), n)*dS \
   - avg(q)*inner(jump(u), n)*dS \
   - inner(grad(u)*n, v)*ds \
-  + p*inner(v, n)*ds \
-  + q*inner(u, n)*ds \
+  + sigma / h_e * inner(u-g_v, v)*ds \
   + eps * inner(grad(v)*n, u-g_v)*ds \
-  + sigma * inner(u-g_v, v)*ds \
-  - q*inner(g_v, n)*ds
+  + p*inner(v, n)*ds \
+  + q*inner(u-g_v, n)*ds
 
 forms = [r]
 exact_solution = g_v, 8.*(1.-x[0])
diff --git a/test/sumfact/stokes/stokes_dg.ufl b/test/sumfact/stokes/stokes_dg.ufl
index d961446a..39c243a0 100644
--- a/test/sumfact/stokes/stokes_dg.ufl
+++ b/test/sumfact/stokes/stokes_dg.ufl
@@ -16,21 +16,21 @@ ds = ds(subdomain_id=1, subdomain_data=bctype)
 n = FacetNormal(cell)('+')
 eps = -1.0
 sigma = 1.0
+h_e = Min(CellVolume(cell)('+'), CellVolume(cell)('-')) / FacetArea(cell)
 
 r = inner(grad(u), grad(v))*dx \
   - p*div(v)*dx \
   - q*div(u)*dx \
   + inner(avg(grad(u))*n, jump(v))*dS \
-  + sigma * inner(jump(u), jump(v))*dS \
+  + sigma / h_e * inner(jump(u), jump(v))*dS \
   - eps * inner(avg(grad(v))*n, jump(u))*dS \
   - avg(p)*inner(jump(v), n)*dS \
   - avg(q)*inner(jump(u), n)*dS \
   - inner(grad(u)*n, v)*ds \
-  + p*inner(v, n)*ds \
-  + q*inner(u, n)*ds \
+  + sigma / h_e * inner(u-g_v, v)*ds \
   + eps * inner(grad(v)*n, u-g_v)*ds \
-  + sigma * inner(u-g_v, v)*ds \
-  - q*inner(g_v, n)*ds
+  + p*inner(v, n)*ds \
+  + q*inner(u-g_v, n)*ds
 
 forms = [r]
 exact_solution = g_v, 8*(1.-x[0])
\ No newline at end of file
-- 
GitLab