Changeset ee60aa7 in sasmodels for sasmodels/models/core_multi_shell.c


Ignore:
Timestamp:
Sep 10, 2018 2:16:46 PM (6 years ago)
Author:
Paul Kienzle <pkienzle@…>
Branches:
master, core_shell_microgels, magnetic_model, ticket-1257-vesicle-product, ticket_1156, ticket_1265_superball, ticket_822_more_unit_tests
Children:
d299327
Parents:
3f818b2
Message:

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sasmodels/models/core_multi_shell.c

    ra94046f ree60aa7  
    66  const double vol = M_4PI_3 * cube(r); 
    77  return sld * vol * bes; 
    8 } 
    9  
    10 static double 
    11 form_volume(double core_radius, double fp_n, double thickness[]) 
    12 { 
    13   double r = core_radius; 
    14   int n = (int)(fp_n+0.5); 
    15   for (int i=0; i < n; i++) { 
    16     r += thickness[i]; 
    17   } 
    18   return M_4PI_3 * cube(r); 
    198} 
    209 
     
    3120 
    3221static double 
     22form_volume(double core_radius, double fp_n, double thickness[]) 
     23{ 
     24  return M_4PI_3 * cube(outer_radius(core_radius, fp_n, thickness)); 
     25} 
     26 
     27static double 
    3328effective_radius(int mode, double core_radius, double fp_n, double thickness[]) 
    34 // this seems regardless to always give the result for outer radius for n=1 shells; why?? 
    35 // printf shows fp_n is always 1, not 0,1,2 
    3629{ 
    37 //        printf("fp_n =%g \n",fp_n); 
    38         if (mode == 1) { 
    39         double r = core_radius; 
    40         int n = (int)(fp_n+0.5); 
    41         if ( n > 0) { 
    42             for (int i=0; i < n; i++) { 
    43                 r += thickness[i]; 
    44             } 
    45         } 
    46         return r; 
    47         //return outer_radius(core_radius,fp_n,thickness); 
    48     } else { 
    49         return core_radius; 
    50     } 
     30  switch (mode) { 
     31  case 1: // outer radius 
     32    return outer_radius(core_radius, fp_n, thickness); 
     33  case 2: // core radius 
     34    return core_radius; 
     35  } 
    5136} 
    5237 
Note: See TracChangeset for help on using the changeset viewer.