Changeset d2bb604 in sasmodels for sasmodels/models/flexible_cylinder.c


Ignore:
Timestamp:
Apr 5, 2016 2:34:30 PM (8 years ago)
Author:
Paul Kienzle <pkienzle@…>
Branches:
master, core_shell_microgels, costrafo411, magnetic_model, release_v0.94, release_v0.95, ticket-1257-vesicle-product, ticket_1156, ticket_1265_superball, ticket_822_more_unit_tests
Children:
21b116f
Parents:
1e2a1ba
Message:

fix models so all dll tests pass

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sasmodels/models/flexible_cylinder.c

    r43b7eea rd2bb604  
    1 double form_volume(double length, double kuhn_length, double radius); 
    2 double Iq(double q, double length, double kuhn_length, double radius, 
    3           double sld, double solvent_sld); 
    4 double Iqxy(double qx, double qy, double length, double kuhn_length, 
    5             double radius, double sld, double solvent_sld); 
    6 double flexible_cylinder_kernel(double q, double length, double kuhn_length, 
    7                                 double radius, double sld, double solvent_sld); 
    8  
    9  
    10 double form_volume(double length, double kuhn_length, double radius) 
     1static double 
     2form_volume(length, kuhn_length, radius) 
    113{ 
    12  
    13       return 0.0; 
     4    return 1.; 
    145} 
    156 
    16 double flexible_cylinder_kernel(double q, 
    17           double length, 
    18           double kuhn_length, 
    19           double radius, 
    20           double sld, 
    21           double solvent_sld) 
     7static double 
     8Iq(double q, 
     9   double length, 
     10   double kuhn_length, 
     11   double radius, 
     12   double sld, 
     13   double solvent_sld) 
    2214{ 
    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 = sas_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; 
     15    const double contrast = sld - solvent_sld; 
     16    const double cross_section = sas_J1c(q*radius); 
     17    const double volume = M_PI*radius*radius*length; 
     18    const double flex = Sk_WR(q, length, kuhn_length); 
     19    return 1.0e-4 * volume * square(contrast*cross_section) * flex; 
    3420} 
    35  
    36 double 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  
    48 double 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 TracChangeset for help on using the changeset viewer.