UltraScan III
us_globeq_data.h
Go to the documentation of this file.
1 #ifndef US_GLOBEQDATA_H
2 #define US_GLOBEQDATA_H
3 
4 #include <QtCore>
5 #include "us_extern.h"
6 
7 // Global Equilibrium Data structure type definitions
8 
9 typedef struct ScanEdit_s
10 {
11  int dsindex; // Data set index of this scan
12  int speedx; // Speed index within data set
13  int scannbr; // Scan number within data set
14  double rad_lo; // Low radius value after edit
15  double rad_hi; // High radius value after edit
16  bool edited; // Flag: has scan been edited?
17 } ScanEdit;
18 
19 typedef struct EqRunFit_s
20 {
21  QVector< double > mw_vals; // Molecular Weight values
22  QVector< int > mw_ndxs; // MW indexes
23  QVector< double > mw_rngs; // MW ranges
24  QVector< bool > mw_fits; // MW fitted flags
25  QVector< bool > mw_bnds; // MW bound flags
26  QVector< double > vbar_vals; // Vbar-20 values
27  QVector< int > vbar_ndxs; // Vbar indexes
28  QVector< double > vbar_rngs; // Vbar ranges
29  QVector< bool > vbar_fits; // Vbar fitted flags
30  QVector< bool > vbar_bnds; // Vbar bound flags
31  QVector< double > viri_vals; // Virial coefficient values
32  QVector< int > viri_ndxs; // Virial indexes
33  QVector< double > viri_rngs; // Virial ranges
34  QVector< bool > viri_fits; // Virial fitted flags
35  QVector< bool > viri_bnds; // Virial bound flags
36  double eq_vals[ 4 ]; // Equilibrium constant values
37  int eq_ndxs[ 4 ]; // Equil indexes
38  double eq_rngs[ 4 ]; // Equil ranges
39  bool eq_fits[ 4 ]; // Equil fitted flags
40  bool eq_bnds[ 4 ]; // Equil bound flags
41  double stoichs[ 4 ]; // Stoichiometries
42  int dbdisk; // DB/Disk flag
43  int nbr_comps; // Number of components
44  int nbr_assocs; // Number of association constants
45  int nbr_runs; // Number of runs
46  double runs_percent; // Runs percent
47  double runs_expect; // Runs expected
48  double runs_vari; // Runs variance
49  double bottom_pos; // Bottom CP position for calc_bottom
50  double rcoeffs[ 2 ]; // Rotor coefficients for calc_bottom
51  QString projname; // Project name
52  QString modlname; // Model description
53 } EqRunFit;
54 
55 typedef struct EqScanFit_s
56 {
57  bool scanFit; // Scan-fitted flag
58  bool autoExcl; // Auto-excluded flag
59  bool limsModd; // Limits-modified flag
60  int points; // Number of points
61  int nbr_posr; // Number of positive residuals
62  int nbr_negr; // Number of negative residuals
63  int runs; // Number of runs
64  int start_ndx; // Start index
65  int stop_ndx; // Stop index
66  QVector< double > xvs; // X values
67  QVector< double > yvs; // Y values
68  QVector< double > amp_vals; // Amplitude values
69  QVector< int > amp_ndxs; // Amplitude indexes
70  QVector< double > amp_rngs; // Amplitude ranges
71  QVector< bool > amp_fits; // Amplitude fitted flags
72  QVector< bool > amp_bnds; // Amplitude bound flags
73  QVector< double > extincts; // Extinctions
74  QVector< double > integral; // Integrals
75  double density; // Density
76  double viscosity; // Viscosity
77  double tempera; // Temperature
78  double pathlen; // Path length
79  double meniscus; // Meniscus
80  double bottom; // Bottom
81  double baseline; // Baseline
82  int baseln_ndx; // Baseline index
83  double baseln_rng; // Baseline range
84  bool baseln_fit; // Baseline fitted flag
85  bool baseln_bnd; // Baseline bound flag
86  int rpm; // Speed in revolutions per minute
87  int cell; // Cell
88  int channel; // Channel index
89  int wavelen; // Wavelength
90  int rotor; // Rotor index
91  int centerp; // Centerpiece index
92  QString runID; // Run identifier string
93  QString descript; // Scan description
94 } EqScanFit;
95 
96 typedef struct FitCtrlPar_s
97 {
98  int nlsmeth; // NLS method index
99  int modelx; // model type index
100  int mxiters; // Maximum iterations
101  int ntpts; // Number of total points
102  int ndsets; // Number of data sets (scans)
103  int nfpars; // Number of fit parameters
104  int mxsteps; // Maximum fit steps
105  int k_iter; // Current Iteration count
106  int k_step; // Current fit step count
107  int nfuncev; // Function evaluations
108  int ndecomps; // Decompositions
109  int status; // Fit iterations status flag
110  double fittoler; // Fit Tolerance
111  double lambda; // Current Lambda
112  double lam_start; // Lambda start
113  double lam_step; // Lambda step size
114  double variance; // Iteration variance
115  double std_dev; // Iteration standard deviation
116  double improve; // Iteration improvement
117  bool lincnstr; // Linear constraints flag
118  bool autocnvg; // Autoconverge flag
119  bool aborted; // Return aborted flag
120  bool converged; // Return converged flag
121  bool completed; // Return iterations completed flag
122  QString emsgdiag; // Error message for dialog
123  QString statmsg; // Status message
124  QString infomsg; // Information message
125  int* setpts; // Set points array
126  int* setlpts; // Set log points array
127  double* y_raw; // Y raw values array
128  double* y_guess; // Y guesses array
129  double* y_delta; // Y deltas array
130  double* BB; // B array
131  double* guess; // Guesses array
132  double* tguess; // Test Guesses array
133  double** jacobian; // Jacobian matrix array
134  double** info; // Information matrix array
135  double** LLtr; // LL transpose matrix array
136  double** dcr2; // dcr2 matrix array
137  double** dlncr2; // dlncr2 matrix array
138  double** lncr2; // lncr2 matrix array
139 } FitCtrlPar;
140 
141 #endif