Changeset 235
- Timestamp:
- Jan 11, 2008 5:05:14 PM (13 years ago)
- Location:
- sans/Analysis/branches/ajj_23APR07/XOPs/SANSAnalysis
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
sans/Analysis/branches/ajj_23APR07/XOPs/SANSAnalysis/XOP/Func2D.c
r231 r235 27 27 double q, phi; 28 28 double pars[11]; 29 int i;29 // int i; 30 30 // char buf[256]; 31 31 … … 52 52 dp= WaveData(p->waveHandle); 53 53 54 for(i=0; i<11; i++) { 55 pars[i] = dp[i]; 56 } 54 // for(i=0; i<11; i++) { 55 // pars[i] = dp[i]; 56 // } 57 pars[0] = dp[0]; 58 pars[1] = dp[1]; 59 pars[2] = dp[2]; 60 pars[3] = dp[3] - dp[4]; 61 pars[4] = dp[5]; 62 pars[5] = dp[6]; 63 pars[6] = dp[7]; 64 pars[7] = dp[8]; 65 pars[8] = dp[9]; 66 pars[9] = dp[10]; 67 pars[10] = dp[11]; 57 68 58 69 p->result = disperse_cylinder_analytical_2D( pars, q, phi ); … … 288 299 double q, phi; 289 300 double pars[12]; 290 int i; 291 292 if (p->waveHandle == NIL) { 293 SetNaN64(&p->result); 294 return NON_EXISTENT_WAVE; 295 } 296 297 qx = p->qx; 298 qy = p->qy; 299 300 q = hypot(qx,qy); 301 phi = atan2(qy,qx); 302 303 switch(WaveType(p->waveHandle)){ // We can handle single and double precision coefficient waves. 304 case NT_FP32: 305 fp= WaveData(p->waveHandle); 306 SetNaN64(&p->result); 307 return REQUIRES_SP_OR_DP_WAVE; //not quite true, but good enough for now AJJ 4/23/07 308 case NT_FP64: 309 dp= WaveData(p->waveHandle); 310 311 for(i=0; i<12; i++) { 312 pars[i] = dp[i]; 313 } 301 // int i; 302 303 if (p->waveHandle == NIL) { 304 SetNaN64(&p->result); 305 return NON_EXISTENT_WAVE; 306 } 307 308 qx = p->qx; 309 qy = p->qy; 310 311 q = hypot(qx,qy); 312 phi = atan2(qy,qx); 313 314 switch(WaveType(p->waveHandle)){ // We can handle single and double precision coefficient waves. 315 case NT_FP32: 316 fp= WaveData(p->waveHandle); 317 SetNaN64(&p->result); 318 return REQUIRES_SP_OR_DP_WAVE; //not quite true, but good enough for now AJJ 4/23/07 319 case NT_FP64: 320 dp= WaveData(p->waveHandle); 321 322 // for(i=0; i<12; i++) { 323 // pars[i] = dp[i]; 324 // } 325 pars[0] = dp[0]; 326 pars[1] = dp[1]; 327 pars[2] = dp[2]; 328 pars[3] = dp[3] - dp[4]; 329 pars[4] = dp[5]; 330 pars[5] = dp[6]; 331 pars[6] = dp[7]; 332 pars[7] = dp[8]; 333 pars[8] = dp[9]; 334 pars[9] = dp[10]; 335 pars[10] = dp[11]; 336 pars[11] = dp[12]; 337 314 338 //p->result = 1.0; 315 339 p->result = disperse_ellipsoid_analytical_2D( pars, q, phi ); … … 416 440 double q, phi; 417 441 double pars[14]; 418 int i; 419 420 if (p->waveHandle == NIL) { 421 SetNaN64(&p->result); 422 return NON_EXISTENT_WAVE; 423 } 424 425 qx = p->qx; 426 qy = p->qy; 427 428 q = hypot(qx,qy); 429 phi = atan2(qy,qx); 430 431 switch(WaveType(p->waveHandle)){ // We can handle single and double precision coefficient waves. 432 case NT_FP32: 433 fp= WaveData(p->waveHandle); 434 SetNaN64(&p->result); 435 return REQUIRES_SP_OR_DP_WAVE; //not quite true, but good enough for now AJJ 4/23/07 436 case NT_FP64: 437 dp= WaveData(p->waveHandle); 438 439 for(i=0; i<14; i++) { 440 pars[i] = dp[i]; 441 } 442 // int i; 443 444 if (p->waveHandle == NIL) { 445 SetNaN64(&p->result); 446 return NON_EXISTENT_WAVE; 447 } 448 449 qx = p->qx; 450 qy = p->qy; 451 452 q = hypot(qx,qy); 453 phi = atan2(qy,qx); 454 455 switch(WaveType(p->waveHandle)){ // We can handle single and double precision coefficient waves. 456 case NT_FP32: 457 fp= WaveData(p->waveHandle); 458 SetNaN64(&p->result); 459 return REQUIRES_SP_OR_DP_WAVE; //not quite true, but good enough for now AJJ 4/23/07 460 case NT_FP64: 461 dp= WaveData(p->waveHandle); 462 463 // for(i=0; i<14; i++) { 464 // pars[i] = dp[i]; 465 // } 466 pars[0] = dp[0]; 467 pars[1] = dp[1]; 468 pars[2] = dp[2]; 469 pars[3] = dp[3]; 470 pars[4] = dp[4] - dp[5]; 471 pars[5] = dp[6]; 472 pars[6] = dp[7]; 473 pars[7] = dp[8]; 474 pars[8] = dp[9]; 475 pars[9] = dp[10]; 476 pars[10] = dp[11]; 477 pars[11] = dp[12]; 478 pars[12] = dp[13]; 479 pars[13] = dp[14]; 480 481 442 482 p->result = disperse_elliptical_cylinder_analytical_2D( pars, q, phi ); 443 483 … … 545 585 double qy; 546 586 // double q, phi; 547 double pars[ 4];587 double pars[5]; 548 588 int i; 549 char buf[256];550 551 if (p->waveHandle == NIL) { 552 SetNaN64(&p->result); 553 return NON_EXISTENT_WAVE; 554 } 555 556 qx = p->qx; 557 qy = p->qy; 558 559 sprintf(buf, "Qx = %g, Qy = %g\r",qx, qy);560 XOPNotice(buf);589 // char buf[256]; 590 591 if (p->waveHandle == NIL) { 592 SetNaN64(&p->result); 593 return NON_EXISTENT_WAVE; 594 } 595 596 qx = p->qx; 597 qy = p->qy; 598 599 // sprintf(buf, "Qx = %g, Qy = %g\r",qx, qy); 600 // XOPNotice(buf); 561 601 562 602 … … 573 613 dp= WaveData(p->waveHandle); 574 614 575 for(i=0; i< 4; i++) {615 for(i=0; i<5; i++) { 576 616 pars[i] = dp[i]; 577 617 } -
sans/Analysis/branches/ajj_23APR07/XOPs/SANSAnalysis/lib/libCylinder.c
r156 r235 22 22 int i; 23 23 double Pi; 24 double scale,radius,length,delrho,bkg,halfheight ; //local variables of coefficient wave24 double scale,radius,length,delrho,bkg,halfheight,sldCyl,sldSolv; //local variables of coefficient wave 25 25 int nord=76; //order of integration 26 26 double uplim,lolim; //upper and lower integration limits … … 36 36 radius = dp[1]; 37 37 length = dp[2]; 38 delrho = dp[3]; 39 bkg = dp[4]; 38 sldCyl = dp[3]; 39 sldSolv = dp[4]; 40 bkg = dp[5]; 41 42 delrho = sldCyl-sldSolv; 40 43 halfheight = length/2.0; 41 44 for(i=0;i<nord;i++) { … … 76 79 { 77 80 int i,j; 78 double Pi ;81 double Pi,slde,sld; 79 82 double scale,ra,nu,length,delrho,bkg; //local variables of coefficient wave 80 83 int nord=76; //order of integration … … 95 98 nu = dp[2]; 96 99 length = dp[3]; 97 delrho = dp[4]; 98 bkg = dp[5]; 100 slde = dp[4]; 101 sld = dp[5]; 102 delrho = slde - sld; 103 bkg = dp[6]; 104 99 105 for(i=0;i<nord;i++) { 100 106 //setup inner integral over the ellipsoidal cross-section … … 150 156 { 151 157 int i,j; 152 double Pi ;158 double Pi,slde,sld; 153 159 double scale,ra,nu,length,delrho,bkg; //local variables of coefficient wave 154 160 int nordi=76; //order of integration … … 170 176 nu = dp[2]; 171 177 length = dp[3]; 172 delrho = dp[4]; 173 bkg = dp[5]; 178 slde = dp[4]; 179 sld = dp[5]; 180 delrho = slde - sld; 181 bkg = dp[6]; 182 174 183 for(i=0;i<nordi;i++) { 175 184 //setup inner integral over the ellipsoidal cross-section … … 231 240 double va,vb; //upper and lower integration limits 232 241 double summ,zi,yyy,answer; //running tally of integration 233 double summj,vaj,vbj,zij ; //for the inner integration242 double summj,vaj,vbj,zij,slde,sld; //for the inner integration 234 243 235 244 Pi = 4.0*atan(1.0); … … 245 254 bb = dp[2]; 246 255 cc = dp[3]; 247 delrho = dp[4]; 248 bkg = dp[5]; 256 slde = dp[4]; 257 sld = dp[5]; 258 delrho = slde - sld; 259 bkg = dp[6]; 249 260 for(i=0;i<nordi;i++) { 250 261 //setup inner integral over the ellipsoidal cross-section … … 301 312 double summ,yyy,answer; //running tally of integration 302 313 double summj,vaj,vbj; //for the inner integration 303 double mu,mudum,arg,sigma,uu,vol ;314 double mu,mudum,arg,sigma,uu,vol,sldp,sld; 304 315 305 316 … … 316 327 bb = dp[2]; 317 328 cc = dp[3]; 318 delrho = dp[4]; 319 bkg = dp[5]; 329 sldp = dp[4]; 330 sld = dp[5]; 331 delrho = sldp - sld; 332 bkg = dp[6]; 320 333 321 334 mu = q*bb; … … 385 398 int nord=76; //order of integration 386 399 double va,vb,zi; //upper and lower integration limits 387 double summ,answer,pi ; //running tally of integration400 double summ,answer,pi,sldc,sld; //running tally of integration 388 401 389 402 pi = 4.0*atan(1.0); … … 397 410 rshell = dp[2]; 398 411 length = dp[3]; 399 delrho = dp[4]; 400 bkg = dp[5]; 412 sldc = dp[4]; 413 sld = dp[5]; 414 delrho = sldc - sld; 415 bkg = dp[6]; 401 416 402 417 for(i=0;i<nord;i++) { … … 438 453 int nord=76; //order of integration 439 454 double va,vb,zi; //upper and lower integration limits 440 double summ,answer,pi ; //running tally of integration455 double summ,answer,pi,slde,sld; //running tally of integration 441 456 442 457 pi = 4.0*atan(1.0); … … 449 464 nua = dp[1]; 450 465 a = dp[2]; 451 delrho = dp[3]; 452 bkg = dp[4]; 466 slde = dp[3]; 467 sld = dp[4]; 468 delrho = slde - sld; 469 bkg = dp[5]; 453 470 454 471 for(i=0;i<nord;i++) { … … 485 502 double uplim,lolim; //upper and lower integration limits 486 503 double summ,zi,yyy,answer,Vpoly; //running tally of integration 487 double range,zz,Pi ;504 double range,zz,Pi,sldc,sld; 488 505 489 506 Pi = 4.0*atan(1.0); … … 496 513 length = dp[2]; 497 514 pd = dp[3]; 498 delrho = dp[4]; 499 bkg = dp[5]; 515 sldc = dp[4]; 516 sld = dp[5]; 517 delrho = sldc - sld; 518 bkg = dp[6]; 500 519 501 520 zz = (1.0/pd)*(1.0/pd) - 1.0; … … 543 562 double uplim,lolim; //upper and lower integration limits 544 563 double summ,zi,yyy,answer,Vpoly; //running tally of integration 545 double range,zz,Pi ;564 double range,zz,Pi,sldc,sld; 546 565 547 566 … … 555 574 length = dp[2]; 556 575 pd = dp[3]; 557 delrho = dp[4]; 558 bkg = dp[5]; 576 sldc = dp[4]; 577 sld = dp[5]; 578 delrho = sldc - sld; 579 bkg = dp[6]; 559 580 560 581 zz = (1.0/pd)*(1.0/pd) - 1.0; … … 717 738 double uplim,lolim; //upper and lower integration limits 718 739 double summ,zi,yyy,answer,oblatevol; //running tally of integration 719 double Pi ;740 double Pi,sldc,slds,sld; 720 741 721 742 Pi = 4.0*atan(1.0); … … 732 753 trmaj = dp[3]; 733 754 trmin = dp[4]; 734 delpc = dp[5]; 735 delps = dp[6]; 736 bkg = dp[7]; 755 sldc = dp[5]; 756 slds = dp[6]; 757 sld = dp[7]; 758 delpc = sldc - slds; //core - shell 759 delps = slds - sld; //shell - solvent 760 bkg = dp[8]; 737 761 738 762 for(i=0;i<nord;i++) { … … 769 793 double uplim,lolim; //upper and lower integration limits 770 794 double summ,zi,yyy,answer,prolatevol; //running tally of integration 771 double Pi ;795 double Pi,sldc,slds,sld; 772 796 773 797 Pi = 4.0*atan(1.0); … … 783 807 trmaj = dp[3]; 784 808 trmin = dp[4]; 785 delpc = dp[5]; 786 delps = dp[6]; 787 bkg = dp[7]; 809 sldc = dp[5]; 810 slds = dp[6]; 811 sld = dp[7]; 812 delpc = sldc - slds; //core - shell 813 delps = slds - sld; //shell - sovent 814 bkg = dp[8]; 788 815 789 816 for(i=0;i<nord;i++) { … … 873 900 double scale,del,sig,contr,bkg; //local variables of coefficient wave 874 901 double inten, qval,Pq; 875 double Pi ;902 double Pi,sldb,sld; 876 903 877 904 … … 880 907 del = dp[1]; 881 908 sig = dp[2]*del; 882 contr = dp[3]; 883 bkg = dp[4]; 909 sldb = dp[3]; 910 sld = dp[4]; 911 contr = sldb - sld; 912 bkg = dp[5]; 884 913 qval=q; 885 914 … … 904 933 { 905 934 double scale,dd,del,sig,contr,NN,Cp,bkg; //local variables of coefficient wave 906 double inten, 907 double Pi,Euler,dQDefault,fii ;935 double inten,qval,Pq,Sq,alpha,temp,t1,t2,t3,dQ; 936 double Pi,Euler,dQDefault,fii,sldb,sld; 908 937 int ii,NNint; 938 // char buf[256]; 939 909 940 910 941 Euler = 0.5772156649; // Euler's constant … … 919 950 del = dp[2]; 920 951 sig = dp[3]*del; 921 contr = dp[4]; 922 NN = trunc(dp[5]); //be sure that NN is an integer 923 Cp = dp[6]; 924 bkg = dp[7]; 952 sldb = dp[4]; 953 sld = dp[5]; 954 contr = sldb - sld; 955 NN = trunc(dp[6]); //be sure that NN is an integer 956 Cp = dp[7]; 957 bkg = dp[8]; 925 958 926 959 Pq = 2.0*contr*contr/qval/qval*(1.0-cos(qval*del)*exp(-0.5*qval*qval*sig*sig)); 960 961 NNint = (int)NN; //cast to an integer for the loop 962 963 // sprintf(buf, "qval = %g\r", qval); 964 // XOPNotice(buf); 965 966 ii=0; 967 Sq = 0.0; 968 for(ii=1;ii<(NNint-1);ii+=1) { 969 970 fii = (double)ii; //do I really need to do this? 971 972 temp = 0.0; 973 alpha = Cp/4.0/Pi/Pi*(log(Pi*fii) + Euler); 974 t1 = 2.0*dQ*dQ*dd*dd*alpha; 975 t2 = 2.0*qval*qval*dd*dd*alpha; 976 t3 = dQ*dQ*dd*dd*fii*fii; 977 978 temp = 1.0-fii/NN; 979 temp *= cos(dd*qval*fii/(1.0+t1)); 980 temp *= exp(-1.0*(t2 + t3)/(2.0*(1.0+t1)) ); 981 temp /= sqrt(1.0+t1); 982 983 Sq += temp; 984 } 985 986 Sq *= 2.0; 987 Sq += 1.0; 988 989 inten = 2.0*Pi*scale*Pq*Sq/(dd*qval*qval); 990 991 inten *= 1.0e8; // 1/A to 1/cm 992 993 return(inten+bkg); 994 } 995 996 997 /* LamellarPS_HGX : calculates the form factor of a lamellar structure - with S(q) effects included 998 ------- 999 ------- resolution effects ARE included, but only a CONSTANT default value, not the real q-dependent resolution!! 1000 1001 */ 1002 double 1003 LamellarPS_HG(double dp[], double q) 1004 { 1005 double scale,dd,delT,delH,SLD_T,SLD_H,SLD_S,NN,Cp,bkg; //local variables of coefficient wave 1006 double inten,qval,Pq,Sq,alpha,temp,t1,t2,t3,dQ,drh,drt; 1007 double Pi,Euler,dQDefault,fii; 1008 int ii,NNint; 1009 1010 1011 Euler = 0.5772156649; // Euler's constant 1012 dQDefault = 0.0025; //[=] 1/A, q-resolution, default value 1013 dQ = dQDefault; 1014 1015 Pi = 4.0*atan(1.0); 1016 qval= q; 1017 1018 scale = dp[0]; 1019 dd = dp[1]; 1020 delT = dp[2]; 1021 delH = dp[3]; 1022 SLD_T = dp[4]; 1023 SLD_H = dp[5]; 1024 SLD_S = dp[6]; 1025 NN = trunc(dp[7]); //be sure that NN is an integer 1026 Cp = dp[8]; 1027 bkg = dp[9]; 1028 1029 1030 drh = SLD_H - SLD_S; 1031 drt = SLD_T - SLD_S; //correction 13FEB06 by L.Porcar 1032 1033 Pq = drh*(sin(qval*(delH+delT))-sin(qval*delT)) + drt*sin(qval*delT); 1034 Pq *= Pq; 1035 Pq *= 4.0/(qval*qval); 927 1036 928 1037 NNint = (int)NN; //cast to an integer for the loop … … 954 1063 inten *= 1.0e8; // 1/A to 1/cm 955 1064 956 return(inten+bkg);957 }958 959 960 /* LamellarPS_HGX : calculates the form factor of a lamellar structure - with S(q) effects included961 -------962 ------- resolution effects ARE included, but only a CONSTANT default value, not the real q-dependent resolution!!963 964 */965 double966 LamellarPS_HG(double dp[], double q)967 {968 double scale,dd,delT,delH,SLD_T,SLD_H,SLD_S,NN,Cp,bkg; //local variables of coefficient wave969 double inten,qval,Pq,Sq,alpha,temp,t1,t2,t3,dQ,drh,drt;970 double Pi,Euler,dQDefault,fii;971 int ii,NNint;972 973 974 Euler = 0.5772156649; // Euler's constant975 dQDefault = 0.0025; //[=] 1/A, q-resolution, default value976 dQ = dQDefault;977 978 Pi = 4.0*atan(1.0);979 qval= q;980 981 scale = dp[0];982 dd = dp[1];983 delT = dp[2];984 delH = dp[3];985 SLD_T = dp[4];986 SLD_H = dp[5];987 SLD_S = dp[6];988 NN = trunc(dp[7]); //be sure that NN is an integer989 Cp = dp[8];990 bkg = dp[9];991 992 993 drh = SLD_H - SLD_S;994 drt = SLD_T - SLD_S; //correction 13FEB06 by L.Porcar995 996 Pq = drh*(sin(qval*(delH+delT))-sin(qval*delT)) + drt*sin(qval*delT);997 Pq *= Pq;998 Pq *= 4.0/(qval*qval);999 1000 NNint = (int)NN; //cast to an integer for the loop1001 ii=0;1002 Sq = 0.0;1003 for(ii=1;ii<(NNint-1);ii+=1) {1004 1005 fii = (double)ii; //do I really need to do this?1006 1007 temp = 0.0;1008 alpha = Cp/4.0/Pi/Pi*(log(Pi*ii) + Euler);1009 t1 = 2.0*dQ*dQ*dd*dd*alpha;1010 t2 = 2.0*qval*qval*dd*dd*alpha;1011 t3 = dQ*dQ*dd*dd*ii*ii;1012 1013 temp = 1.0-ii/NN;1014 temp *= cos(dd*qval*ii/(1.0+t1));1015 temp *= exp(-1.0*(t2 + t3)/(2.0*(1.0+t1)) );1016 temp /= sqrt(1.0+t1);1017 1018 Sq += temp;1019 }1020 1021 Sq *= 2.0;1022 Sq += 1.0;1023 1024 inten = 2.0*Pi*scale*Pq*Sq/(dd*qval*qval);1025 1026 inten *= 1.0e8; // 1/A to 1/cm1027 1028 1065 return(inten+bkg); 1029 1066 } … … 1075 1112 FlexExclVolCyl(double dp[], double q) 1076 1113 { 1077 double scale,L,B,bkg,rad,qr,cont ;1114 double scale,L,B,bkg,rad,qr,cont,sldc,slds; 1078 1115 double Pi,flex,crossSect,answer; 1079 1116 … … 1085 1122 B = dp[2]; 1086 1123 rad = dp[3]; 1087 cont = dp[4]; 1088 bkg = dp[5]; 1124 sldc = dp[4]; 1125 slds = dp[5]; 1126 cont = sldc-slds; 1127 bkg = dp[6]; 1089 1128 1090 1129 … … 1110 1149 FlexCyl_Ellip(double dp[], double q) 1111 1150 { 1112 double scale,L,B,bkg,rad,qr,cont,ellRatio ;1151 double scale,L,B,bkg,rad,qr,cont,ellRatio,slds,sldc; 1113 1152 double Pi,flex,crossSect,answer; 1114 1153 … … 1120 1159 rad = dp[3]; 1121 1160 ellRatio = dp[4]; 1122 cont = dp[5]; 1123 bkg = dp[6]; 1124 1161 sldc = dp[5]; 1162 slds = dp[6]; 1163 bkg = dp[7]; 1164 1165 cont = sldc - slds; 1125 1166 qr = q*rad; 1126 1167 … … 1168 1209 { 1169 1210 int i; 1170 double scale,radius,length,pd, delrho,bkg,lb; //local variables of coefficient wave1211 double scale,radius,length,pd,bkg,lb,delrho,sldc,slds; //local variables of coefficient wave 1171 1212 int nord=20; //order of integration 1172 1213 double uplim,lolim; //upper and lower integration limits … … 1183 1224 lb = dp[3]; 1184 1225 radius = dp[4]; 1185 delrho = dp[5]; 1186 bkg = dp[6]; 1187 1226 sldc = dp[5]; 1227 slds = dp[6]; 1228 bkg = dp[7]; 1229 1230 delrho = sldc - slds; 1188 1231 zz = (1.0/pd)*(1.0/pd) - 1.0; 1189 1232 … … 1228 1271 { 1229 1272 int i; 1230 double scale,radius,length,pd,delrho,bkg,lb ; //local variables of coefficient wave1273 double scale,radius,length,pd,delrho,bkg,lb,sldc,slds; //local variables of coefficient wave 1231 1274 int nord=76; //order of integration 1232 1275 double uplim,lolim; //upper and lower integration limits … … 1245 1288 radius = dp[3]; 1246 1289 pd = dp[4]; 1247 delrho = dp[5]; 1248 bkg = dp[6]; 1249 1290 sldc = dp[5]; 1291 slds = dp[6]; 1292 bkg = dp[7]; 1293 1294 delrho = sldc-slds; 1250 1295 zz = (1.0/pd)*(1.0/pd) - 1.0; 1251 1296 -
sans/Analysis/branches/ajj_23APR07/XOPs/SANSAnalysis/lib/libSphere.c
r217 r235 13 13 SphereForm(double dp[], double q) 14 14 { 15 double scale,radius,delrho,bkg ; //my local names15 double scale,radius,delrho,bkg,sldSph,sldSolv; //my local names 16 16 double bes,f,vol,f2,pi; 17 17 … … 19 19 scale = dp[0]; 20 20 radius = dp[1]; 21 delrho = dp[2]; 22 bkg = dp[3]; 21 sldSph = dp[2]; 22 sldSolv = dp[3]; 23 bkg = dp[4]; 24 25 delrho = sldSph - sldSolv; 23 26 //handle q==0 separately 24 27 if(q==0){ … … 217 220 double capl,capl1,capmu,capmu1,r3,pq; 218 221 double ka2,r1,heff; 219 double hh,k ;222 double hh,k,slds,sld; 220 223 221 224 pi = 4.0*atan(1.0); … … 225 228 z2 = dp[1]; //polydispersity (0<z2<1) 226 229 phi = dp[2]; // volume fraction (0<phi<1) 227 cont = dp[3]*1.0e4; // contrast (odd units) 228 bkg = dp[4]; 230 slds = dp[3]; 231 sld = dp[4]; 232 cont = (slds - sld)*1.0e4; // contrast (odd units) 233 bkg = dp[5]; 229 234 sigma = 2*rad; 230 235 … … 448 453 double pi,x; 449 454 double scale,rad,pd,cont,bkg; //my local names 450 double inten,h1,qw,qr,width,sig,averad3,Rg2 ;455 double inten,h1,qw,qr,width,sig,averad3,Rg2,slds,sld; 451 456 452 457 pi = 4.0*atan(1.0); … … 456 461 rad = dp[1]; // radius (A) 457 462 pd = dp[2]; //polydispersity of rectangular distribution 458 cont = dp[3]; // contrast (A^-2) 459 bkg = dp[4]; 463 slds = dp[3]; 464 sld = dp[4]; 465 cont = slds - sld; // contrast (A^-2) 466 bkg = dp[5]; 460 467 461 468 // as usual, poly = sig/ravg
Note: See TracChangeset
for help on using the changeset viewer.