Skip to content
This repository was archived by the owner on Oct 24, 2019. It is now read-only.

Commit 4b264c1

Browse files
author
Felix Albrecht
committedSep 2, 2013
[examples.elliptic.convergence_study] SIPDG works and workds not
this is a specific setup to show the shortcomings of the SIPDG implementation. The ADHOC one fails in testcase 3 and has problems in testcase 4. The NEW one fails in testcase 4.
1 parent 3fa40ea commit 4b264c1

File tree

1 file changed

+257
-197
lines changed

1 file changed

+257
-197
lines changed
 

‎examples/elliptic/convergence_study_main.cc

+257-197
Original file line numberDiff line numberDiff line change
@@ -250,46 +250,75 @@ int main(int argc, char** argv)
250250
"testcase_1");
251251
info << std::endl;
252252
// symmetric interior penalty discontinuous galerkin discretization
253-
const SIPDG_1_DiscretizationType testcase_1_sipdg_1_reference_discretization(*reference_grid_part,
254-
testcase_1_boundary_info,
255-
testcase_1_diffusion,
256-
testcase_1_force,
257-
testcase_1_dirichlet,
258-
testcase_1_neumann);
259-
ConvergenceStudy< SIPDG_1_DiscretizationType >::run(*grid,
260-
testcase_1_sipdg_1_reference_discretization,
261-
num_refinements,
262-
testcase_1_exact_solution,
263-
"SIP discontinuous galerkin discretization, polOrder 1",
264-
"testcase_1");
253+
const Example::NewSIPDGDiscretization< GridPartType, 1 >
254+
testcase_1_new_sipdg_1_reference_discretization(*reference_grid_part,
255+
testcase_1_boundary_info,
256+
testcase_1_diffusion,
257+
testcase_1_force,
258+
testcase_1_dirichlet,
259+
testcase_1_neumann);
260+
ConvergenceStudy< Example::NewSIPDGDiscretization< GridPartType, 1 > >::run(*grid,
261+
testcase_1_new_sipdg_1_reference_discretization,
262+
num_refinements,
263+
testcase_1_exact_solution,
264+
"SIP discontinuous galerkin discretization, polOrder 1",
265+
"testcase_1");
265266
info << std::endl;
266-
// symmetric weighted interior penalty discontinuous galerkin discretization
267-
const SWIPDG_1_DiscretizationType testcase_1_swipdg_1_reference_discretization(*reference_grid_part,
268-
testcase_1_boundary_info,
269-
testcase_1_diffusion,
270-
testcase_1_force,
271-
testcase_1_dirichlet,
272-
testcase_1_neumann);
273-
ConvergenceStudy< SWIPDG_1_DiscretizationType >::run(*grid,
274-
testcase_1_swipdg_1_reference_discretization,
275-
num_refinements,
276-
testcase_1_exact_solution,
277-
"SWIP discontinuous galerkin discretization, polOrder 1",
278-
"testcase_1");
279-
info << std::endl;
280-
281-
info << "+===========================================================+" << std::endl;
282-
info << "|+=========================================================+|" << std::endl;
283-
info << "|| Testcase 2: smooth data, smooth dirichlet ||" << std::endl;
284-
info << "|| (see page 858 in Epshteyn, Riviere, 2007) ||" << std::endl;
285-
info << "|+---------------------------------------------------------+|" << std::endl;
286-
info << "|| domain = [0, 1] x [0 , 1] ||" << std::endl;
287-
info << "|| diffusion = 1 ||" << std::endl;
288-
info << "|| force = 64 pi^2 (cos(8 pi x) + cos(8 pi y)) ||" << std::endl;
289-
info << "|| dirichlet = cos(8 pi x) + cos(8 pi y) ||" << std::endl;
290-
info << "|| exact solution = cos(8 pi x) + cos(8 pi y) ||" << std::endl;
291-
info << "|+=========================================================+|" << std::endl;
292-
info << "+===========================================================+" << std::endl;
267+
// const Example::NewSIPDGDiscretization< GridPartType, 2 >
268+
// testcase_1_new_sipdg_2_reference_discretization(*reference_grid_part,
269+
// testcase_1_boundary_info,
270+
// testcase_1_diffusion,
271+
// testcase_1_force,
272+
// testcase_1_dirichlet,
273+
// testcase_1_neumann);
274+
// ConvergenceStudy< Example::NewSIPDGDiscretization< GridPartType, 2 > >::run(*grid,
275+
// testcase_1_new_sipdg_2_reference_discretization,
276+
// num_refinements,
277+
// testcase_1_exact_solution,
278+
// "NEW SIP discontinuous galerkin discretization, polOrder 2",
279+
// "testcase_1");
280+
// info << std::endl;
281+
// const Example::NewSIPDGDiscretization< GridPartType, 3 >
282+
// testcase_1_new_sipdg_3_reference_discretization(*reference_grid_part,
283+
// testcase_1_boundary_info,
284+
// testcase_1_diffusion,
285+
// testcase_1_force,
286+
// testcase_1_dirichlet,
287+
// testcase_1_neumann);
288+
// ConvergenceStudy< Example::NewSIPDGDiscretization< GridPartType, 3 > >::run(*grid,
289+
// testcase_1_new_sipdg_3_reference_discretization,
290+
// num_refinements,
291+
// testcase_1_exact_solution,
292+
// "NEW SIP discontinuous galerkin discretization, polOrder 3",
293+
// "testcase_1");
294+
// info << std::endl;
295+
// // symmetric weighted interior penalty discontinuous galerkin discretization
296+
// const SWIPDG_1_DiscretizationType testcase_1_swipdg_1_reference_discretization(*reference_grid_part,
297+
// testcase_1_boundary_info,
298+
// testcase_1_diffusion,
299+
// testcase_1_force,
300+
// testcase_1_dirichlet,
301+
// testcase_1_neumann);
302+
// ConvergenceStudy< SWIPDG_1_DiscretizationType >::run(*grid,
303+
// testcase_1_swipdg_1_reference_discretization,
304+
// num_refinements,
305+
// testcase_1_exact_solution,
306+
// "SWIP discontinuous galerkin discretization, polOrder 1",
307+
// "testcase_1");
308+
// info << std::endl;
309+
310+
info << "+==============================================================+" << std::endl;
311+
info << "|+============================================================+|" << std::endl;
312+
info << "|| Testcase 2: smooth data, smooth nonhomogeneous dirichlet ||" << std::endl;
313+
info << "|| (see page 858 in Epshteyn, Riviere, 2007) ||" << std::endl;
314+
info << "|+------------------------------------------------------------+|" << std::endl;
315+
info << "|| domain = [0, 1] x [0 , 1] ||" << std::endl;
316+
info << "|| diffusion = 1 ||" << std::endl;
317+
info << "|| force = 64 pi^2 (cos(8 pi x) + cos(8 pi y)) ||" << std::endl;
318+
info << "|| dirichlet = cos(8 pi x) + cos(8 pi y) ||" << std::endl;
319+
info << "|| exact solution = cos(8 pi x) + cos(8 pi y) ||" << std::endl;
320+
info << "|+============================================================+|" << std::endl;
321+
info << "+==============================================================+" << std::endl;
293322
grid_provider = std::unique_ptr< GridProviderType >(new GridProviderType(0, 1, 16));
294323
grid = grid_provider->grid();
295324
grid->globalRefine(1);
@@ -329,46 +358,47 @@ int main(int argc, char** argv)
329358
"testcase_2");
330359
info << std::endl;
331360
// symmetric interior penalty discontinuous galerkin discretization
332-
const SIPDG_1_DiscretizationType testcase_2_sipdg_1_reference_discretization(*reference_grid_part,
333-
testcase_2_boundary_info,
334-
testcase_2_diffusion,
335-
testcase_2_force,
336-
testcase_2_dirichlet,
337-
testcase_2_neumann);
338-
ConvergenceStudy< SIPDG_1_DiscretizationType >::run(*grid,
339-
testcase_2_sipdg_1_reference_discretization,
340-
num_refinements,
341-
testcase_2_exact_solution,
342-
"SIP discontinuous galerkin discretization, polOrder 1",
343-
"testcase_2");
361+
const Example::NewSIPDGDiscretization< GridPartType, 1 >
362+
testcase_2_new_sipdg_1_reference_discretization(*reference_grid_part,
363+
testcase_2_boundary_info,
364+
testcase_2_diffusion,
365+
testcase_2_force,
366+
testcase_2_dirichlet,
367+
testcase_2_neumann);
368+
ConvergenceStudy< Example::NewSIPDGDiscretization< GridPartType, 1 > >::run(*grid,
369+
testcase_2_new_sipdg_1_reference_discretization,
370+
num_refinements,
371+
testcase_2_exact_solution,
372+
"SIP discontinuous galerkin discretization, polOrder 1",
373+
"testcase_2");
344374
info << std::endl;
345-
// symmetric weighted interior penalty discontinuous galerkin discretization
346-
const SWIPDG_1_DiscretizationType testcase_2_swipdg_1_reference_discretization(*reference_grid_part,
347-
testcase_2_boundary_info,
348-
testcase_2_diffusion,
349-
testcase_2_force,
350-
testcase_2_dirichlet,
351-
testcase_2_neumann);
352-
ConvergenceStudy< SWIPDG_1_DiscretizationType >::run(*grid,
353-
testcase_2_swipdg_1_reference_discretization,
354-
num_refinements,
355-
testcase_2_exact_solution,
356-
"SWIP discontinuous galerkin discretization, polOrder 1",
357-
"testcase_2");
358-
info << std::endl;
359-
360-
info << "+========================================================================+" << std::endl;
361-
info << "|+======================================================================+|" << std::endl;
362-
info << "|| Testcase 3: constant data, mixed homogeneous dirichlet and neumann ||" << std::endl;
363-
info << "|+----------------------------------------------------------------------+|" << std::endl;
364-
info << "|| domain = [0, 1] x [0 , 1] ||" << std::endl;
365-
info << "|| diffusion = 1 ||" << std::endl;
366-
info << "|| force = 1 ||" << std::endl;
367-
info << "|| homogeneous neumann: on the right side ||" << std::endl;
368-
info << "|| homogeneous dirichlet: everywhere else ||" << std::endl;
369-
info << "|| reference solution: CG solution on finest grid ||" << std::endl;
370-
info << "|+======================================================================+|" << std::endl;
371-
info << "+========================================================================+" << std::endl;
375+
// // symmetric weighted interior penalty discontinuous galerkin discretization
376+
// const SWIPDG_1_DiscretizationType testcase_2_swipdg_1_reference_discretization(*reference_grid_part,
377+
// testcase_2_boundary_info,
378+
// testcase_2_diffusion,
379+
// testcase_2_force,
380+
// testcase_2_dirichlet,
381+
// testcase_2_neumann);
382+
// ConvergenceStudy< SWIPDG_1_DiscretizationType >::run(*grid,
383+
// testcase_2_swipdg_1_reference_discretization,
384+
// num_refinements,
385+
// testcase_2_exact_solution,
386+
// "SWIP discontinuous galerkin discretization, polOrder 1",
387+
// "testcase_2");
388+
// info << std::endl;
389+
390+
info << "+============================================================+" << std::endl;
391+
info << "|+==========================================================+|" << std::endl;
392+
info << "|| Testcase 3: constant data, mixed dirichlet and neumann ||" << std::endl;
393+
info << "|+----------------------------------------------------------+|" << std::endl;
394+
info << "|| domain = [0, 1] x [0 , 1] ||" << std::endl;
395+
info << "|| diffusion = 1 ||" << std::endl;
396+
info << "|| force = 1 ||" << std::endl;
397+
info << "|| neumann = 0.1 on the right side ||" << std::endl;
398+
info << "|| dirichlet = 1/4 * x*y everywhere else ||" << std::endl;
399+
info << "|| reference solution: CG solution on finest grid ||" << std::endl;
400+
info << "|+==========================================================+|" << std::endl;
401+
info << "+============================================================+" << std::endl;
372402
grid_provider = std::unique_ptr< GridProviderType >(new GridProviderType(0, 1, 2));
373403
grid = grid_provider->grid();
374404
grid->globalRefine(1);
@@ -384,10 +414,10 @@ int main(int argc, char** argv)
384414
testcase_3_boundary_info(true,
385415
{},
386416
{neumann_normal});
387-
const ConstantFunctionType testcase_3_diffusion(1.0);
388-
const ConstantFunctionType testcase_3_force(1.0);
389-
const ConstantFunctionType testcase_3_dirichlet(0.0);
390-
const ConstantFunctionType testcase_3_neumann(0.0);
417+
const ConstantFunctionType testcase_3_diffusion(1.0);
418+
const ConstantFunctionType testcase_3_force(1.0);
419+
const ExpressionFunctionType testcase_3_dirichlet("x", "0.25 * x[0] * x[1]", integration_order);
420+
const ConstantFunctionType testcase_3_neumann(0.1);
391421
// continuous galerkin discretization
392422
const CG_1_DiscretizationType testcase_3_cg_1_reference_discretization(*reference_grid_part,
393423
testcase_3_boundary_info,
@@ -403,7 +433,7 @@ int main(int argc, char** argv)
403433
"continuous galerkin discretization, polOrder 1",
404434
"testcase_3");
405435
info << std::endl;
406-
// symmetric interior penalty discontinuous galerkin discretization
436+
// ADHOC symmetric interior penalty discontinuous galerkin discretization
407437
const SIPDG_1_DiscretizationType testcase_3_sipdg_1_reference_discretization(*reference_grid_part,
408438
testcase_3_boundary_info,
409439
testcase_3_diffusion,
@@ -414,23 +444,38 @@ int main(int argc, char** argv)
414444
testcase_3_sipdg_1_reference_discretization,
415445
num_refinements,
416446
*testcase_3_reference_solution,
417-
"SIP discontinuous galerkin discretization, polOrder 1",
447+
"ADHOC SIP discontinuous galerkin discretization, polOrder 1",
418448
"testcase_3");
419449
info << std::endl;
420-
// symmetric weighted interior penalty discontinuous galerkin discretization
421-
const SWIPDG_1_DiscretizationType testcase_3_swipdg_1_reference_discretization(*reference_grid_part,
422-
testcase_3_boundary_info,
423-
testcase_3_diffusion,
424-
testcase_3_force,
425-
testcase_3_dirichlet,
426-
testcase_3_neumann);
427-
ConvergenceStudy< SWIPDG_1_DiscretizationType >::run(*grid,
428-
testcase_3_swipdg_1_reference_discretization,
429-
num_refinements,
430-
*testcase_3_reference_solution,
431-
"SWIP discontinuous galerkin discretization, polOrder 1",
432-
"testcase_3");
450+
// NEW symmetric interior penalty discontinuous galerkin discretization
451+
const Example::NewSIPDGDiscretization< GridPartType, 1 >
452+
testcase_3_new_sipdg_1_reference_discretization(*reference_grid_part,
453+
testcase_3_boundary_info,
454+
testcase_3_diffusion,
455+
testcase_3_force,
456+
testcase_3_dirichlet,
457+
testcase_3_neumann);
458+
ConvergenceStudy< Example::NewSIPDGDiscretization< GridPartType, 1 > >::run(*grid,
459+
testcase_3_new_sipdg_1_reference_discretization,
460+
num_refinements,
461+
*testcase_3_reference_solution,
462+
"NEW SIP discontinuous galerkin discretization, polOrder 1",
463+
"testcase_3");
433464
info << std::endl;
465+
// // symmetric weighted interior penalty discontinuous galerkin discretization
466+
// const SWIPDG_1_DiscretizationType testcase_3_swipdg_1_reference_discretization(*reference_grid_part,
467+
// testcase_3_boundary_info,
468+
// testcase_3_diffusion,
469+
// testcase_3_force,
470+
// testcase_3_dirichlet,
471+
// testcase_3_neumann);
472+
// ConvergenceStudy< SWIPDG_1_DiscretizationType >::run(*grid,
473+
// testcase_3_swipdg_1_reference_discretization,
474+
// num_refinements,
475+
// *testcase_3_reference_solution,
476+
// "SWIP discontinuous galerkin discretization, polOrder 1",
477+
// "testcase_3");
478+
// info << std::endl;
434479

