Changeset f728001 in sasmodels for sasmodels/models/sc_paracrystal.c
- Timestamp:
- Oct 23, 2017 12:34:11 AM (7 years ago)
- Branches:
- master, core_shell_microgels, magnetic_model, ticket-1257-vesicle-product, ticket_1156, ticket_1265_superball, ticket_822_more_unit_tests
- Children:
- ea60e08
- Parents:
- 31eea1f
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/models/sc_paracrystal.c
rbecded3 rf728001 2 2 sc_Zq(double qa, double qb, double qc, double dnn, double d_factor) 3 3 { 4 // Equations from Matsuoka 9-10-11, multiplied by |q| 4 5 const double a1 = qa; 5 6 const double a2 = qb; 6 7 const double a3 = qc; 7 8 8 // Numerator: (1 - exp(a)^2)^3 9 // => (-(exp(2a) - 1))^3 10 // => -expm1(2a)^3 11 // Denominator: prod(1 - 2 cos(d ak) exp(a) + exp(2a)) 12 // => prod(exp(a)^2 - 2 cos(d ak) exp(a) + 1) 13 // => prod((exp(a) - 2 cos(d ak)) * exp(a) + 1) 9 // Matsuoka 13-14-15 10 // Z_k numerator: 1 - exp(a)^2 11 // Z_k denominator: 1 - 2 cos(d a_k) exp(a) + exp(2a) 12 // Rewriting numerator 13 // => -(exp(2a) - 1) 14 // => -expm1(2a) 15 // Rewriting denominator 16 // => exp(a)^2 - 2 cos(d ak) exp(a) + 1) 17 // => (exp(a) - 2 cos(d ak)) * exp(a) + 1 14 18 const double arg = -0.5*square(dnn*d_factor)*(a1*a1 + a2*a2 + a3*a3); 15 19 const double exp_arg = exp(arg);
Note: See TracChangeset
for help on using the changeset viewer.