Changeset ee60aa7 in sasmodels for sasmodels/models/hollow_rectangular_prism_thin_walls.c
- Timestamp:
- Sep 10, 2018 2:16:46 PM (6 years ago)
- 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
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/models/hollow_rectangular_prism_thin_walls.c
rd277229 ree60aa7 1 // TODO: interface to form_volume/shell_volume not yet settled 1 2 static double 2 form_volume(double length_a, double b2a_ratio, double c2a_ratio)3 shell_volume(double *total, double length_a, double b2a_ratio, double c2a_ratio) 3 4 { 4 5 double length_b = length_a * b2a_ratio; 5 6 double length_c = length_a * c2a_ratio; 6 7 double vol_shell = 2.0 * (length_a*length_b + length_a*length_c + length_b*length_c); 8 *total = length_a * length_b * length_c; 7 9 return vol_shell; 8 10 } 9 11 10 12 static double 13 form_volume(double length_a, double b2a_ratio, double c2a_ratio) 14 { 15 double total; 16 return shell_volume(&total, length_a, b2a_ratio, c2a_ratio); 17 } 18 19 20 static double 11 21 effective_radius(int mode, double length_a, double b2a_ratio, double c2a_ratio) 12 22 { 13 if (mode == 1) { 23 switch (mode) { 24 case 1: // equivalent sphere 14 25 return cbrt(0.75*cube(length_a)*b2a_ratio*c2a_ratio/M_PI); 15 } else if (mode == 2) {26 case 2: // half length_a 16 27 return 0.5 * length_a; 17 } else if (mode == 3) {28 case 3: // half length_b 18 29 return 0.5 * length_a*b2a_ratio; 19 } else if (mode == 4) {30 case 4: // half length_c 20 31 return 0.5 * length_a*c2a_ratio; 21 } else if (mode == 5) {32 case 5: // equivalent outer circular cross-section 22 33 return length_a*sqrt(b2a_ratio/M_PI); 23 } else if (mode == 6) {34 case 6: // half ab diagonal 24 35 return 0.5*sqrt(square(length_a) * (1.0 + square(b2a_ratio))); 25 } else {36 case 7: // half diagonal 26 37 return 0.5*sqrt(square(length_a) * (1.0 + square(b2a_ratio) + square(c2a_ratio))); 27 38 }
Note: See TracChangeset
for help on using the changeset viewer.