Changeset d2bb604 in sasmodels for sasmodels/models/flexible_cylinder.c
- Timestamp:
- Apr 5, 2016 2:34:30 PM (8 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:
- 21b116f
- Parents:
- 1e2a1ba
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/models/flexible_cylinder.c
r43b7eea rd2bb604 1 double form_volume(double length, double kuhn_length, double radius); 2 double Iq(double q, double length, double kuhn_length, double radius, 3 double sld, double solvent_sld); 4 double Iqxy(double qx, double qy, double length, double kuhn_length, 5 double radius, double sld, double solvent_sld); 6 double flexible_cylinder_kernel(double q, double length, double kuhn_length, 7 double radius, double sld, double solvent_sld); 8 9 10 double form_volume(double length, double kuhn_length, double radius) 1 static double 2 form_volume(length, kuhn_length, radius) 11 3 { 12 13 return 0.0; 4 return 1.; 14 5 } 15 6 16 double flexible_cylinder_kernel(double q, 17 double length, 18 double kuhn_length, 19 double radius, 20 double sld, 21 double solvent_sld) 7 static double 8 Iq(double q, 9 double length, 10 double kuhn_length, 11 double radius, 12 double sld, 13 double solvent_sld) 22 14 { 23 24 const double cont = sld-solvent_sld; 25 const double qr = q*radius; 26 //const double crossSect = (2.0*J1(qr)/qr)*(2.0*J1(qr)/qr); 27 const double crossSect = sas_J1c(qr); 28 double flex = Sk_WR(q,length,kuhn_length); 29 flex *= crossSect*crossSect; 30 flex *= M_PI*radius*radius*length; 31 flex *= cont*cont; 32 flex *= 1.0e-4; 33 return flex; 15 const double contrast = sld - solvent_sld; 16 const double cross_section = sas_J1c(q*radius); 17 const double volume = M_PI*radius*radius*length; 18 const double flex = Sk_WR(q, length, kuhn_length); 19 return 1.0e-4 * volume * square(contrast*cross_section) * flex; 34 20 } 35 36 double Iq(double q,37 double length,38 double kuhn_length,39 double radius,40 double sld,41 double solvent_sld)42 {43 44 double result = flexible_cylinder_kernel(q, length, kuhn_length, radius, sld, solvent_sld);45 return result;46 }47 48 double Iqxy(double qx, double qy,49 double length,50 double kuhn_length,51 double radius,52 double sld,53 double solvent_sld)54 {55 double q;56 q = sqrt(qx*qx+qy*qy);57 double result = flexible_cylinder_kernel(q, length, kuhn_length, radius, sld, solvent_sld);58 59 return result;60 }
Note: See TracChangeset
for help on using the changeset viewer.