[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]