static double form_volume(double length_a, double b2a_ratio, double c2a_ratio, double thickness) { double length_b = length_a * b2a_ratio; double length_c = length_a * c2a_ratio; double a_core = length_a - 2.0*thickness; double b_core = length_b - 2.0*thickness; double c_core = length_c - 2.0*thickness; double vol_core = a_core * b_core * c_core; double vol_total = length_a * length_b * length_c; double vol_shell = vol_total - vol_core; return vol_shell; } static double Iq(double q, double sld, double solvent_sld, double length_a, double b2a_ratio, double c2a_ratio, double thickness) { const double length_b = length_a * b2a_ratio; const double length_c = length_a * c2a_ratio; const double a_half = 0.5 * length_a; const double b_half = 0.5 * length_b; const double c_half = 0.5 * length_c; const double vol_total = length_a * length_b * length_c; const double vol_core = 8.0 * (a_half-thickness) * (b_half-thickness) * (c_half-thickness); //Integration limits to use in Gaussian quadrature const double v1a = 0.0; const double v1b = M_PI_2; //theta integration limits const double v2a = 0.0; const double v2b = M_PI_2; //phi integration limits double outer_sum = 0.0; for(int i=0; i