#if !defined(fuzzysphere_h) #define fuzzysphere_h /** * Structure definition for FuzzySphere parameters */ //[PYTHONCLASS] = FuzzySphereModel //[DISP_PARAMS] = radius, fuzziness //[DESCRIPTION] = // scale: scale factor times volume fraction, // or just volume fraction for absolute scale data // radius: radius of the solid sphere // fuzziness = the STD of the height of fuzzy interfacial // thickness (ie., so-called interfacial roughness) // sldSph: the SLD of the sphere // sldSolv: the SLD of the solvent // background: incoherent background // Note: By definition, this function works only when fuzziness << radius. // //[FIXED]= radius.width; fuzziness.width //[ORIENTATION_PARAMS]= typedef struct { /// Scale factor // [DEFAULT]=scale= 0.01 double scale; /// Radius of sphere [A] // [DEFAULT]=radius=60.0 [A] double radius; /// surface roughness [A] // [DEFAULT]=fuzziness= 10.0 [A] double fuzziness; /// sldSph [1/A^(2)] // [DEFAULT]=sldSph= 1.0e-6 [1/A^(2)] double sldSph; /// sldSolv [1/A^(2)] // [DEFAULT]=sldSolv= 3.0e-6 [1/A^(2)] double sldSolv; /// Incoherent Background [1/cm] // [DEFAULT]=background=0.001 [1/cm] double background; } FuzzySphereParameters; /// kernel double fuzzysphere_kernel(double dp[], double q); /// 1D scattering function double fuzzysphere_analytical_1D(FuzzySphereParameters *pars, double q); /// 2D scattering function double fuzzysphere_analytical_2D(FuzzySphereParameters *pars, double q, double phi); double fuzzysphere_analytical_2DXY(FuzzySphereParameters *pars, double qx, double qy); double fuzzysphere_analytical_2D_scaled(FuzzySphereParameters *pars, double q, double q_x, double q_y); #endif