Skip to content

Commit 6a733e5

Browse files
committed
Save phase function and S1/S2 spectrum
1 parent 240c5de commit 6a733e5

8 files changed

Lines changed: 345 additions & 702 deletions

File tree

src/MieSimulator.pro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ QT += core gui \
1010

1111
greaterThan(QT_MAJOR_VERSION, 5): QT += widgets
1212

13-
TARGET = MieSimulatorGUI_v1_1
13+
TARGET = MieSimulatorGUI_v1_2
1414
CONFIG -= -qt-freetype
1515
TEMPLATE = app
1616
DEFINES += QT_DEPRECATED_WARNINGS

src/displaydialog.cpp

Lines changed: 43 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ void DisplayDialog::DisplayData(Ui_MainWindow *mainUi, parameters *para)
7373

7474
ui->textBrowser_Display->append("\nSphere Data:");
7575
ui->textBrowser_Display->append("Dia.(um)\tNum. Den.(in a vol. of 1mm^3)\tRef. Index (real | imag)");
76-
for (int i = 0; i<para->nRadius; i++)
76+
for (unsigned int i = 0; i<para->nRadius; i++)
7777
ui->textBrowser_Display->append(QString::number(2.0 * para->radArray[i]) + "\t"
7878
+ QString::number(para->numDensityArray[i] * margin) + "\t"
7979
+ QString::number(para->scatRefRealArray[i]) + "\t" + QString::number(para->scatRefImagArray[i]) );
@@ -82,83 +82,55 @@ void DisplayDialog::DisplayData(Ui_MainWindow *mainUi, parameters *para)
8282
if (mainUi->radioButton_MonoDisperse->isChecked())
8383
{
8484
ui->textBrowser_Display->append("\nSize Parameter:");
85-
ui->textBrowser_Display->append("WL(nm)\tSize Parameter");
86-
for (int i = 0; i<para->nWavel; i++)
87-
ui->textBrowser_Display->append(QString::number(para->wavelArray[i]) + "\t"
88-
+ QString::number(para->SizePara[i]) );
85+
ui->textBrowser_Display->append("WL(nm)\t2*pi*R/lambda");
86+
for (unsigned int i = 0; i<para->nWavel; i++)
87+
ui->textBrowser_Display->append(QString::number(para->wavelArray[i]) + "\t" +
88+
QString::number(para->SizePara[i]) );
8989
}
9090

