ParMooN
 All Classes Functions Variables Friends Pages
Benchmark.h
1 // Bechmark for Darcy problem, exact solution is
2 //
3 // u(x,y) = (y,x)
4 // p(x,y) = 0
5 
6 void ExampleFile()
7 {
8  OutPut("Example: Benchmark.h" << endl) ;
9 }
10 
11 // ========================================================================
12 // exact solution
13 // ========================================================================
14 void ExactU1(double x, double y, double *values)
15 {
16  values[0] = y;
17  values[1] = 0;
18  values[2] = 1;
19  values[3] = 0;
20 }
21 
22 void ExactU2(double x, double y, double *values)
23 {
24  values[0] = x;
25  values[1] = 1;
26  values[2] = 0;
27  values[3] = 0;
28 }
29 
30 void ExactP(double x, double y, double *values)
31 {
32  values[0] = 0;
33  values[1] = 0;
34  values[2] = 0;
35  values[3] = 0;
36 }
37 
38 // ========================================================================
39 // boundary conditions
40 // ========================================================================
41 void BoundCondition(int bdComp, double t, BoundCond &cond)
42 {
43  cond = (bdComp == 0) ? NEUMANN : DIRICHLET;
44 }
45 
46 // u \cdot n
47 void UNBoundValue(int BdComp, double t, double &value)
48 {
49  switch(BdComp)
50  {
51  case 0:
52  //value = 0; // Dirichlet
53  value = 0; // Neumann
54  break;
55  case 1:
56  value = t; // Dirichlet
57  //value = 0; // Neumann
58  break;
59  case 2:
60  value = 1 - t; // Dirichlet
61  //value = 0; // Neumann
62  break;
63  case 3:
64  value = t - 1; // Dirichlet
65  //value = 0; // Neumann
66  break;
67  default:
68  ErrMsg("wrong boundary part number");
69  exit(0);
70  break;
71  }
72 }
73 
74 
75 // ========================================================================
76 // coefficients for Stokes form: A, B1, B2, f1, f2
77 // ========================================================================
78 void LinCoeffs(int n_points, double *X, double *Y,
79  double **parameters, double **coeffs)
80 {
81  const double eps = 1./TDatabase::ParamDB->SIGMA_PERM;
82 
83  for(int i = 0; i < n_points; i++)
84  {
85  coeffs[i][0] = eps;
86  // RHS for exact solution
87  coeffs[i][1] = Y[i]; // f1
88  coeffs[i][2] = X[i]; // f2
89  coeffs[i][3] = 0.0; // g
90  }
91 }
92 
93 
static TParamDB * ParamDB
Definition: Database.h:1134