435480
info << "+==================================================================================+" << std::endl;
436481
info << "|+================================================================================+|" << std::endl;
@@ -460,12 +505,12 @@ int main(int argc, char** argv)
460505
const CheckerboardFunctionType testcase_4_diffusion(DomainType(0.0),
461506
DomainType(1.0),
462507
{6, 6},
463-
{mu_one, mu_one, mu_one, mu_zero, mu_zero, mu_zero,
464-
mu_two, mu_one, mu_one, mu_zero, mu_zero, mu_zero,
465-
mu_one, mu_one, mu_one, mu_zero, mu_zero, mu_zero,
466-
mu_one, mu_one, mu_one, mu_zero, mu_zero, mu_zero,
467-
mu_one, mu_one, mu_one, mu_zero, mu_zero, mu_zero,
468-
mu_one, mu_one, mu_one, mu_zero, mu_zero, mu_zero});
508+
{mu_one, mu_one, mu_one, mu_one, mu_zero, mu_zero,
509+
mu_two, mu_one, mu_one, mu_one, mu_zero, mu_zero,
510+
mu_one, mu_one, mu_one, mu_one, mu_zero, mu_zero,
511+
mu_one, mu_one, mu_one, mu_one, mu_zero, mu_zero,
512+
mu_one, mu_one, mu_one, mu_one, mu_zero, mu_zero,
513+
mu_one, mu_one, mu_one, mu_one, mu_zero, mu_zero});
469514
const ConstantFunctionType testcase_4_force(1.0);
470515
const ConstantFunctionType testcase_4_dirichlet(0.0);
471516
const ConstantFunctionType testcase_4_neumann(0.0);
@@ -484,7 +529,7 @@ int main(int argc, char** argv)
484529
"continuous galerkin discretization, polOrder 1",
485530
"testcase_4");
486531
info << std::endl;
487-
// symmetric interior penalty discontinuous galerkin discretization
532+
// ADHOC symmetric interior penalty discontinuous galerkin discretization
488533
const SIPDG_1_DiscretizationType testcase_4_sipdg_1_reference_discretization(*reference_grid_part,
489534
testcase_4_boundary_info,
490535
testcase_4_diffusion,
@@ -495,102 +540,117 @@ int main(int argc, char** argv)
495540
testcase_4_sipdg_1_reference_discretization,
496541
num_refinements,
497542
*testcase_4_reference_solution,
498-
"SIP discontinuous galerkin discretization, polOrder 1",
543+
"ADHOC SIP discontinuous galerkin discretization, polOrder 1",
499544
"testcase_4");
500545
info << std::endl;
501-
// symmetric weighted interior penalty discontinuous galerkin discretization
502-
const SWIPDG_1_DiscretizationType testcase_4_swipdg_1_reference_discretization(*reference_grid_part,
503-
testcase_4_boundary_info,
504-
testcase_4_diffusion,
505-
testcase_4_force,
506-
testcase_4_dirichlet,
507-
testcase_4_neumann);
508-
ConvergenceStudy< SWIPDG_1_DiscretizationType >::run(*grid,
509-
testcase_4_swipdg_1_reference_discretization,
510-
num_refinements,
511-
*testcase_4_reference_solution,
512-
"SWIP discontinuous galerkin discretization, polOrder 1",
513-
"testcase_4");
546+
// NEW symmetric interior penalty discontinuous galerkin discretization
547+
const Example::NewSIPDGDiscretization< GridPartType, 1 >
548+
testcase_4_new_sipdg_1_reference_discretization(*reference_grid_part,
549+
testcase_4_boundary_info,
550+
testcase_4_diffusion,
551+
testcase_4_force,
552+
testcase_4_dirichlet,
553+
testcase_4_neumann);
554+
ConvergenceStudy< Example::NewSIPDGDiscretization< GridPartType, 1 > >::run(*grid,
555+
testcase_4_new_sipdg_1_reference_discretization,
556+
num_refinements,
557+
*testcase_4_reference_solution,
558+
"NEW SIP discontinuous galerkin discretization, polOrder 1",
559+
"testcase_4");
514560
info << std::endl;
515-
516-
if (spe_10_model_1_datafile_found) {
517-
info << "+=====================================================================+" << std::endl;
518-
info << "|+===================================================================+|" << std::endl;
519-
info << "|| Testcase 5: SPE10 ||" << std::endl;
520-
info << "|| (see http://www.spe.org/web/csp/datasets/set01.htm) ||" << std::endl;
521-
info << "|+-------------------------------------------------------------------+|" << std::endl;
522-
info << "|| domain = [0, 5] x [0 , 1] ||" << std::endl;
523-
info << "|| diffusion: spe10 model 1 ||" << std::endl;
524-
info << "|| force = 1 ||" << std::endl;
525-
info << "|| dirichlet = 0 ||" << std::endl;
526-
info << "|| reference solution: CG solution on finest grid ||" << std::endl;
527-
info << "|+===================================================================+|" << std::endl;
528-
info << "+=====================================================================+" << std::endl;
529-
DomainType upper_right(1.0);
530-
upper_right[0] = 5.0;
531-
grid_provider = std::unique_ptr< GridProviderType >(new GridProviderType(DomainType(0.0),
532-
upper_right,
533-
{100u, 20u}));
534-
grid = grid_provider->grid();
535-
grid->globalRefine(1);
536-
for (size_t ii = 1; ii <= (num_refinements + 1); ++ii)
537-
grid->globalRefine(GridType::refineStepsForHalf);
538-
reference_grid_part = std::unique_ptr< GridPartType >(new GridPartType(*grid, grid->maxLevel()));
539-
vtk_writer = std::unique_ptr< VTKWriterType >(new VTKWriterType(reference_grid_part->gridView(),
540-
VTK::nonconforming));
541-
542-
const Stuff::GridboundaryAllDirichlet< typename GridPartType::GridViewType > testcase_5_boundary_info;
543-
const SPE10Model1FunctionType testcase_5_diffusion(spe_10_model_1_datafile,
544-
DomainType(0.0), upper_right);
545-
const ExpressionFunctionType testcase_5_force("x",
546-
"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)))",
547-
integration_order);
548-
const ConstantFunctionType testcase_5_dirichlet(0.0);
549-
const ConstantFunctionType testcase_5_neumann(0.0);
550-
// continuous galerkin discretization
551-
const CG_1_DiscretizationType testcase_5_cg_1_reference_discretization(*reference_grid_part,
552-
testcase_5_boundary_info,
553-
testcase_5_diffusion,
554-
testcase_5_force,
555-
testcase_5_dirichlet,
556-
testcase_5_neumann);
557-
const auto testcase_5_reference_solution = testcase_5_cg_1_reference_discretization.solve();
558-
ConvergenceStudy< CG_1_DiscretizationType >::run(*grid,
559-
testcase_5_cg_1_reference_discretization,
560-
num_refinements,
561-
*testcase_5_reference_solution,
562-
"continuous galerkin discretization, polOrder 1",
563-
"testcase_5");
564-
info << std::endl;
565-
// symmetric interior penalty discontinuous galerkin discretization
566-
const SIPDG_1_DiscretizationType testcase_5_sipdg_1_reference_discretization(*reference_grid_part,
567-
testcase_5_boundary_info,
568-
testcase_5_diffusion,
569-
testcase_5_force,
570-
testcase_5_dirichlet,
571-
testcase_5_neumann);
572-
ConvergenceStudy< SIPDG_1_DiscretizationType >::run(*grid,
573-
testcase_5_sipdg_1_reference_discretization,
574-
num_refinements,
575-
*testcase_5_reference_solution,
576-
"SIP discontinuous galerkin discretization, polOrder 1",
577-
"testcase_5");
578-
info << std::endl;
579-
// symmetric weighted interior penalty discontinuous galerkin discretization
580-
const SWIPDG_1_DiscretizationType testcase_5_swipdg_1_reference_discretization(*reference_grid_part,
581-
testcase_5_boundary_info,
582-
testcase_5_diffusion,
583-
testcase_5_force,
584-
testcase_5_dirichlet,
585-
testcase_5_neumann);
586-
ConvergenceStudy< SWIPDG_1_DiscretizationType >::run(*grid,
587-
testcase_5_swipdg_1_reference_discretization,
588-
num_refinements,
589-
*testcase_5_reference_solution,
590-
"SWIP discontinuous galerkin discretization, polOrder 1",
591-
"testcase_5");
592-
info << std::endl;
593-
} // spe 10 testcase
561+
// // symmetric weighted interior penalty discontinuous galerkin discretization
562+
// const SWIPDG_1_DiscretizationType testcase_4_swipdg_1_reference_discretization(*reference_grid_part,
563+
// testcase_4_boundary_info,
564+
// testcase_4_diffusion,
565+
// testcase_4_force,
566+
// testcase_4_dirichlet,
567+
// testcase_4_neumann);
568+
// ConvergenceStudy< SWIPDG_1_DiscretizationType >::run(*grid,
569+
// testcase_4_swipdg_1_reference_discretization,
570+
// num_refinements,
571+
// *testcase_4_reference_solution,
572+
// "SWIP discontinuous galerkin discretization, polOrder 1",
573+
// "testcase_4");
574+
// info << std::endl;
575+
576+
// if (spe_10_model_1_datafile_found) {
577+
// info << "+=====================================================================+" << std::endl;
578+
// info << "|+===================================================================+|" << std::endl;
579+
// info << "|| Testcase 5: SPE10 ||" << std::endl;
580+
// info << "|| (see http://www.spe.org/web/csp/datasets/set01.htm) ||" << std::endl;
581+
// info << "|+-------------------------------------------------------------------+|" << std::endl;
582+
// info << "|| domain = [0, 5] x [0 , 1] ||" << std::endl;
583+
// info << "|| diffusion: spe10 model 1 ||" << std::endl;
584+
// info << "|| force = 1 ||" << std::endl;
585+
// info << "|| dirichlet = 0 ||" << std::endl;
586+
// info << "|| reference solution: CG solution on finest grid ||" << std::endl;
587+
// info << "|+===================================================================+|" << std::endl;
588+
// info << "+=====================================================================+" << std::endl;
589+
// DomainType upper_right(1.0);
590+
// upper_right[0] = 5.0;
591+
// grid_provider = std::unique_ptr< GridProviderType >(new GridProviderType(DomainType(0.0),
592+
// upper_right,
593+
// {100u, 20u}));
594+
// grid = grid_provider->grid();
595+
// grid->globalRefine(1);
596+
// for (size_t ii = 1; ii <= (num_refinements + 1); ++ii)
597+
// grid->globalRefine(GridType::refineStepsForHalf);
598+
// reference_grid_part = std::unique_ptr< GridPartType >(new GridPartType(*grid, grid->maxLevel()));
599+
// vtk_writer = std::unique_ptr< VTKWriterType >(new VTKWriterType(reference_grid_part->gridView(),
600+
// VTK::nonconforming));
601+
602+
// const Stuff::GridboundaryAllDirichlet< typename GridPartType::GridViewType > testcase_5_boundary_info;
603+
// const SPE10Model1FunctionType testcase_5_diffusion(spe_10_model_1_datafile,
604+
// DomainType(0.0), upper_right);
605+
// const ExpressionFunctionType testcase_5_force("x",
606+
// "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)))",
607+
// integration_order);
608+
// const ConstantFunctionType testcase_5_dirichlet(0.0);
609+
// const ConstantFunctionType testcase_5_neumann(0.0);
610+
// // continuous galerkin discretization
611+
// const CG_1_DiscretizationType testcase_5_cg_1_reference_discretization(*reference_grid_part,
612+
// testcase_5_boundary_info,
613+
// testcase_5_diffusion,
614+
// testcase_5_force,
615+
// testcase_5_dirichlet,
616+
// testcase_5_neumann);
617+
// const auto testcase_5_reference_solution = testcase_5_cg_1_reference_discretization.solve();
618+
// ConvergenceStudy< CG_1_DiscretizationType >::run(*grid,
619+
// testcase_5_cg_1_reference_discretization,
620+
// num_refinements,
621+
// *testcase_5_reference_solution,
622+
// "continuous galerkin discretization, polOrder 1",
623+
// "testcase_5");
624+
// info << std::endl;
625+
// // symmetric interior penalty discontinuous galerkin discretization
626+
// const SIPDG_1_DiscretizationType testcase_5_sipdg_1_reference_discretization(*reference_grid_part,
627+
// testcase_5_boundary_info,
628+
// testcase_5_diffusion,
629+
// testcase_5_force,
630+
// testcase_5_dirichlet,
631+
// testcase_5_neumann);
632+
// ConvergenceStudy< SIPDG_1_DiscretizationType >::run(*grid,
633+
// testcase_5_sipdg_1_reference_discretization,
634+
// num_refinements,
635+
// *testcase_5_reference_solution,
636+
// "SIP discontinuous galerkin discretization, polOrder 1",
637+
// "testcase_5");
638+
// info << std::endl;
639+
// // symmetric weighted interior penalty discontinuous galerkin discretization
640+
// const SWIPDG_1_DiscretizationType testcase_5_swipdg_1_reference_discretization(*reference_grid_part,
641+
// testcase_5_boundary_info,
642+
// testcase_5_diffusion,
643+
// testcase_5_force,
644+
// testcase_5_dirichlet,
645+
// testcase_5_neumann);
646+
// ConvergenceStudy< SWIPDG_1_DiscretizationType >::run(*grid,
647+
// testcase_5_swipdg_1_reference_discretization,
648+
// num_refinements,
649+
// *testcase_5_reference_solution,
650+
// "SWIP discontinuous galerkin discretization, polOrder 1",
651+
// "testcase_5");
652+
// info << std::endl;
653+
// } // spe 10 testcase
594654
} // read or write settings file
595655

596656
// done

0 commit comments

Comments
 (0)
This repository has been archived.