91-
ui->textBrowser_Display->append("\nScattering Coefficient (us):");
92-
ui->textBrowser_Display->append("WL(nm)\tScattering Coefficient (mm^-1)");
93-
for (int i = 0; i<para->nWavel; i++)
94-
ui->textBrowser_Display->append(QString::number(para->wavelArray[i]) + "\t"
95-
+ QString::number(para->mus[i] * margin) );
96-
97-
98-
ui->textBrowser_Display->append("\ng (Average Cosine of Phase Function):");
99-
ui->textBrowser_Display->append("WL(nm)\tg (Average Cosine of Phase Function)");
100-
for (int i = 0; i<para->nWavel; i++)
101-
ui->textBrowser_Display->append(QString::number(para->wavelArray[i]) + "\t"
102-
+ QString::number(para->g[i]) );
103-
104-
105-
ui->textBrowser_Display->append("\nReduced Scattering Coefficient (us'):");
106-
ui->textBrowser_Display->append("WL(nm)\tReduced Scattering Coefficient (mm^-1)");
107-
for (int i = 0; i<para->nWavel; i++)
108-
ui->textBrowser_Display->append(QString::number(para->wavelArray[i]) + "\t"
109-
+ QString::number(para->mus[i] * (1 - para->g[i])*margin) );
110-
111-
112-
ui->textBrowser_Display->append("\nScattering Cross Section (Csca):");
113-
ui->textBrowser_Display->append("WL(nm)\tScattering Cross Section (um^2)");
114-
for (int i = 0; i<para->nWavel; i++)
115-
ui->textBrowser_Display->append(QString::number(para->wavelArray[i]) + "\t"
116-
+ QString::number(para->cSca[i]) );
117-
118-
ui->textBrowser_Display->append("\nExtinction Cross Section (Cext):");
119-
ui->textBrowser_Display->append("WL(nm)\tExtinction Cross Section (um^2)");
120-
for (int i = 0; i<para->nWavel; i++)
121-
ui->textBrowser_Display->append(QString::number(para->wavelArray[i]) + "\t"
122-
+ QString::number(para->cExt[i]) );
123-
124-
ui->textBrowser_Display->append("\nBackscattering Cross Section (Cback):");
125-
ui->textBrowser_Display->append("WL(nm)\tBackcattering Cross Section (um^2)");
126-
for (int i = 0; i<para->nWavel; i++)
127-
ui->textBrowser_Display->append(QString::number(para->wavelArray[i]) + "\t"
128-
+ QString::number(para->cBack[i]) );
129-
130-
ui->textBrowser_Display->append("\nForward and Backward Scattering %");
91+
ui->textBrowser_Display->append("\nScattering Coefficient, g (Average Cosine of Phase Function) and Reduced Scattering Coefficient:");
92+
ui->textBrowser_Display->append("WL(nm)\tus(mm^-1)\tg\tus'(mm^-1)");
93+
for (unsigned int i = 0; i<para->nWavel; i++)
94+
ui->textBrowser_Display->append(QString::number(para->wavelArray[i]) + "\t" +
95+
QString::number(para->mus[i] * margin) + "\t" +
96+
QString::number(para->g[i]) + "\t" +
97+
QString::number(para->mus[i] * (1 - para->g[i])*margin));
98+
99+
ui->textBrowser_Display->append("\nScattering (Csca), Extinction (Cext) and Backscattering (Cback) Cross Sections:");
100+
ui->textBrowser_Display->append("WL(nm)\tCsca(um^2)\tCext(um^2)\tCback(um^2)");
101+
for (unsigned int i = 0; i<para->nWavel; i++)
102+
ui->textBrowser_Display->append(QString::number(para->wavelArray[i]) + "\t" +
103+
QString::number(para->cSca[i]) + "\t" +
104+
QString::number(para->cExt[i]) + "\t" +
105+
QString::number(para->cBack[i]));
106+
107+
ui->textBrowser_Display->append("\nForward and Backward Scattering percentages:");
131108
ui->textBrowser_Display->append("WL(nm)\tForward %\tBackward %");
132-
for (int i = 0; i<para->nWavel; i++)
133-
ui->textBrowser_Display->append(QString::number(para->wavelArray[i]) + "\t"
134-
+ QString::number(para->forward[i]) + "\t" + QString::number(para->backward[i]));
109+
for (unsigned int i = 0; i<para->nWavel; i++)
110+
ui->textBrowser_Display->append(QString::number(para->wavelArray[i]) + "\t" +
111+
QString::number(para->forward[i]) + "\t" +
112+
QString::number(para->backward[i]));
135113

