ParMooN
 All Classes Functions Variables Friends Pages
HeatChanel.h
1 // ======================================================================
2 // Sine problem 3D
3 // ======================================================================
4 // #include <ConvDiff3D.h>
5 
6 void ExampleFile()
7 {
8  OutPut("Example: HeatChanel.h" << endl) ;
9 }
10 
11 // exact solution
12 void Exact(double x, double y, double z, double *values)
13 {
14  values[0] = 0.;
15  values[1] = 0.;
16  values[2] = 0.;
17  values[3] = 0.;
18  values[4] = 0.;
19 }
20 
21 // kind of boundary condition (for FE space needed)
22 void BoundCondition(double x, double y, double z, BoundCond &cond)
23 {
24  if (fabs(z)<1e-8)
25  { cond = DIRICHLET; }
26  else
27  { cond = NEUMANN; }
28 }
29 
30 // value of boundary condition
31 void BoundValue(double x, double y, double z, double &value)
32 {
33  double r2;
34 
35  value = 0;
36 
37  r2 = (x-0.5)*(x-0.5)+(y-0.5)*(y-0.5);
38  if (fabs(z)<1e-8 && r2<0.25)
39  {
40  value = -4.*(0.25-r2);
41  }
42 
43  r2 = (x+0.5)*(x+0.5)+(y+0.5)*(y+0.5);
44  if (fabs(z)<1e-8 && r2<0.25)
45  {
46  value = -4.*(0.25-r2);
47  }
48 
49 }
50 
51 void BilinearCoeffs(int n_points, double *x, double *y, double *z,
52  double **parameters, double **coeffs)
53 {
54  static double eps=1.9e-5, u=TDatabase::ParamDB->P0;
55  int i;
56  double *coeff, *param;
57 
58  for(i=0;i<n_points;i++)
59  {
60  coeff = coeffs[i];
61  param = parameters[i];
62 
63  coeff[0] = eps;
64  coeff[1] = 0;
65  coeff[2] = 0;
66  coeff[3] = u;
67  coeff[4] = 0;
68  coeff[5] = 0.;
69  }
70 }
71 
72 // initial conditon
73 void InitialCondition(double x, double y, double z, double *values)
74 {
75  double t = 0;
76  double k = 0.1;
77 
78  values[0] = 0;
79  values[1] = 0;
80  values[2] = 0;
81  values[3] = 0;
82  values[4] = 0;
83 }
double P0
Definition: Database.h:533
static TParamDB * ParamDB
Definition: Database.h:1134