Changeset 6d96b66 in sasmodels for sasmodels/models/mass_surface_fractal.c
- Timestamp:
- Oct 18, 2016 10:32:18 PM (8 years ago)
- Branches:
- master, core_shell_microgels, costrafo411, magnetic_model, ticket-1257-vesicle-product, ticket_1156, ticket_1265_superball, ticket_822_more_unit_tests
- Children:
- f0afad2
- Parents:
- 3e8ea5d
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/models/mass_surface_fractal.c
r3a48772 r6d96b66 1 double form_volume(double radius); 2 3 double Iq(double q, 4 double fractal_dim_mass, 5 double fractal_dim_surf, 6 double rg_cluster, 7 double rg_primary); 8 9 static double _mass_surface_fractal_kernel(double q, 1 #define INVALID(p) (p.fractal_dim_mass + p.fractal_dim_surf > 6.) 2 static double 3 Iq(double q, 10 4 double fractal_dim_mass, 11 5 double fractal_dim_surf, … … 14 8 { 15 9 //computation 16 double tot_dim = 6.0 - fractal_dim_surf - fractal_dim_mass; 17 fractal_dim_mass /= 2.0; 18 tot_dim /= 2.0; 10 const double Dm = 0.5*fractal_dim_mass; 11 const double Dt = 0.5*(6.0 - (fractal_dim_mass + fractal_dim_surf)); 19 12 20 double rc_norm = rg_cluster * rg_cluster / (3.0 * fractal_dim_mass); 21 double rp_norm = rg_primary * rg_primary / (3.0 * tot_dim); 13 const double t1 = Dm==0. ? 1.0 : pow(1.0 + square(q*rg_cluster)/(3.0*Dm), -Dm); 14 const double t2 = Dt==0. ? 1.0 : pow(1.0 + square(q*rg_primary)/(3.0*Dt), -Dt); 15 const double form = t1*t2; 22 16 23 //x for P 24 double x_val1 = 1.0 + q * q * rc_norm; 25 double x_val2 = 1.0 + q * q * rp_norm; 26 27 double inv_form = pow(x_val1, fractal_dim_mass) * pow(x_val2, tot_dim); 28 29 //another singular 30 if (inv_form == 0.0) return 0.0; 31 32 double form_factor = 1.0; 33 form_factor /= inv_form; 34 35 return (form_factor); 17 return form; 36 18 } 37 double form_volume(double radius){38 39 return M_4PI_3*radius*radius*radius;40 }41 42 double Iq(double q,43 double fractal_dim_mass,44 double fractal_dim_surf,45 double rg_cluster,46 double rg_primary)47 {48 return _mass_surface_fractal_kernel(q,49 fractal_dim_mass,50 fractal_dim_surf,51 rg_cluster,52 rg_primary);53 }
Note: See TracChangeset
for help on using the changeset viewer.