source: sasview/sansmodels/src/sans/models/c_models/models.hh @ 8809e48

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 8809e48 was 0f5bc9f, checked in by Mathieu Doucet <doucetm@…>, 16 years ago

Update of all C models to the new style of C++ models

  • Property mode set to 100644
File size: 3.1 KB
Line 
1/**
2        This software was developed by the University of Tennessee as part of the
3        Distributed Data Analysis of Neutron Scattering Experiments (DANSE)
4        project funded by the US National Science Foundation.
5
6        If you use DANSE applications to do scientific research that leads to
7        publication, we ask that you acknowledge the use of the software with the
8        following sentence:
9
10        "This work benefited from DANSE software developed under NSF award DMR-0520547."
11
12        copyright 2008, University of Tennessee
13 */
14#ifndef MODEL_CLASS_H
15#define MODEL_CLASS_H
16
17#include <vector>
18#include "parameters.hh"
19extern "C" {
20        #include "cylinder.h"
21}
22
23using namespace std;
24
25class CylinderModel{
26public:
27        // Model parameters
28        Parameter radius;
29        Parameter scale;
30        Parameter length;
31        Parameter contrast;
32        Parameter background;
33        Parameter cyl_theta;
34        Parameter cyl_phi;
35
36        // Constructor
37        CylinderModel();
38
39        // Operators to get I(Q)
40        double operator()(double q);
41        double operator()(double qx, double qy);
42        double evaluate_rphi(double q, double phi);
43};
44
45class SphereModel{
46public:
47        // Model parameters
48        Parameter radius;
49        Parameter scale;
50        Parameter contrast;
51        Parameter background;
52
53        // Constructor
54        SphereModel();
55
56        // Operators to get I(Q)
57        double operator()(double q);
58        double operator()(double qx, double qy);
59        double evaluate_rphi(double q, double phi);
60};
61
62class CoreShellModel{
63public:
64        // Model parameters
65        Parameter radius;
66        Parameter scale;
67        Parameter thickness;
68        Parameter core_sld;
69        Parameter shell_sld;
70        Parameter solvent_sld;
71        Parameter background;
72
73        // Constructor
74        CoreShellModel();
75
76        // Operators to get I(Q)
77        double operator()(double q);
78        double operator()(double qx, double qy);
79        double evaluate_rphi(double q, double phi);
80};
81
82class CoreShellCylinderModel{
83public:
84        // Model parameters
85        Parameter radius;
86        Parameter scale;
87        Parameter thickness;
88        Parameter length;
89        Parameter core_sld;
90        Parameter shell_sld;
91        Parameter solvent_sld;
92        Parameter background;
93        Parameter axis_theta;
94        Parameter axis_phi;
95
96        // Constructor
97        CoreShellCylinderModel();
98
99        // Operators to get I(Q)
100        double operator()(double q);
101        double operator()(double qx, double qy);
102        double evaluate_rphi(double q, double phi);
103};
104
105class EllipsoidModel{
106public:
107        // Model parameters
108        Parameter radius_a;
109        Parameter scale;
110        Parameter radius_b;
111        Parameter contrast;
112        Parameter background;
113        Parameter axis_theta;
114        Parameter axis_phi;
115
116        // Constructor
117        EllipsoidModel();
118
119        // Operators to get I(Q)
120        double operator()(double q);
121        double operator()(double qx, double qy);
122        double evaluate_rphi(double q, double phi);
123};
124
125class EllipticalCylinderModel{
126public:
127        // Model parameters
128        Parameter r_minor;
129        Parameter scale;
130        Parameter r_ratio;
131        Parameter length;
132        Parameter contrast;
133        Parameter background;
134        Parameter cyl_theta;
135        Parameter cyl_phi;
136        Parameter cyl_psi;
137
138        // Constructor
139        EllipticalCylinderModel();
140
141        // Operators to get I(Q)
142        double operator()(double q);
143        double operator()(double qx, double qy);
144        double evaluate_rphi(double q, double phi);
145};
146
147#endif
Note: See TracBrowser for help on using the repository browser.