source: sasmodels/sasmodels/models/core_multi_shell.c @ 6cefbc9

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

working core multi shell

  • Property mode set to 100644
File size: 1.0 KB
Line 
1
2static double
3f_constant(double q, double r, double sld)
4{
5  const double bes = sph_j1c(q * r);
6  const double vol = M_4PI_3 * cube(r);
7  return sld * vol * bes;
8}
9
10double
11form_volume(double core_radius, double n, double thickness[]);
12double
13form_volume(double core_radius, double n, double thickness[])
14{
15  double r = core_radius;
16  for (int i=0; i < n; i++) {
17    r += thickness[i];
18  }
19  return M_4PI_3 * cube(r);
20}
21
22double
23Iq(double q, double core_sld, double core_radius,
24   double solvent_sld, double num_shells, double sld[], double thickness[]);
25double
26Iq(double q, double core_sld, double core_radius,
27   double solvent_sld, double num_shells, double sld[], double thickness[])
28{
29  const int n = (int)ceil(num_shells);
30  double f, r, last_sld;
31  r = core_radius;
32  last_sld = core_sld;
33  f = 0.;
34  for (int i=0; i<n; i++) {
35    f += M_4PI_3 * cube(r) * (sld[i] - last_sld) * sph_j1c(q*r);
36    last_sld = sld[i];
37    r += thickness[i];
38  }
39  f += M_4PI_3 * cube(r) * (solvent_sld - last_sld) * sph_j1c(q*r);
40  return f * f * 1.0e-4;
41}
Note: See TracBrowser for help on using the repository browser.