diff --git a/examples/elliptic/convergence_study_main.cc b/examples/elliptic/convergence_study_main.cc index e3ed8338fd13530b554f164da9b8337e0490b960..f1013ccd4fecbc1110f243161b562707fe35ee5f 100644 --- a/examples/elliptic/convergence_study_main.cc +++ b/examples/elliptic/convergence_study_main.cc @@ -244,46 +244,81 @@ int main(int argc, char** argv) "testcase_1"); info << std::endl; // symmetric interior penalty discontinuous galerkin discretization - const SIPDG_1_DiscretizationType testcase_1_sipdg_1_reference_discretization(*reference_grid_part, - testcase_1_boundary_info, - testcase_1_diffusion, - testcase_1_force, - testcase_1_dirichlet, - testcase_1_neumann); - ConvergenceStudy<SIPDG_1_DiscretizationType>::run(*grid, - testcase_1_sipdg_1_reference_discretization, - num_refinements, - testcase_1_exact_solution, - "SIP discontinuous galerkin discretization, polOrder 1", - "testcase_1"); + const Example::NewSIPDGDiscretization<GridPartType, 1> testcase_1_new_sipdg_1_reference_discretization( + *reference_grid_part, + testcase_1_boundary_info, + testcase_1_diffusion, + testcase_1_force, + testcase_1_dirichlet, + testcase_1_neumann); + ConvergenceStudy<Example::NewSIPDGDiscretization<GridPartType, 1>>::run( + *grid, + testcase_1_new_sipdg_1_reference_discretization, + num_refinements, + testcase_1_exact_solution, + "SIP discontinuous galerkin discretization, polOrder 1", + "testcase_1"); info << std::endl; - // symmetric weighted interior penalty discontinuous galerkin discretization - const SWIPDG_1_DiscretizationType testcase_1_swipdg_1_reference_discretization(*reference_grid_part, - testcase_1_boundary_info, - testcase_1_diffusion, - testcase_1_force, - testcase_1_dirichlet, - testcase_1_neumann); - ConvergenceStudy<SWIPDG_1_DiscretizationType>::run(*grid, - testcase_1_swipdg_1_reference_discretization, - num_refinements, - testcase_1_exact_solution, - "SWIP discontinuous galerkin discretization, polOrder 1", - "testcase_1"); - info << std::endl; - - info << "+===========================================================+" << std::endl; - info << "|+=========================================================+|" << std::endl; - info << "|| Testcase 2: smooth data, smooth dirichlet ||" << std::endl; - info << "|| (see page 858 in Epshteyn, Riviere, 2007) ||" << std::endl; - info << "|+---------------------------------------------------------+|" << std::endl; - info << "|| domain = [0, 1] x [0 , 1] ||" << std::endl; - info << "|| diffusion = 1 ||" << std::endl; - info << "|| force = 64 pi^2 (cos(8 pi x) + cos(8 pi y)) ||" << std::endl; - info << "|| dirichlet = cos(8 pi x) + cos(8 pi y) ||" << std::endl; - info << "|| exact solution = cos(8 pi x) + cos(8 pi y) ||" << std::endl; - info << "|+=========================================================+|" << std::endl; - info << "+===========================================================+" << std::endl; + // const Example::NewSIPDGDiscretization< GridPartType, 2 > + // testcase_1_new_sipdg_2_reference_discretization(*reference_grid_part, + // testcase_1_boundary_info, + // testcase_1_diffusion, + // testcase_1_force, + // testcase_1_dirichlet, + // testcase_1_neumann); + // ConvergenceStudy< Example::NewSIPDGDiscretization< GridPartType, 2 > >::run(*grid, + // testcase_1_new_sipdg_2_reference_discretization, + // num_refinements, + // testcase_1_exact_solution, + // "NEW SIP discontinuous + // galerkin discretization, + // polOrder 2", + // "testcase_1"); + // info << std::endl; + // const Example::NewSIPDGDiscretization< GridPartType, 3 > + // testcase_1_new_sipdg_3_reference_discretization(*reference_grid_part, + // testcase_1_boundary_info, + // testcase_1_diffusion, + // testcase_1_force, + // testcase_1_dirichlet, + // testcase_1_neumann); + // ConvergenceStudy< Example::NewSIPDGDiscretization< GridPartType, 3 > >::run(*grid, + // testcase_1_new_sipdg_3_reference_discretization, + // num_refinements, + // testcase_1_exact_solution, + // "NEW SIP discontinuous + // galerkin discretization, + // polOrder 3", + // "testcase_1"); + // info << std::endl; + // // symmetric weighted interior penalty discontinuous galerkin discretization + // const SWIPDG_1_DiscretizationType testcase_1_swipdg_1_reference_discretization(*reference_grid_part, + // testcase_1_boundary_info, + // testcase_1_diffusion, + // testcase_1_force, + // testcase_1_dirichlet, + // testcase_1_neumann); + // ConvergenceStudy< SWIPDG_1_DiscretizationType >::run(*grid, + // testcase_1_swipdg_1_reference_discretization, + // num_refinements, + // testcase_1_exact_solution, + // "SWIP discontinuous galerkin discretization, polOrder + // 1", + // "testcase_1"); + // info << std::endl; + + info << "+==============================================================+" << std::endl; + info << "|+============================================================+|" << std::endl; + info << "|| Testcase 2: smooth data, smooth nonhomogeneous dirichlet ||" << std::endl; + info << "|| (see page 858 in Epshteyn, Riviere, 2007) ||" << std::endl; + info << "|+------------------------------------------------------------+|" << std::endl; + info << "|| domain = [0, 1] x [0 , 1] ||" << std::endl; + info << "|| diffusion = 1 ||" << std::endl; + info << "|| force = 64 pi^2 (cos(8 pi x) + cos(8 pi y)) ||" << std::endl; + info << "|| dirichlet = cos(8 pi x) + cos(8 pi y) ||" << std::endl; + info << "|| exact solution = cos(8 pi x) + cos(8 pi y) ||" << std::endl; + info << "|+============================================================+|" << std::endl; + info << "+==============================================================+" << std::endl; grid_provider = std::unique_ptr<GridProviderType>(new GridProviderType(0, 1, 16)); grid = grid_provider->grid(); grid->globalRefine(1); @@ -321,46 +356,49 @@ int main(int argc, char** argv) "testcase_2"); info << std::endl; // symmetric interior penalty discontinuous galerkin discretization - const SIPDG_1_DiscretizationType testcase_2_sipdg_1_reference_discretization(*reference_grid_part, - testcase_2_boundary_info, - testcase_2_diffusion, - testcase_2_force, - testcase_2_dirichlet, - testcase_2_neumann); - ConvergenceStudy<SIPDG_1_DiscretizationType>::run(*grid, - testcase_2_sipdg_1_reference_discretization, - num_refinements, - testcase_2_exact_solution, - "SIP discontinuous galerkin discretization, polOrder 1", - "testcase_2"); - info << std::endl; - // symmetric weighted interior penalty discontinuous galerkin discretization - const SWIPDG_1_DiscretizationType testcase_2_swipdg_1_reference_discretization(*reference_grid_part, - testcase_2_boundary_info, - testcase_2_diffusion, - testcase_2_force, - testcase_2_dirichlet, - testcase_2_neumann); - ConvergenceStudy<SWIPDG_1_DiscretizationType>::run(*grid, - testcase_2_swipdg_1_reference_discretization, - num_refinements, - testcase_2_exact_solution, - "SWIP discontinuous galerkin discretization, polOrder 1", - "testcase_2"); + const Example::NewSIPDGDiscretization<GridPartType, 1> testcase_2_new_sipdg_1_reference_discretization( + *reference_grid_part, + testcase_2_boundary_info, + testcase_2_diffusion, + testcase_2_force, + testcase_2_dirichlet, + testcase_2_neumann); + ConvergenceStudy<Example::NewSIPDGDiscretization<GridPartType, 1>>::run( + *grid, + testcase_2_new_sipdg_1_reference_discretization, + num_refinements, + testcase_2_exact_solution, + "SIP discontinuous galerkin discretization, polOrder 1", + "testcase_2"); info << std::endl; - - info << "+========================================================================+" << std::endl; - info << "|+======================================================================+|" << std::endl; - info << "|| Testcase 3: constant data, mixed homogeneous dirichlet and neumann ||" << std::endl; - info << "|+----------------------------------------------------------------------+|" << std::endl; - info << "|| domain = [0, 1] x [0 , 1] ||" << std::endl; - info << "|| diffusion = 1 ||" << std::endl; - info << "|| force = 1 ||" << std::endl; - info << "|| homogeneous neumann: on the right side ||" << std::endl; - info << "|| homogeneous dirichlet: everywhere else ||" << std::endl; - info << "|| reference solution: CG solution on finest grid ||" << std::endl; - info << "|+======================================================================+|" << std::endl; - info << "+========================================================================+" << std::endl; + // // symmetric weighted interior penalty discontinuous galerkin discretization + // const SWIPDG_1_DiscretizationType testcase_2_swipdg_1_reference_discretization(*reference_grid_part, + // testcase_2_boundary_info, + // testcase_2_diffusion, + // testcase_2_force, + // testcase_2_dirichlet, + // testcase_2_neumann); + // ConvergenceStudy< SWIPDG_1_DiscretizationType >::run(*grid, + // testcase_2_swipdg_1_reference_discretization, + // num_refinements, + // testcase_2_exact_solution, + // "SWIP discontinuous galerkin discretization, polOrder + // 1", + // "testcase_2"); + // info << std::endl; + + info << "+============================================================+" << std::endl; + info << "|+==========================================================+|" << std::endl; + info << "|| Testcase 3: constant data, mixed dirichlet and neumann ||" << std::endl; + info << "|+----------------------------------------------------------+|" << std::endl; + info << "|| domain = [0, 1] x [0 , 1] ||" << std::endl; + info << "|| diffusion = 1 ||" << std::endl; + info << "|| force = 1 ||" << std::endl; + info << "|| neumann = 0.1 on the right side ||" << std::endl; + info << "|| dirichlet = 1/4 * x*y everywhere else ||" << std::endl; + info << "|| reference solution: CG solution on finest grid ||" << std::endl; + info << "|+==========================================================+|" << std::endl; + info << "+============================================================+" << std::endl; grid_provider = std::unique_ptr<GridProviderType>(new GridProviderType(0, 1, 2)); grid = grid_provider->grid(); grid->globalRefine(1); @@ -376,8 +414,8 @@ int main(int argc, char** argv) true, {}, {neumann_normal}); const ConstantFunctionType testcase_3_diffusion(1.0); const ConstantFunctionType testcase_3_force(1.0); - const ConstantFunctionType testcase_3_dirichlet(0.0); - const ConstantFunctionType testcase_3_neumann(0.0); + const ExpressionFunctionType testcase_3_dirichlet("x", "0.25 * x[0] * x[1]", integration_order); + const ConstantFunctionType testcase_3_neumann(0.1); // continuous galerkin discretization const CG_1_DiscretizationType testcase_3_cg_1_reference_discretization(*reference_grid_part, testcase_3_boundary_info, @@ -393,7 +431,7 @@ int main(int argc, char** argv) "continuous galerkin discretization, polOrder 1", "testcase_3"); info << std::endl; - // symmetric interior penalty discontinuous galerkin discretization + // ADHOC symmetric interior penalty discontinuous galerkin discretization const SIPDG_1_DiscretizationType testcase_3_sipdg_1_reference_discretization(*reference_grid_part, testcase_3_boundary_info, testcase_3_diffusion, @@ -404,23 +442,40 @@ int main(int argc, char** argv) testcase_3_sipdg_1_reference_discretization, num_refinements, *testcase_3_reference_solution, - "SIP discontinuous galerkin discretization, polOrder 1", + "ADHOC SIP discontinuous galerkin discretization, polOrder 1", "testcase_3"); info << std::endl; - // symmetric weighted interior penalty discontinuous galerkin discretization - const SWIPDG_1_DiscretizationType testcase_3_swipdg_1_reference_discretization(*reference_grid_part, - testcase_3_boundary_info, - testcase_3_diffusion, - testcase_3_force, - testcase_3_dirichlet, - testcase_3_neumann); - ConvergenceStudy<SWIPDG_1_DiscretizationType>::run(*grid, - testcase_3_swipdg_1_reference_discretization, - num_refinements, - *testcase_3_reference_solution, - "SWIP discontinuous galerkin discretization, polOrder 1", - "testcase_3"); + // NEW symmetric interior penalty discontinuous galerkin discretization + const Example::NewSIPDGDiscretization<GridPartType, 1> testcase_3_new_sipdg_1_reference_discretization( + *reference_grid_part, + testcase_3_boundary_info, + testcase_3_diffusion, + testcase_3_force, + testcase_3_dirichlet, + testcase_3_neumann); + ConvergenceStudy<Example::NewSIPDGDiscretization<GridPartType, 1>>::run( + *grid, + testcase_3_new_sipdg_1_reference_discretization, + num_refinements, + *testcase_3_reference_solution, + "NEW SIP discontinuous galerkin discretization, polOrder 1", + "testcase_3"); info << std::endl; + // // symmetric weighted interior penalty discontinuous galerkin discretization + // const SWIPDG_1_DiscretizationType testcase_3_swipdg_1_reference_discretization(*reference_grid_part, + // testcase_3_boundary_info, + // testcase_3_diffusion, + // testcase_3_force, + // testcase_3_dirichlet, + // testcase_3_neumann); + // ConvergenceStudy< SWIPDG_1_DiscretizationType >::run(*grid, + // testcase_3_swipdg_1_reference_discretization, + // num_refinements, + // *testcase_3_reference_solution, + // "SWIP discontinuous galerkin discretization, polOrder + // 1", + // "testcase_3"); + // info << std::endl; info << "+==================================================================================+" << std::endl; info << "|+================================================================================+|" << std::endl; @@ -453,37 +508,37 @@ int main(int argc, char** argv) {mu_one, mu_one, mu_one, - mu_zero, + mu_one, mu_zero, mu_zero, mu_two, mu_one, mu_one, - mu_zero, + mu_one, mu_zero, mu_zero, mu_one, mu_one, mu_one, - mu_zero, + mu_one, mu_zero, mu_zero, mu_one, mu_one, mu_one, - mu_zero, + mu_one, mu_zero, mu_zero, mu_one, mu_one, mu_one, - mu_zero, + mu_one, mu_zero, mu_zero, mu_one, mu_one, mu_one, - mu_zero, + mu_one, mu_zero, mu_zero}); const ConstantFunctionType testcase_4_force(1.0); @@ -504,7 +559,7 @@ int main(int argc, char** argv) "continuous galerkin discretization, polOrder 1", "testcase_4"); info << std::endl; - // symmetric interior penalty discontinuous galerkin discretization + // ADHOC symmetric interior penalty discontinuous galerkin discretization const SIPDG_1_DiscretizationType testcase_4_sipdg_1_reference_discretization(*reference_grid_part, testcase_4_boundary_info, testcase_4_diffusion, @@ -515,102 +570,121 @@ int main(int argc, char** argv) testcase_4_sipdg_1_reference_discretization, num_refinements, *testcase_4_reference_solution, - "SIP discontinuous galerkin discretization, polOrder 1", + "ADHOC SIP discontinuous galerkin discretization, polOrder 1", "testcase_4"); info << std::endl; - // symmetric weighted interior penalty discontinuous galerkin discretization - const SWIPDG_1_DiscretizationType testcase_4_swipdg_1_reference_discretization(*reference_grid_part, - testcase_4_boundary_info, - testcase_4_diffusion, - testcase_4_force, - testcase_4_dirichlet, - testcase_4_neumann); - ConvergenceStudy<SWIPDG_1_DiscretizationType>::run(*grid, - testcase_4_swipdg_1_reference_discretization, - num_refinements, - *testcase_4_reference_solution, - "SWIP discontinuous galerkin discretization, polOrder 1", - "testcase_4"); + // NEW symmetric interior penalty discontinuous galerkin discretization + const Example::NewSIPDGDiscretization<GridPartType, 1> testcase_4_new_sipdg_1_reference_discretization( + *reference_grid_part, + testcase_4_boundary_info, + testcase_4_diffusion, + testcase_4_force, + testcase_4_dirichlet, + testcase_4_neumann); + ConvergenceStudy<Example::NewSIPDGDiscretization<GridPartType, 1>>::run( + *grid, + testcase_4_new_sipdg_1_reference_discretization, + num_refinements, + *testcase_4_reference_solution, + "NEW SIP discontinuous galerkin discretization, polOrder 1", + "testcase_4"); info << std::endl; - - if (spe_10_model_1_datafile_found) { - info << "+=====================================================================+" << std::endl; - info << "|+===================================================================+|" << std::endl; - info << "|| Testcase 5: SPE10 ||" << std::endl; - info << "|| (see http://www.spe.org/web/csp/datasets/set01.htm) ||" << std::endl; - info << "|+-------------------------------------------------------------------+|" << std::endl; - info << "|| domain = [0, 5] x [0 , 1] ||" << std::endl; - info << "|| diffusion: spe10 model 1 ||" << std::endl; - info << "|| force = 1 ||" << std::endl; - info << "|| dirichlet = 0 ||" << std::endl; - info << "|| reference solution: CG solution on finest grid ||" << std::endl; - info << "|+===================================================================+|" << std::endl; - info << "+=====================================================================+" << std::endl; - DomainType upper_right(1.0); - upper_right[0] = 5.0; - grid_provider = - std::unique_ptr<GridProviderType>(new GridProviderType(DomainType(0.0), upper_right, {100u, 20u})); - grid = grid_provider->grid(); - grid->globalRefine(1); - for (size_t ii = 1; ii <= (num_refinements + 1); ++ii) - grid->globalRefine(GridType::refineStepsForHalf); - reference_grid_part = std::unique_ptr<GridPartType>(new GridPartType(*grid, grid->maxLevel())); - vtk_writer = - std::unique_ptr<VTKWriterType>(new VTKWriterType(reference_grid_part->gridView(), VTK::nonconforming)); - - const Stuff::GridboundaryAllDirichlet<typename GridPartType::GridViewType> testcase_5_boundary_info; - const SPE10Model1FunctionType testcase_5_diffusion(spe_10_model_1_datafile, DomainType(0.0), upper_right); - const ExpressionFunctionType testcase_5_force( - "x", - "100.0*exp(-1.0*((((x[0]-0.95)*(x[0]-0.95))+((x[1]-0.65)*(x[1]-0.65)))/" - "(2*0.05*0.05)))-100.0*exp(-1.0*((((x[0]-4.3)*(x[0]-4.3))+((x[1]-0.35)*(x[1]-0.35)))/(2*0.05*0.05)))", - integration_order); - const ConstantFunctionType testcase_5_dirichlet(0.0); - const ConstantFunctionType testcase_5_neumann(0.0); - // continuous galerkin discretization - const CG_1_DiscretizationType testcase_5_cg_1_reference_discretization(*reference_grid_part, - testcase_5_boundary_info, - testcase_5_diffusion, - testcase_5_force, - testcase_5_dirichlet, - testcase_5_neumann); - const auto testcase_5_reference_solution = testcase_5_cg_1_reference_discretization.solve(); - ConvergenceStudy<CG_1_DiscretizationType>::run(*grid, - testcase_5_cg_1_reference_discretization, - num_refinements, - *testcase_5_reference_solution, - "continuous galerkin discretization, polOrder 1", - "testcase_5"); - info << std::endl; - // symmetric interior penalty discontinuous galerkin discretization - const SIPDG_1_DiscretizationType testcase_5_sipdg_1_reference_discretization(*reference_grid_part, - testcase_5_boundary_info, - testcase_5_diffusion, - testcase_5_force, - testcase_5_dirichlet, - testcase_5_neumann); - ConvergenceStudy<SIPDG_1_DiscretizationType>::run(*grid, - testcase_5_sipdg_1_reference_discretization, - num_refinements, - *testcase_5_reference_solution, - "SIP discontinuous galerkin discretization, polOrder 1", - "testcase_5"); - info << std::endl; - // symmetric weighted interior penalty discontinuous galerkin discretization - const SWIPDG_1_DiscretizationType testcase_5_swipdg_1_reference_discretization(*reference_grid_part, - testcase_5_boundary_info, - testcase_5_diffusion, - testcase_5_force, - testcase_5_dirichlet, - testcase_5_neumann); - ConvergenceStudy<SWIPDG_1_DiscretizationType>::run(*grid, - testcase_5_swipdg_1_reference_discretization, - num_refinements, - *testcase_5_reference_solution, - "SWIP discontinuous galerkin discretization, polOrder 1", - "testcase_5"); - info << std::endl; - } // spe 10 testcase + // // symmetric weighted interior penalty discontinuous galerkin discretization + // const SWIPDG_1_DiscretizationType testcase_4_swipdg_1_reference_discretization(*reference_grid_part, + // testcase_4_boundary_info, + // testcase_4_diffusion, + // testcase_4_force, + // testcase_4_dirichlet, + // testcase_4_neumann); + // ConvergenceStudy< SWIPDG_1_DiscretizationType >::run(*grid, + // testcase_4_swipdg_1_reference_discretization, + // num_refinements, + // *testcase_4_reference_solution, + // "SWIP discontinuous galerkin discretization, polOrder + // 1", + // "testcase_4"); + // info << std::endl; + + // if (spe_10_model_1_datafile_found) { + // info << "+=====================================================================+" << std::endl; + // info << "|+===================================================================+|" << std::endl; + // info << "|| Testcase 5: SPE10 ||" << std::endl; + // info << "|| (see http://www.spe.org/web/csp/datasets/set01.htm) ||" << std::endl; + // info << "|+-------------------------------------------------------------------+|" << std::endl; + // info << "|| domain = [0, 5] x [0 , 1] ||" << std::endl; + // info << "|| diffusion: spe10 model 1 ||" << std::endl; + // info << "|| force = 1 ||" << std::endl; + // info << "|| dirichlet = 0 ||" << std::endl; + // info << "|| reference solution: CG solution on finest grid ||" << std::endl; + // info << "|+===================================================================+|" << std::endl; + // info << "+=====================================================================+" << std::endl; + // DomainType upper_right(1.0); + // upper_right[0] = 5.0; + // grid_provider = std::unique_ptr< GridProviderType >(new GridProviderType(DomainType(0.0), + // upper_right, + // {100u, 20u})); + // grid = grid_provider->grid(); + // grid->globalRefine(1); + // for (size_t ii = 1; ii <= (num_refinements + 1); ++ii) + // grid->globalRefine(GridType::refineStepsForHalf); + // reference_grid_part = std::unique_ptr< GridPartType >(new GridPartType(*grid, grid->maxLevel())); + // vtk_writer = std::unique_ptr< VTKWriterType >(new VTKWriterType(reference_grid_part->gridView(), + // VTK::nonconforming)); + + // const Stuff::GridboundaryAllDirichlet< typename GridPartType::GridViewType > testcase_5_boundary_info; + // const SPE10Model1FunctionType testcase_5_diffusion(spe_10_model_1_datafile, + // DomainType(0.0), upper_right); + // const ExpressionFunctionType testcase_5_force("x", + // "100.0*exp(-1.0*((((x[0]-0.95)*(x[0]-0.95))+((x[1]-0.65)*(x[1]-0.65)))/(2*0.05*0.05)))-100.0*exp(-1.0*((((x[0]-4.3)*(x[0]-4.3))+((x[1]-0.35)*(x[1]-0.35)))/(2*0.05*0.05)))", + // integration_order); + // const ConstantFunctionType testcase_5_dirichlet(0.0); + // const ConstantFunctionType testcase_5_neumann(0.0); + // // continuous galerkin discretization + // const CG_1_DiscretizationType testcase_5_cg_1_reference_discretization(*reference_grid_part, + // testcase_5_boundary_info, + // testcase_5_diffusion, + // testcase_5_force, + // testcase_5_dirichlet, + // testcase_5_neumann); + // const auto testcase_5_reference_solution = testcase_5_cg_1_reference_discretization.solve(); + // ConvergenceStudy< CG_1_DiscretizationType >::run(*grid, + // testcase_5_cg_1_reference_discretization, + // num_refinements, + // *testcase_5_reference_solution, + // "continuous galerkin discretization, polOrder 1", + // "testcase_5"); + // info << std::endl; + // // symmetric interior penalty discontinuous galerkin discretization + // const SIPDG_1_DiscretizationType testcase_5_sipdg_1_reference_discretization(*reference_grid_part, + // testcase_5_boundary_info, + // testcase_5_diffusion, + // testcase_5_force, + // testcase_5_dirichlet, + // testcase_5_neumann); + // ConvergenceStudy< SIPDG_1_DiscretizationType >::run(*grid, + // testcase_5_sipdg_1_reference_discretization, + // num_refinements, + // *testcase_5_reference_solution, + // "SIP discontinuous galerkin discretization, polOrder + // 1", + // "testcase_5"); + // info << std::endl; + // // symmetric weighted interior penalty discontinuous galerkin discretization + // const SWIPDG_1_DiscretizationType testcase_5_swipdg_1_reference_discretization(*reference_grid_part, + // testcase_5_boundary_info, + // testcase_5_diffusion, + // testcase_5_force, + // testcase_5_dirichlet, + // testcase_5_neumann); + // ConvergenceStudy< SWIPDG_1_DiscretizationType >::run(*grid, + // testcase_5_swipdg_1_reference_discretization, + // num_refinements, + // *testcase_5_reference_solution, + // "SWIP discontinuous galerkin discretization, + // polOrder 1", + // "testcase_5"); + // info << std::endl; + // } // spe 10 testcase } // read or write settings file // done