From b912040cfb20339c4634efc1cb343adcdf3bccc3 Mon Sep 17 00:00:00 2001 From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de> Date: Thu, 16 Jun 2016 16:00:52 +0200 Subject: [PATCH] Add stokes dg test case --- test/stokes/CMakeLists.txt | 5 +++++ test/stokes/hagenpoiseuille_dg_ref.vtu | 3 +++ test/stokes/stokes_dg.ufl | 26 ++++++++++++++++---------- test/stokes/stokes_dg_numdiff.mini | 12 ++++++++++++ 4 files changed, 36 insertions(+), 10 deletions(-) create mode 100644 test/stokes/hagenpoiseuille_dg_ref.vtu create mode 100644 test/stokes/stokes_dg_numdiff.mini diff --git a/test/stokes/CMakeLists.txt b/test/stokes/CMakeLists.txt index b1fde82b..5e60f027 100644 --- a/test/stokes/CMakeLists.txt +++ b/test/stokes/CMakeLists.txt @@ -14,3 +14,8 @@ add_generated_executable(UFLFILE stokes_dg.ufl TARGET stokes_dg_numdiff FORM_COMPILER_ARGS --numerical-jacobian ) + +dune_add_system_test(TARGET stokes_dg_numdiff + INIFILE stokes_dg_numdiff.mini + SCRIPT dune_vtkcompare.py + ) diff --git a/test/stokes/hagenpoiseuille_dg_ref.vtu b/test/stokes/hagenpoiseuille_dg_ref.vtu new file mode 100644 index 00000000..bb365f28 --- /dev/null +++ b/test/stokes/hagenpoiseuille_dg_ref.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8fe239de245d906b2c6cd6be54d0f57c93cc93928a94e416f210794e2b81d80 +size 91807 diff --git a/test/stokes/stokes_dg.ufl b/test/stokes/stokes_dg.ufl index 71ff6674..7b15e24c 100644 --- a/test/stokes/stokes_dg.ufl +++ b/test/stokes/stokes_dg.ufl @@ -1,27 +1,33 @@ +g = VectorExpression("Dune::FieldVector<double, 2> y(0.0); y[0]=4*x[1]*(1.-x[1]); return y;", on_intersection=True) +bctype = Expression("if (x[0] < 1. - 1e-8) return 1; else return 0;", on_intersection=True) + cell = triangle -P2 = VectorElement("Lagrange", cell, 2) -P1 = FiniteElement("Lagrange", cell, 1) +P2 = VectorElement("DG", cell, 2) +P1 = FiniteElement("DG", cell, 1) TH = P2 * P1 v, q = TestFunctions(TH) u, p = TrialFunctions(TH) +ds = ds(subdomain_id=1, subdomain_data=bctype) + n = FacetNormal(cell)('+') eps = -1.0 sigma = 1.0 r = inner(grad(u), grad(v))*dx \ - - inner(avg(grad(u))*n, jump(v))*dS \ - + eps * inner(avg(grad(v))*n, jump(u))*dS \ + + inner(avg(grad(u))*n, jump(v))*dS \ + - eps * inner(avg(grad(v))*n, jump(u))*dS \ - inner(grad(u)*n, v)*ds \ - + eps * inner(grad(v)*n, u)*ds \ + + eps * inner(grad(v)*n, u-g)*ds \ + sigma * inner(jump(u), jump(v))*dS \ - + sigma * inner(u, v)*ds \ + + sigma * inner(u-g, v)*ds \ - p*div(v)*dx \ - - q*div(u)*dx \ - + avg(p)*inner(jump(v), n)*dS \ - + avg(q)*inner(jump(u), n)*dS \ + - avg(p)*inner(jump(v), n)*dS \ + p*inner(v, n)*ds \ - + q*inner(u, n)*ds + - q*div(u)*dx \ + - avg(q)*inner(jump(u), n)*dS \ + + q*inner(u, n)*ds \ + - q*inner(g, n)*ds forms = [r] diff --git a/test/stokes/stokes_dg_numdiff.mini b/test/stokes/stokes_dg_numdiff.mini new file mode 100644 index 00000000..86749cea --- /dev/null +++ b/test/stokes/stokes_dg_numdiff.mini @@ -0,0 +1,12 @@ +__name = stokes_dg_numdiff + +lowerleft = 0.0 0.0 +upperright = 1.0 1.0 +elements = 16 16 +elementType = simplical +printmatrix = false + +[wrapper.vtkcompare] +name = {__name} +reference = hagenpoiseuille_dg_ref +extension = vtu -- GitLab