ParMooN
 All Classes Functions Variables Friends Pages
Laplace.h
1 // ======================================================================
2 // Sine problem 3D
3 // ======================================================================
4 // #include <ConvDiff3D.h>
5 
6 void ExampleFile()
7 {
8  OutPut("Example: Laplace.h" << endl) ;
9 }
10 
11 // exact solution
12 void Exact(double x, double y, double z, double *values)
13 {
14  values[0] = sin(Pi*x)*sin(Pi*y)*sin(Pi*z);
15  values[1] = Pi*cos(Pi*x)*sin(Pi*y)*sin(Pi*z);
16  values[2] = Pi*sin(Pi*x)*cos(Pi*y)*sin(Pi*z);
17  values[3] = Pi*sin(Pi*x)*sin(Pi*y)*cos(Pi*z);
18  values[4] = -3*Pi*Pi*sin(Pi*x)*sin(Pi*y)*sin(Pi*z);
19 }
20 
21 // kind of boundary condition (for FE space needed)
22 void BoundCondition(int BdID, double x, double y, double z, BoundCond &cond)
23 {
24  cond = DIRICHLET;
25 // cond = NEUMANN;
26 }
27 
28 // value of boundary condition
29 void BoundValue(int BdID, double x, double y, double z, double &value)
30 {
31  value = sin(Pi*x)*sin(Pi*y)*sin(Pi*z);
32 }
33 
34 void BilinearCoeffs(int n_points, double *x, double *y, double *z,
35  double **parameters, double **coeffs)
36 {
37  static double eps=1/TDatabase::ParamDB->RE_NR;
38  int i;
39  double *coeff, *param;
40 
41  for(i=0;i<n_points;i++)
42  {
43  coeff = coeffs[i];
44  param = parameters[i];
45 
46  coeff[0] = eps;
47  coeff[1] = 0;
48  coeff[2] = 0;
49  coeff[3] = 0;
50  coeff[4] = 0;
51  coeff[5] = (3*Pi*Pi*eps)*sin(Pi*x[i])*sin(Pi*y[i])*sin(Pi*z[i]);
52  }
53 }
54 
double RE_NR
Definition: Database.h:313
static TParamDB * ParamDB
Definition: Database.h:1134