diff --git a/test/sumfact/poisson/CMakeLists.txt b/test/sumfact/poisson/CMakeLists.txt index 062fc23d1d26a03922ec30a8f32164c5c344eda2..23d7c96dee1472273146d3023c926c1f6e84912e 100644 --- a/test/sumfact/poisson/CMakeLists.txt +++ b/test/sumfact/poisson/CMakeLists.txt @@ -1,45 +1,54 @@ -# 1. Poisson Test Case in 2D +#==================== +# Poisson CG in 2D/3D +#==================== dune_add_formcompiler_system_test(UFLFILE poisson_2d.ufl BASENAME sumfact_poisson_2d INIFILE poisson_2d.mini ) - -# 2. Poisson Test case in 3D dune_add_formcompiler_system_test(UFLFILE poisson_3d.ufl BASENAME sumfact_poisson_3d INIFILE poisson_3d.mini ) -# Operator counting test +#================ +# Opcounter tests +#================ dune_add_formcompiler_system_test(UFLFILE opcount_poisson_2d_order2.ufl BASENAME opcount_sumfact_poisson_2d_order2 INIFILE opcount_poisson_2d_order2.mini ) - dune_add_formcompiler_system_test(UFLFILE poisson_dg_2d.ufl BASENAME opcount_sumfact_poisson_dg_2d_vec INIFILE opcount_sumfact_poisson_dg_2d_vec.mini ) -# 3. Poisson Test Case: DG in 2D +#==================== +# Poisson DG in 2D/3D +#==================== dune_add_formcompiler_system_test(UFLFILE poisson_dg_2d.ufl BASENAME sumfact_poisson_dg_2d INIFILE poisson_dg_2d.mini ) - -# 4. Poisson Test Case: DG in 3D dune_add_formcompiler_system_test(UFLFILE poisson_dg_3d.ufl BASENAME sumfact_poisson_dg_3d INIFILE poisson_dg_3d.mini ) -# Poisson DG using FastDGGridOperator +#============================================= +# Poisson DG using FastDGGridOperator in 2D/3D +#============================================= dune_add_formcompiler_system_test(UFLFILE poisson_dg_2d.ufl - BASENAME sumfact_poisson_fastdg - INIFILE poisson_fastdg.mini + BASENAME sumfact_poisson_fastdg_2d + INIFILE poisson_fastdg_2d.mini + ) +dune_add_formcompiler_system_test(UFLFILE poisson_dg_3d.ufl + BASENAME sumfact_poisson_fastdg_3d + INIFILE poisson_fastdg_3d.mini ) -# Poisson DG with a full tensor +#================================ +# 'Poisson' DG with a full tensor +#================================ dune_add_formcompiler_system_test(UFLFILE poisson_dg_tensor.ufl BASENAME sumfact_poisson_dg_tensor INIFILE poisson_dg_tensor.mini diff --git a/test/sumfact/poisson/poisson_2d.mini b/test/sumfact/poisson/poisson_2d.mini index 6f70b71dae74402374423f4fc7518f92031300a6..572837d1101f3204c9b7002e13d07f2609899a36 100644 --- a/test/sumfact/poisson/poisson_2d.mini +++ b/test/sumfact/poisson/poisson_2d.mini @@ -1,9 +1,9 @@ __name = sumfact_poisson_2d_{__exec_suffix} -__exec_suffix = {deg_suffix}_{diff_suffix}_{vec_suffix} +__exec_suffix = {deg_suffix}_{diff_suffix}_{gradvec_suffix} -diff_suffix = numdiff, symdiff | expand num -vec_suffix = vec, nonvec | expand vec deg_suffix = deg{formcompiler.ufl_variants.degree} +diff_suffix = numdiff, symdiff | expand num +gradvec_suffix = gradvec, nongradvec | expand grad cells = 8 8 extension = 1. 1. @@ -16,9 +16,9 @@ extension = vtu [formcompiler] numerical_jacobian = 1, 0 | expand num exact_solution_expression = g -compare_l2errorsquared = 1e-4 +compare_l2errorsquared = 4e-5, 4e-9 | expand deg sumfact = 1 -vectorize_quad = 1, 0 | expand vec +vectorize_grads = 1, 0 | expand grad [formcompiler.ufl_variants] degree = 1, 2 | expand deg diff --git a/test/sumfact/poisson/poisson_3d.mini b/test/sumfact/poisson/poisson_3d.mini index a5e2d647fe524bdb2ecd8855869ca1bb2c8e7bfa..b1cc845d5e6cb11687f38ec823faa3427237b808 100644 --- a/test/sumfact/poisson/poisson_3d.mini +++ b/test/sumfact/poisson/poisson_3d.mini @@ -1,10 +1,10 @@ __name = sumfact_poisson_3d_{__exec_suffix} -__exec_suffix = {deg_suffix}_{diff_suffix}_{vecq_suffix}_{vecg_suffix} +__exec_suffix = {deg_suffix}_{diff_suffix}_{quadvec_suffix}_{gradvec_suffix} -diff_suffix = numdiff, symdiff | expand num -vecq_suffix = quadvec, nonquadvec | expand vec_q -vecg_suffix = gradvec, nongradvec | expand vec_g deg_suffix = deg{formcompiler.ufl_variants.degree} +diff_suffix = numdiff, symdiff | expand num +quadvec_suffix = quadvec, nonquadvec | expand quad +gradvec_suffix = gradvec, nongradvec | expand grad cells = 8 8 8 extension = 1. 1. 1. @@ -17,10 +17,10 @@ extension = vtu [formcompiler] numerical_jacobian = 1, 0 | expand num exact_solution_expression = g -compare_l2errorsquared = 2e-4 +compare_l2errorsquared = 1e-4, 1e-8 | expand deg sumfact = 1 -vectorize_quad = 1, 0 | expand vec_q -vectorize_grads = 1, 0 | expand vec_g +vectorize_quad = 1, 0 | expand quad +vectorize_grads = 1, 0 | expand grad [formcompiler.ufl_variants] degree = 1, 2 | expand deg diff --git a/test/sumfact/poisson/poisson_dg_2d.mini b/test/sumfact/poisson/poisson_dg_2d.mini index ed6b6795cb4d720560b6761adcee293b70ab98e3..8785a3b157f0b756d31101ea837ac201d84ceda1 100644 --- a/test/sumfact/poisson/poisson_dg_2d.mini +++ b/test/sumfact/poisson/poisson_dg_2d.mini @@ -17,7 +17,7 @@ extension = vtu numerical_jacobian = 1, 0 | expand num sumfact = 1 exact_solution_expression = g -compare_l2errorsquared = 1e-4 +compare_l2errorsquared = 5e-5, 5e-7 | expand deg vectorize_quad = 1, 0 | expand quad vectorize_grads = 1, 0 | expand grad diff --git a/test/sumfact/poisson/poisson_dg_2d.ufl b/test/sumfact/poisson/poisson_dg_2d.ufl index 5ef70869cb556cb6ed3d31ae736a7abd31919edf..19ac68ee0a4b1b8e2ae7b93908aef3208e7acdc2 100644 --- a/test/sumfact/poisson/poisson_dg_2d.ufl +++ b/test/sumfact/poisson/poisson_dg_2d.ufl @@ -12,18 +12,21 @@ v = TestFunction(V) n = FacetNormal(cell)('+') +# penalty factor gamma = 1.0 + +# SSIP: -1.0, IIPG: 0.0, NIPG: 1.0 theta = 1.0 r = inner(grad(u), grad(v))*dx \ + inner(n, avg(grad(u)))*jump(v)*dS \ + gamma*jump(u)*jump(v)*dS \ - + theta*jump(u)*inner(avg(grad(v)), n)*dS \ + - theta*jump(u)*inner(avg(grad(v)), n)*dS \ - inner(n, grad(u))*v*ds \ + gamma*u*v*ds \ - - theta*u*inner(grad(v), n)*ds \ + + theta*u*inner(grad(v), n)*ds \ - f*v*dx \ - + theta*g*inner(grad(v), n)*ds \ + - theta*g*inner(grad(v), n)*ds \ - gamma*g*v*ds forms = [r] diff --git a/test/sumfact/poisson/poisson_dg_3d.mini b/test/sumfact/poisson/poisson_dg_3d.mini index 7bab7f81c1e5a946738540a9ee0b903e38f22140..6d7d2e7561d2b26553d180c81a75bfb01a5972b5 100644 --- a/test/sumfact/poisson/poisson_dg_3d.mini +++ b/test/sumfact/poisson/poisson_dg_3d.mini @@ -17,7 +17,7 @@ extension = vtu numerical_jacobian = 1, 0 | expand num sumfact = 1 exact_solution_expression = g -compare_l2errorsquared = 1e-4 +compare_l2errorsquared = 1e-4, 5e-6 | expand deg vectorize_quad = 1, 0 | expand quad vectorize_grads = 1, 0 | expand grad diff --git a/test/sumfact/poisson/poisson_dg_3d.ufl b/test/sumfact/poisson/poisson_dg_3d.ufl index d9172368b8c8a4c0d8ab81afe3778dbd2af5075f..00a17a02bea0b104f8332de62ffc9432285c3c62 100644 --- a/test/sumfact/poisson/poisson_dg_3d.ufl +++ b/test/sumfact/poisson/poisson_dg_3d.ufl @@ -12,18 +12,21 @@ v = TestFunction(V) n = FacetNormal(cell)('+') +# penalty factor gamma = 1.0 + +# SSIP: -1.0, IIPG: 0.0, NIPG: 1.0 theta = 1.0 r = inner(grad(u), grad(v))*dx \ + inner(n, avg(grad(u)))*jump(v)*dS \ + gamma*jump(u)*jump(v)*dS \ - + theta*jump(u)*inner(avg(grad(v)), n)*dS \ + - theta*jump(u)*inner(avg(grad(v)), n)*dS \ - inner(n, grad(u))*v*ds \ + gamma*u*v*ds \ - - theta*u*inner(grad(v), n)*ds \ + + theta*u*inner(grad(v), n)*ds \ - f*v*dx \ - + theta*g*inner(grad(v), n)*ds \ + - theta*g*inner(grad(v), n)*ds \ - gamma*g*v*ds forms = [r] diff --git a/test/sumfact/poisson/poisson_dg_tensor.ufl b/test/sumfact/poisson/poisson_dg_tensor.ufl index ceecebc5eba11f95b7bac462631e61955d4ab69a..8ef34003fe4bc956299826942a1d98f95fb48562 100644 --- a/test/sumfact/poisson/poisson_dg_tensor.ufl +++ b/test/sumfact/poisson/poisson_dg_tensor.ufl @@ -15,18 +15,21 @@ v = TestFunction(V) n = FacetNormal(cell)('+') +# penalty factor gamma = 1.0 -theta = -1.0 + +# SSIP: -1.0, IIPG: 0.0, NIPG: 1.0 +theta = 1.0 r = (inner(A*grad(u), grad(v)) + c*u*v)*dx \ + inner(n, A*avg(grad(u)))*jump(v)*dS \ + gamma*jump(u)*jump(v)*dS \ - + theta*jump(u)*inner(A*avg(grad(v)), n)*dS \ + - theta*jump(u)*inner(A*avg(grad(v)), n)*dS \ - inner(n, A*grad(u))*v*ds \ + gamma*u*v*ds \ - - theta*u*inner(A*grad(v), n)*ds \ + + theta*u*inner(A*grad(v), n)*ds \ - f*v*dx \ - + theta*g*inner(A*grad(v), n)*ds \ + - theta*g*inner(A*grad(v), n)*ds \ - gamma*g*v*ds forms = [r] diff --git a/test/sumfact/poisson/poisson_fastdg.mini b/test/sumfact/poisson/poisson_fastdg_2d.mini similarity index 88% rename from test/sumfact/poisson/poisson_fastdg.mini rename to test/sumfact/poisson/poisson_fastdg_2d.mini index e0cf2f268ddb66f043503e0ca00c1112b369884f..2aebce291d498eaa49829285d9af0a528bd2cc86 100644 --- a/test/sumfact/poisson/poisson_fastdg.mini +++ b/test/sumfact/poisson/poisson_fastdg_2d.mini @@ -1,4 +1,4 @@ -__name = sumfact_poisson_fastdg_{__exec_suffix} +__name = sumfact_poisson_fastdg_2d_{__exec_suffix} __exec_suffix = {quadvec_suffix}_{gradvec_suffix} quadvec_suffix = quadvec, nonquadvec | expand quadvec @@ -21,4 +21,4 @@ vectorize_grads = 1, 0 | expand gradvec fastdg = 1 [formcompiler.ufl_variants] -degree = 1 +degree = 2 \ No newline at end of file diff --git a/test/sumfact/poisson/poisson_fastdg_3d.mini b/test/sumfact/poisson/poisson_fastdg_3d.mini new file mode 100644 index 0000000000000000000000000000000000000000..aa4ff193652269570d0f686898371274bdbdadbe --- /dev/null +++ b/test/sumfact/poisson/poisson_fastdg_3d.mini @@ -0,0 +1,24 @@ +__name = sumfact_poisson_fastdg_3d_{__exec_suffix} +__exec_suffix = {quadvec_suffix}_{gradvec_suffix} + +quadvec_suffix = quadvec, nonquadvec | expand quadvec +gradvec_suffix = gradvec, nongradvec | expand gradvec + +cells = 8 8 8 +extension = 1. 1. 1. + +[wrapper.vtkcompare] +name = {__name} +extension = vtu + +[formcompiler] +numerical_jacobian = 0 +sumfact = 1 +exact_solution_expression = g +compare_l2errorsquared = 1e-4 +vectorize_quad = 1, 0 | expand quadvec +vectorize_grads = 1, 0 | expand gradvec +fastdg = 1 + +[formcompiler.ufl_variants] +degree = 2