#if !defined(raspberry_h) #define raspberry_h #include "parameters.hh" /** * Structure definition for RaspBerryModel parameters */ //[PYTHONCLASS] = RaspBerryModel //[DISP_PARAMS] = radius_Lsph //[DESCRIPTION] = RaspBerryModel: // volf_Lsph = volume fraction large spheres // radius_Lsph = radius large sphere (A) // sld_Lsph = sld large sphere (A-2) // volf_Ssph = volume fraction small spheres // radius_Ssph = radius small sphere (A) // surfrac_Ssph = fraction of small spheres at surface // sld_Ssph = sld small sphere // delta_Ssph = small sphere penetration (A) // sld_solv = sld solvent // background = background (cm-1) // Ref: J. coll. inter. sci. (2010) vol. 343 (1) pp. 36-41. // //[FIXED]= radius_Lsph.width //[ORIENTATION_PARAMS]= class RaspBerryModel{ public: // Model parameters /// volf_Lsph // [DEFAULT]=volf_Lsph=0.05 Parameter volf_Lsph; /// radius_Lsph [A] // [DEFAULT]=radius_Lsph= 5000.0 [A] Parameter radius_Lsph; /// sld_Lsph [1/A^(2)] // [DEFAULT]=sld_Lsph= -4.0e-7 [1/A^(2)] Parameter sld_Lsph; /// volf_Ssph // [DEFAULT]=volf_Ssph=0.005 Parameter volf_Ssph; /// radius_Ssph [A] // [DEFAULT]=radius_Ssph= 100.0 [A] Parameter radius_Ssph; /// surfrac_Ssph // [DEFAULT]=surfrac_Ssph=0.4 Parameter surfrac_Ssph; /// sld_Ssph [1/A^(2)] // [DEFAULT]=sld_Ssph= 3.5e-6 [1/A^(2)] Parameter sld_Ssph; /// delta_Ssph [A] // [DEFAULT]=delta_Ssph= 0.0 Parameter delta_Ssph; /// sld_solv [1/A^(2)] // [DEFAULT]=sld_solv= 6.3e-6 [1/A^(2)] Parameter sld_solv; /// Incoherent Background [1/cm] // [DEFAULT]=background=0.0 [1/cm] Parameter background; // Constructor RaspBerryModel(); // Operators to get I(Q) double operator()(double q); double operator()(double qx, double qy); double calculate_ER(); double calculate_VR(); double evaluate_rphi(double q, double phi); }; double raspberry_kernel(double dp[], double q); double rasp_bes(double qval, double rad); #endif