source: sasmodels/sasmodels/models/fractal_core_shell.c @ 2c74c11

core_shell_microgelscostrafo411magnetic_modelrelease_v0.94release_v0.95ticket-1257-vesicle-productticket_1156ticket_1265_superballticket_822_more_unit_tests
Last change on this file since 2c74c11 was 2c74c11, checked in by Paul Kienzle <pkienzle@…>, 8 years ago

implicit Iqxy; fix divide by 0 for q=0

  • Property mode set to 100644
File size: 1.2 KB
Line 
1double form_volume(double radius, double thickness);
2
3double Iq(double q,
4          double radius,
5          double thickness,
6          double core_sld,
7          double shell_sld,
8          double solvent_sld,
9          double volfraction,
10          double frac_dim,
11          double cor_length);
12
13double form_volume(double radius, double thickness)
14{
15    return 4.0 * M_PI / 3.0 * pow((radius + thickness), 3);
16}
17
18double Iq(double q,
19          double radius,
20          double thickness,
21          double core_sld,
22          double shell_sld,
23          double solvent_sld,
24          double volfraction,
25          double frac_dim,
26          double cor_length) {
27
28
29   double intensity = core_shell_kernel(q,
30                              radius,
31                              thickness,
32                              core_sld,
33                              shell_sld,
34                              solvent_sld);
35    //calculate S(q)
36    double frac_1 = frac_dim-1.0;
37    double qr = q*radius;
38
39    double t1 = frac_dim*sas_gamma(frac_1)*sin(frac_1*atan(q*cor_length));
40    double t2 = (1.0 + 1.0/(q*cor_length)/(q*cor_length));
41    double t3 = pow(qr, frac_dim) * pow(t2, (frac_1/2.0));
42    double sq = t1/t3;
43    sq += 1.0;
44
45    return sq*intensity*volfraction;
46}
47
Note: See TracBrowser for help on using the repository browser.