[edc9f8d] | 1 | double form_volume(double radius, double thickness); |
---|
| 2 | double Iq(double q, double radius, double thickness, double core_sld, double shell_sld, double solvent_sld); |
---|
| 3 | double Iqxy(double qx, double qy, double radius, double thickness, double core_sld, double shell_sld, double solvent_sld); |
---|
| 4 | |
---|
| 5 | |
---|
| 6 | double Iq(double q, double radius, double thickness, double core_sld, double shell_sld, double solvent_sld) { |
---|
| 7 | // Core first, then add in shell |
---|
| 8 | const double core_qr = q * radius; |
---|
| 9 | const double core_contrast = core_sld - shell_sld; |
---|
| 10 | const double core_bes = sph_j1c(core_qr); |
---|
| 11 | const double core_volume = 4.0 * M_PI / 3.0 * radius * radius * radius; |
---|
| 12 | double f = core_volume * core_bes * core_contrast; |
---|
| 13 | |
---|
| 14 | // Now the shell |
---|
| 15 | const double shell_qr = q * (radius + thickness); |
---|
| 16 | const double shell_contrast = shell_sld - solvent_sld; |
---|
| 17 | const double shell_bes = sph_j1c(shell_qr); |
---|
| 18 | const double shell_volume = 4.0 * M_PI / 3.0 * pow((radius + thickness), 3); |
---|
| 19 | f += shell_volume * shell_bes * shell_contrast; |
---|
| 20 | return f * f * 1.0e-4; |
---|
| 21 | } |
---|
| 22 | |
---|
| 23 | double Iqxy(double qx, double qy, double radius, double thickness, double core_sld, double shell_sld, double solvent_sld) { |
---|
| 24 | const double q = sqrt(qx*qx+qy*qy); |
---|
| 25 | return Iq(q, radius, thickness, core_sld, shell_sld, solvent_sld); |
---|
| 26 | } |
---|
| 27 | |
---|
| 28 | double form_volume(double radius, double thickness) |
---|
| 29 | { |
---|
| 30 | return 4.0 * M_PI / 3.0 * pow((radius + thickness), 3); |
---|
| 31 | } |
---|