source: sasmodels/sasmodels/models/fuzzy_sphere.c @ ee60aa7

core_shell_microgelsmagnetic_modelticket-1257-vesicle-productticket_1156ticket_1265_superballticket_822_more_unit_tests
Last change on this file since ee60aa7 was ee60aa7, checked in by Paul Kienzle <pkienzle@…>, 6 years ago

clean up effective radius functions; improve mono_gauss_coil accuracy; start moving VR into C

  • Property mode set to 100644
File size: 750 bytes
Line 
1static double form_volume(double radius, double fuzziness)
2{
3    return M_4PI_3*cube(radius);
4}
5
6static double
7effective_radius(int mode, double radius, double fuzziness)
8{
9    switch (mode) {
10    case 1: // radius
11        return radius;
12    case 2: // radius + fuzziness
13        return radius + fuzziness;
14    }
15}
16
17static void Fq(double q, double *F1, double *F2, double sld, double sld_solvent,
18               double radius, double fuzziness)
19{
20    const double qr = q*radius;
21    const double bes = sas_3j1x_x(qr);
22    const double qf = exp(-0.5*square(q*fuzziness));
23    const double contrast = (sld - sld_solvent);
24    const double form = contrast * form_volume(radius,fuzziness) * bes * qf;
25    *F1 = 1.0e-2*form;
26    *F2 = 1.0e-4*form*form;
27}
Note: See TracBrowser for help on using the repository browser.