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

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

new normalization code requires form_volume=1.0 if there is no volume normalization

  • 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    return 1.0;
13}
14
15double flexible_cylinder_kernel(double q,
16          double length,
17          double kuhn_length,
18          double radius,
19          double sld,
20          double solvent_sld)
21{
22
23    const double cont = sld-solvent_sld;
24    const double qr = q*radius;
25    //const double crossSect = (2.0*J1(qr)/qr)*(2.0*J1(qr)/qr);
26    const double crossSect = sas_J1c(qr);
27    double flex = Sk_WR(q,length,kuhn_length);
28    flex *= crossSect*crossSect;
29    flex *= M_PI*radius*radius*length;
30    flex *= cont*cont;
31    flex *= 1.0e-4;
32    return flex;
33}
34
35double Iq(double q,
36          double length,
37          double kuhn_length,
38          double radius,
39          double sld,
40          double solvent_sld)
41{
42
43    double result = flexible_cylinder_kernel(q, length, kuhn_length, radius, sld, solvent_sld);
44    return result;
45}
46
47double Iqxy(double qx, double qy,
48            double length,
49            double kuhn_length,
50            double radius,
51            double sld,
52            double solvent_sld)
53{
54    double q;
55    q = sqrt(qx*qx+qy*qy);
56    double result = flexible_cylinder_kernel(q, length, kuhn_length, radius, sld, solvent_sld);
57
58    return result;
59}
Note: See TracBrowser for help on using the repository browser.