From 1fca653f2d2f2d7111b2acd5e81150329a9b8abe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20He=C3=9F?= <rene.hess@iwr.uni-heidelberg.de> Date: Thu, 18 May 2017 15:19:26 +0200 Subject: [PATCH] Add Stokes DG 3d test Conflicts: test/stokes/CMakeLists.txt --- test/stokes/CMakeLists.txt | 20 ++++++++--- test/stokes/stokes_3d_dg_quadrilateral.mini | 15 +++++++++ test/stokes/stokes_3d_dg_quadrilateral.ufl | 37 +++++++++++++++++++++ 3 files changed, 67 insertions(+), 5 deletions(-) create mode 100644 test/stokes/stokes_3d_dg_quadrilateral.mini create mode 100644 test/stokes/stokes_3d_dg_quadrilateral.ufl diff --git a/test/stokes/CMakeLists.txt b/test/stokes/CMakeLists.txt index 2a274367..99972a8f 100644 --- a/test/stokes/CMakeLists.txt +++ b/test/stokes/CMakeLists.txt @@ -12,6 +12,11 @@ dune_add_formcompiler_system_test(UFLFILE stokes_quadrilateral.ufl INIFILE stokes_quadrilateral.mini ) +dune_add_formcompiler_system_test(UFLFILE stokes_3d_quadrilateral.ufl + BASENAME stokes_3d_quadrilateral + INIFILE stokes_3d_quadrilateral.mini + ) + dune_add_formcompiler_system_test(UFLFILE stokes_sym.ufl BASENAME stokes_sym INIFILE stokes_sym.mini @@ -27,11 +32,16 @@ dune_add_formcompiler_system_test(UFLFILE stokes_dg_quadrilateral.ufl INIFILE stokes_dg_quadrilateral.mini ) -#dune_add_formcompiler_system_test(UFLFILE stokes_stress.ufl -# BASENAME stokes_stress -# INIFILE stokes_stress.mini -# ) -# +dune_add_formcompiler_system_test(UFLFILE stokes_3d_dg_quadrilateral.ufl + BASENAME stokes_3d_dg_quadrilateral + INIFILE stokes_3d_dg_quadrilateral.mini + ) + +dune_add_formcompiler_system_test(UFLFILE stokes_stress.ufl + BASENAME stokes_stress + INIFILE stokes_stress.mini + ) + # Do not test stokes_stress_sym until the function_view project # has been fully implemented. # diff --git a/test/stokes/stokes_3d_dg_quadrilateral.mini b/test/stokes/stokes_3d_dg_quadrilateral.mini new file mode 100644 index 00000000..7f7c1d3a --- /dev/null +++ b/test/stokes/stokes_3d_dg_quadrilateral.mini @@ -0,0 +1,15 @@ +__name = stokes_3d_dg_quadrilateral_{__exec_suffix} +__exec_suffix = symdiff, numdiff | expand num + +cells = 4 4 4 +extension = 1. 1. 1. +printmatrix = false + +[wrapper.vtkcompare] +name = {__name} +extension = vtu + +[formcompiler] +numerical_jacobian = 0, 1 | expand num +exact_solution_expression = g +compare_l2errorsquared = 5e-7 diff --git a/test/stokes/stokes_3d_dg_quadrilateral.ufl b/test/stokes/stokes_3d_dg_quadrilateral.ufl new file mode 100644 index 00000000..313c5ad8 --- /dev/null +++ b/test/stokes/stokes_3d_dg_quadrilateral.ufl @@ -0,0 +1,37 @@ +cell = hexahedron + +x = SpatialCoordinate(cell) +g_v = as_vector((4*x[1]*(1.-x[1]), 0.0, 0.0)) +g_p = 8*(1.-x[0]) +g = (g_v, g_p) +bctype = conditional(x[0] < 1. - 1e-8, 1, 0) + +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 \ + - p*div(v)*dx \ + - q*div(u)*dx \ + + inner(avg(grad(u))*n, jump(v))*dS \ + + sigma * 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 \ + + eps * inner(grad(v)*n, u-g_v)*ds \ + + sigma * inner(u-g_v, v)*ds \ + - q*inner(g_v, n)*ds + +forms = [r] -- GitLab