83 Quadrature(
int N1,
int N2,
int N3,
double clim,
double T2)
117 T cxmin,cxmax,cymin,cymax,czmin,czmax;
120 cxmin=-clim*
sqrt(0.5*T2);cxmax=clim*
sqrt(0.5*T2);
121 cymin=-clim*
sqrt(0.5*T2);cymax=clim*
sqrt(0.5*T2);
122 czmin=-clim*
sqrt(0.5*T2);czmax=clim*
sqrt(0.5*T2);
123 dcx=(cxmax-cxmin)/(N1-1.0);
124 dcy=(cymax-cymin)/(N2-1.0);
125 dcz=(czmax-czmin)/(N3-1.0);
128 absci1[0]=cxmin;absci2[0]=cymin; absci3[0]=czmin;
129 wts1[0]=dcx; wts2[0]=dcy; wts3[0]=dcz;
130 for (
int j3=1;j3<N3;j3++){
131 absci3[j3]=absci3[j3-1]+dcz;
136 for (
int j2=1;j2<N2;j2++){
137 absci2[j2]=absci2[j2-1]+dcy;
142 for (
int j1=1;j1<N1;j1++){
143 absci1[j1]=absci1[j1-1]+dcx;
151 for(
int j1=0;j1<N1;j1++){
152 for (
int j2=0;j2<N2;j2++){
153 for (
int j3=0;j3<N3;j3++){
157 dcxyz[j]=wts1[j1]*wts2[j2]*wts3[j3];
160 malphaBGK(j,1)=cx[j];
161 malphaBGK(j,2)=cy[j];
162 malphaBGK(j,3)=cz[j];
163 malphaBGK(j,4)=pow(cx[j],2)+pow(cy[j],2)+pow(cz[j],2);
165 malphaESBGK(j,0)=1.0;
166 malphaESBGK(j,1)=cx[j];
167 malphaESBGK(j,2)=cy[j];
168 malphaESBGK(j,3)=cz[j];
169 malphaESBGK(j,4)=pow(cx[j],2);
170 malphaESBGK(j,5)=pow(cy[j],2);
171 malphaESBGK(j,6)=pow(cz[j],2);
172 malphaESBGK(j,7)=cx[j]*cy[j];
173 malphaESBGK(j,8)=cy[j]*cz[j];
174 malphaESBGK(j,9)=cz[j]*cx[j];
200 Quadrature(
int option_ur,
int Nr,
int option_theta,
int n_int,
int option_phi,
int nphi_int)
206 if(option_theta ==0){
211 else{N3=3*nphi_int+1;}
243 {
double dh1=
sqrt(3.0)*3.889/(N1);
244 for (j1=0;j1<N1;j1++){
245 absci1[j1]=(j1+1)*dh1;
246 wts1[j1]=dh1*pow(absci1[j1],2.0);
250 absci1[0]=0.7539869079898871;
251 absci1[1]=0.1734055298879163E+1;
252 wts1[0]=0.2738413467266824;
253 wts1[1]=0.1692721159996965;
254 for (j1=0;j1<N1;j1++){
255 wts1[j1]=wts1[j1]*exp(pow(absci1[j1],2.0));
259 { absci1[0]=0.4238628193900528;
260 absci1[1]=0.1014332104566760E+1;
261 absci1[2]=0.1742437375162050E+1;
262 absci1[3]=0.2639813333635586E+1;
263 wts1[0]=0.7649092266787873E-1;
264 wts1[1]= 0.2435439494642453;
265 wts1[2]= 0.1162953035510695;
266 wts1[3]= 0.6783287043185401E-2;
267 for (j1=0;j1<N1;j1++){
268 wts1[j1]=wts1[j1]*exp(pow(absci1[j1],2.0));
272 { absci1[0]=0.1990000637984294;
273 absci1[1]=0.5059526450205794;
274 absci1[2]=0.9041682182040568;
275 absci1[3]=0.1372615723971598E+1;
276 absci1[4]=0.1900969572329702E+1;
277 absci1[5]=0.2490479841967435E+1;
278 absci1[6]=0.3158780677105240E+1;
279 absci1[7]=0.3966720403265353E+1;
281 wts1[0]=0.9599144336400067E-2;
282 wts1[1]=0.7072944976303661E-1;
283 wts1[2]=0.157366887003943;
284 wts1[3]=0.1429322724003870;
285 wts1[4]=0.5431444004253597E-1;
286 wts1[5]=0.7835224153141577E-2;
287 wts1[6]=0.3338952597020048E-3;
288 wts1[7]=0.2149767232664775E-5;
289 for(j1=0;j1<N1;j1++){
290 wts1[j1]=wts1[j1]*exp(pow(absci1[j1],2.0));
294 { absci1[0]= 0.8174913389984520E-1;
295 absci1[1]=0.2154761962759740;
296 absci1[2]=0.4003530517087630;
297 absci1[3]=0.6298538771405607;
298 absci1[4]=0.8976124329697087;
299 absci1[5]=0.1198149260240153E+1;
300 absci1[6]=0.1527188184719962E+1;
301 absci1[7]=0.1881745606015598E+1;
302 absci1[8]=0.2260132964654088E+1;
303 absci1[9]=0.2661980315279350E+1;
304 absci1[10]=0.3088376381635592E+1;
305 absci1[11]=0.3542256017930265E+1;
306 absci1[12]=0.4029312272760483E+1;
307 absci1[13]=0.4560203031431090E+1;
308 absci1[14]=0.5156826768007481E+1;
309 absci1[15]=0.58781144889155572E+1;
311 wts1[0]=0.7050727473210895E-3;
312 wts1[1]=0.7107111654073120E-2;
313 wts1[2]=0.2844188515941899E-1;
314 wts1[3]=0.6660235171398239E-1;
315 wts1[4]=0.1025785712747278;
316 wts1[5]=0.1077502032531791;
317 wts1[6]=0.7747156370638879E-1;
318 wts1[7]=0.3763106373385135E-1;
319 wts1[8]=0.1204873635560290E-1;
320 wts1[9]=0.2453208613776865E-2;
321 wts1[10]=0.3020309847850189E-3;
322 wts1[11]=0.2092121075871870E-4;
323 wts1[12]=0.7314637349679360E-6;
324 wts1[13]=0.1080646863902574E-7;
325 wts1[14]=0.4828081616137754E-10;
326 wts1[15]=0.2840126937112534E-13;
327 for (j1=0;j1<N1;j1++){
328 wts1[j1]=wts1[j1]*exp(pow(absci1[j1],2.0));
332 switch(option_theta){
336 double dh2=2*pi/(N2);
337 for (
int j2=0;j2<N2;j2++){
338 absci2[j2]= dh2*j2+dh2/2.0;
347 for (
int i=0;i<n_int;i++){
348 absci2[3*i]=-h+dh/3.0*(3.0*i);
349 absci2[3*i+1]=-h+dh/3.0*(3.0*i+1);
350 absci2[3*i+2]=-h+dh/3.0*(3.0*i+2);
357 wts2[3*i+1]=dh/8.0*3.0;
358 wts2[3*i+2]=dh/8.0*3.0;
371 for (
int j3=0;j3<N3;j3++){
373 absci3[j3]= dh3*(j3+0.5);
374 wts3[j3]=dh3*
sin(absci3[j3]);
380 double dh_phi=pi/nphi_int;
381 for (
int i=0;i<nphi_int;i++){
382 absci3[3*i]=dh_phi/3.0*(3.0*i);
383 absci3[3*i+1]=dh_phi/3.0*(3.0*i+1);
384 absci3[3*i+2]=dh_phi/3.0*(3.0*i+2);
386 wts3[i]=dh_phi/8.0*
sin(absci3[i]);
389 wts3[3*i]=dh_phi/4.0*
sin(absci3[3*i]);
391 wts3[3*i+1]=dh_phi/8.0*3.0*
sin(absci3[3*i+1]);
392 wts3[3*i+2]=dh_phi/8.0*3.0*
sin(absci3[3*i+2]);
395 wts3[N3-1]=dh_phi/8.0*
sin(absci3[N3-1]);
400 for (
int j1=0;j1<N1;j1++){
401 for (
int j2=0;j2<N2;j2++){
402 for (
int j3=0;j3<N3;j3++){
403 cx[j]=absci1[j1]*cos(absci2[j2])*
sin(absci3[j3]);
404 cy[j]=absci1[j1]*
sin(absci2[j2])*
sin(absci3[j3]);
405 cz[j]=absci1[j1]*cos(absci3[j3]);
406 dcxyz[j]=wts1[j1]*wts2[j2]*wts3[j3];
408 malphaBGK(j,1)=cx[j];
409 malphaBGK(j,2)=cy[j];
410 malphaBGK(j,3)=cz[j];
411 malphaBGK(j,4)=pow(cx[j],2)+pow(cy[j],2)+pow(cz[j],2);
413 malphaESBGK(j,0)=1.0;
414 malphaESBGK(j,1)=cx[j];
415 malphaESBGK(j,2)=cy[j];
416 malphaESBGK(j,3)=cz[j];
417 malphaESBGK(j,4)=pow(cx[j],2);
418 malphaESBGK(j,5)=pow(cy[j],2);
419 malphaESBGK(j,6)=pow(cz[j],2);
420 malphaESBGK(j,7)=cx[j]*cy[j];
421 malphaESBGK(j,8)=cy[j]*cz[j];
422 malphaESBGK(j,9)=cz[j]*cx[j];
432 pFile = fopen (
"cxyz.txt",
"w");
433 for(
int j=0;j<
N123;j++){
434 fprintf(pFile,
"%d %12.6E %12.6E %12.6E %12.6E \n", j,cx[j],cy[j],cz[j],dcxyz[j]);}
497 for(
int j1=0;j1<
_NV;j1++){
498 for (
int j2=0;j2<
_Ntheta;j2++){
499 for (
int j3=0;j3<
_Nphi;j3++){
501 malphaBGK(j,1)=cx[j];
502 malphaBGK(j,2)=cy[j];
503 malphaBGK(j,3)=cz[j];
504 malphaBGK(j,4)=pow(cx[j],2)+pow(cy[j],2)+pow(cz[j],2);
506 malphaESBGK(j,0)=1.0;
507 malphaESBGK(j,1)=cx[j];
508 malphaESBGK(j,2)=cy[j];
509 malphaESBGK(j,3)=cz[j];
510 malphaESBGK(j,4)=pow(cx[j],2);
511 malphaESBGK(j,5)=pow(cy[j],2);
512 malphaESBGK(j,6)=pow(cz[j],2);
513 malphaESBGK(j,7)=cx[j]*cy[j];
514 malphaESBGK(j,8)=cy[j]*cz[j];
515 malphaESBGK(j,9)=cz[j]*cx[j];
TArray2D * malphaESBGKPtr
void CopyQuad(TQuad ©FromQuad)
TArray & get_dcxyz() const
Quadrature(int option_ur, int Nr, int option_theta, int n_int, int option_phi, int nphi_int)
Quadrature(int N1, int N2, int N3, double clim, double T2)
TArray & get_absci1() const
Tangent sqrt(const Tangent &a)
Tangent sin(const Tangent &a)
TArray & get_absci2() const
TArray & get_absci3() const
TArray & get_wts2() const
TArray & get_wts3() const
int getNthetaCount() const
TArray & get_wts1() const