diff --git a/test/stokes/CMakeLists.txt b/test/stokes/CMakeLists.txt index 2a274367c3d7dc652ccfadb580b68571b4d97e96..99972a8f624af931c7a3ae868254c396de21529f 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 0000000000000000000000000000000000000000..7f7c1d3ad532131769200ce70d5ba2b97695db9c --- /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 0000000000000000000000000000000000000000..313c5ad8f11759db6ca5664540ae4fa31d2007fc --- /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]