Changeset a807206 in sasmodels for sasmodels/models/elliptical_cylinder.c
- Timestamp:
- Sep 30, 2016 10:42:06 PM (7 years ago)
- Branches:
- master, core_shell_microgels, costrafo411, magnetic_model, release_v0.94, release_v0.95, ticket-1257-vesicle-product, ticket_1156, ticket_1265_superball, ticket_822_more_unit_tests
- Children:
- caddb14, 5031ca3
- Parents:
- 2222134
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/models/elliptical_cylinder.c
r40a87fa ra807206 1 double form_volume(double r _minor, double r_ratio, double length);2 double Iq(double q, double r _minor, double r_ratio, double length,1 double form_volume(double radius_minor, double r_ratio, double length); 2 double Iq(double q, double radius_minor, double r_ratio, double length, 3 3 double sld, double solvent_sld); 4 double Iqxy(double qx, double qy, double r _minor, double r_ratio, double length,4 double Iqxy(double qx, double qy, double radius_minor, double r_ratio, double length, 5 5 double sld, double solvent_sld, double theta, double phi, double psi); 6 6 7 7 8 double _elliptical_cylinder_kernel(double q, double r _minor, double r_ratio, double theta);8 double _elliptical_cylinder_kernel(double q, double radius_minor, double r_ratio, double theta); 9 9 10 double _elliptical_cylinder_kernel(double q, double r _minor, double r_ratio, double theta)10 double _elliptical_cylinder_kernel(double q, double radius_minor, double r_ratio, double theta) 11 11 { 12 12 // This is the function LAMBDA1^2 in Feigin's notation 13 13 // q is the q-value for the calculation (1/A) 14 // r _minor is the transformed radius"a" in Feigin's notation14 // radius_minor is the transformed radius"a" in Feigin's notation 15 15 // r_ratio is the ratio (major radius)/(minor radius) of the Ellipsoid [=] --- 16 16 // theta is the dummy variable of the integration … … 18 18 double retval,arg; 19 19 20 arg = q*r _minor*sqrt((1.0+r_ratio*r_ratio)/2+(1.0-r_ratio*r_ratio)*cos(theta)/2);20 arg = q*radius_minor*sqrt((1.0+r_ratio*r_ratio)/2+(1.0-r_ratio*r_ratio)*cos(theta)/2); 21 21 //retval = 2.0*J1(arg)/arg; 22 22 retval = sas_J1c(arg); … … 25 25 26 26 27 double form_volume(double r _minor, double r_ratio, double length)27 double form_volume(double radius_minor, double r_ratio, double length) 28 28 { 29 return M_PI * r _minor * r_minor * r_ratio * length;29 return M_PI * radius_minor * radius_minor * r_ratio * length; 30 30 } 31 31 32 double Iq(double q, double r _minor, double r_ratio, double length,32 double Iq(double q, double radius_minor, double r_ratio, double length, 33 33 double sld, double solvent_sld) { 34 34 … … 55 55 summj=0; 56 56 zi = ( Gauss76Z[i]*(vb-va) + va + vb )/2.0; //the "x" dummy 57 arg = r _minor*sqrt(1.0-zi*zi);57 arg = radius_minor*sqrt(1.0-zi*zi); 58 58 for(int j=0;j<nordj;j++) { 59 59 //20 gauss points for the inner integral … … 77 77 answer *= delrho*delrho; 78 78 79 const double vol = form_volume(r _minor, r_ratio, length);79 const double vol = form_volume(radius_minor, r_ratio, length); 80 80 return answer*vol*vol*1.0e-4; 81 81 } 82 82 83 83 84 double Iqxy(double qx, double qy, double r _minor, double r_ratio, double length,84 double Iqxy(double qx, double qy, double radius_minor, double r_ratio, double length, 85 85 double sld, double solvent_sld, double theta, double phi, double psi) { 86 86 const double _theta = theta * M_PI / 180.0; … … 139 139 } 140 140 141 const double r_major = r_ratio * r _minor;142 const double qr = q*sqrt( r_major*r_major*cos_nu*cos_nu + r _minor*r_minor*cos_mu*cos_mu );141 const double r_major = r_ratio * radius_minor; 142 const double qr = q*sqrt( r_major*r_major*cos_nu*cos_nu + radius_minor*radius_minor*cos_mu*cos_mu ); 143 143 const double qL = q*length*cos_val/2.0; 144 144 … … 159 159 160 160 const double k = 2.0 * Be * Si; 161 const double vol = form_volume(r _minor, r_ratio, length);161 const double vol = form_volume(radius_minor, r_ratio, length); 162 162 return (sld - solvent_sld) * (sld - solvent_sld) * k * k *vol*vol*1.0e-4; 163 163 }
Note: See TracChangeset
for help on using the changeset viewer.