Changeset 68 for branches/branche-mb/src/sinobad.h
- Timestamp:
- 08/30/11 16:13:04 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/branche-mb/src/sinobad.h
r67 r68 87 87 double pdth_fil=100.;//7200.; 88 88 double pdtz_fil=100.;//100.;//7200.; 89 double fsaht_fil= 5.e+ 2;//1000.;89 double fsaht_fil= 5.e+02;//1000.; 90 90 double avt_fil=1.2e-05;//1.2e-5; 91 91 //double lscale= 212000.; // length-scale 92 92 double norm_fil; //coef de normalisation 93 93 void normfil();// calcul du coef de normalisation norm_fil 94 void xset_fdt_fco();// set fdt fcoef 94 95 #endif 95 96 … … 259 260 //_____________________________________________________________________________ 260 261 #ifdef K_FILTER 262 //_____________________________________________________________________________ 261 263 void normfil(){ 262 264 double norm_zfil=1.; 263 265 double norm_lfil=1.; 264 #if defined (K_FILZNOL) /* && !defined (K_FILLNOZ)*/ 265 norm_zfil= 2.*sqrt(PI*avt_fil*pdtz_fil*2.* OFTZ);266 #ifdef K_FZIMP 266 norm_lfil= 2.*sqrt(PI*fsaht_fil*pdth_fil*2.*(OFTL-1.));// schema explicite 267 norm_zfil= 2.*sqrt(PI*avt_fil*pdtz_fil*2.*(OFTZ-1.));// schema explicite 268 #ifdef K_FZIMP // schema implicite 267 269 double fact=1.; 268 270 int M=2*(OFTZ-1); … … 271 273 norm_zfil=2.*fact*sqrt(avt_fil*pdtz_fil); 272 274 #endif 273 #elif defined (K_FILLNOZ) /*&& !defined (K_FILZNOL)*/ 274 norm_lfil= 2.*sqrt(PI*fsaht_fil*pdth_fil*2.*OFTL); 275 #endif 275 276 #if defined (K_FILZNOL) 277 norm_lfil=1.; 278 #endif 279 #if defined (K_FILLNOZ) 280 norm_zfil=1.; 281 #endif 282 276 283 norm_fil= norm_zfil*norm_lfil; 277 284 printf("norm_fil = %23.16e\n",norm_fil); 278 285 } 279 286 //_____________________________________________________________________________ 280 void init_nu(){ 281 282 for(int tt=0;tt<24;tt++) 287 void xset_fdt_fco(int argc, char *argv[]){// set fdt fcoef 288 if (argc!=3){ 289 printf("\n inappropriate arguments choice in command xset_fdt_fco\n"); 290 exit(99); 291 } 292 if(!strcmp(argv[1],"th")){ 293 pdth_fil=atof(argv[2]); 294 } 295 else if(!strcmp(argv[1],"tz")){ 296 pdtz_fil=atof(argv[2]); 297 } 298 else if(!strcmp(argv[1],"kh")){ 299 fsaht_fil=atof(argv[2]); 300 } 301 else if(!strcmp(argv[1],"kz")){ 302 avt_fil=atof(argv[2]); 303 } 304 else{ 305 printf("\n inappropriate first argument choice in command xset_fdt_fco\n"); 306 exit(99); 307 } 308 } 309 //_____________________________________________________________________________ 310 void init_nu(int argc, char *argv[]){ 311 if (argc==1){ 312 for(int tt=0;tt<24;tt++) 313 for(int k=0;k<NZ;k++) 314 for(int j=0;j<NY;j++) 315 for(int i=0;i<NX;i++){ 316 YS_nu(0,i,j,k)=YS_nu(0,i,j,k)+0.1*exp(-((i+1.-(3.*NX)/4.)*(i+1.-(3.*NX)/4.)+ 317 (j+1.-(3.*NY)/4.)*(j+1.-(3.*NY)/4.))/4.) 318 *(1.-exp(-double(k+1.-NZ)/NZ))*(1.-exp(-double(tt)/24.)); 319 } 320 } 321 else if (argc==5){ 283 322 for(int k=0;k<NZ;k++) 284 323 for(int j=0;j<NY;j++) 285 324 for(int i=0;i<NX;i++){ 286 YS_nu(0,i,j,k)=YS_nu(0,i,j,k)+0.1*exp(-((i+1.-(3.*NX)/4.)*(i+1.-(3.*NX)/4.)+ 287 (j+1.-(3.*NY)/4.)*(j+1.-(3.*NY)/4.))/4.) 288 *(1.-exp(-double(k+1.-NZ)/NZ))*(1.-exp(-double(tt)/24.)); 289 } 325 YS_nu(0,i,j,k)=0.; 326 } 327 328 float v=atof(argv[1]); 329 int ji=atoi(argv[2])-1; 330 int jj=atoi(argv[3])-1; 331 int jk=atoi(argv[4])-1; 332 YS_nu(0,ji,jj,jk)=v; 333 } 334 else{ 335 printf("\n inappropriate arguments choice in command init_nu\n"); 336 exit(99); 337 } 290 338 } 291 339 //_____________________________________________________________________________ … … 300 348 } 301 349 double a0,a1; 350 double a2,b2,c2; 302 351 for(int j=1;j<NY-1;j++) 303 352 for(int i=1;i<NX-1;i++){ 304 353 a1=avt_fil*pdtz_fil/fse3w(i,j,1); 305 tab_luzimp( i, j, 0 , 0 ) = 0.;// 0-->gam 306 tab_luzimp( i, j, 0 , 1 ) = fse3t(i,j,0)+a1;// 1-->bet 354 b2= 1.-a1/fse3t(i,j,0); 307 355 #ifndef K_NEUM 308 356 a0=avt_fil*pdtz_fil/fse3w(i,j,0); 309 tab_luzimp( i, j, 0 , 1 ) += a0;// 1-->bet 310 #endif 357 b2 -= (a0/fse3t(i,j,0));// 1-->bet 358 #endif 359 tab_luzimp( i, j, 0 , 0 ) = 0.;// 0-->gam 360 tab_luzimp( i, j, 0 , 1 ) = b2;// 1-->bet 311 361 for(int k=1;k<NZ-2;k++){ 312 362 a0=avt_fil*pdtz_fil/fse3w(i,j,k); 313 363 a1=avt_fil*pdtz_fil/fse3w(i,j,k+1); 314 tab_luzimp( i, j, k , 0 ) = -a0/tab_luzimp( i, j, k-1 , 1); 315 tab_luzimp( i, j, k , 1 ) = fse3t(i,j,k)+a1+a0 + a0 * tab_luzimp( i, j, k , 0 ); 364 a2 = a0/fse3t(i,j,k); 365 b2 = 1.-a1/fse3t(i,j,k)-a0/fse3t(i,j,k); 366 c2 = a0/fse3t(i,j,k-1); 367 tab_luzimp( i, j, k , 0 ) = c2/tab_luzimp( i, j, k-1 , 1); 368 tab_luzimp( i, j, k , 1 ) = b2 - a2 * tab_luzimp( i, j, k , 0 ); 316 369 } 317 370 a0=avt_fil*pdtz_fil/fse3w(i,j,NZ-2); 318 tab_luzimp( i, j, NZ-2 , 0 ) = -a0/tab_luzimp( i, j, NZ-3 , 1);319 tab_luzimp( i, j, NZ-2 , 1 ) = fse3t(i,j,NZ-2)+a0 + a0 * tab_luzimp( i, j, NZ-2 , 0);371 a2 = a0/fse3t(i,j,NZ-2); 372 b2 = 1.-a0/fse3t(i,j,NZ-2); 320 373 #ifndef K_NEUM 321 374 a1=avt_fil*pdtz_fil/fse3w(i,j,NZ-1); 322 tab_luzimp( i, j, NZ-2 , 1 ) += a1; 323 #endif 324 } 325 /* for(int k=0;k<NZ;k++){ // init a 0 326 printf("gam(%d)=%f \t",k+1,tab_luzimp( 5, 5, k , 0 )); 327 printf("bet(%d)=%f \n",k+1,tab_luzimp( 5, 5, k , 1 )); 328 }*/ 375 b2 -= a1/fse3t(i,j,NZ-2); 376 #endif 377 c2 = a0/fse3t(i,j,NZ-3); 378 379 tab_luzimp( i, j, NZ-2 , 0 ) = c2/tab_luzimp( i, j, NZ-3 , 1); 380 tab_luzimp( i, j, NZ-2 , 1 ) = b2 - a2 * tab_luzimp( i, j, NZ-2 , 0 ); 381 } 382 for(int k=0;k<NZ;k++){ // init a 0 383 printf("gam(%d)=%f \t",k+1,tab_luzimp( 23, 15, k , 0 )); 384 printf("bet(%d)=%f \n",k+1,tab_luzimp( 23, 15, k , 1 )); 385 } 329 386 } 330 387 #endif
Note: See TracChangeset
for help on using the changeset viewer.