source: sasview/src/sas/models/include/spheroidXT.h @ 7945367

ESS_GUIESS_GUI_DocsESS_GUI_batch_fittingESS_GUI_bumps_abstractionESS_GUI_iss1116ESS_GUI_iss879ESS_GUI_iss959ESS_GUI_openclESS_GUI_orderingESS_GUI_sync_sascalccostrafo411magnetic_scattrelease-4.1.1release-4.1.2release-4.2.2release_4.0.1ticket-1009ticket-1094-headlessticket-1242-2d-resolutionticket-1243ticket-1249ticket885unittest-saveload
Last change on this file since 7945367 was 79492222, checked in by krzywon, 10 years ago

Changed the file and folder names to remove all SANS references.

  • Property mode set to 100644
File size: 3.1 KB
Line 
1#if !defined(spheroidXT_h)
2#define spheroidXT_h
3#include "parameters.hh"
4// RKH 03Apr2014 a re-parametrised model
5
6/** Structure definition for oblate parameters
7 * [PYTHONCLASS] = CoreShellEllipsoidXTModel
8 * [DISP_PARAMS] = equat_core, X_core, T_shell, XpolarShell,axis_phi, axis_theta
9   [DESCRIPTION] = <text>[SpheroidCoreShellModel] Calculates the form factor for an spheroid
10                        ellipsoid particle with a core_shell structure.
11                        The form factor is averaged over all possible
12                        orientations of the ellipsoid such that P(q)
13                        = scale*<f^2>/Vol + bkg, where f is the
14                        single particle scattering amplitude.
15                        [Parameters]:
16                        equat_core = equatorial radius of core,
17                        polar_core = polar radius of core = equat_core*X_core,
18                        equat_shell = equatorial radius of outer surface = equat_core + T_shell,
19                        polar_shell = polar radius (revolution axis) of outer surface =  equat_core*X_core + XpolarShell*T_shell
20                        sld_core = SLD_core
21                        sld_shell = SLD_shell
22                        sld_solvent = SLD_solvent
23                        background = Incoherent bkg
24                        scale =scale
25                        Note:It is the users' responsibility to ensure
26                        that shell radii are larger than core radii.
27                        oblate: polar radius < equatorial radius
28                        prolate :  polar radius > equatorial radius - this new model will make this easier
29                        and polydispersity integrals more logical (as previously the shell could disappear).
30                        </text>
31
32   [FIXED] = <text>equat_core.width;X_core.width; T_shell.width; Xpolarshell.width; axis_phi.width; axis_theta.width</text>
33   [ORIENTATION_PARAMS]= <text>axis_phi; axis_theta; axis_phi.width; axis_theta.width</text>
34
35 **/
36
37class CoreShellEllipsoidXTModel{
38public:
39  // Model parameters
40  /// Scale factor
41  //  [DEFAULT]=scale=0.05
42  Parameter scale;
43  /// Equatorial radius of core [A]
44  //  [DEFAULT]=equat_core=20.0 [A]
45  Parameter equat_core;
46  /// X (polar core)/ (equat_shell)
47  //  [DEFAULT]=X_core=3.0
48  Parameter X_core;
49  /// thickness of equatorial shell [A]
50  //  [DEFAULT]=T_shell=30.0 [A]
51  Parameter T_shell;
52  /// ratio (TpolarShell/Tequat_Shell
53  //  [DEFAULT]=XpolarShell=1.0
54  Parameter XpolarShell;
55  ///  Core scattering length density [1/A^(2)]
56  //  [DEFAULT]=sld_core=2.0e-6 [1/A^(2)]
57  Parameter sld_core;
58  ///  Shell scattering length density [1/A^(2)]
59  //  [DEFAULT]=sld_shell=1.0e-6 [1/A^(2)]
60  Parameter sld_shell;
61  /// Solvent scattering length density  [1/A^(2)]
62  //  [DEFAULT]=sld_solvent=6.3e-6 [1/A^(2)]
63  Parameter sld_solvent;
64  /// Incoherent Background [1/cm] 0.001
65  //  [DEFAULT]=background=0.001 [1/cm]
66  Parameter background;
67  //Disable for now
68  /// Orientation of the oblate axis w/respect incoming beam [deg]
69  //  [DEFAULT]=axis_theta=0.0 [deg]
70  Parameter axis_theta;
71  /// Orientation of the oblate in the plane of the detector [deg]
72  //  [DEFAULT]=axis_phi=0.0 [deg]
73  Parameter axis_phi;
74
75  // Constructor
76  CoreShellEllipsoidXTModel();
77
78  // Operators to get I(Q)
79  double operator()(double q);
80  double operator()(double qx, double qy);
81  double calculate_ER();
82  double calculate_VR();
83  double evaluate_rphi(double q, double phi);
84};
85
86#endif
Note: See TracBrowser for help on using the repository browser.