source: sasmodels/sasmodels/models/flexible_cylinder.c @ e7678b2

core_shell_microgelscostrafo411magnetic_modelrelease_v0.94release_v0.95ticket-1257-vesicle-productticket_1156ticket_1265_superballticket_822_more_unit_tests
Last change on this file since e7678b2 was e7678b2, checked in by piotr, 8 years ago

Code review from PAK

  • Property mode set to 100644
File size: 1.7 KB
Line 
1double form_volume(double length, double kuhn_length, double radius);
2double Iq(double q, double length, double kuhn_length, double radius,
3          double sld, double solvent_sld);
4double Iqxy(double qx, double qy, double length, double kuhn_length,
5            double radius, double sld, double solvent_sld);
6double flexible_cylinder_kernel(double q, double length, double kuhn_length,
7                                double radius, double sld, double solvent_sld);
8
9
10double form_volume(double length, double kuhn_length, double radius)
11{
12
13      return 0.0;
14}
15
16double flexible_cylinder_kernel(double q,
17          double length,
18          double kuhn_length,
19          double radius,
20          double sld,
21          double solvent_sld)
22{
23
24    const double cont = sld-solvent_sld;
25    const double qr = q*radius;
26    //const double crossSect = (2.0*J1(qr)/qr)*(2.0*J1(qr)/qr);
27    const double crossSect = J1c(qr);
28    double flex = Sk_WR(q,length,kuhn_length);
29    flex *= crossSect*crossSect;
30    flex *= M_PI*radius*radius*length;
31    flex *= cont*cont;
32    flex *= 1.0e-4;
33    return flex;
34}
35
36double Iq(double q,
37          double length,
38          double kuhn_length,
39          double radius,
40          double sld,
41          double solvent_sld)
42{
43
44    double result = flexible_cylinder_kernel(q, length, kuhn_length, radius, sld, solvent_sld);
45    return result;
46}
47
48double Iqxy(double qx, double qy,
49            double length,
50            double kuhn_length,
51            double radius,
52            double sld,
53            double solvent_sld)
54{
55    double q;
56    q = sqrt(qx*qx+qy*qy);
57    double result = flexible_cylinder_kernel(q, length, kuhn_length, radius, sld, solvent_sld);
58
59    return result;
60}
Note: See TracBrowser for help on using the repository browser.