libBioLCCC
Loading...
Searching...
No Matches
chromoconditions.h
1#ifndef CHROMOCONDITION_H
2#define CHROMOCONDITION_H
3
4#include <string>
5#include <utility>
6#include <vector>
7
8#include "biolcccexception.h"
9#include "gradient.h"
10
11namespace BioLCCC
12{
13
16{
17public:
19 ChromoConditionsException(std::string message);
20};
21
23
38{
39public:
40
42
45 ChromoConditions(double iColumnLength = 150.0,
46 double iColumnDiameter = 0.075,
47 double iColumnPoreSize = 100.0,
48 Gradient iGradient = Gradient(0.0, 50.0, 60.0),
49 double iSecondSolventConcentrationA = 2.0,
50 double iSecondSolventConcentrationB = 80.0,
51 double iDelayTime = 0.0,
52 double iFlowRate = 0.0003,
53 double iDV = 0.0,
54 double iColumnRelativeStrength = 1.0,
55 double iColumnVpToVtot = 0.5,
56 double iColumnPorosity = 0.9,
57 double iTemperature = 293.0);
58
60
63 double columnLength() const;
64
66
69 void setColumnLength(double newColumnLength);
70
72 double columnDiameter() const;
73
75 void setColumnDiameter(double newColumnDiameter);
76
78 double columnPoreSize() const;
79
81 void setColumnPoreSize(double newColumnPoreSize);
82
84 double columnVpToVtot() const;
85
87 void setColumnVpToVtot(double newColumnVpToVtot);
88
90
95 double columnPorosity() const;
96
98
103 void setColumnPorosity(double newColumnPorosity);
104
106 double columnTotalVolume() const;
107
109 double columnInterstitialVolume() const;
110
112 double columnPoreVolume() const;
113
115 double temperature() const;
116
118 void setTemperature(double newTemperature);
119
121
126 double columnRelativeStrength() const;
127
129
134 void setColumnRelativeStrength(double newColumnRelativeStrength);
135
137 double flowRate() const;
138
140 void setFlowRate(double newFlowRate);
141
143
152 double dV() const;
153
155
164 void setDV(double newDV);
165
167
170 double delayTime() const;
171
173
176 void setDelayTime(double newDelayTime);
177
179 double secondSolventConcentrationA() const;
180
183 double newSecondSolventConcentrationA);
184
186 double secondSolventConcentrationB() const;
187
190 double newSecondSolventConcentrationB);
191
193 Gradient gradient() const;
194
196 void setGradient(Gradient newGradient);
197
199 bool mixingCorrection() const;
200
202 void setMixingCorrection(bool flag);
203
205 /*
206 Returns the volume concentration of the second solvent at time points
207 separated by dV / flowRate.
208 If mixingCorrection==True the actual concentration
209 of the second solvent is calculated from the differential equation
210 describing accumulation of a substance in a finite chamber with equal
211 input and output flows:
212 d[SS] / dt = flowRate / (V0 + Vp) * ([SS]pump - [SS]),
213 where [SS] is the actual second solvent concentration in the column and
214 [SS]pump is the concentration of the second solvent in the pumped
215 solution.
216 Otherwise, the solvent composition in the column corresponds to the
217 immediate composition of the solvent pumped in the column, i.e.
218 [SS] = [SS]pump.
219
220 If elution is isocratic, the series contains a single point.
221 */
222 const std::vector<double> & SSConcentrations() const;
223
224private:
225 double mColumnLength;
226 double mColumnDiameter;
227 double mColumnPoreSize;
228 double mColumnVpToVtot;
229 double mColumnPorosity;
230 double mColumnTotalVolume;
231 double mColumnInterstitialVolume;
232 double mColumnPoreVolume;
233 double mTemperature;
234 double mColumnRelativeStrength;
235 double mFlowRate;
236 double mDV;
237 double mDelayTime;
238 Gradient mGradient;
239 double mSecondSolventConcentrationA;
240 double mSecondSolventConcentrationB;
241 bool mMixingCorrection;
242
243 std::vector<double> mSSConcentrations;
244
245 void recalculateVolumes();
246 void recalculateSSConcentrations();
247};
248
249}
250
251#endif
Base class for all BioLCCC exceptions. Can be used by itself.
Definition biolcccexception.h:11
This exception is raised when something goes wrong with a ChromoConditions.
Definition chromoconditions.h:16
A ChromoConditions instance describes conditions of chromatography.
Definition chromoconditions.h:38
void setColumnPorosity(double newColumnPorosity)
Sets the porosity of a column.
Definition chromoconditions.cpp:116
double delayTime() const
Returns the delay time.
Definition chromoconditions.cpp:210
void setColumnRelativeStrength(double newColumnRelativeStrength)
Sets the relative strength of the adsorbent.
Definition chromoconditions.cpp:167
double columnVpToVtot() const
Returns the ratio of the volume of pores to the total column volume.
Definition chromoconditions.cpp:89
double columnLength() const
Returns the length of the column in mm.
Definition chromoconditions.cpp:41
double columnTotalVolume() const
Returns the total volume of a column.
Definition chromoconditions.cpp:133
double columnDiameter() const
Returns the internal diameter of the column in mm.
Definition chromoconditions.cpp:57
void setGradient(Gradient newGradient)
Sets the elution gradient.
Definition chromoconditions.cpp:273
double columnPoreSize() const
Returns the size of the pores in angstroms.
Definition chromoconditions.cpp:74
double columnRelativeStrength() const
Returns the relative strength of the adsorbent.
Definition chromoconditions.cpp:162
void setColumnPoreSize(double newColumnPoreSize)
Sets the size of the pores in angstroms.
Definition chromoconditions.cpp:79
bool mixingCorrection() const
Returns the state of mixing correction.
Definition chromoconditions.cpp:300
double columnPoreVolume() const
Returns the pore or intraparticle volume of a column.
Definition chromoconditions.cpp:143
double secondSolventConcentrationB() const
Returns the concentration of the second solvent in component B.
Definition chromoconditions.cpp:244
void setSecondSolventConcentrationB(double newSecondSolventConcentrationB)
Sets the concentration of the second solvent in component B.
Definition chromoconditions.cpp:249
void setMixingCorrection(bool flag)
Enable/disable the correction for solvent mixing in the column.
Definition chromoconditions.cpp:305
void setDV(double newDV)
Sets the step of integration over volume in ml.
Definition chromoconditions.cpp:200
void setSecondSolventConcentrationA(double newSecondSolventConcentrationA)
Sets the concentration of the second solvent in component A.
Definition chromoconditions.cpp:225
void setColumnLength(double newColumnLength)
Sets the length of the column in mm.
Definition chromoconditions.cpp:46
double columnInterstitialVolume() const
Returns the interstitial or interparticle volume of a column.
Definition chromoconditions.cpp:138
double secondSolventConcentrationA() const
Returns the concentration of the second solvent in component A.
Definition chromoconditions.cpp:220
void setFlowRate(double newFlowRate)
Sets the flow rate in ml/min.
Definition chromoconditions.cpp:178
const std::vector< double > & SSConcentrations() const
Returns a time series of the second solvent concentration in the column.
Definition chromoconditions.cpp:284
double flowRate() const
Returns the flow rate in ml/min.
Definition chromoconditions.cpp:173
Gradient gradient() const
Returns the elution gradient.
Definition chromoconditions.cpp:268
void setColumnDiameter(double newColumnDiameter)
Sets the internal diameter of the column in mm.
Definition chromoconditions.cpp:62
void setTemperature(double newTemperature)
Sets the temperature of the column in kelvin degrees.
Definition chromoconditions.cpp:153
double dV() const
Returns the step of integration over volume in ml.
Definition chromoconditions.cpp:188
void setDelayTime(double newDelayTime)
Sets the delay time.
Definition chromoconditions.cpp:215
double temperature() const
Returns the temperature of the column in kelvin degrees.
Definition chromoconditions.cpp:148
void setColumnVpToVtot(double newColumnVpToVtot)
Sets the ratio of the volume of pores to the total column volume.
Definition chromoconditions.cpp:94
double columnPorosity() const
Returns the porosity of a column.
Definition chromoconditions.cpp:111
An instance of Gradient describes an elution gradient.
Definition gradient.h:36
Apart from classes, BioLCCC contains calculation methods and constants.
Definition auxiliary.h:5