ParMooN
 All Classes Functions Variables Friends Pages
DrivenCavity.h
1 // Navier-Stokes problem, Driven Cavity
2 //
3 // u(x,y) = ?
4 // p(x,y) = ?
5 
6 void ExampleFile()
7 {
8  OutPut("Example: Driven.h" << endl) ;
9 }
10 // ========================================================================
11 // initial solution
12 // ========================================================================
13 void InitialU1(double x, double y, double *values)
14 {
15  values[0] = 0;
16 }
17 
18 void InitialU2(double x, double y, double *values)
19 {
20  values[0] = 0;
21 }
22 
23 void InitialP(double x, double y, double *values)
24 {
25  values[0] = 0;
26 }
27 
28 
29 // ========================================================================
30 // exact solution
31 // ========================================================================
32 void ExactU1(double x, double y, double *values)
33 {
34  values[0] = 0;
35  values[1] = 0;
36  values[2] = 0;
37  values[3] = 0;
38 }
39 
40 void ExactU2(double x, double y, double *values)
41 {
42  values[0] = 0;
43  values[1] = 0;
44  values[2] = 0;
45  values[3] = 0;
46 }
47 
48 void ExactP(double x, double y, double *values)
49 {
50  values[0] = 0;
51  values[1] = 0;
52  values[2] = 0;
53  values[3] = 0;
54 }
55 
56 // ========================================================================
57 // boundary conditions
58 // ========================================================================
59 void BoundCondition(int i, double t, BoundCond &cond)
60 {
61  cond = DIRICHLET;
62 }
63 
64 void U1BoundValue(int BdComp, double Param, double &value)
65 {
66  double t = TDatabase::TimeDB->CURRENTTIME;
67 
68  switch(BdComp)
69  {
70  case 0:
71  value=0;
72  break;
73  case 1:
74  value=0;
75  break;
76  case 2:
77  value=1; // top moving side velocity
78  break;
79  case 3:
80  value=0;
81  break;
82  default: cout << "wrong boundary part number" << endl;
83  break;
84  }
85 }
86 
87 void U2BoundValue(int BdComp, double Param, double &value)
88 {
89  value = 0;
90 }
91 
92 // ========================================================================
93 // coefficients for Stokes form: A, B1, B2, f1, f2
94 // ========================================================================
95 void LinCoeffs(int n_points, double *X, double *Y,
96  double **parameters, double **coeffs)
97 {
98  int i;
99  double *coeff, x, y;
100  static double eps=1/TDatabase::ParamDB->RE_NR;
101 
102  for(i=0;i<n_points;i++)
103  {
104  coeff = coeffs[i];
105  x = X[i];
106  y = Y[i];
107 
108  coeff[0] = eps;
109 
110  coeff[1] = 0; // f1
111  coeff[2] = 0; // f2
112  }
113 }
114 
115 
static TTimeDB * TimeDB
Definition: Database.h:1137
double RE_NR
Definition: Database.h:313
static TParamDB * ParamDB
Definition: Database.h:1134