fourier27.c Page 1 of 36 - WordPress.com · pressure gradient printed in file. 12 4. euler's simple...
Transcript of fourier27.c Page 1 of 36 - WordPress.com · pressure gradient printed in file. 12 4. euler's simple...
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 1 of 36
1 /*2 PROGRAM : THERMAL STRESS, PROBABILITY CALCULATION OF COAL PARTICLE3 DEVELOP : DHARMESH4 START : 12-2-15. Thu 12 Feb 2015 09:18:52 IST 5 FINISHED: 6
7
8 FOLLOWING CHANGES HAVE BEEN MADE COMPARED TO PREVIOUS FILE FOURIER26.C9 1. VOLATILIZATION FUNCTION WRITTEN IN BACKWARD DIFFERENCE FORMULA.
10 2. FAILURE PROBABILITY PRINTED IN THERMAL FUNCTION.11 3. PRESSURE GRADIENT PRINTED IN FILE.12 4. EULER'S SIMPLE FORMULA USED TO CALCULATE PRESSURE IN VOLATILIZATION.13 5. N[I] IS FORCED TO ZERO IN VOLATILIZATION PLOT.14 6. ATMOSPHERIC PRESSURE SET TO PINF OBTAINED FROM MACH EQUATION.15 7. else LOOP ADDED IN MODSIMPSTRESS() FUNCTION m LOOP. IT CORRECTED16 HUGE NEGATIVE VALUE AT R=0 FOR LONG TIME SCALE IN SIG_R PLOT.17 18
19 */20 # include <stdio.h>21 # include <math.h>22 # include <stdlib.h>23 # define PI 3.14159265358979323846264324 # include <time.h>25 # include "integration.c"26
27
28
29 double tempfour();30 double temp(int k);31 double stress();32 double PrinStress();33 double conv();34 double FailProb();35 double StressSimpson();36 double vol();37 double sigRR(int k);38 double VolPrinStress();39 double convFV();40 double ModStressSimp();41 double derivative();42 double InitCond();43 double ValAtCent(int j, double ss[], double Tt[]);44 double maximum(double aa, double bb);45 double FractCrit2();46 double Thermal_FailProb();47 double Thermal_FractCrit2();48 double Thermal_derivative();49 double FilePrint();50 double StdNormalDistr(double x[]);51 double Thermal_FilePrint();52 double Thermal_StdNormalDistr(double x[]);53 double fn(double xxx);54
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 2 of 36
55 56 57 int i=0, imax=100, n=0, nmax=300000, j, m=0, mmax, mmin=0, M=6,
wbmod=6, sigU=6, sigO=12, vstar=30, beta_int=40; // size=5058 int icount;59 60 /*variables related to size loop*/61 int size_1[12]={5, 10, 25, 50, 75, 100, 150, 200, 250, 500, 750, 1000},
ii, size=50, jj;62 //double f_time_array[20];63
64 /*variables used in temperature calculation functions*/65 double T[100000], Tn[100000], r[150];66 double alpha=0.000000167, beta=0.000040, E=3000.0, mu=0.37;67 double delt, delr, r0=0.0, rmax, tmax=0.00138, rmin=0.0, tmin=0.0,
mult, mult1, mult2;68 double Tinf=800.0, Tinit=300.00, t[1010000], t0=0.0;69 double hsigma_r, hsigma_l, hc=15240.0, kc=0.254, Tnn,
sig_b=0.0000000567, epsc=0.85, tol, rho=1230.0, cp=1220.0;70 double multT_left, multT_center, multT_right, multT_const;71 double a_r, q_r, a_l, q_l, vol_diff;72 73 /*variables used in radial and tangential stress calculation*/74 double full_int, full_int4, full_int5, full_int51, rrr;75 double full_int2, full_int3, y, z, rr, TT[100000], part_int,
part_int11, part_int1, delr2;76 double sig_R[100000], sig_T[100000];77 double fullint41, fullint51, fullint511, partint, partint11, partint1;78 double sumComp=0.0, sumPart=0.0, rrc, TTc, tempxrrc, rrp, TTp,
tempxrrp, sumComp1, sumPart1;79 80 /*variables used in maximum principal stress calculation*/81 double r_r, vol_r, r_l,vol_l, sig_0[100000], sig_1[100000], sig_2
[100000], sig_3[100000];82 double tau_xy[100000], tau_yz[100000], tau_zx[100000], sx[100000], sy
[100000], sz[100000];83 double J3, J2, J22, th;84 double th_sig_0[100000], th_sig_1[100000], th_sig_2[100000], th_sig_3
[100000];85 double th_tau_xy[100000], th_tau_yz[100000], th_tau_zx[100000], th_sx
[100000], th_sy[100000], th_sz[100000];86 double th_J3, th_J2, th_J22, th_th;87 88 /*failure probability calculations*/89 double pf1[100000], pf10=0.0, pf2[100000], pft[100000], pf[500100]
[110], ps[100000], pf21, eta;90 double th_pf1[100000], th_pf10=0.0, th_pf2[100000], th_pft[100000],
th_pf[500100][110], th_ps[100000], th_pf21, eta;91 92 93 double num, den, gama=1.42;94 95 /*variables used in volatilization*/96 double vn[100000], v[100000], k0=7050.0, Ea=72000000.0, gscnst=8314.5,
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 3 of 36
vmax, N[100000], rhoc=1600.0, Mvol=40.0;97 double p[100000], visc=0.0001, tau=3.0, rpor=0.0000005, epsilon=0.003,
pb, p4ac, patm=101325.0, pp[100000], sig_RR[100000];98 99 /*variable used in derivative calculation functoin*/
100 double dtbydr[100000], d2tbydr2[100000], dsigbydr[100000], DELpfn, DELpfi, fpf=0.999, fracloc, dpbydr[100000];
101 double th_dtbydr[100000], th_d2tbydr2[100000], th_dsigbydr[100000], th_DELpfn, th_DELpfi, th_fracloc;
102 103 /*variables used in fracture criterial calculation*/104 double fracloc, maxR, maxj, f_time, f_temp;105 double th_fracloc, th_maxR, th_maxj, th_f_time, th_f_temp;106 107 /*variable used in condition behind shock wave*/108 double p_num, p_den, pinf;109 110 /*file pointers*/111 FILE *fp, *ft, *op, *od, *top, *tod, *fd, *fsnd, *tfp, *tft, *tfsnd;112
113 /*varialbles used to calculate normal distribution data*/114 double f_time_array[20], f_vol, f_vol_array[20], f_vol_flow,
f_vol_flow_array[20], f_vol_pres, f_vol_pres_array[20], f_vol_sig_1, f_vol_sig_1_array[20], f_temp_array[20];
115 double th_f_time_array[20], th_f_sig_1, th_f_sig_1_array[20], th_f_temp_array[20];
116 117 /*varialbles required to auto name files generated using "snprintf"*/118 char Mfile[]="M";119 char sigufile[]="sigU";120 char sigOfile[]="sigO";121 char mfile[]="m";122 char vmaxfile[]="vmax";123 char BetaFile[]="beta";124 char SizeFile[]="size";125 126 double c1; int i1;127 128 int main()129 {130 clock_t start = clock(); // this will print program running time131
132 //rmax=size/1000000.0;133 delt=(tmax-tmin)/nmax;134 //delr=(rmax-rmin)/imax;135 //printf("#time dist T[i-1] T[i] T[i+1] Tn[i]\n");136 InitCond();137
138 //for(M=3;M<=8;M++) //139 //{140 num=(2.0*gama*pow(M,2.0)-(gama-1.0))*((gama-1.0)*pow(M,2.0)
+2.0);141 den=pow(M*(gama+1.0),2.0);142
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 4 of 36
143 Tinf=Tinit*num/den;144
145 p_num=2.0*gama*pow(M,2.0)-(gama-1.0);146 p_den=(gama-1.0);147
148 // pinf=patm*p_num/p_den;149
150 //for(beta_int=20;beta_int<=60;beta_int+=20)151 //{152 beta=beta_int/1000000.0;153
154 /* for(sigO=11;sigO<=12;sigO++)155 {156 for(sigU=8;sigU<=10;sigU+=1)157 {158 for(wbmod=3;wbmod<=6;wbmod++)159 {160 for(vstar=30;vstar<=60;vstar
+=15)161 { // */162 vmax=vstar/100.0;163 //icount=0; // this
icount should be written in for loop of size164 jj=0;165
166 //for(ii=0;ii<=11;ii++)167 //{168 //size=size_1[ii];169 rmax=size/1000000.0;170 delr=(rmax-rmin)/imax;171
172
173
174 //printf("%lf\n",rmax); /*this works fine up to this point*/
175 icount=0;176 for (n=0;n<=nmax;n++)177 {178 InitCond();179 t[n]=t0+n*delt;180 pinf=patm*p_num/p_den;181 182 /* if(n==0)183 {184 pinf=patm;185 }186 else187 {188 pinf=patm*p_num/p_den;189 } */190
191
192 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@193 //convective BC: thermal+volatilizatoin
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 5 of 36
194 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@195 convFV();196 //conv();197 //stress();198 //StressSimpson();199 ModStressSimp();200 PrinStress ();201 vol();202 VolPrinStress();203 derivative();204 FailProb();205 FilePrint();206
207 if(pft[n]>fpf)208 {209 FractCrit2();210 //f_time_array[jj]=f_time;211
212 }213 //StdNormalDistr(f_time_array);214 215
216 /*217 //######################218 //convective BC: thermal219 //######################220 convFV();221 //conv();222 //stress();223 //StressSimpson();224 ModStressSimp();225 PrinStress ();226 Thermal_derivative();227 Thermal_FailProb();228 Thermal_FilePrint();229
230 if(th_pft[n]>fpf)231 {232 Thermal_FractCrit2();233 }234 */235
236 /*237 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%238 //Constant temp BC: thermal+volatilization239 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%240 tempfour();241 //stress();242 //StressSimpson();243 ModStressSimp();244 vol();245 VolPrinStress();246 derivative();247 FailProb();
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 6 of 36
248 FractCrit();249 */250
251 /*252 //@@@@@@@@@@@@@@@@@@@@@@@@253 //Constant temp BC:thermal254 //@@@@@@@@@@@@@@@@@@@@@@@@255 tempfour();256 //stress();257 //StressSimpson();258 ModStressSimp();259 PrinStress ();260 derivative();261 FailProb();262 FractCrit();263 */264
265
266 }//n loop267
268 // printf("\n");269
270 // } // size loop271 StdNormalDistr(f_time_array);272 StdNormalDistr(f_temp_array);273 StdNormalDistr(f_vol_array);274 StdNormalDistr(f_vol_flow_array);275 //StdNormalDistr(f_vol_pres_array);276 //StdNormalDistr(f_vol_sig_1_array);277
278
279 //Thermal_StdNormalDistr(th_f_time_array);280
281 // }//vstar loop282 // }//wbmod loop283 // }//sigU284 // }//sigO285
286 // }//beta_int loop287 //} //M loop 288
289
290 clock_t stop = clock();291 double elapsed = (double)(stop - start) * 1000.0 / CLOCKS_PER_SEC;292 printf("Time elapsed in ms: %f\n", elapsed);293
294 return 0;295 }296 /*##########################################################297 ############ ###########298 ############ FUNCTION SECTION ###########299 ############ ###########300 ##########################################################*/301 /*@@@@@@@@@@@@@@@@@@@@@@@@@@
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 7 of 36
302 initial condition303 @@@@@@@@@@@@@@@@@@@@@@@@@@@*/304
305 double InitCond()306 {307 if(n==0)308 {309
310 for (i=0;i<=imax;i++)311 {312
313 T[i]=Tinit;314
315 v[i]=0.0;316 vn[i]=0.0;317 N[i]=0.0;318 p[i]=patm;319 pinf=patm;320 pf[n][i]=0.0; pft[n]=0.0;321 th_pf[n][i]=0.0;322 th_pft[n]=0.0;323
324 t[n]=t0+n*delt;325 r[i]=r0+i*delr;326 Tn[i]=Tinit;327 dtbydr[i]=0.0;328 d2tbydr2[i]=0.0;329 dsigbydr[i]=0.0;330 th_dtbydr[i]=0.0;331 th_d2tbydr2[i]=0.0;332 th_dsigbydr[i]=0.0;333
334 sig_R[i]=0.0;335 sig_T[i]=0.0;336 sig_1[i]=0.0;337 sig_2[i]=0.0;338 sig_3[i]=0.0;339
340 th_sig_1[i]=0.0;341 th_sig_2[i]=0.0;342 th_sig_3[i]=0.0;343
344 //printf("%7.6f %8.7f %8.4f %8.4f %8.4f %8.4f %11.8lf %7.5lf\n", t[n], r[i], T[i-1], T[i], T[i+1], Tn[i], v[i], p[i]);
345 }346
347 }348 //printf("\n");349 return 0.0;350 }351 /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@352 @@@@@@ @@@@@353 @@@@@@ FUNCTIONS RELATED TO TEMPERATURE @@@@@354 @@@@@@ @@@@@
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 8 of 36
355 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/356 /****************************************357 fourier conductin: constant surface temp358 ****************************************/359 double tempfour()360 {361 delr=(rmax-rmin)/imax;362 delt=(tmax-tmin)/nmax;363 for(i=0;i<=imax;i++)364 {365 r[i]=r0+i*delr;366
367 if(i==0)368 {369 r[i]=0.1*rmax/imax;370 T[i]=T[i+1] - ((T[i+2]-T[i+1]) * (r[i+1]-r[i])/(r[i+2]-r
[i+1]));371 T[i-1]=T[i+1];372 }373
374 mult=alpha*delt/delr;375 Tn[i]=mult*T[i-1]/delr + (1.0-2.0*mult/delr-2.0*mult/r[i])*T[i]
+ (mult/delr+2.0*mult/r[i])*T[i+1];376
377 if(i==imax)378 {379 T[i]=Tinf; 380 T[i+1]=Tinf;381 Tn[i]=Tinf; 382 }383 if(n==nmax)384 {385 //printf("%3.1lf %7.6f %8.7f %8.2lf %8.2lf %8.2lf %8.2lf\n", M,
t[n], r[i], T[i-1], T[i], T[i+1], Tn[i]);386 }387
388 T[i]=Tn[i];389 }390 //printf("\n");391 return (Tn[i]);392 }393 /*#################################################394 fourier HT:convective boundary heat transfer395 ----------------------------------------------396 this is working fine but takes 12 hours397 ###################################################*/398 399 double conv()400 {401 delr=(rmax-rmin)/imax;402 delt=(tmax-tmin)/nmax;403 for(i=0;i<=imax;i++)404 {405 r[i]=r0+i*delr;
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 9 of 36
406
407 if(i==0)408 {409 r[i]=0.1*r[i+1];410 T[i]=T[i+1] - ((T[i+2]-T[i+1]) * (r[i+1]-r[i])/(r[i+2]-r
[i+1]));411 T[i-1]=T[i+1];412 }413
414 mult=alpha*delt/delr;415 Tn[i]=mult*T[i-1]/delr + (1.0-2.0*mult/delr-2.0*mult/r[i])*T[i]
+ (mult/delr+2.0*mult/r[i])*T[i+1];416
417 if(i==imax)418 {419 T[i+1]=Tinf;420 for(Tnn=Tinit;Tnn<=Tinf;Tnn+=0.0001)421 {422
423 hsigma_l=kc*T[i-1]/delr+sig_b*epsc*pow(Tinf,4.0)+hc*Tinf;
424 hsigma_r=(hc+kc/delr)*Tnn+sig_b*epsc*pow(Tnn,4.0);
425
426 tol=hsigma_l-hsigma_r;427 //printf("%7.6f %8.7f %8.2lf %8.2lf %lf %lf %lf
\n", t[n], r[i], T[i-1], Tnn, tol, hsigma_l, hsigma_r);428 if (fabs(tol)<=5.0)429 break;430 Tn[i]=Tnn;431 }432
433 }434 //printf("%7.6f %8.7f %8.2lf %8.2lf %8.2lf %8.2lf\n", t[n], r[i], T
[i-1], T[i], T[i+1], Tn[i]);435 T[i]=Tn[i];436 }437 //printf("\n");438 return (Tn[i]);439 }440 /*#################################################441 fourier HT:convective boundary heat transfer442 --------------------------------------------443 This is finite volume method code and it is 444 matching with analytical solution available445 in the file BiFirst827.txt 446 ###################################################*/447
448 double convFV()449 {450 delr=(rmax-rmin)/imax;451 delt=(tmax-tmin)/nmax;452
453 for(i=0;i<=imax;i++)
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 10 of 36
454 {455 r[i]=r0+i*delr;456
457 if(i==0)458 {459 r[i]=0.1*rmax/imax;460 ValAtCent(i,T,r);461 T[i-1]=T[i+1];462 }463
464 mult=alpha*delt/delr;465 Tn[i]=mult*T[i-1]/delr + (1.0-2.0*mult/delr-2.0*mult/r[i])*T[i]
+ (mult/delr+2.0*mult/r[i])*T[i+1];466
467 if(i==imax)468 {469 //r_l=(r[i]+r[i-1])/2.0;470 r_l=r[i-1];471 a_l=4.0*PI*r_l*r_l;472 vol_l=4.0*PI*pow(r_l,3.0)/3.0;473 474 475 r_r=r[i];476 a_r=4.0*PI*r_r*r_r;477 vol_r=4.0*PI*pow(r_r,3.0)/3.0;478 479 480 vol_diff=vol_r-vol_l;481 482 multT_left=a_l * delt*alpha/(vol_diff*delr);483 multT_center=a_l*delt*alpha/(vol_diff*delr) +
delt*hc*a_r/(rho*vol_diff*cp) + delt*sig_b*epsc*a_r*pow(T[i],3.0)/(rho*vol_diff*cp);
484 multT_const=hc*delt*a_r*Tinf/(rho*vol_diff*cp) + delt*sig_b*epsc*a_r*pow(Tinf,4.0)/ (rho*vol_diff*cp);
485 486 Tn[i]=T[i] + multT_left*T[i-1] - multT_center*T[i] +
multT_const;487
488 }489
490
491 if(n==nmax)492 {493 //printf("%3.1lf %7.2lf %7.6f %8.7f %8.2lf %8.2lf %8.2lf %8.2lf %lf %lf
%lf\n", M, Tinf, t[n], r[i], T[i-1], T[i], T[i+1], Tn[i], multT_left, multT_center, multT_const);
494 //printf("%3.1lf %7.2lf %7.6f %8.7f %8.2lf %8.2lf %8.2lf %8.2lf\n", M, Tinf, t[n], r[i], T[i-1], T[i], T[i+1], Tn[i]);
495 }496 T[i]=Tn[i];497 }498 //printf("\n");499 //return (Tn[i]);
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 11 of 36
500 return (0.0);501 }502 /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@503 @@@@@@ @@@@@504 @@@@@@ FUNCTIONS RELATED TO STRESS @@@@@505 @@@@@@ @@@@@506 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/507 /*%%%%%%%%%%%%%%%%%%%%%%%508 stress using trapazoidal509 %%%%%%%%%%%%%%%%%%%%%%%%*/510 double stress()511 {512 delr=(rmax-rmin)/imax;513 full_int4=(temp(0)+temp(imax))/2.0;514
515 for (i=1;i<imax;i++)516 {517 full_int4=full_int4+temp(i);518 //if(n==nmax){printf("%3d %g\n",i,full_int4);}519 }520 full_int5=delr*full_int4;521 full_int51=full_int5/pow(rmax,3.0);522
523 for (i=0;i<=imax;i++)524 {525 mmin=0;526 mmax=i;527
528 delr2=(r[mmax]-rmin)/imax;529 part_int=(temp(0)+temp(mmax))/2.0;530
531 for (m=1;m<mmax;m++)532 {533 part_int=part_int+temp(m);534 //if(n==nmax){printf("%3d %3d %g %g\n", i, m, r[mmax],
part_int);}535 }536
537 part_int1=delr*part_int;538 part_int11=part_int1/pow(r[mmax],3.0);539 mult2=beta*E/(1-mu);540 sig_R[i]=2.0*mult2*(full_int51-part_int11);541
542 sig_T[i]=mult2*(2.0*full_int51 + part_int11 - (T[i]-Tinit));543
544 if(n==nmax)545 {546 //printf("%3.1lf %7.2lf %7.6f %8.7f %8.2lf %8.2lf %8.2lf %8.2lf
%8.2lf %8.2lf %lf %lf\n",547 // M, Tinf, t[n], r[i], T[i-1], T[i], T[i+1], Tn[i], sig_R[i],
sig_T[i], full_int51, part_int11);548 }549 }550 return 0.0;
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 12 of 36
551 }552 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%553 stress using simpson 1/3 rule554 %%%%%%%%%%%%%%%%%%%%%%%%%%%%*/555 double StressSimpson()556 {557 delr=(rmax-rmin)/imax;558 fullint41=(temp(0)+temp(imax));559 for (i=1;i<imax;i++)560 {561 if((i%2)==0)562 {563 fullint41=fullint41+2.0*temp(i);564 }565 else566 {567 fullint41=fullint41+4.0*temp(i);568 }569 }570 fullint51=delr*fullint41/(3.0*pow(rmax,3.0));571
572
573 for (i=0;i<=imax;i++)574 {575 mmin=0;576 mmax=i;577
578 delr2=(r[mmax]-rmin)/imax;579 partint1=(temp(0)+temp(mmax));580
581 for (m=1;m<mmax;m++)582 //for (m=0;m<mmax;m++) do not use this583 {584 if((m%2)==0)585 {586 partint1=partint1+2.0*temp(m);587 }588 else589 {590 partint1=partint1+4.0*temp(m);591 }592 }593 partint11=delr*partint1/(3.0*pow(r[mmax],3.0));594
595 mult2=beta*E/(1-mu);596 sig_R[i]=2.0*mult2*(fullint51-partint11);597
598 sig_T[i]=mult2*(2.0*fullint51+partint11-(T[i]-Tinit));599 if(n==nmax)600 {601 //printf("%7.6f %8.7f %8.2lf %8.2lf %8.2lf\n", t[n], r[i], Tn
[i], sig_R[i], sig_T[i]);602 //printf("%7.6f %8.7f %8.2lf %lf %lf %8.2lf %8.2lf\n", t[n], r
[i], Tn[i], fullint51, partint11, sig_R[i], sig_T[i]);
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 13 of 36
603 }604 }605 //printf("\n");606 return 0.0;607 }608 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%609 stress using simpson 1/3 rule610 -----------------------------611 modified (1 4 1)/6 method612 %%%%%%%%%%%%%%%%%%%%%%%%%%%%*/613 double ModStressSimp()614 { 615
616 delr=(rmax-rmin)/imax;617 sumComp=0.0;618
619 /*0 to rmax integration begins here*/620 for(i=0;i<=imax;i++)621 {622 if(i==0) // this has to be invoked when for
(i=0;i<=imax;i++) loop used623 {624 sumComp=0.0;625 }626
627 rrc=0.5*(r[i]+r[i-1]);628 TTc=0.5*(T[i]+T[i-1]);629 tempxrrc=(TTc-Tinit)*rrc*rrc;630
631 sumComp=sumComp+(temp(i-1) + 4.0*tempxrrc + temp(i));632
633 //if(n==nmax){printf("%3d %g %g %g %g\n", i, temp(i), T[i], r[i], sumComp);}
634 }635
636 sumComp1=delr*sumComp/(6.0*pow(rmax,3.0));637
638 /*0 to r integration begins here*/639 for(i=0;i<=imax;i++)640 {641 if(i==0)642 {643 sumPart=0.0;644 }645
646 mmin=0;647 mmax=i;648
649 sumPart=0.0;650
651
652 for(m=0;m<=mmax;m++)653 {654 if(m==0)
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 14 of 36
655 {656 sumPart=0.0;657 }658 else{659 rrp=0.5*(r[m]+r[m-1]);660 TTp=0.5*(T[m]+T[m-1]);661 tempxrrp=(TTp-Tinit)*rrp*rrp;662
663 sumPart=sumPart+(temp(m-1)+4.0*tempxrrp+temp(m));
664
665 //if(n==nmax){printf("%3d %3d %g %g %g %g %g\n", i, m, temp(m), T[m], r[m], r[mmax], sumPart);}
666 }667 }668
669 sumPart1=delr*sumPart/(6.0*pow(r[mmax],3.0));670
671 mult2=beta*E/(1-mu);672 sig_R[i]=2.0*mult2*(sumComp1-sumPart1);673
674 sig_T[i]=mult2*(2.0*sumComp1+sumPart1-(T[i]-Tinit));675
676 /*following two if conditions are used to calculate values at center(i==0) and i+1
677 First i==1 value need to be calculated because its value will be required to calculate
678 quantity's value at i==0. This method is based on calculation of quantity's value
679 based on gradient */680 if(i==1)681 {682 ValAtCent(i,sig_R,r);683 ValAtCent(i,sig_T,r);684 }685
686 if(i==0)687 {688 ValAtCent(i,sig_R,r);689 ValAtCent(i,sig_T,r);690 }691
692 /*forcing sig_R[imax]=0.0 Basically it will overwrite the calculated value to 0.0*/
693 if(i==imax)694 {695 sig_R[i]=0.0;696 }697
698
699 if(n==nmax)700 {701 //printf("%3.1lf %7.2lf %7.6f %8.7f %8.2lf %lf %lf %
8.2lf %8.2lf\n", M, Tinf, t[n], r[i], Tn[i], sumComp1, sumPart1, sig_R
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 15 of 36
[i], sig_T[i]);702 }703 }704 705 return 0.0;706 }707 /***************************************708 temperature functoin used in integration709 ***************************************/710 double temp(int k)711 {712 if(k==0)713 {714 r[k]=0.1*rmax/imax;715 }716 return ((T[k]-Tinit)*r[k]*r[k]);717 }718
719 /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@720 @@@@@@ @@@@@721 @@@@@@ FUNCTIONS RELATED TO THERMAL ANALYS @@@@@722 @@@@@@ @@@@@723 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/724 /*@@@@@@@@@@@@@@@@@@@@@725 principal stress726 ---------------------727 only thermal stress728 @@@@@@@@@@@@@@@@@@@@@@*/729 double PrinStress()730 {731 for(i=0;i<=imax;i++)732 {733 r[i]=r0+i*delr;734 if(i==0)735 {736 r[i-1]=r[i+1];737 r[i]=0.1*rmax/imax;738 r_l=r[i];739 vol_l=4.0*PI*pow(r_l,3.0)/3.0;740 r_r=(r[i+1]+r[i])/2.0;741 vol_r=4.0*PI*pow(r_r,3.0)/3.0;742 th_tau_xy[i]=(vol_l*sig_T[i-1]+vol_r*sig_T[i])/(vol_l
+vol_r);743 }744
745 th_sig_0[i] = (sig_R[i]+sig_T[i]+sig_T[i])/3.0;746 th_sx[i] = sig_R[i] - th_sig_0[i];747 th_sy[i] = sig_T[i] - th_sig_0[i];748 th_sz[i] = sig_T[i] - th_sig_0[i];749
750 r_l=(r[i-1]+r[i])/2.0;751 vol_l=4.0*PI*pow(r_l,3.0)/3.0;752 r_r=(r[i]+r[i+1])/2.0;
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 16 of 36
753 vol_r=4.0*PI*pow(r_r,3.0)/3.0;754
755 th_tau_xy[i]=(vol_l*sig_T[i-1]+vol_r*sig_T[i])/(vol_l+vol_r);756
757
758 if (i==imax)759 {760 r[i]=rmax;761 r[i+1]=r[i];762 r_r=(r[i+1]+r[i])/2.0;763 //r_r=r[i];764 vol_r=4.0*PI*pow(r_r,3.0)/3.0;765 r_l=r[i-1];766 vol_l=4.0*PI*pow(r_l,3.0)/3.0;767 th_tau_xy[i]=(vol_l*sig_T[i-1]+vol_r*sig_T[i])/(vol_l
+vol_r);768 }769
770 th_tau_yz[i]=sig_T[i];771 th_tau_zx[i]=sig_T[i];772
773 th_J3=-th_sx[i]*th_sy[i]*th_sz[i] + th_sx[i]*pow(th_tau_yz[i],2.0) + th_sy[i]*pow(th_tau_zx[i],2.0) + th_sz[i]*pow(th_tau_xy[i],2.0);
774 th_J2=th_sx[i]*th_sy[i] + th_sy[i]*th_sz[i] + th_sz[i]*th_sx[i] - pow(th_tau_xy[i],2.0) - pow(th_tau_yz[i],2.0) - pow(th_tau_zx[i],2.0);
775
776 th_J22=fabs(th_J2/3.0);777
778 th_th=(1.0/3.0)*acos(-th_J3/(2.0*pow(th_J22,1.5)));779
780 th_sig_1[i]=th_sig_0[i] + 2.0*sqrt(th_J22)*cos(th_th);781 th_sig_2[i]=th_sig_0[i] - 2.0*sqrt(th_J22)*cos(th_th+PI/3.0);782 th_sig_3[i]=th_sig_0[i] - 2.0*sqrt(th_J22)*cos(th_th-PI/3.0);783
784 if(i==0)785 {786 ValAtCent(i,th_sig_1,r);787 ValAtCent(i,th_sig_2,r);788 ValAtCent(i,th_sig_3,r);789 }790 791 if(n==0)792 {793 th_sig_1[i]=0.0;794 th_sig_2[i]=0.0;795 th_sig_3[i]=0.0;796
797 }798
799 //printf("%7.6f %8.7f %lf %lf %lf %lf\n",t[n], r[i], th_J2, th_J22, th_J3, th_th);
800
801 if((n%300)==0)
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 17 of 36
802 //if(n==nmax)803 {804 //printf("%10.4le %4.2lf %11.4le %11.4le %11.4le %
8.2lf, %8.2lf %8.2lf %8.2lf %8.2lf %8.2lf\n",805 // t[n], (r[i]/rmax), th_J3, th_J22, th_th, Tn[i], sig_R
[i], sig_T[i], th_sig_1[i], th_sig_2[i], th_sig_3[i]);806
807 }808
809 }810 //printf("\n");811 return 0.0;812 }813 /**************************814 thermal failure probability815
**************************/816 double Thermal_FailProb()817 {818
819 /*820 char Mfile[]="M";821 char sigufile[]="sigU";822 char sigOfile[]="sigO";823 char mfile[]="m";824 char vmaxfile[]="vmax";825 char BetaFile[]="beta";826 char SizeFile[]="size";827 */828
829 char ThermalOverallProb[BUFSIZ];830
831
832 /*writes overall failure probability datas */833 snprintf(ThermalOverallProb, sizeof(ThermalOverallProb), "th_%s_%d_%s_
%d_%s_%d_%s_%d_%s_%d_%s_%d_OverallProb.txt", SizeFile,size, Mfile,M, BetaFile,beta_int, sigufile,sigU, sigOfile,sigO, mfile,wbmod);
834 top=fopen(ThermalOverallProb,"a");835
836
837 th_pf10=0.0;838 for(i=0;i<=imax;i++)839 {840 eta=4.0*PI*pow(rmax,3.0)/3.0;841 if(i==0)842 {843 r[i-1]=r[i+1];844 r[i]=0.1*rmax/imax;845 r_r=(r[i+1]+r[i])/2.0;846 vol_r=4.0*PI*pow(r_r,3.0)/3.0;847 th_pf1[i]=(th_sig_1[i]-sigU)/sigO;848 th_pf2[i]=vol_r*pow(th_pf1[i],wbmod);849 th_ps[i]=exp(-th_pf2[i]/eta);850 th_pf[n][i]=1.0-th_ps[i];
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 18 of 36
851 }852
853 vol_r=4.0*PI*pow(r[i],3.0)/3.0;854 vol_l=4.0*PI*pow(r[i-1],3.0)/3.0;855
856 if(th_sig_1[i]>(1.0*sigU))857 {858 th_pf1[i]=(th_sig_1[i]-sigU)/sigO;859 }860 else861 {862 th_pf1[i]=0.0;863 }864 th_pf2[i]=(vol_r-vol_l)*pow(th_pf1[i],wbmod);865 th_ps[i]=exp(-th_pf2[i]/eta);866 th_pf[n][i]=1.0-th_ps[i];867
868 if(i==imax)869 {870 vol_r=4.0*PI*pow(r[i],3.0)/3.0;871 vol_l=4.0*PI*pow(r[i-1],3.0)/3.0;872 th_pf1[i]=(th_sig_1[i]-sigU)/sigO;873 th_pf2[i]=(vol_r-vol_l)*pow(th_pf1[i],wbmod);874 th_ps[i]=exp(-th_pf2[i]/eta);875 th_pf[n][i]=1.0-th_ps[i];876 }877
878 if(i==0)879 {880 th_pf1[i]=0.0;881 th_pf2[i]=0.0;882 th_ps[i]=0.0;883 th_pf[n][i]=0.0;884 //th_pf[n][i]=th_pf[n][i+1]+(r[i]-r[i+1])*(th_pf[n][i
+1]-th_pf[n][i+2]) / (r[i+1]-r[i+2]);885 }886
887 /*if(i==imax)888 {889 th_pf[n][i]=0.0;890 }*/891
892 /*if(th_pf[n][i]>=0.999 && th_pf[n][i]<=0.9999)893 {894 //printf ("%3.1lf %7.2lf %7.6f %8.7f %8.2lf %6.4lf\n",
M, Tinf, t[n], r[i], Tn[i], pf[n][i]);895 break;896 }*/897
898 if(n==0)899 {900 th_pf[n][i]=0.0;901 }902 //if(n==nmax)
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 19 of 36
903 if((n%300==0))904 //if((n%100==0) && i==100)905 {906 907 //printf("%d %7.2lf %10.4le %8.2le %4.2lf %8.2lf %3.1lf
%10.4le %10.4le %11.1lf %6.2lf %6.2lf %7.2lf %d %d %d %6.2lf %6.2lf %7.2lf %11.4le %11.4le %11.4le %7.4lf\n",
908 //M,Tinf,t[n],rmax,(r[i]/rmax),Tn[i], vmax,vn[i],N[i],p[i],sig_R[i], sigRR(i),th_sig_T[i],wbmod,sigU,sigO, th_sig_1[i],th_sig_2[i], th_sig_3[i],th_dtbydr[i], th_d2tbydr2[i],th_dsigbydr[i],th_pf[n][i]);
909
910
911 }912
913 th_pf2[i]=th_pf10+th_pf2[i];914 th_pf10=th_pf2[i];915 //th_pf21=th_pf2[i];916
917 }918
919
920 //th_pft[n]=1-exp(-th_pf21/eta);921 th_pft[n]=1-exp(-th_pf10/eta);922
923 /*924 if((th_pft[n]>=0.999 && th_pft[n]<=0.9999) && th_pft[n]>=0.9995)925 {926 //printf ("%3.1lf %7.2lf %7.6f %8.7f %8.2lf %6.4lf %6.4lf\n",
M, Tinf, t[n], r[i], T[i-1], th_pf21, th_pft[n]);927 }928 */929
930 //if(n==nmax)931 if((n%3000)==0)932 {933 fprintf(top,"%d %7.2lf %10.4le %8.2le %4.2lf %8.2lf %4.2lf %d %
2d %2d %7.4lf %7.4lf\n", M,Tinf,t[n],rmax,(r[i]/rmax), T[i-1], vmax,wbmod,sigU,sigO, th_pf[n][i],th_pft[n]);
934
935 //printf("%d %7.2lf %10.4le %10.4le %8.2lf %8.2lf %8.2lf %8.2lf %6.4lf %9.2le %9.2le\n", M,Tinf,t[n],r[i],T[i-1], T[i],T[i+1],Tn[i], th_pft[n],th_pf10,eta);
936 }937 //printf("\n");938 fclose(top);939 return 0.0;940 }941
942 /*#############################943 thermal: various derivatives944 #############################*/945 double Thermal_derivative()946 {
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 20 of 36
947 for(i=0;i<=imax;i++)948 {949 /*th_dtbydr[i]=(T[i]-T[i-1])/(r[i]-r[i-1]);950 th_d2tbydr2[i]=(th_dtbydr[i]-th_dtbydr[i-1])/(r[i]-r[i-1]);951 th_dsigbydr[i]=(th_sig_1[i]-th_sig_1[i-1])/(r[i]-r[i-1]);*/952
953 th_dtbydr[i]=(T[i]-T[i-1])/(r[i]-r[i-1]);954 th_d2tbydr2[i]=(T[i-1]-2.0*T[i] + T[i+1]) / pow((r[i]-r
[i-1]),2.0);955 th_dsigbydr[i]=(th_sig_1[i]-th_sig_1[i-1]) / (r[i]-r[i-1]);956
957 if(i==0)958 {959 ValAtCent(i,th_dtbydr,r);960 ValAtCent(i,th_d2tbydr2,r);961 ValAtCent(i,th_dsigbydr,r);962 }963
964 if(n==0)965 {966 th_dtbydr[i]=0.0;967 th_d2tbydr2[i]=0.0;968 th_dsigbydr[i]=0.0;969 }970 if(n==nmax)971 {972 //printf("%3.1lf %7.2lf %g %g %4.2lf %8.2lf %11.2lf %
16.2lf %12.2lf\n", M,Tinf,t[n],rmax,(r[i]/rmax), Tn[i],th_dtbydr[i],th_d2tbydr2[i],th_dsigbydr[i]);
973 }974 }975 return 0.0;976 }977 /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@978 thermal fracture criteria979 @@@@@@@@@@@@@@@@@@@@@@@@@@@@*/980 double Thermal_FractCrit2()981 {982 tod=fopen("Thermal_Overall_data.txt","a");983
984 th_maxj=-10.0;985
986 for(i=1;i<=imax;i++)987 {988 //th_maxj=-10.0;989 th_DELpfn = th_pf[n][i] - th_pf[n-1][i];990
991 if((th_DELpfn>th_maxj) && th_pf[n][i]>0.99*fpf)992 {993 th_maxj=maximum(th_maxj, th_DELpfn);994 th_maxR=r[i]/rmax;995 th_f_time=t[n];996 th_f_temp=Tn[i];997 th_f_sig_1 = th_sig_1[i];
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 21 of 36
998 //fracloc=th_maxR;999 //printf("%3.1lf\n",th_maxR);
1000
1001 //if((n%100)==0)1002 //{1003 //printf("%d %7.2lf %10.4le %8.2le %4.2lf %
8.2lf %d %d %d %3.1lf %4.2lf %10.4le %6.4lf %6.4lf\n", M,Tinf,th_f_time,rmax,(r[i]/rmax), Tn[i],wbmod,sigU,sigO, vmax,maxR,th_maxj,th_pf[n][i],th_pft[n]);
1004 break;1005 //}1006
1007 }1008 }1009
1010 if(icount==0 && th_maxj>0.0 && th_pft[n]>fpf)1011 //if(pft[n]>fpf)1012 {1013 th_fracloc=th_maxR;1014
1015 //printf("%d %7.2lf %10.8lf %10.8lf %4.2lf %8.2lf %d %d %d %3.1lf %4.2lf %g %6.4lf %6.4lf\n", M,Tinf,t[n],rmax,(r[i]/rmax), Tn[i],wbmod,sigU,sigO, vmax,th_fracloc,th_maxj,th_pf[n][i],th_pft[n]);
1016
1017 //printf("FRACTURED: %d %7.2lf %10.4le %8.2le %8.2lf %d %2d %2d %3.1lf %4.2lf %10.4le\n", M, Tinf, th_f_time, rmax, th_f_temp, wbmod, sigU, sigO, vmax, th_fracloc, th_maxj);
1018 fprintf(tod,"FRACTURED: %d %7.2lf %12.6le %8.2le %8.2lf%2d %d %2d %2d %4.2lf %6.2lf %7.2lf %6.2lf %7.2lf %7.2lf %7.4lf %7.4lf\n", M,Tinf,th_f_time,rmax,th_f_temp, beta_int,wbmod,sigU,sigO,th_fracloc, sig_R[i],sig_T[i],th_sig_1[i],th_sig_2[i], th_sig_3[i],th_pf[n][i], th_pft[n]);
1019
1020 th_f_time_array[jj]=th_f_time;1021 th_f_temp_array[jj]= th_f_temp;1022 th_f_sig_1_array[jj]=th_f_sig_1;1023
1024 printf("%2d %12.6le %7.2lf %6.2lf\n", jj, th_f_time_array[jj], th_f_temp_array[jj], th_f_sig_1_array[jj]);
1025 jj++;1026 icount=1;1027 //exit (0);1028 }1029
1030 /*if(th_pft[n]>fpf)1031 {1032 printf("%d %7.2lf %10.8lf %10.8lf %8.2lf %d %d %d %
3.1lf %4.2lf %g\n", M, Tinf, th_f_time, rmax, th_f_temp, wbmod, sigU, sigO, vmax, th_fracloc, th_maxj);
1033 //exit (0);1034 }*/1035
1036 fclose(tod);1037 return 0.0;
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 22 of 36
1038 }1039 /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1040 th sep function to print files1041 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/1042 double Thermal_FilePrint()1043 {1044
1045 /*1046 char Mfile[]="M";1047 char sigufile[]="sigU";1048 char sigOfile[]="sigO";1049 char mfile[]="m";1050 char vmaxfile[]="vmax";1051 char BetaFile[]="beta";1052 char SizeFile[]="size";1053 */1054
1055 char th_file_name[BUFSIZ];1056 char th_FileName[BUFSIZ];1057
1058 /*write temp volatilization matter flow sigR and sigT on file*/
1059 snprintf(th_file_name, sizeof(th_file_name), "th_%s_%d_%s_%d_%s_%d_%s_%d_%s_%d_%s_%d.txt", SizeFile,size, Mfile,M, BetaFile,beta_int, sigufile,sigU, sigOfile,sigO, mfile,wbmod);
1060 tfp=fopen(th_file_name,"a");1061
1062 for(i=0;i<=imax;i++)1063 {1064 //if(n==nmax)1065 if((n%3000==0))1066 //if((n%100==0) && i==100)1067 {1068 fprintf(tfp,"%d %7.2lf %10.4le %8.2le %4.2lf %
8.2lf %6.2lf %7.2lf\n", M,Tinf,t[n],rmax,(r[i]/rmax),Tn[i],sig_R[i], sig_T[i]);
1069
1070 }1071 }1072 fclose(tfp);1073
1074 /*write probability stats on file*/1075 snprintf(th_FileName, sizeof(th_FileName), "th_%s_%d_%s_%d_%s_%
d_%s_%d_%s_%d_%s_%d_prob.txt", SizeFile,size, Mfile,M, BetaFile,beta_int, sigufile,sigU, sigOfile,sigO, mfile,wbmod);
1076 tft=fopen(th_FileName,"a");1077
1078 for(i=0;i<=imax;i++)1079 {1080 //if(n==nmax)1081 if((n%3000==0))1082 //if((n%100==0) && i==100)1083 {1084 fprintf(tft,"%d %7.2lf %10.4le %8.2le %4.2lf %
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 23 of 36
8.2lf %4.2lf %d %2d %2d %6.2lf %7.2lf %7.2lf %11.4le %11.4le %11.4le %7.4lf %7.4lf\n", M,Tinf,t[n],rmax,(r[i]/rmax),T[i], vmax,wbmod,sigU,sigO,th_sig_1[i],th_sig_2[i], th_sig_3[i],th_dtbydr[i],th_d2tbydr2[i],th_dsigbydr[i],th_pf[n][i], th_pft[n]);
1085 1086 }1087 }1088 //fprintf(ft,"\n");1089 fclose(tft);1090 return 0.0;1091 }1092 /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1093 function to calculate normal distribution data1094 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/1095 double Thermal_StdNormalDistr(double x[])1096 {1097 1098 /*1099 char Mfile[]="M";1100 char sigufile[]="sigU";1101 char sigOfile[]="sigO";1102 char mfile[]="m";1103 char vmaxfile[]="vmax";1104 char BetaFile[]="beta";1105 */1106 1107 char th_std_norm_data[BUFSIZ];1108 1109 snprintf(th_std_norm_data, sizeof(th_std_norm_data),
"th_Normal_Dist_Data_%s_%d_%s_%d_%s_%d_%s_%d_%s_%d.txt", Mfile,M, BetaFile,beta_int, sigufile,sigU, sigOfile,sigO, mfile,wbmod);
1110 1111 tfsnd=fopen(th_std_norm_data,"a");1112 1113 int i;1114 1115 double diff_x[12], z[12], sumx=0.0, avgx;1116 double sum_sqr_diff_x, sqr_diff_x0=0.0, sqr_diff_x[12], variance,
phi_z[12], phi_x[12];1117
1118 for(i=0;i<=11;i++)1119 {1120 if(i<=2){1121 sumx=sumx+0.075*x[i]/3.0;1122 sumx=sumx;1123 }1124 else if(i>=3 && i<=4){1125 sumx=sumx+0.186*x[i]/2.0;1126 sumx=sumx;1127 }1128 else if(i>=5 && i<=6){1129 sumx=sumx+0.314*x[i]/2.0;1130 sumx=sumx;1131 }
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 24 of 36
1132 else if(i>=7 && i<=9){1133 sumx=sumx+0.251*x[i]/3.0;1134 sumx=sumx;1135 }1136 else if (i>=10){1137 sumx=sumx+0.173*x[i]/2.0;1138 sumx=sumx;1139 }1140 1141 1142 //sumx=sumx;1143 }1144
1145 avgx=sumx;1146
1147 //printf("%lf\n",avgx);1148
1149 for(i=0;i<=11;i++)1150 {1151 diff_x[i]=x[i]-avgx;1152 sqr_diff_x[i]=pow(diff_x[i],2.0);1153
1154 sum_sqr_diff_x=sqr_diff_x0+sqr_diff_x[i];1155
1156 //printf("%d %lf %lf %lf\n",i, diff_x[i], sqr_diff_x[i], sum_sqr_diff_x);
1157
1158 sqr_diff_x0=sum_sqr_diff_x;1159 }1160
1161 for(i=0;i<=11;i++)1162 {1163 1164 variance=sqrt(sum_sqr_diff_x/(12-1));1165 z[i]=diff_x[i]/variance;1166 //printf("%d %lf %lf\n", i, variance, z[i]);1167 1168 /* CDF can also be written in the form of error function.1169 Here for variable x it is in form of error function and 1170 for variable z (SNRV) it is calculated from integration*/1171 phi_x[i]=0.5*(1.0+erf( (x[i]-avgx) / (variance*sqrt(2.0)) ));1172 phi_z[i]=trapezium(-4.0, z[i], 100, fn)/sqrt(2.0*PI);1173 1174 fprintf(tfsnd,"%4d %11.4le %11.4le %11.4le %11.4le %6.4lf %8.4lf %
6.4lf %6.4lf %7.4lf\n", 1175 size_1[i], x[i], avgx, variance, exp(-pow((x[i]-avgx)/
variance,2.0)/2.0)/(variance*sqrt(2*PI)), phi_x[i], z[i], (exp(-pow(z[i],2.0)/2.0)/sqrt(2.0*PI)), phi_z[i], (variance/avgx));
1176 1177 }1178 1179 fclose(tfsnd);1180 return 0.0;1181
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 25 of 36
1182 } 1183
1184 /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1185 @@@@@@ @@@@@1186 @@@@@@ FUNCTIONS RELATED TO VOLATILE STRESS @@@@@1187 @@@@@@ @@@@@1188 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/1189
1190 /*###########1191 volatile1192 ###########*/1193 double vol()1194 { double c2;1195 c1=(rpor*rpor*epsilon)/(8.0*visc*tau*gscnst); 1196 c2=rhoc/Mvol;1197 for(i=0;i<=imax;i++)1198 {1199 if(i==0){1200 N[i]=0.0; 1201 }1202 vn[i] = v[i] + delt*k0*exp(-Ea/(gscnst*T[i]))*(vmax-v[i]);1203
1204 N[i+1]=(N[i]*pow(r[i],2.0) + 0.5*c2*((vn[i]-v[i]+vn[i+1]-v[i+1])/delt) * pow((r[i]+0.5*delr),2.0)*delr)/pow(r[i+1],2.0);
1205
1206 //N[i] = (N[i-1]*pow(r[i-1],2.0)/delr + pow(r[i],2.0)*rhoc*(vn[i]-v[i])/(Mvol*delt)) * delr/pow(r[i],2.0);
1207
1208 if(i==0)1209 {1210 r[i]=0.1*rmax/imax;1211 //ValAtCent(i,p,r);1212 //ValAtCent(i,N,r);1213 ValAtCent(i,vn,r);1214 N[i]=0.0; 1215 }1216
1217 if(i==imax)1218 {1219 p[i]=pinf;1220 }1221
1222 if(n==nmax)1223 {1224 //printf("%3.1lf %7.2lf %7.6f %8.7f %8.2lf %12.8lf %
16.8lf %12.1lf\n", M, Tinf, t[n], r[i], Tn[i], vn[i], N[i], p[i]);1225 }1226 v[i]=vn[i];1227 }1228 for(i1=0;i1<=imax;i1++){1229 i=imax-i1;1230
1231 if(i==0){1232 r[i]=0.1*rmax/imax;
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 26 of 36
1233 p[i-1]=p[i+1];1234 }1235 p[i-1]=p[i]-(r[i-1]-r[i])*N[i]*T[i]/(p[i]*c1);1236
1237 if(i==imax){1238 p[i]=pinf;1239 }1240 }1241 return 0.0;1242 }1243 /*#########################1244 sig_R volatile stress1245 #########################*/1246 double sigRR(int k)1247 {1248 pp[k] = (p[k]-pinf)/1000000.0;1249 sig_RR[k] = sig_R[k] + pp[k];1250 return (sig_RR[k]);1251 }1252 /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1253 volatilization principal stress1254 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/1255 double VolPrinStress()1256 {1257 for(i=0;i<=imax;i++)1258 {1259 r[i]=r0+i*delr;1260 if(i==0)1261 {1262 r[i-1]=r[i+1];1263 r[i]=0.1*rmax/imax;1264 r_l=r[i];1265 vol_l=4.0*PI*pow(r_l,3.0)/3.0;1266 r_r=(r[i+1]+r[i])/2.0;1267 vol_r=4.0*PI*pow(r_r,3.0)/3.0;1268 tau_xy[i]=(vol_l*sig_T[i-1]+vol_r*sig_T[i]) / (vol_l
+vol_r);1269 }1270
1271 sig_0[i]=(sigRR(i)+sig_T[i]+sig_T[i])/3.0;1272 sx[i] = sigRR(i) - sig_0[i];1273 sy[i] = sig_T[i] - sig_0[i];1274 sz[i] = sig_T[i] - sig_0[i];1275
1276 r_l=(r[i-1]+r[i])/2.0;1277 vol_l=4.0*PI*pow(r_l,3.0)/3.0;1278 r_r=(r[i]+r[i+1])/2.0;1279 vol_r=4.0*PI*pow(r_r,3.0)/3.0;1280
1281 tau_xy[i]=(vol_l*sig_T[i-1]+vol_r*sig_T[i]) / (vol_l+vol_r);1282
1283
1284 if (i==imax)1285 {
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 27 of 36
1286 r[i]=rmax;1287 r[i+1]=r[i];1288 r_r=(r[i+1]+r[i])/2.0;1289 vol_r=4.0*PI*pow(r_r,3.0)/3.0;1290 r_l=r[i-1];1291 vol_l=4.0*PI*pow(r_l,3.0)/3.0;1292 tau_xy[i]=(vol_l*sig_T[i-1]+vol_r*sig_T[i]) / (vol_l
+vol_r);1293 }1294
1295 tau_yz[i]=sig_T[i];1296 tau_zx[i]=sig_T[i];1297
1298 J3=-sx[i]*sy[i]*sz[i] + sx[i]*pow(tau_yz[i],2.0) + sy[i]*pow(tau_zx[i],2.0) + sz[i]*pow(tau_xy[i],2.0);
1299 J2=sx[i]*sy[i] + sy[i]*sz[i] + sz[i]*sx[i] - pow(tau_xy[i],2.0) - pow(tau_yz[i],2.0) - pow(tau_zx[i],2.0);
1300
1301 J22=fabs(J2/3.0);1302
1303 th=(1.0/3.0)*acos(-J3/(2.0*pow(J22,1.5)));1304
1305 sig_1[i] = sig_0[i] + 2.0*sqrt(J22)*cos(th);1306 sig_2[i] = sig_0[i] - 2.0*sqrt(J22)*cos(th+PI/3.0);1307 sig_3[i] = sig_0[i] - 2.0*sqrt(J22)*cos(th-PI/3.0);1308
1309 if(i==0)1310 {1311 ValAtCent(i,sig_1,r);1312 ValAtCent(i,sig_2,r);1313 ValAtCent(i,sig_3,r);1314 }1315
1316 //printf("%7.6f %8.7f %lf %lf %lf %lf\n", t[n], r[i], J2, J22, J3, th);
1317
1318 if((n%300)==0)1319 //if(n==nmax)1320 {1321 //printf("%10.4le %4.2lf %11.4le %11.4le %11.4le %
8.2lf, %8.2lf %8.2lf %8.2lf %8.2lf %8.2lf %8.2lf\n",1322 // t[n], (r[i]/rmax), J3, J22, th, Tn[i], sig_R[i], sigRR(i),
sig_T[i], sig_1[i], sig_2[i], sig_3[i]);1323
1324 //printf("%3.1lf %7.2lf %7.6f %8.7f %8.2lf, %12.8lf %14.6lf %11.1lf %8.2lf %8.2lf %8.2lf %8.2lf %8.2lf %8.2lf\n", M,Tinf,t[n],r[i],Tn[i], vn[i],N[i],p[i],sig_R[i],sigRR(i), sig_T[i],sig_1[i],sig_2[i],sig_3[i]);
1325 }1326
1327 }1328 //printf("\n");1329 return 0.0;1330 }
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 28 of 36
1331 /*@@@@@@@@@@@@@@@@@@@@@@@@@@1332 function to calculate values1333 at center i.e. i=0.1334 @@@@@@@@@@@@@@@@@@@@@@@@@@*/1335 double ValAtCent(int j, double ss[], double Tt[])1336 {1337 ss[j] = ss[j+1] + (Tt[j]-Tt[j+1]) * (ss[j+1]-ss[j+2])/(Tt[j+1]-
Tt[j+2]);1338 return ss[j];1339 }1340 /*#############################1341 various first order derivatives1342 #############################*/1343 double derivative()1344 {1345 for(i=0;i<=imax;i++)1346 {1347 /*dtbydr[i]=(T[i]-T[i-1])/(r[i]-r[i-1]);1348 d2tbydr2[i]=(dtbydr[i]-dtbydr[i-1])/(r[i]-r[i-1]);1349 dsigbydr[i]=(sig_1[i]-sig_1[i-1])/(r[i]-r[i-1]);*/1350
1351 dtbydr[i]=(T[i]-T[i-1])/(r[i]-r[i-1]);1352 d2tbydr2[i]=(T[i-1]-2.0*T[i] + T[i+1]) / pow((r[i]-r[i-1]),2.0);1353 dsigbydr[i]=(sig_1[i]-sig_1[i-1]) / (r[i]-r[i-1]);1354 dpbydr[i]=(p[i]-p[i-1])/(r[i]-r[i-1]);1355
1356 if(i==0)1357 {1358 ValAtCent(i,dtbydr,r);1359 ValAtCent(i,d2tbydr2,r);1360 ValAtCent(i,dsigbydr,r);1361 ValAtCent(i,dpbydr,r);1362 }1363
1364 if(n==0)1365 {1366 dtbydr[i]=0.0;1367 d2tbydr2[i]=0.0;1368 dsigbydr[i]=0.0;1369 dpbydr[i]=0.0;1370 }1371 if(n==nmax)1372 {1373 //printf("%3.1lf %7.2lf %g %g %4.2lf %8.2lf %11.2lf %
16.2lf %12.2lf\n", M,Tinf,t[n],rmax,(r[i]/rmax), Tn[i],dtbydr[i],d2tbydr2[i],dsigbydr[i]);
1374 }1375 }1376 return 0.0;1377 }1378 /******************1379 failure probability1380 ******************/1381 double FailProb()
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 29 of 36
1382 {1383
1384 /*1385 char Mfile[]="M";1386 char sigufile[]="sigU";1387 char sigOfile[]="sigO";1388 char mfile[]="m";1389 char vmaxfile[]="vmax";1390 char BetaFile[]="beta";1391 char SizeFile[]="size";1392 */1393
1394 char OverallProb[BUFSIZ];1395
1396
1397 /*writes overall failure probability data */1398 snprintf(OverallProb, sizeof(OverallProb), "%s_%d_%s_%d_%s_%d_%s_%d_%
s_%d_%s_%d_%s_%d_OverallProb.txt", SizeFile,size, Mfile,M, BetaFile,beta_int, sigufile,sigU, sigOfile,sigO, mfile,wbmod, vmaxfile,vstar);
1399 op=fopen(OverallProb,"a");1400
1401
1402 pf10=0.0;1403 for(i=0;i<=imax;i++)1404 {1405 eta=4.0*PI*pow(rmax,3.0)/3.0;1406 if(i==0)1407 {1408 r[i-1]=r[i+1];1409 r[i]=0.1*rmax/imax;1410 r_r=(r[i+1]+r[i])/2.0;1411 vol_r=4.0*PI*pow(r_r,3.0)/3.0;1412 pf1[i]=(sig_1[i]-sigU)/sigO;1413 pf2[i]=vol_r*pow(pf1[i],wbmod);1414 ps[i]=exp(-pf2[i]/eta);1415 pf[n][i]=1.0-ps[i];1416 }1417
1418 vol_r=4.0*PI*pow(r[i],3.0)/3.0;1419 vol_l=4.0*PI*pow(r[i-1],3.0)/3.0;1420
1421 if(sig_1[i]>(1.0*sigU))1422 {1423 pf1[i]=(sig_1[i]-sigU)/sigO;1424 }1425 else1426 {1427 pf1[i]=0.0;1428 }1429 pf2[i]=(vol_r-vol_l)*pow(pf1[i],wbmod);1430 ps[i]=exp(-pf2[i]/eta);1431 pf[n][i]=1.0-ps[i];1432
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 30 of 36
1433 if(i==imax)1434 {1435 vol_r=4.0*PI*pow(r[i],3.0)/3.0;1436 vol_l=4.0*PI*pow(r[i-1],3.0)/3.0;1437 pf1[i]=(sig_1[i]-sigU)/sigO;1438 pf2[i]=(vol_r-vol_l)*pow(pf1[i],wbmod);1439 ps[i]=exp(-pf2[i]/eta);1440 pf[n][i]=1.0-ps[i];1441 }1442
1443 if(i==0)1444 {1445 pf1[i]=0.0;1446 pf2[i]=0.0;1447 ps[i]=0.0;1448 pf[n][i]=0.0;1449 //pf[n][i]=pf[n][i+1]+(r[i]-r[i+1])*(pf[n][i+1]-pf[n][i
+2]) / (r[i+1]-r[i+2]);1450 }1451
1452 /*if(i==imax)1453 {1454 pf[n][i]=0.0;1455 }*/1456
1457 /*if(pf[n][i]>=0.999 && pf[n][i]<=0.9999)1458 {1459 //printf ("%3.1lf %7.2lf %7.6f %8.7f %8.2lf %6.4lf\n",
M, Tinf, t[n], r[i], Tn[i], pf[n][i]);1460 break;1461 }*/1462
1463 if(n==0)1464 {1465 pf[n][i]=0.0;1466 }1467 //if(n==nmax)1468 if((n%300==0))1469 //if((n%100==0) && i==100)1470 {1471 1472 //printf("%d %7.2lf %10.4le %8.2le %4.2lf %8.2lf %3.1lf
%10.4le %10.4le %11.1lf %6.2lf %6.2lf %7.2lf %d %d %d %6.2lf %6.2lf %7.2lf %11.4le %11.4le %11.4le %7.4lf\n",
1473 //M,Tinf,t[n],rmax,(r[i]/rmax),Tn[i], vmax,vn[i],N[i],p[i],sig_R[i], sigRR(i),sig_T[i],wbmod,sigU,sigO, sig_1[i],sig_2[i], sig_3[i],dtbydr[i], d2tbydr2[i],dsigbydr[i],pf[n][i]);
1474
1475
1476 }1477
1478 pf2[i]=pf10+pf2[i];1479 pf10=pf2[i];1480 //pf21=pf2[i];
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 31 of 36
1481
1482 }1483
1484
1485 //pft[n]=1-exp(-pf21/eta);1486 pft[n]=1-exp(-pf10/eta);1487
1488 /*1489 if((pft[n]>=0.999 && pft[n]<=0.9999) && pft[n]>=0.9995)1490 {1491 //printf ("%3.1lf %7.2lf %7.6f %8.7f %8.2lf %6.4lf %6.4lf\n",
M, Tinf, t[n], r[i], T[i-1], pf21, pft[n]);1492 }1493 */1494
1495 //if(n==nmax)1496 if((n%3000)==0)1497 {1498 fprintf(op,"%d %7.2lf %10.4le %8.2le %4.2lf %8.2lf %4.2lf %d %
2d %2d %7.4lf %7.4lf\n", M,Tinf,t[n],rmax,(r[i]/rmax), T[i-1], vmax,wbmod,sigU,sigO, pf[n][i],pft[n]);
1499
1500 //printf("%d %7.2lf %10.4le %10.4le %8.2lf %8.2lf %8.2lf %8.2lf %6.4lf %9.2le %9.2le\n", M,Tinf,t[n],r[i],T[i-1], T[i],T[i+1],Tn[i], pft[n],pf10,eta);
1501 }1502 //printf("\n");1503 fclose(op);1504 return 0.0;1505 }1506 /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@1507 volatile fracture criteria1508 @@@@@@@@@@@@@@@@@@@@@@@@@@@@*/1509 double FractCrit2()1510 {1511
1512 /* char BetaFile[]="beta";1513
1514 char FractureData[BUFSIZ];1515
1516 snprintf(FractureData, sizeof(FractureData), "%s_%d_Fracture_Data.txt", BetaFile,beta_int);
1517 fd=fopen(FractureData,"a");1518 */1519
1520
1521 od=fopen("Overall_data.txt","a");1522
1523 maxj=-10.0;1524
1525 for(i=1;i<imax;i++)1526 {1527 //maxj=-10.0;1528 DELpfn=pf[n][i]-pf[n-1][i];
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 32 of 36
1529
1530 if((DELpfn>maxj) && pf[n][i]>0.99*fpf)1531 {1532 maxj=maximum(maxj,DELpfn);1533 maxR=r[i]/rmax;1534 f_time=t[n];1535
1536 f_vol = vn[i];1537 f_vol_flow = N[i];1538 f_vol_pres = p[i];1539 f_vol_sig_1 = sig_1[i];1540
1541 //f_vol_flow = N[i];1542
1543 //f_time_array[jj]=f_time;1544
1545 f_temp=Tn[i];1546
1547 //fracloc=maxR;1548 //printf("%3.1lf\n",maxR);1549
1550 //if((n%100)==0)1551 //{1552 //printf("%d %7.2lf %10.4le %8.2le %4.2lf %
8.2lf %d %d %d %3.1lf %4.2lf %10.4le %6.4lf %6.4lf\n", M,Tinf,f_time,rmax,(r[i]/rmax), Tn[i],wbmod,sigU,sigO, vmax,maxR,maxj,pf[n][i],pft[n]);
1553 break;1554 //}1555
1556 } 1557 }1558
1559 if(icount==0 && maxj>0.0 && pft[n]>fpf)1560 //if(pft[n]>fpf)1561 {1562 fracloc=maxR;1563
1564 //printf("%d %7.2lf %10.8lf %10.8lf %4.2lf %8.2lf %d %d %d %3.1lf %4.2lf %g %6.4lf %6.4lf\n", M,Tinf,t[n],rmax,(r[i]/rmax), Tn[i],wbmod,sigU,sigO, vmax,fracloc,maxj,pf[n][i],pft[n]);
1565
1566 //printf("FRACTURED: %d %7.2lf %10.4le %8.2le %8.2lf %d %2d %2d %3.1lf %4.2lf %10.4le\n", M, Tinf, f_time, rmax, f_temp, wbmod, sigU, sigO, vmax, fracloc, maxj);
1567
1568 fprintf(od,"FRACTURED: %d %7.2lf %12.6le %8.2le %8.2lf %2d %d %2d %2d %4.2lf %4.2lf %10.4le %10.4le %11.1lf %6.2lf %6.2lf %7.2lf %6.2lf %7.2lf %7.2lf %7.4lf %7.4lf\n", M,Tinf,f_time,rmax,f_temp, beta_int,wbmod,sigU,sigO, vmax,fracloc,vn[i],N[i],p[i], sig_R[i],sigRR(i),sig_T[i],sig_1[i],sig_2[i], sig_3[i],pf[n][i], pft[n]);
1569
1570 f_time_array[jj]=f_time;1571 f_temp_array[jj]= f_temp;
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 33 of 36
1572 f_vol_array[jj]=f_vol;1573 f_vol_flow_array[jj]=f_vol_flow;1574 f_vol_pres_array[jj]=f_vol_pres;1575 f_vol_sig_1_array[jj]=f_vol_sig_1;1576
1577 printf("%2d %12.6le %7.2lf %12.6le %12.6le %12.6le %6.2lf\n", jj, f_time_array[jj], f_temp_array[jj], f_vol_array[jj], f_vol_flow_array[jj], f_vol_pres_array[jj], f_vol_sig_1_array[jj]);
1578 jj++;1579 1580 icount=1;1581 //exit (0);1582 }1583
1584 /*if(pft[n]>fpf)1585 {1586 printf("%d %7.2lf %10.8lf %10.8lf %8.2lf %d %d %d %
3.1lf %4.2lf %g\n", M, Tinf, f_time, rmax, f_temp, wbmod, sigU, sigO, vmax, fracloc, maxj);
1587 //exit (0);1588 }*/1589
1590
1591 fclose(od);1592
1593 //fclose(fd);1594 return 0.0;1595 }1596 /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1597 function to calculate maximu of two1598 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/1599 double maximum(double aa, double bb)1600 {1601 double zz;1602 if((aa-bb)>0)1603 {1604 zz=aa;1605 }1606 else1607 {1608 zz=bb;1609 }1610 return zz;1611 }1612 /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1613 separate function to print files1614 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/1615 double FilePrint()1616 {1617
1618 /*1619 char Mfile[]="M";1620 char sigufile[]="sigU";1621 char sigOfile[]="sigO";
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 34 of 36
1622 char mfile[]="m";1623 char vmaxfile[]="vmax";1624 char BetaFile[]="beta";1625 char SizeFile[]="size";1626 */1627
1628 char file_name[BUFSIZ];1629 char FileName[BUFSIZ];1630
1631 /*write temp volatilization matter flow sigR and sigT on file*/
1632 snprintf(file_name, sizeof(file_name), "%s_%d_%s_%d_%s_%d_%s_%d_%s_%d_%s_%d_%s_%d.txt", SizeFile,size, Mfile,M, BetaFile,beta_int, sigufile,sigU, sigOfile,sigO, mfile,wbmod, vmaxfile,vstar);
1633 fp=fopen(file_name,"a");1634
1635 for(i=0;i<=imax;i++)1636 {1637 //if(n==nmax)1638 if((n%3000==0))1639 //if((n%100==0) && i==100)1640 {1641 fprintf(fp,"%d %7.2lf %10.4le %8.2le %4.2lf %
8.2lf %3.1lf %10.4le %10.4le %11.1lf %6.2lf %6.2lf %7.2lf\n", M,Tinf,t[n],rmax,(r[i]/rmax),Tn[i], vmax,vn[i],N[i],p[i],sig_R[i], sigRR(i),sig_T[i]);
1642
1643 }1644 }1645 fclose(fp);1646
1647 /*write probability stats on file*/1648 snprintf(FileName, sizeof(FileName), "%s_%d_%s_%d_%s_%d_%s_%d_%
s_%d_%s_%d_%s_%d_prob.txt", SizeFile,size, Mfile,M, BetaFile,beta_int, sigufile,sigU, sigOfile,sigO, mfile,wbmod, vmaxfile,vstar);
1649 ft=fopen(FileName,"a");1650
1651 for(i=0;i<=imax;i++)1652 {1653 //if(n==nmax)1654 if((n%3000==0))1655 //if((n%100==0) && i==100)1656 {1657 fprintf(ft,"%d %7.2lf %10.4le %8.2le %4.2lf %
8.2lf %4.2lf %d %2d %2d %6.2lf %6.2lf %7.2lf %6.2lf %6.2lf %7.2lf %11.4le %11.4le %11.4le %7.4lf %7.4lf %11.4le\n", M,Tinf,t[n],rmax,(r[i]/rmax),T[i], vmax,wbmod,sigU,sigO,th_sig_1[i],th_sig_2[i], th_sig_3[i],sig_1[i],sig_2[i], sig_3[i],dtbydr[i],d2tbydr2[i],dsigbydr[i],pf[n][i], pft[n],dpbydr[i]);
1658 1659 }1660 }1661 //fprintf(ft,"\n");1662 fclose(ft);
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 35 of 36
1663 return 0.0;1664 }1665
1666 /*@@@@@@@@@@@@@@@@@@@@@@@@@@1667 normal distribution function1668 @@@@@@@@@@@@@@@@@@@@@@@@@@*/1669 double fn(double xxx)1670 {1671 return (exp(-pow(xxx,2.0)/2.0));1672 }1673 /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1674 function to calculate normal distribution data1675 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/1676 double StdNormalDistr(double x[])1677 {1678 1679 /*1680 char Mfile[]="M";1681 char sigufile[]="sigU";1682 char sigOfile[]="sigO";1683 char mfile[]="m";1684 char vmaxfile[]="vmax";1685 char BetaFile[]="beta";1686 */1687 1688 char std_norm_data[BUFSIZ];1689 1690 snprintf(std_norm_data, sizeof(std_norm_data), "Normal_Dist_Data_%s_%
d_%s_%d_%s_%d_%s_%d_%s_%d_%s_%d.txt", Mfile,M, BetaFile,beta_int, sigufile,sigU, sigOfile,sigO, mfile,wbmod, vmaxfile,vstar);
1691 1692 fsnd=fopen(std_norm_data,"a");1693 1694 int i;1695 1696 double diff_x[12], z[12], sumx=0.0, avgx;1697 double sum_sqr_diff_x, sqr_diff_x0=0.0, sqr_diff_x[12], variance,
phi_z[12], phi_x[12];1698
1699 for(i=0;i<=11;i++)1700 {1701 if(i<=2){1702 sumx=sumx+0.075*x[i]/3.0;1703 sumx=sumx;1704 }1705 else if(i>=3 && i<=4){1706 sumx=sumx+0.186*x[i]/2.0;1707 sumx=sumx;1708 }1709 else if(i>=5 && i<=6){1710 sumx=sumx+0.314*x[i]/2.0;1711 sumx=sumx;1712 }1713 else if(i>=7 && i<=9){
File: /media/aero/phd/PhDthesis/1_t…/prof_method/4case/fourier27.c Page 36 of 36
1714 sumx=sumx+0.251*x[i]/3.0;1715 sumx=sumx;1716 }1717 else if (i>=10){1718 sumx=sumx+0.173*x[i]/2.0;1719 sumx=sumx;1720 }1721 1722 1723 //sumx=sumx;1724 }1725
1726 avgx=sumx;1727
1728 //printf("%lf\n",avgx);1729
1730 for(i=0;i<=11;i++)1731 {1732 diff_x[i]=x[i]-avgx;1733 sqr_diff_x[i]=pow(diff_x[i],2.0);1734
1735 sum_sqr_diff_x=sqr_diff_x0+sqr_diff_x[i];1736
1737 //printf("%d %lf %lf %lf\n",i, diff_x[i], sqr_diff_x[i], sum_sqr_diff_x);
1738
1739 sqr_diff_x0=sum_sqr_diff_x;1740 }1741
1742 for(i=0;i<=11;i++)1743 {1744 1745 variance=sqrt(sum_sqr_diff_x/(12-1));1746 z[i]=diff_x[i]/variance;1747 //printf("%d %lf %lf\n", i, variance, z[i]);1748 1749 /* CDF can also be written in the form of error function.1750 Here for variable x it is in form of error function and 1751 for variable z (SNRV) it is calculated from integration*/1752 phi_x[i]=0.5*(1.0+erf( (x[i]-avgx) / (variance*sqrt(2.0)) ));1753 phi_z[i]=trapezium(-4.0, z[i], 100, fn)/sqrt(2.0*PI);1754 1755 fprintf(fsnd,"%4d %11.4le %11.4le %11.4le %11.4le %6.4lf %8.4lf %
6.4lf %6.4lf %7.4lf\n", 1756 size_1[i], x[i], avgx, variance, exp(-pow((x[i]-avgx)/
variance,2.0)/2.0)/(variance*sqrt(2*PI)), phi_x[i], z[i], (exp(-pow(z[i],2.0)/2.0)/sqrt(2.0*PI)), phi_z[i], (variance/avgx));
1757 1758 }1759 1760 fclose(fsnd);1761 return 0.0;1762 1763 }