1 | #if !defined(masssurfacefractal_h) |
---|
2 | #define masssurfacefractal_h |
---|
3 | #include "parameters.hh" |
---|
4 | |
---|
5 | /** |
---|
6 | * Structure definition for sphere parameters |
---|
7 | */ |
---|
8 | //[PYTHONCLASS] = MassSurfaceFractal |
---|
9 | //[DESCRIPTION] =<text> The scattering intensity I(x) = scale*P(x) + background, |
---|
10 | // p(x)= {[1+(x^2*a)]^(Dm/2) * [1+(x^2*b)]^(6-Ds-Dm)/2}^(-1) |
---|
11 | // a = Rg^2/(3*Dm/2) |
---|
12 | // b = rg^2/(3*(6-Ds-Dm)/2) |
---|
13 | // scale = scale factor * N*Volume^2*contrast^2 |
---|
14 | // mass_dim = Dm (mass fractal dimension) |
---|
15 | // surface_dim = Ds |
---|
16 | // cluster_rg = Rg |
---|
17 | // primary_rg = rg |
---|
18 | // background = background |
---|
19 | // Ref: Schmidt, J Appl Cryst, eq(19), (1991), 24, 414-435 |
---|
20 | // : Hurd, Schaefer, Martin, Phys Rev A, eq(2),(1987),35, 2361-2364 |
---|
21 | // Note that 0 < Ds< 6 and 0 < Dm < 6. |
---|
22 | // </text> |
---|
23 | //[ORIENTATION_PARAMS]= <text> </text> |
---|
24 | |
---|
25 | class MassSurfaceFractal{ |
---|
26 | public: |
---|
27 | // Model parameters |
---|
28 | /// Scale factor |
---|
29 | // [DEFAULT]=scale= 1.0 |
---|
30 | Parameter scale; |
---|
31 | |
---|
32 | /// Mass fractal dimension |
---|
33 | // [DEFAULT]=mass_dim=1.8 |
---|
34 | Parameter mass_dim; |
---|
35 | |
---|
36 | /// Surface fractal dimension |
---|
37 | // [DEFAULT]=surface_dim=2.3 |
---|
38 | Parameter surface_dim; |
---|
39 | |
---|
40 | /// cluster_rg [A] |
---|
41 | // [DEFAULT]=cluster_rg=86.7 [A] |
---|
42 | Parameter cluster_rg; |
---|
43 | |
---|
44 | /// primary_rg [A] |
---|
45 | // [DEFAULT]=primary_rg=4000.0 [A] |
---|
46 | Parameter primary_rg; |
---|
47 | |
---|
48 | /// Incoherent Background |
---|
49 | // [DEFAULT]=background=0.0 |
---|
50 | Parameter background; |
---|
51 | |
---|
52 | // Constructor |
---|
53 | MassSurfaceFractal(); |
---|
54 | |
---|
55 | // Operators to get I(Q) |
---|
56 | double operator()(double q); |
---|
57 | double operator()(double qx, double qy); |
---|
58 | double calculate_ER(); |
---|
59 | double evaluate_rphi(double q, double phi); |
---|
60 | }; |
---|
61 | |
---|
62 | #endif |
---|