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 | } |
---|