Ignore:
Timestamp:
Sep 30, 2016 9:07:16 AM (8 years ago)
Author:
butler
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:
a807206
Parents:
6e5b2a7
Message:

Updating parameter names regarding #649

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sasmodels/models/core_shell_parallelepiped.c

    rabdd01c r2222134  
    1 double form_volume(double a_side, double b_side, double c_side,  
    2                    double arim_thickness, double brim_thickness, double crim_thickness); 
     1double form_volume(double length_a, double length_b, double length_c,  
     2                   double thick_rim_a, double thick_rim_b, double thick_rim_c); 
    33double Iq(double q, double core_sld, double arim_sld, double brim_sld, double crim_sld, 
    4           double solvent_sld, double a_side, double b_side, double c_side, 
    5           double arim_thickness, double brim_thickness, double crim_thickness); 
     4          double solvent_sld, double length_a, double length_b, double length_c, 
     5          double thick_rim_a, double thick_rim_b, double thick_rim_c); 
    66double Iqxy(double qx, double qy, double core_sld, double arim_sld, double brim_sld, 
    7             double crim_sld, double solvent_sld, double a_side, double b_side, 
    8             double c_side, double arim_thickness, double brim_thickness, 
    9             double crim_thickness, double theta, double phi, double psi); 
    10  
    11 double form_volume(double a_side, double b_side, double c_side,  
    12                    double arim_thickness, double brim_thickness, double crim_thickness) 
     7            double crim_sld, double solvent_sld, double length_a, double length_b, 
     8            double length_c, double thick_rim_a, double thick_rim_b, 
     9            double thick_rim_c, double theta, double phi, double psi); 
     10 
     11double form_volume(double length_a, double length_b, double length_c,  
     12                   double thick_rim_a, double thick_rim_b, double thick_rim_c) 
    1313{ 
    14     //return a_side * b_side * c_side; 
    15     return a_side * b_side * c_side +  
    16            2.0 * arim_thickness * b_side * c_side +  
    17            2.0 * brim_thickness * a_side * c_side + 
    18            2.0 * crim_thickness * a_side * b_side; 
     14    //return length_a * length_b * length_c; 
     15    return length_a * length_b * length_c +  
     16           2.0 * thick_rim_a * length_b * length_c +  
     17           2.0 * thick_rim_b * length_a * length_c + 
     18           2.0 * thick_rim_c * length_a * length_b; 
    1919} 
    2020 
     
    2525    double crim_sld, 
    2626    double solvent_sld, 
    27     double a_side, 
    28     double b_side, 
    29     double c_side, 
    30     double arim_thickness, 
    31     double brim_thickness, 
    32     double crim_thickness) 
     27    double length_a, 
     28    double length_b, 
     29    double length_c, 
     30    double thick_rim_a, 
     31    double thick_rim_b, 
     32    double thick_rim_c) 
    3333{ 
    3434    // Code converted from functions CSPPKernel and CSParallelepiped in libCylinder.c_scaled 
     
    3636     
    3737    double t1, t2, t3, t4, tmp, answer;    
    38     double mu = q * b_side; 
     38    double mu = q * length_b; 
    3939     
    4040    //calculate volume before rescaling (in original code, but not used) 
    41     //double vol = form_volume(a_side, b_side, c_side, arim_thickness, brim_thickness, crim_thickness);          
    42     //double vol = a_side * b_side * c_side +  
    43     //       2.0 * arim_thickness * b_side * c_side +  
    44     //       2.0 * brim_thickness * a_side * c_side + 
    45     //       2.0 * crim_thickness * a_side * b_side; 
     41    //double vol = form_volume(length_a, length_b, length_c, thick_rim_a, thick_rim_b, thick_rim_c);             
     42    //double vol = length_a * length_b * length_c +  
     43    //       2.0 * thick_rim_a * length_b * length_c +  
     44    //       2.0 * thick_rim_b * length_a * length_c + 
     45    //       2.0 * thick_rim_c * length_a * length_b; 
    4646     
    4747    // Scale sides by B 
    48     double a_scaled = a_side / b_side; 
    49     double c_scaled = c_side / b_side; 
     48    double a_scaled = length_a / length_b; 
     49    double c_scaled = length_c / length_b; 
    5050 
    5151    // DelRho values (note that drC is not used later)        
     
    7474            double mudum = mu * sqrt(1.0-sigma*sigma); 
    7575 
    76                 double Vin = a_side * b_side * c_side; 
    77                 //double Vot = (a_side * b_side * c_side + 
    78             //            2.0 * arim_thickness * b_side * c_side + 
    79             //            2.0 * a_side * brim_thickness * c_side + 
    80             //            2.0 * a_side * b_side * crim_thickness); 
    81                 double V1 = (2.0 * arim_thickness * b_side * c_side);    // incorrect V1 (aa*bb*cc+2*ta*bb*cc) 
    82                 double V2 = (2.0 * a_side * brim_thickness * c_side);    // incorrect V2(aa*bb*cc+2*aa*tb*cc) 
     76                double Vin = length_a * length_b * length_c; 
     77                //double Vot = (length_a * length_b * length_c + 
     78            //            2.0 * thick_rim_a * length_b * length_c + 
     79            //            2.0 * length_a * thick_rim_b * length_c + 
     80            //            2.0 * length_a * length_b * thick_rim_c); 
     81                double V1 = (2.0 * thick_rim_a * length_b * length_c);    // incorrect V1 (aa*bb*cc+2*ta*bb*cc) 
     82                double V2 = (2.0 * length_a * thick_rim_b * length_c);    // incorrect V2(aa*bb*cc+2*aa*tb*cc) 
    8383         
    8484            // ta and tb correspond to the definitions in CSPPKernel, but they don't make sense to me (MG) 
     
    8686            // while in cspkernel in csparallelepiped.cpp (used for the 2D), all the definitions 
    8787            // for ta, tb, tc use also A + 2*rim_thickness (but not scaled by B!!!)             
    88             double ta = (a_scaled+2.0*arim_thickness)/b_side;  
    89             double tb = (a_scaled+2.0*brim_thickness)/b_side; 
     88            double ta = (a_scaled+2.0*thick_rim_a)/length_b;  
     89            double tb = (a_scaled+2.0*thick_rim_b)/length_b; 
    9090     
    9191                double arg1 = (0.5*mudum*a_scaled) * sin(0.5*M_PI*uu); 
     
    160160    double crim_sld, 
    161161    double solvent_sld, 
    162     double a_side, 
    163     double b_side, 
    164     double c_side, 
    165     double arim_thickness, 
    166     double brim_thickness, 
    167     double crim_thickness, 
     162    double length_a, 
     163    double length_b, 
     164    double length_c, 
     165    double thick_rim_a, 
     166    double thick_rim_b, 
     167    double thick_rim_c, 
    168168    double theta, 
    169169    double phi, 
     
    217217        double drB = brim_sld-solvent_sld; 
    218218        double drC = crim_sld-solvent_sld; 
    219         double Vin = a_side * b_side * c_side; 
     219        double Vin = length_a * length_b * length_c; 
    220220    // As for the 1D case, Vot is not used 
    221         //double Vot = (a_side * b_side * c_side + 
    222     //              2.0 * arim_thickness * b_side * c_side + 
    223     //              2.0 * a_side * brim_thickness * c_side + 
    224     //              2.0 * a_side * b_side * crim_thickness); 
    225         double V1 = (2.0 * arim_thickness * b_side * c_side);    // incorrect V1 (aa*bb*cc+2*ta*bb*cc) 
    226         double V2 = (2.0 * a_side * brim_thickness * c_side);    // incorrect V2(aa*bb*cc+2*aa*tb*cc) 
    227     double V3 = (2.0 * a_side * b_side * crim_thickness); 
     221        //double Vot = (length_a * length_b * length_c + 
     222    //              2.0 * thick_rim_a * length_b * length_c + 
     223    //              2.0 * length_a * thick_rim_b * length_c + 
     224    //              2.0 * length_a * length_b * thick_rim_c); 
     225        double V1 = (2.0 * thick_rim_a * length_b * length_c);    // incorrect V1 (aa*bb*cc+2*ta*bb*cc) 
     226        double V2 = (2.0 * length_a * thick_rim_b * length_c);    // incorrect V2(aa*bb*cc+2*aa*tb*cc) 
     227    double V3 = (2.0 * length_a * length_b * thick_rim_c); 
    228228    // The definitions of ta, tb, tc are not the same as in the 1D case because there is no 
    229     // the scaling by B. The use of a_side for the 3 of them seems clearly a mistake to me, 
     229    // the scaling by B. The use of length_a for the 3 of them seems clearly a mistake to me, 
    230230    // but for the moment I let it like this until understanding better the code. 
    231         double ta = a_side + 2.0*arim_thickness; 
    232     double tb = a_side + 2.0*brim_thickness; 
    233     double tc = a_side + 2.0*crim_thickness; 
     231        double ta = length_a + 2.0*thick_rim_a; 
     232    double tb = length_a + 2.0*thick_rim_b; 
     233    double tc = length_a + 2.0*thick_rim_c; 
    234234    //handle arg=0 separately, as sin(t)/t -> 1 as t->0 
    235     double argA = 0.5*q*a_side*cos_val_a; 
    236     double argB = 0.5*q*b_side*cos_val_b; 
    237     double argC = 0.5*q*c_side*cos_val_c; 
     235    double argA = 0.5*q*length_a*cos_val_a; 
     236    double argB = 0.5*q*length_b*cos_val_b; 
     237    double argC = 0.5*q*length_c*cos_val_c; 
    238238    double argtA = 0.5*q*ta*cos_val_a; 
    239239    double argtB = 0.5*q*tb*cos_val_b; 
Note: See TracChangeset for help on using the changeset viewer.