7 OutPut(
"Example: SinCos_DFT.h ") ;
13 void ExactU1(
double x,
double y,
double *values)
15 values[0] = sin(Pi*x);
16 values[1] = Pi*cos(Pi*x);
18 values[3] = -Pi*Pi*sin(Pi*x);
21 void ExactU2(
double x,
double y,
double *values)
23 values[0] = -Pi*y*cos(Pi*x);
24 values[1] = Pi*Pi*y*sin(Pi*x);
25 values[2] = -Pi*cos(Pi*x);
26 values[3] = Pi*Pi*Pi*y*cos(Pi*x);
29 void ExactP(
double x,
double y,
double *values)
31 values[0] = sin(Pi*x)*cos(Pi*y);
32 values[1] = Pi*cos(Pi*x)*cos(Pi*y);
33 values[2] = -Pi*sin(Pi*x)*sin(Pi*y);
34 values[3] = -Pi*Pi*sin(Pi*x)*cos(Pi*y)-Pi*Pi*sin(Pi*x)*cos(Pi*y);
41 void BoundCondition(
int i,
double t, BoundCond &cond)
47 void U1BoundValue(
int BdComp,
double Param,
double &value)
51 case 0: value=sin(Pi*Param);
53 case 1: value=sin(Pi);
55 case 2: value=sin(Pi*(1-Param));
59 default: cout <<
"wrong boundary part number" << endl;
65 void U2BoundValue(
int BdComp,
double Param,
double &value)
71 case 1: value=Pi*Param;
73 case 2: value=-Pi*cos(Pi*(1-Param));
75 case 3: value=-Pi*(1-Param);
77 default: cout <<
"wrong boundary part number" << endl;
86 void LinCoeffs(
int n_points,
double *X,
double *Y,
87 double **parameters,
double **coeffs)
92 double u1, u1x, u1y, u1lap, u2, u2x, u2y, u2lap, px, py;
94 for(i=0;i<n_points;i++)
106 u1lap = -Pi*Pi*sin(Pi*x);
107 u2 = -Pi*y*cos(Pi*x);
108 u2x = Pi*Pi*y*sin(Pi*x);
110 u2lap = Pi*Pi*Pi*y*cos(Pi*x);
111 px = Pi*cos(Pi*x)*cos(Pi*y);
112 py = -Pi*sin(Pi*x)*sin(Pi*y);
114 coeff[1] = -nu*u1lap+u1*u1x+u2*u1y+px;
115 coeff[2] = -nu*u2lap+u1*u2x+u2*u2y+py;
129 void ExactD1(
double x,
double y,
double *values)
131 values[0] = Pi*cos(Pi*x);
132 values[1] = -Pi*Pi*sin(Pi*x);
134 values[3] = -Pi*Pi*Pi*cos(Pi*x);
137 void ExactD2(
double x,
double y,
double *values)
139 values[0] = 0.5*Pi*Pi*y*sin(Pi*x);
140 values[1] = 0.5*Pi*Pi*Pi*y*cos(Pi*x);
141 values[2] = 0.5*Pi*Pi*sin(Pi*x);
142 values[3] = -0.5*Pi*Pi*Pi*Pi*y*sin(Pi*x);
145 void ExactD3(
double x,
double y,
double *values)
147 values[0] = -Pi*cos(Pi*x);
148 values[1] = Pi*Pi*sin(Pi*x);
150 values[3] = Pi*Pi*Pi*cos(Pi*x);
156 void BoundCondition_DFT(
int i,
double t, BoundCond &cond)
162 void D1BoundValue(
int BdComp,
double Param,
double &value)
166 case 0: value=Pi*cos(Pi*Param);
168 case 1: value=Pi*cos(Pi);
170 case 2: value=Pi*cos(Pi*(1-Param));
174 default: cout <<
"wrong boundary part number" << endl;
180 void D2BoundValue(
int BdComp,
double Param,
double &value)
186 case 1: value=0.5*Pi*Pi*Param*sin(Pi);
188 case 2: value=0.5*Pi*Pi*sin(Pi*(1-Param));
192 default: cout <<
"wrong boundary part number" << endl;
200 void D3BoundValue(
int BdComp,
double Param,
double &value)
204 case 0: value=-Pi*cos(Pi*Param);
206 case 1: value=-Pi*cos(Pi);
208 case 2: value=-Pi*cos(Pi*(1-Param));
212 default: cout <<
"wrong boundary part number" << endl;
219 void LinCoeffs_DFT(
int n_points,
double *X,
double *Y,
220 double **parameters,
double **coeffs)
223 double *coeff, x, y, *param;
224 double u1x, u1y, u2x, u2y;
226 for(i=0;i<n_points;i++)
double RE_NR
Definition: Database.h:313
static TParamDB * ParamDB
Definition: Database.h:1134