@@ -250,46 +250,75 @@ int main(int argc, char** argv)
250
250
" testcase_1" );
251
251
info << std::endl;
252
252
// 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" );
265
266
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;
293
322
grid_provider = std::unique_ptr< GridProviderType >(new GridProviderType (0 , 1 , 16 ));
294
323
grid = grid_provider->grid ();
295
324
grid->globalRefine (1 );
@@ -329,46 +358,47 @@ int main(int argc, char** argv)
329
358
" testcase_2" );
330
359
info << std::endl;
331
360
// 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" );
344
374
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;
372
402
grid_provider = std::unique_ptr< GridProviderType >(new GridProviderType (0 , 1 , 2 ));
373
403
grid = grid_provider->grid ();
374
404
grid->globalRefine (1 );
@@ -384,10 +414,10 @@ int main(int argc, char** argv)
384
414
testcase_3_boundary_info (true ,
385
415
{},
386
416
{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 );
391
421
// continuous galerkin discretization
392
422
const CG_1_DiscretizationType testcase_3_cg_1_reference_discretization (*reference_grid_part,
393
423
testcase_3_boundary_info,
@@ -403,7 +433,7 @@ int main(int argc, char** argv)
403
433
" continuous galerkin discretization, polOrder 1" ,
404
434
" testcase_3" );
405
435
info << std::endl;
406
- // symmetric interior penalty discontinuous galerkin discretization
436
+ // ADHOC symmetric interior penalty discontinuous galerkin discretization
407
437
const SIPDG_1_DiscretizationType testcase_3_sipdg_1_reference_discretization (*reference_grid_part,
408
438
testcase_3_boundary_info,
409
439
testcase_3_diffusion,
@@ -414,23 +444,38 @@ int main(int argc, char** argv)
414
444
testcase_3_sipdg_1_reference_discretization,
415
445
num_refinements,
416
446
*testcase_3_reference_solution,
417
- " SIP discontinuous galerkin discretization, polOrder 1" ,
447
+ " ADHOC SIP discontinuous galerkin discretization, polOrder 1" ,
418
448
" testcase_3" );
419
449
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" );
433
464
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;
434
479
435
480
info << " +==================================================================================+" << std::endl;
436
481
info << " |+================================================================================+|" << std::endl;
@@ -460,12 +505,12 @@ int main(int argc, char** argv)
460
505
const CheckerboardFunctionType testcase_4_diffusion (DomainType (0.0 ),
461
506
DomainType (1.0 ),
462
507
{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});
469
514
const ConstantFunctionType testcase_4_force (1.0 );
470
515
const ConstantFunctionType testcase_4_dirichlet (0.0 );
471
516
const ConstantFunctionType testcase_4_neumann (0.0 );
@@ -484,7 +529,7 @@ int main(int argc, char** argv)
484
529
" continuous galerkin discretization, polOrder 1" ,
485
530
" testcase_4" );
486
531
info << std::endl;
487
- // symmetric interior penalty discontinuous galerkin discretization
532
+ // ADHOC symmetric interior penalty discontinuous galerkin discretization
488
533
const SIPDG_1_DiscretizationType testcase_4_sipdg_1_reference_discretization (*reference_grid_part,
489
534
testcase_4_boundary_info,
490
535
testcase_4_diffusion,
@@ -495,102 +540,117 @@ int main(int argc, char** argv)
495
540
testcase_4_sipdg_1_reference_discretization,
496
541
num_refinements,
497
542
*testcase_4_reference_solution,
498
- " SIP discontinuous galerkin discretization, polOrder 1" ,
543
+ " ADHOC SIP discontinuous galerkin discretization, polOrder 1" ,
499
544
" testcase_4" );
500
545
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" );
514
560
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
594
654
} // read or write settings file
595
655
596
656
// done
0 commit comments