136-
ui->textBrowser_Display->append("\nPhase Function:");
137-
QVector<double> phaseFunction(para->nTheta), theta(para->nTheta);
138114
int indexWL = mainUi->slider_WL_PFPolar->value();
139115
double currentWL = para->startWavel + indexWL*para->stepWavel;
140-
for (int i = 0; i<para->nTheta; i++)
141-
{
142-
theta[i] = 180.0 * i / (para->nTheta - 1);
143-
if (mainUi->radioButton_PhaseAverage->isChecked())
144-
{
145-
phaseFunction[i] = para->phaseFunctionAve[indexWL][i];
146-
}
147-
if (mainUi->radioButton_PhasePara->isChecked())
148-
{
149-
phaseFunction[i] = para->phaseFunctionPara[indexWL][i];
150-
}
151-
if (mainUi->radioButton_PhasePerp->isChecked())
152-
{
153-
phaseFunction[i] = para->phaseFunctionPerp[indexWL][i];
154-
}
155-
}
116+
117+
ui->textBrowser_Display->append("\nPhase Function @ Wavelength of " + QString::number(currentWL) + " nm:");
156118
if (mainUi->radioButton_PhaseAverage->isChecked())
157-
ui->textBrowser_Display->append("Angle(deg)\t Phase Function (Ave) @ Wavelength of " + QString::number(currentWL) + " nm");
119+
ui->textBrowser_Display->append("Angle(deg)\tPhase Function (Ave)");
158120
if (mainUi->radioButton_PhasePara->isChecked())
159-
ui->textBrowser_Display->append("Angle(deg)\t Phase Function (Para) @ Wavelength of " + QString::number(currentWL) + " nm");
121+
ui->textBrowser_Display->append("Angle(deg)\tPhase Function (Para)");
160122
if (mainUi->radioButton_PhasePerp->isChecked())
161-
ui->textBrowser_Display->append("Angle(deg)\t Phase Function (Perp) @ Wavelength of " + QString::number(currentWL) + " nm");
162-
for (int i = 0; i<para->nTheta; i++)
163-
ui->textBrowser_Display->append(QString::number(theta[i]) + "\t" + QString::number(phaseFunction[i]));
123+
ui->textBrowser_Display->append("Angle(deg)\tPhase Function (Perp)");
124+
for (unsigned int i = 0; i<para->nTheta; i++)
125+
{
126+
if (mainUi->radioButton_PhaseAverage->isChecked())
127+
ui->textBrowser_Display->append(QString::number(180.0 * i / (para->nTheta - 1)) + "\t" +
128+
QString::number(para->phaseFunctionAve[indexWL][i]));
129+
if (mainUi->radioButton_PhasePara->isChecked())
130+
ui->textBrowser_Display->append(QString::number(180.0 * i / (para->nTheta - 1)) + "\t" +
131+
QString::number(para->phaseFunctionPara[indexWL][i]));
132+
if (mainUi->radioButton_PhasePerp->isChecked())
133+
ui->textBrowser_Display->append(QString::number(180.0 * i / (para->nTheta - 1)) + "\t" +
134+
QString::number(para->phaseFunctionPerp[indexWL][i]));
135+
}
164136
}

