[group] Form Factors [name] spherical-core-shell [number parameters] 8, [description]

2016.04.22 :: Form Factor of Spherical Core-Shell ::

.................................................................................................................................................................

... I(Q) = phi ( [rhoCore-rhoShell] Vc(r) F(Q,r) +(rhoShell-rhoSolvent) Vs(r,delta) F(Q,r+delta) )2 / Vs (r,delta) + bgd ....

..................................................................................................................................................................

... Vc(r) = 4pi/3r3 --- volume of core

... Vs(r,delta)=4p/3(r+delta)3-Vc(r); --- volume of shell

... F(Q,r) = 3[sin(rQ) - rQcos(rQ)] / (rQ)3 --- scatterimh amplitude of shpere

[x] Q [y] I [parameter names] phi,r,delta,rhoCore,rhoShell,rhoSolvent,bgd,I0, [initial values] 1,60,10,1e+10,2e+10,3e+10,0.001,0 [adjustibility] 1,0,1,0,0,0,1,0 [parameter description] Volume Fraction [1] ,Core Radius [A],Shell Thickness [A],Core SLD [cm^-2],Shell SLD [cm^-2],Solvent SLD [cm^-2],[cm^-1],---, [h-headers] #include [included functions] //++++++++++++++++++++++++++++++++++ //+++ Volume of Sphere:: volumeSphere(R) //++++++++++++++++++++++++++++++++++ double volumeSphere (double R) { if (R<0) return 0; return 4*M_PI/3*R*R*R; } //+++++++++++++++++++++++++++++++++++ //+++ Sphere:: bSpere(Q,R) //+++++++++++++++++++++++++++++++++++ double bSphere (double Q, double R) { double bS; double RQ=fabs(R*Q); // if (RQ>0.00001) bS=3*(sin(RQ)-RQ*cos(RQ))/pow(RQ,3); else bS=cos(RQ/sqrt(5)); // return bS; } //+++++++++++++++++++++++++++++++++++ //+++ spherical_core_shell //+++++++++++++++++++++++++++++++++++ double spherical_core_shell(double Q,double R,double delta,double RhoCore,double RhoShell,double RhoSolvent) { double result; //+++ result=(RhoCore-RhoShell)*volumeSphere(R)*bSphere(Q,R); //+++ result+=(RhoShell-RhoSolvent)*( volumeSphere(R+delta) )*bSphere(Q,(R+delta)); //+++ result*=result; result/=( volumeSphere(R+delta) ); return result*1e-24; } [code] if (rhoShell == rhoSolvent) delta=0; I0=phi*spherical_core_shell(0, r, delta, rhoCore, rhoShell, rhoSolvent); I=phi*spherical_core_shell(Q, r, delta, rhoCore, rhoShell, rhoSolvent)+bgd; [fortran] 0, [end]