source: sasmodels/sasmodels/models/flexible_cylinder_elliptical.c @ 87bc707

core_shell_microgelscostrafo411magnetic_modelticket-1257-vesicle-productticket_1156ticket_1265_superballticket_822_more_unit_tests
Last change on this file since 87bc707 was 87bc707, checked in by Paul Kienzle <pkienzle@…>, 8 years ago

remove trivial Iqxy() functions; let generate.py create them automatically

  • Property mode set to 100644
File size: 1.9 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 axis_ratio, double sld, double solvent_sld);
4double flexible_cylinder_ex_kernel(double q, double length, double kuhn_length,
5                                double radius, double axis_ratio, double sld,
6                                double solvent_sld);
7double elliptical_crosssection(double q, double a, double b);
8
9double form_volume(double length, double kuhn_length, double radius)
10{
11    return 1.0;
12}
13
14double
15elliptical_crosssection(double q, double a, double b)
16{
17    double summ=0.0;
18
19    for(int i=0;i<N_POINTS_76;i++) {
20        double zi = ( Gauss76Z[i] + 1.0 )*M_PI/4.0;
21        double sn, cn;
22        SINCOS(zi, sn, cn);
23        double arg = q*sqrt(a*a*sn*sn+b*b*cn*cn);
24        double yyy = pow((double)sas_J1c(arg),2);
25        yyy *= Gauss76Wt[i];
26        summ += yyy;
27    }
28
29    summ /= 2.0;
30    return(summ);
31
32}
33
34double flexible_cylinder_ex_kernel(double q,
35          double length,
36          double kuhn_length,
37          double radius,
38          double axis_ratio,
39          double sld,
40          double solvent_sld)
41{
42
43    double flex,crossSect, cont;
44
45    cont = sld - solvent_sld;
46    crossSect = elliptical_crosssection(q,radius,(radius*axis_ratio));
47
48    flex = Sk_WR(q,length,kuhn_length);
49    flex *= crossSect;
50    flex *= M_PI*radius*radius*axis_ratio*axis_ratio*length;
51    flex *= cont*cont;
52    flex *= 1.0e-4;
53
54    return flex;
55}
56
57double Iq(double q,
58          double length,
59          double kuhn_length,
60          double radius,
61          double axis_ratio,
62          double sld,
63          double solvent_sld)
64{
65
66    double result = flexible_cylinder_ex_kernel(q,
67                    length,
68                    kuhn_length,
69                    radius,
70                    axis_ratio,
71                    sld,
72                    solvent_sld);
73
74    return result;
75}
76
Note: See TracBrowser for help on using the repository browser.