src/mainwindow.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ void MainWindow::on_pushButton_RunSimulation_clicked()
105105
{
106106
if (!support.CheckDistribution(ui,mPara)) //sanity check
107107
{
108-
support.ProcessDistribution(ui, mPara, ui->comboBox_Distribution->currentIndex());
108+
support.ProcessDistribution(ui, mPara, static_cast<unsigned int>(ui->comboBox_Distribution->currentIndex()));
109109
support.ProcessPolyDisperse(ui,mPara);
110110
ui->label_Progress->setText("<font color=\"green\"> Completed!</font>");
111111
ui->slider_ConcPercentChange->setValue(0);
@@ -157,7 +157,7 @@ void MainWindow::on_pushButton_ShowDistributionAndCustom_clicked()
157157
if (!support.CheckDistribution(ui,mPara)) //sanity check
158158
{
159159
support.SetWidgets(ui);
160-
support.ProcessDistribution(ui, mPara, ui->comboBox_Distribution->currentIndex());
160+
support.ProcessDistribution(ui, mPara, static_cast<unsigned int>(ui->comboBox_Distribution->currentIndex()));
161161
mDistPlotFlag = true;
162162
}
163163
}
@@ -189,8 +189,8 @@ void MainWindow::on_pushButton_DisplayData_clicked()
189189
{
190190
DisplayDialog *display;
191191
display = new DisplayDialog();
192-
display->show();
193192
display->DisplayData(ui, mPara);
193+
display->show();
194194
}
195195
else
196196
{
@@ -488,23 +488,23 @@ void MainWindow::on_slider_ConcPercentChange_valueChanged(int position)
488488
//on_slider_WL_PFPolar_valueChanged: Change Phase Function Wavelenghth Slider
489489
void MainWindow::on_slider_WL_PFPolar_valueChanged(int value)
490490
{
491-
int wavel = mPara->startWavel + value*mPara->stepWavel;
491+
int wavel = static_cast<int>(mPara->startWavel + value*mPara->stepWavel);
492492
ui->label_CurrentWL_PFPolar->setText(QString::number(wavel));
493493
UpdatePhaseFunctionPolarPlot();
494494
}
495495

496496
//on_slider_WL_PFLinear_valueChanged: Change Phase Function Wavelenghth Slider
497497
void MainWindow::on_slider_WL_PFLinear_valueChanged(int value)
498498
{
499-
int wavel = mPara->startWavel + value*mPara->stepWavel;
499+
int wavel = static_cast<int>(mPara->startWavel + value*mPara->stepWavel);
500500
ui->label_CurrentWL_PFLinear->setText(QString::number(wavel));
501501
UpdatePhaseFunctionLinearPlot();
502502
}
503503

504504
//on_slider_WL_S1S2_valueChanged: Change S1/S2 Wavelenghth Slider
505505
void MainWindow::on_slider_WL_S1S2_valueChanged(int value)
506506
{
507-
int wavel = mPara->startWavel + value*mPara->stepWavel;
507+
int wavel = static_cast<int>(mPara->startWavel + value*mPara->stepWavel);
508508
ui->label_CurrentWL_S1S2->setText(QString::number(wavel));
509509
UpdateS1S2Plot();
510510
}
@@ -796,7 +796,7 @@ void MainWindow::DisplayCurveData(QMouseEvent *event, QCustomPlot *curPlot,
796796
QCPGraphDataContainer::const_iterator begin = graph->data()->at(dataRange.begin()); // get range begin iterator from index
797797
QCPGraphDataContainer::const_iterator end = graph->data()->at(dataRange.end()); // get range end iterator from index
798798

799-
int n = end-begin;
799+
unsigned int n = static_cast<unsigned int>(end-begin);
800800
if (n>0)
801801
{
802802
dx = new double[n];

src/mainwindow.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class MainWindow : public QMainWindow
2626
Q_OBJECT
2727

2828
public:
29-
explicit MainWindow(QWidget *parent = 0);
29+
explicit MainWindow(QWidget *parent = nullptr);
3030
~MainWindow();
3131

3232
private slots:

src/mainwindow.ui

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
</size>
2424
</property>
2525
<property name="windowTitle">
26-
<string>Mie Simulator v1.1: Virtual Photonics Technology Initiative - Beckman Laser Institute </string>
26+
<string>Mie Simulator v1.2: Virtual Photonics Technology Initiative - Beckman Laser Institute, University of California Irvine </string>
2727
</property>
2828
<property name="windowIcon">
2929
<iconset resource="MieRes.qrc">
@@ -1288,7 +1288,7 @@
12881288
</font>
12891289
</property>
12901290
<property name="currentIndex">
1291-
<number>0</number>
1291+
<number>1</number>
12921292
</property>
12931293
<property name="movable">
12941294
<bool>true</bool>
@@ -1506,16 +1506,6 @@
15061506
</property>
15071507
</widget>
15081508
</item>
1509-
<item row="7" column="1">
1510-
<widget class="QLabel" name="label_FLabel">
1511-
<property name="text">
1512-
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:10pt; font-weight:600; color:#005500;&quot;&gt;f&lt;/span&gt;&lt;span style=&quot; font-size:10pt; font-weight:600; color:#005500; vertical-align:sub;&quot;&gt;Ray&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
1513-
</property>
1514-
<property name="alignment">
1515-
<set>Qt::AlignCenter</set>
1516-
</property>
1517-
</widget>
1518-
</item>
15191509
<item row="0" column="0" rowspan="10">
15201510
<widget class="QCustomPlot" name="customPlot_MuspPowerLaw" native="true">
15211511
<property name="sizePolicy">
@@ -1561,6 +1551,16 @@
15611551
</property>
15621552
</widget>
15631553
</item>
1554+
<item row="7" column="1">
1555+
<widget class="QLabel" name="label_FLabel">
1556+
<property name="text">
1557+
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:10pt; font-weight:600; color:#005500;&quot;&gt;f&lt;/span&gt;&lt;span style=&quot; font-size:10pt; font-weight:600; color:#005500; vertical-align:sub;&quot;&gt;Ray&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
1558+
</property>
1559+
<property name="alignment">
1560+
<set>Qt::AlignCenter</set>
1561+
</property>
1562+
</widget>
1563+
</item>
15641564
</layout>
15651565
</widget>
15661566
</widget>
@@ -2619,7 +2619,7 @@
26192619
</connection>
26202620
</connections>
26212621
<buttongroups>
2622-
<buttongroup name="buttonGroup_MonoPoly"/>
26232622
<buttongroup name="buttonGroup_ConcVolFrac"/>
2623+
<buttongroup name="buttonGroup_MonoPoly"/>
26242624
</buttongroups>
26252625
</ui>

0 commit comments

Comments
 (0)