3 #include "ui_dimdialog.h"
4 #include "calculator.h"
8 DimDialog::DimDialog(QuPlot
*parent
) :
10 m_ui(new Ui::DimDialog
)
13 qDebug() << "This is DimDialog";
21 DimDialog::~DimDialog()
26 void DimDialog::initDialog()
29 from
= m_ui
->fromSpinBox
;
31 from
->setEnabled(false);
32 to
->setEnabled(false);
33 m_ui
->comboBox
->setCurrentIndex(3);
34 m_ui
->threshSpinBox
->setEnabled(false);
35 m_ui
->searchCheck
->setEnabled(false);
36 m_ui
->fromr1SpinBox
->setEnabled(false);
37 m_ui
->fromr2SpinBox
->setEnabled(false);
38 m_ui
->tor1SpinBox
->setEnabled(false);
39 m_ui
->tor2SpinBox
->setEnabled(false);
40 m_ui
->stepr1SpinBox
->setEnabled(false);
41 m_ui
->stepr2SpinBox
->setEnabled(false);
42 m_ui
->param1Edit
->setEnabled(false);
43 m_ui
->param2Edit
->setEnabled(false);
44 m_ui
->searchCheck
->setEnabled(false);
45 m_ui
->dualbifCheck
->setEnabled(false);
47 list
.append("damped harmonic oszillator");
48 list
.append("harmonic oszillator");
49 list
.append("rotating dimer");
50 qDebug() << "inserting list into comboBox";
51 c
->insertItems(0,list
);
52 qDebug() << "# of items in comboBox: " << c
->count();
54 for (i=0;i<list.size();i++) {
55 c->setItemText(i,list.at(i));
56 qDebug() << i << ": " << c->itemText(i);
59 c
->setCurrentIndex(0);
62 QRegExp rx("^[\\d-\\D]+$");
64 ui_f1Label = qFindChild<QLabel*>(this,"f1Label");
65 ui_f0Line = qFindChild<QLineEdit*>(this,"f0Line");
66 ui_f1Line = qFindChild<QLineEdit*>(this,"f1Line");
68 ui_f0Validator = new QRegExpValidator(rx,ui_f0Line);
69 ui_f1Validator = new QRegExpValidator(rx,ui_f1Line);
71 ui_f0Line->setValidator(ui_f0Validator);
72 ui_f1Line->setValidator(ui_f1Validator);
74 // ui_f1Label->setEnabled(ui_f0Line->hasAcceptableInput() == true);
75 // ui_f1Line->setEnabled(ui_f0Line->hasAcceptableInput() == true);
78 void DimDialog::changeEvent(QEvent
*e
)
80 QDialog::changeEvent(e
);
82 case QEvent::LanguageChange
:
83 m_ui
->retranslateUi(this);
89 void DimDialog::on_convergeCheck_stateChanged() {
90 qDebug() << "converge check toggled";
91 bfBox
= m_ui
->bifurcateCheck
;
92 from
= m_ui
->fromSpinBox
;
94 stepsize
= m_ui
->stepsizeSpinBox
;
95 steps
= m_ui
->stepsSpinBox
;
96 velox
= m_ui
->veloxSpinBox
;
97 veloy
= m_ui
->veloySpinBox
;
98 cmcheck
= m_ui
->convergeCheck
->isChecked();
100 d
->valuesMap
.insert(11,0);
101 from
->setEnabled(false);
102 to
->setEnabled(false);
103 stepsize
->setEnabled(true);
104 bfBox
->setEnabled(true);
105 velox
->setValue(100);
106 veloy
->setValue(100);
107 steps
->setValue(1000000);
110 d
->valuesMap
.insert(11,1);
111 from
->setEnabled(true);
112 to
->setEnabled(true);
113 stepsize
->setEnabled(false);
114 bfBox
->setEnabled(false);
121 void DimDialog::on_bifurcateCheck_stateChanged()
123 bfcheck
= m_ui
->bifurcateCheck
->isChecked();
125 d
->valuesMap
.insert(11,0);
126 m_ui
->fromr1SpinBox
->setEnabled(false);
127 m_ui
->fromr2SpinBox
->setEnabled(false);
128 m_ui
->tor1SpinBox
->setEnabled(false);
129 m_ui
->tor2SpinBox
->setEnabled(false);
130 m_ui
->stepr1SpinBox
->setEnabled(false);
131 m_ui
->stepr2SpinBox
->setEnabled(false);
132 m_ui
->samplesSpinBox
->setEnabled(false);
133 m_ui
->convergeCheck
->setEnabled(true);
135 m_ui
->param1Edit
->setEnabled(false);
136 m_ui
->param2Edit
->setEnabled(false);
137 m_ui
->fromtSpinBox
->setValue(0.0);
138 m_ui
->dualbifCheck
->setEnabled(false);
140 d
->valuesMap
.insert(11,2);
141 m_ui
->fromr1SpinBox
->setEnabled(true);
142 m_ui
->tor1SpinBox
->setEnabled(true);
143 m_ui
->stepr1SpinBox
->setEnabled(true);
144 m_ui
->samplesSpinBox
->setEnabled(true);
145 m_ui
->convergeCheck
->setEnabled(false);
146 c
->setEnabled(false);
147 m_ui
->param1Edit
->setEnabled(true);
148 m_ui
->fromtSpinBox
->setValue(0.9);
149 m_ui
->dualbifCheck
->setEnabled(true);
153 void DimDialog::on_dualbifCheck_stateChanged()
155 bf2check
= m_ui
->dualbifCheck
->isChecked();
157 d
->valuesMap
.insert(11,2);
158 m_ui
->fromr2SpinBox
->setEnabled(false);
159 m_ui
->tor2SpinBox
->setEnabled(false);
160 m_ui
->stepr2SpinBox
->setEnabled(false);
161 m_ui
->param2Edit
->setEnabled(false);
164 d
->valuesMap
.insert(11,3);
165 m_ui
->fromr2SpinBox
->setEnabled(true);
166 m_ui
->tor2SpinBox
->setEnabled(true);
167 m_ui
->stepr2SpinBox
->setEnabled(true);
168 m_ui
->param2Edit
->setEnabled(true);
172 double DimDialog::randpi(Ran
&r
)
175 Doub s
= 2.0*M_PI
*r
.doub();
179 void DimDialog::on_randomCheck_stateChanged()
182 randcheck
= m_ui
->randomCheck
->isChecked();
185 d
->valuesMap
.insert(28,0);
186 m_ui
->offxSpinBox
->setEnabled(true);
187 m_ui
->offySpinBox
->setEnabled(true);
188 m_ui
->veloxSpinBox
->setEnabled(true);
189 m_ui
->veloySpinBox
->setEnabled(true);
190 m_ui
->phiSpinBox
->setEnabled(true);
192 d
->valuesMap
.insert(28,1);
193 m_ui
->offxSpinBox
->setValue(randpi(ran
));
194 m_ui
->offySpinBox
->setValue(randpi(ran
));
195 m_ui
->veloxSpinBox
->setValue(randpi(ran
));
196 m_ui
->veloySpinBox
->setValue(randpi(ran
));
197 m_ui
->phiSpinBox
->setValue(randpi(ran
));
198 m_ui
->offxSpinBox
->setEnabled(false);
199 m_ui
->offySpinBox
->setEnabled(false);
200 m_ui
->veloxSpinBox
->setEnabled(false);
201 m_ui
->veloySpinBox
->setEnabled(false);
202 m_ui
->phiSpinBox
->setEnabled(false);
207 void DimDialog::on_searchCheck_stateChanged()
209 searchcheck
= m_ui
->searchCheck
->isChecked();
211 m_ui
->offxSpinBox
->setEnabled(true);
212 m_ui
->offySpinBox
->setEnabled(true);
213 m_ui
->veloxSpinBox
->setEnabled(true);
214 m_ui
->veloySpinBox
->setEnabled(true);
215 m_ui
->threshSpinBox
->setEnabled(false);
217 m_ui
->offxSpinBox
->setEnabled(false);
218 m_ui
->offySpinBox
->setEnabled(false);
219 m_ui
->veloxSpinBox
->setEnabled(false);
220 m_ui
->veloySpinBox
->setEnabled(false);
221 m_ui
->threshSpinBox
->setEnabled(true);
225 void DimDialog::on_comboBox_currentIndexChanged()
227 int index
= c
->currentIndex();
231 m_ui
->offxSpinBox
->setValue(1.0);
232 m_ui
->veloxSpinBox
->setValue(100.0);
233 m_ui
->eta1SpinBox
->setValue(0.465);
234 m_ui
->eta2SpinBox
->setValue(0.0);
235 m_ui
->FSpinBox
->setValue(0.1);
236 m_ui
->wSpinBox
->setValue(0.6);
237 m_ui
->fromr1SpinBox
->setValue(0.45);
238 m_ui
->tor1SpinBox
->setValue(0.55);
239 m_ui
->stepr1SpinBox
->setValue(0.0001);
240 m_ui
->samplesSpinBox
->setValue(3);
241 m_ui
->wSpinBox
->setValue(0.6);
242 m_ui
->aSpinBox
->setValue(1.0);
243 m_ui
->bSpinBox
->setValue(1.24);
244 m_ui
->param1Edit
->setText("E");
247 m_ui
->offxSpinBox
->setValue(0);
248 m_ui
->offySpinBox
->setValue(0);
249 m_ui
->veloxSpinBox
->setValue(0);
250 m_ui
->veloySpinBox
->setValue(0);
251 m_ui
->phiSpinBox
->setValue(0);
252 m_ui
->eta1SpinBox
->setValue(1.0);
253 m_ui
->eta2SpinBox
->setValue(1.5);
254 m_ui
->FSpinBox
->setValue(0.00);
255 m_ui
->wSpinBox
->setValue(0.1);
256 m_ui
->fromr1SpinBox
->setValue(0.0);
257 m_ui
->tor1SpinBox
->setValue(180);
258 m_ui
->stepr1SpinBox
->setValue(1);
259 m_ui
->samplesSpinBox
->setValue(3);
260 m_ui
->fromtSpinBox
->setValue(0);
261 m_ui
->tempSpinBox
->setValue(0.0);
262 m_ui
->aSpinBox
->setValue(1.15);
263 m_ui
->bSpinBox
->setValue(83.0);
264 m_ui
->lSpinBox
->setValue(3.0);
265 m_ui
->thetaSpinBox
->setValue(0.0);
266 m_ui
->param1Edit
->setText("A");
267 m_ui
->param2Edit
->setText("l");
268 m_ui
->fromr1SpinBox
->setValue(0.0);
269 m_ui
->tor1SpinBox
->setValue(90.0);
270 m_ui
->fromr2SpinBox
->setValue(1.0);
271 m_ui
->tor2SpinBox
->setValue(10.0);
276 void DimDialog::on_pushButton_clicked()
278 int index
= c
->currentIndex();
280 qDebug() << "ui_comboBox->currentIndex() = " << index
;
281 qDebug() << "populating QMap";
283 d
->valuesMap
.insert(7,m_ui
->timeSpinBox
->value());
284 d
->valuesMap
.insert(8,m_ui
->offxSpinBox
->value());
285 d
->valuesMap
.insert(23,m_ui
->offySpinBox
->value());
286 d
->valuesMap
.insert(9,m_ui
->unusedSpinBox
->value());
287 d
->valuesMap
.insert(10,m_ui
->veloxSpinBox
->value());
288 d
->valuesMap
.insert(24,m_ui
->veloySpinBox
->value());
289 d
->valuesMap
.insert(22,m_ui
->fromtSpinBox
->value());
290 d
->valuesMap
.insert(25,m_ui
->eta1SpinBox
->value());
291 d
->valuesMap
.insert(26,m_ui
->eta2SpinBox
->value());
292 d
->valuesMap
.insert(2,m_ui
->aSpinBox
->value());
293 d
->valuesMap
.insert(3,m_ui
->bSpinBox
->value());
294 d
->valuesMap
.insert(4,m_ui
->FSpinBox
->value());
295 d
->valuesMap
.insert(6,m_ui
->wSpinBox
->value());
296 d
->valuesMap
.insert(27,m_ui
->phiSpinBox
->value());
297 d
->valuesMap
.insert(32,m_ui
->tempSpinBox
->value());
298 d
->valuesMap
.insert(5,m_ui
->lSpinBox
->value());
299 d
->valuesMap
.insert(35,m_ui
->samplesSpinBox
->value());
300 d
->valuesMap
.insert(36,m_ui
->filterSpinBox
->value());
301 d
->valuesMap
.insert(13,m_ui
->stepsizeSpinBox
->value());
302 d
->valuesMap
.insert(14,m_ui
->stepsSpinBox
->value());
303 d
->valuesMap
.insert(40,m_ui
->thetaSpinBox
->value());
305 d
->valuesMap
.insert(29,0); /* disable euler for now */
309 d
->valuesMap
.insert(0,2);
310 d
->valuesMap
.insert(1,1);
313 d
->valuesMap
.insert(0,2);
314 d
->valuesMap
.insert(1,2);
317 d
->valuesMap
.insert(0,2);
318 d
->valuesMap
.insert(1,3);
321 d
->valuesMap
.insert(0,3);
322 d
->valuesMap
.insert(1,4);
327 d
->valuesMap
.insert(14,m_ui
->stepsSpinBox
->value());
328 d
->valuesMap
.insert(15,m_ui
->fromSpinBox
->value());
329 d
->valuesMap
.insert(16,m_ui
->toSpinBox
->value());
333 d
->valuesMap
.insert(17,m_ui
->fromr1SpinBox
->value());
334 d
->valuesMap
.insert(18,m_ui
->tor1SpinBox
->value());
335 d
->valuesMap
.insert(19,m_ui
->stepr1SpinBox
->value());
336 d
->str1
= m_ui
->param1Edit
->text();
340 d
->valuesMap
.insert(37,m_ui
->fromr2SpinBox
->value());
341 d
->valuesMap
.insert(38,m_ui
->tor2SpinBox
->value());
342 d
->valuesMap
.insert(39,m_ui
->stepr2SpinBox
->value());
343 d
->str2
= m_ui
->param2Edit
->text();
347 d
->valuesMap
.insert(30,0);
349 d
->valuesMap
.insert(30,1);
350 d
->valuesMap
.insert(31,m_ui
->threshSpinBox
->value());
353 d
->eul
= m_ui
->eulCheck
->isChecked();
354 d
->ruk
= m_ui
->rukCheck
->isChecked();
356 qDebug() << "Following values have been set:";
357 QMapIterator
<int,double> i(d
->valuesMap
);
358 while (i
.hasNext()) {
360 qDebug() << i
.key() << ": " << i
.value();
362 qDebug() << "See quplot.h for an explanation";