Changeset ad90df9 in sasmodels for sasmodels/models/lib/sphere_form.c
- Timestamp:
- Mar 1, 2016 8:23:21 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:
- e6f1410, 7d4b2ae
- Parents:
- 50e1e40
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/models/lib/sphere_form.c
r9aac25d rad90df9 1 double 1 inline double 2 sphere_volume(double radius) 3 { 4 return M_4PI_3*cube(radius); 5 } 6 7 inline double 2 8 sphere_form(double q, double radius, double sld, double solvent_sld) 3 9 { 4 const double qr = q*radius; 5 double sn, cn; 6 SINCOS(qr, sn, cn); 7 const double vol = 1.333333333333333*M_PI*radius*radius*radius; 8 const double bes = (qr == 0.0 ? 1.0 : 3.0*(sn-qr*cn)/(qr*qr*qr)); 9 const double fq = bes * (sld - solvent_sld)*vol; 10 return 1.0e-4*fq*fq; 10 const double fq = sphere_volume(radius) * sph_j1c(q*radius); 11 const double contrast = (sld - solvent_sld); 12 return 1.0e-4*square(contrast * fq); 11 13 } 12 13 // Do we even need the paracrystal form?14 // The only difference is the return value at r=015 double16 sphere_form_paracrystal(double q, double radius, double delrho)17 {18 const double qr = q*radius;19 const double vol = 1.333333333333333*M_PI*radius*radius*radius;20 const double f = vol*delrho*delrho*1.0e-4;21 double sn, cn;22 SINCOS(qr, sn, cn);23 const double bes = (qr == 0.0 ? f : 3.0*(sn-qr*cn)/(qr*qr*qr));24 const double fq = bes*delrho*vol;25 return fq*fq * 1.0e-4;26 }
Note: See TracChangeset
for help on using the changeset viewer.