Skip to content

Commit 0397ba3

Browse files
committed
Fixed incorrect imaginary refractive index sign in "Display Data" and "Saved Data". this does not affect simulation data.
1 parent db1ee50 commit 0397ba3

11 files changed

Lines changed: 197 additions & 197 deletions

src/calculate.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ void calculate::DoSimulation(Ui_MainWindow *ui, parameters *para,
6767
if (refRelIm == 0.0)
6868
sim.FarFieldSolutionForRealRefIndex(&cS1, &cS2, &qSca, xPara, refRelRe, mu);
6969
else
70-
sim.FarFieldSolutionForComplexRefIndex(&cS1, &cS2, &qSca, xPara,
71-
std::complex<double>(refRelRe,refRelIm), mu);
70+
sim.FarFieldSolutionForComplexRefIndex(&cS1, &cS2, &qSca, xPara,
71+
std::complex<double>(refRelRe, -refRelIm), mu); //multiply by -1 to use "n-ik" convention
7272
curS1[t] = cS1;
7373
curS2[t] = cS2;
7474
}

src/displaydialog.cpp

Lines changed: 123 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -7,139 +7,140 @@
77
#include "ui_displaydialog.h"
88

99
DisplayDialog::DisplayDialog(QWidget *parent) :
10-
QDialog(parent),
11-
ui(new Ui::DisplayDialog)
10+
QDialog(parent),
11+
ui(new Ui::DisplayDialog)
1212
{
13-
ui->setupUi(this);
13+
ui->setupUi(this);
1414
}
1515

1616
DisplayDialog::~DisplayDialog()
1717
{
18-
delete ui;
18+
delete ui;
1919
}
2020

2121
void DisplayDialog::on_pushButton_Close_clicked()
2222
{
23-
this->close();
23+
this->close();
2424
}
2525

2626
void DisplayDialog::DisplayData(Ui_MainWindow *mainUi, parameters *para)
2727
{
28-
double margin = (1.0 + mainUi->slider_ConcPercentChange->value() / 200.0);
29-
30-
//Simulation parameters
31-
ui->textBrowser_Display->setText("Simulation parameters:\n");
32-
33-
if (mainUi->radioButton_MonoDisperse->isChecked())
34-
{
35-
ui->textBrowser_Display->append("Distribution: Mono Disperse");
36-
ui->textBrowser_Display->append("Diameter of spheres: " + QString::number(2.0*para->meanRadius) + " um");
37-
if (mainUi->radioButton_Conc_mm3->isChecked())
38-
ui->textBrowser_Display->append("Concentration (Spheres in a volume of 1mm^3): "
39-
+ QString::number(para->sphNumDensity * margin));
40-
if (mainUi->radioButton_VolFrac->isChecked())
41-
ui->textBrowser_Display->append("Volume Fraction (Total sphere volume / 1mm^3): "
42-
+ QString::number(para->volFraction * margin));
43-
}
44-
45-
if (mainUi->radioButton_PolyDisperse->isChecked())
46-
{
47-
int currentIndex = mainUi->comboBox_Distribution->currentIndex();
48-
if (currentIndex == 0) //Log normal distribution
49-
ui->textBrowser_Display->append("Distribution: Poly Disperse - Log Normal");
50-
if (currentIndex == 1) //Gaussian distribution
51-
ui->textBrowser_Display->append("Distribution: Poly Disperse - Gaussian");
52-
if (currentIndex == 2) //Custom distribution
53-
ui->textBrowser_Display->append("Distribution: Poly Disperse - Custom");
54-
ui->textBrowser_Display->append("Number of discrete sphere sizes: "
55-
+ QString::number(para->nRadius));
56-
if (currentIndex != 2)
57-
{
58-
ui->textBrowser_Display->append("Mean diameter of spheres: "
59-
+ QString::number(2.0*para->meanRadius) + " um");
60-
ui->textBrowser_Display->append("Std. deviation: " + QString::number(para->stdDev) + " um\n");
61-
if (mainUi->radioButton_Conc_mm3->isChecked())
62-
ui->textBrowser_Display->append("Total Concentration (Spheres in a volume of 1mm^3): "
63-
+ QString::number(para->sphNumDensity * margin));
64-
if (mainUi->radioButton_VolFrac->isChecked())
65-
ui->textBrowser_Display->append("Volume Fraction (Total sphere volume / 1mm^3): "
66-
+ QString::number(para->volFraction * margin));
67-
}
68-
}
69-
ui->textBrowser_Display->append("Wavelength Range: " + QString::number(para->startWavel) + "nm to "
70-
+ QString::number(para->endWavel) + "nm in "+ QString::number(para->stepWavel) + "nm steps\n");
71-
ui->textBrowser_Display->append("Refractive index of the medium: " + QString::number(para->medRef) );
72-
73-
ui->textBrowser_Display->append("\nSphere Data:");
74-
ui->textBrowser_Display->append("Dia.(um)\tNum. Den.(in a vol. of 1mm^3)\tRef. Index (real | imag)");
75-
for (int i = 0; i<para->nRadius; i++)
76-
ui->textBrowser_Display->append(QString::number(2.0 * para->radArray[i]) + "\t"
77-
+ QString::number(para->numDensityArray[i] * margin) + "\t"
78-
+ QString::number(para->scatRefRealArray[i]) + "\t" + QString::number(para->scatRefImagArray[i]) );
79-
80-
ui->textBrowser_Display->append("\n\nOutput:\n");
81-
ui->textBrowser_Display->append("Scattering Coefficient (us):");
82-
ui->textBrowser_Display->append("WL(nm)\tScattering Coefficient (mm^-1)");
83-
for (int i = 0; i<para->nWavel; i++)
84-
ui->textBrowser_Display->append(QString::number(para->wavelArray[i]) + "\t"
85-
+ QString::number(para->mus[i] * margin) );
86-
87-
88-
ui->textBrowser_Display->append("\ng (Average Cosine of Phase Function):");
89-
ui->textBrowser_Display->append("WL(nm)\tg (Average Cosine of Phase Function)");
90-
for (int i = 0; i<para->nWavel; i++)
91-
ui->textBrowser_Display->append(QString::number(para->wavelArray[i]) + "\t"
92-
+ QString::number(para->g[i]) );
93-
94-
95-
ui->textBrowser_Display->append("\nReduced Scattering Coefficient (us'):");
96-
ui->textBrowser_Display->append("WL(nm)\tReduced Scattering Coefficient (mm^-1)");
97-
for (int i = 0; i<para->nWavel; i++)
98-
ui->textBrowser_Display->append(QString::number(para->wavelArray[i]) + "\t"
99-
+ QString::number(para->mus[i] * (1 - para->g[i])*margin) );
100-
101-
102-
ui->textBrowser_Display->append("\nScattering Cross Section (Csca):");
103-
ui->textBrowser_Display->append("WL(nm)\tScattering Cross Section (um^2)");
104-
for (int i = 0; i<para->nWavel; i++)
105-
ui->textBrowser_Display->append(QString::number(para->wavelArray[i]) + "\t"
106-
+ QString::number(para->scatCross[i]) );
107-
108-
ui->textBrowser_Display->append("\nForward and Backward Scattering %");
109-
ui->textBrowser_Display->append("WL(nm)\tForward %\tBackward %");
110-
for (int i = 0; i<para->nWavel; i++)
111-
ui->textBrowser_Display->append(QString::number(para->wavelArray[i]) + "\t"
112-
+ QString::number(para->forward[i]) + "\t" + QString::number(para->backward[i]));
113-
114-
ui->textBrowser_Display->append("\nPhase Function:");
115-
QVector<double> phaseFunction(para->nTheta), theta(para->nTheta);
116-
int indexWL = mainUi->slider_PF_WL->value();
117-
double currentWL = para->startWavel + indexWL*para->stepWavel;
118-
for (int i = 0; i<para->nTheta; i++)
119-
{
120-
theta[i] = 180.0 * i / (para->nTheta - 1);
121-
if (mainUi->radioButton_PhaseAverage->isChecked())
122-
{
123-
phaseFunction[i] = para->phaseFunctionAve[indexWL][i];
124-
}
125-
if (mainUi->radioButton_PhasePara->isChecked())
126-
{
127-
phaseFunction[i] = para->phaseFunctionPara[indexWL][i];
128-
}
129-
if (mainUi->radioButton_PhasePerp->isChecked())
130-
{
131-
phaseFunction[i] = para->phaseFunctionPerp[indexWL][i];
132-
}
133-
}
134-
135-
if (mainUi->radioButton_PhaseAverage->isChecked())
136-
ui->textBrowser_Display->append("Angle(deg)\t Phase Function (Ave) @ Wavelength of " + QString::number(currentWL) + " nm");
137-
else
138-
if (mainUi->radioButton_PhasePara->isChecked())
139-
ui->textBrowser_Display->append("Angle(deg)\t Phase Function (Para) @ Wavelength of " + QString::number(currentWL) + " nm");
140-
else
141-
if (mainUi->radioButton_PhasePerp->isChecked())
142-
ui->textBrowser_Display->append("Angle(deg)\t Phase Function (Perp @ Wavelength of " + QString::number(currentWL) + " nm");
143-
for (int i = 0; i<para->nTheta; i++)
144-
ui->textBrowser_Display->append(QString::number(theta[i]) + "\t" + QString::number(phaseFunction[i]));
28+
double margin = (1.0 + mainUi->slider_ConcPercentChange->value() / 200.0);
29+
30+
//Simulation parameters
31+
ui->textBrowser_Display->setText("test");
32+
ui->textBrowser_Display->setText("Simulation parameters:\n");
33+
34+
if (mainUi->radioButton_MonoDisperse->isChecked())
35+
{
36+
ui->textBrowser_Display->append("Distribution: Mono Disperse");
37+
ui->textBrowser_Display->append("Diameter of spheres: " + QString::number(2.0*para->meanRadius) + " um");
38+
if (mainUi->radioButton_Conc_mm3->isChecked())
39+
ui->textBrowser_Display->append("Concentration (Spheres in a volume of 1mm^3): "
40+
+ QString::number(para->sphNumDensity * margin));
41+
if (mainUi->radioButton_VolFrac->isChecked())
42+
ui->textBrowser_Display->append("Volume Fraction (Total sphere volume / 1mm^3): "
43+
+ QString::number(para->volFraction * margin));
44+
}
45+
46+
if (mainUi->radioButton_PolyDisperse->isChecked())
47+
{
48+
int currentIndex = mainUi->comboBox_Distribution->currentIndex();
49+
if (currentIndex == 0) //Log normal distribution
50+
ui->textBrowser_Display->append("Distribution: Poly Disperse - Log Normal");
51+
if (currentIndex == 1) //Gaussian distribution
52+
ui->textBrowser_Display->append("Distribution: Poly Disperse - Gaussian");
53+
if (currentIndex == 2) //Custom distribution
54+
ui->textBrowser_Display->append("Distribution: Poly Disperse - Custom");
55+
ui->textBrowser_Display->append("Number of discrete sphere sizes: "
56+
+ QString::number(para->nRadius));
57+
if (currentIndex != 2)
58+
{
59+
ui->textBrowser_Display->append("Mean diameter of spheres: "
60+
+ QString::number(2.0*para->meanRadius) + " um");
61+
ui->textBrowser_Display->append("Std. deviation: " + QString::number(para->stdDev) + " um\n");
62+
if (mainUi->radioButton_Conc_mm3->isChecked())
63+
ui->textBrowser_Display->append("Total Concentration (Spheres in a volume of 1mm^3): "
64+
+ QString::number(para->sphNumDensity * margin));
65+
if (mainUi->radioButton_VolFrac->isChecked())
66+
ui->textBrowser_Display->append("Volume Fraction (Total sphere volume / 1mm^3): "
67+
+ QString::number(para->volFraction * margin));
68+
}
69+
}
70+
ui->textBrowser_Display->append("Wavelength Range: " + QString::number(para->startWavel) + "nm to "
71+
+ QString::number(para->endWavel) + "nm in "+ QString::number(para->stepWavel) + "nm steps\n");
72+
ui->textBrowser_Display->append("Refractive index of the medium: " + QString::number(para->medRef) );
73+
74+
ui->textBrowser_Display->append("\nSphere Data:");
75+
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++)
77+
ui->textBrowser_Display->append(QString::number(2.0 * para->radArray[i]) + "\t"
78+
+ QString::number(para->numDensityArray[i] * margin) + "\t"
79+
+ QString::number(para->scatRefRealArray[i]) + "\t" + QString::number(para->scatRefImagArray[i]) );
80+
81+
ui->textBrowser_Display->append("\n\nOutput:\n");
82+
ui->textBrowser_Display->append("Scattering Coefficient (us):");
83+
ui->textBrowser_Display->append("WL(nm)\tScattering Coefficient (mm^-1)");
84+
for (int i = 0; i<para->nWavel; i++)
85+
ui->textBrowser_Display->append(QString::number(para->wavelArray[i]) + "\t"
86+
+ QString::number(para->mus[i] * margin) );
87+
88+
89+
ui->textBrowser_Display->append("\ng (Average Cosine of Phase Function):");
90+
ui->textBrowser_Display->append("WL(nm)\tg (Average Cosine of Phase Function)");
91+
for (int i = 0; i<para->nWavel; i++)
92+
ui->textBrowser_Display->append(QString::number(para->wavelArray[i]) + "\t"
93+
+ QString::number(para->g[i]) );
94+
95+
96+
ui->textBrowser_Display->append("\nReduced Scattering Coefficient (us'):");
97+
ui->textBrowser_Display->append("WL(nm)\tReduced Scattering Coefficient (mm^-1)");
98+
for (int i = 0; i<para->nWavel; i++)
99+
ui->textBrowser_Display->append(QString::number(para->wavelArray[i]) + "\t"
100+
+ QString::number(para->mus[i] * (1 - para->g[i])*margin) );
101+
102+
103+
ui->textBrowser_Display->append("\nScattering Cross Section (Csca):");
104+
ui->textBrowser_Display->append("WL(nm)\tScattering Cross Section (um^2)");
105+
for (int i = 0; i<para->nWavel; i++)
106+
ui->textBrowser_Display->append(QString::number(para->wavelArray[i]) + "\t"
107+
+ QString::number(para->scatCross[i]) );
108+
109+
ui->textBrowser_Display->append("\nForward and Backward Scattering %");
110+
ui->textBrowser_Display->append("WL(nm)\tForward %\tBackward %");
111+
for (int i = 0; i<para->nWavel; i++)
112+
ui->textBrowser_Display->append(QString::number(para->wavelArray[i]) + "\t"
113+
+ QString::number(para->forward[i]) + "\t" + QString::number(para->backward[i]));
114+
115+
ui->textBrowser_Display->append("\nPhase Function:");
116+
QVector<double> phaseFunction(para->nTheta), theta(para->nTheta);
117+
int indexWL = mainUi->slider_PF_WL->value();
118+
double currentWL = para->startWavel + indexWL*para->stepWavel;
119+
for (int i = 0; i<para->nTheta; i++)
120+
{
121+
theta[i] = 180.0 * i / (para->nTheta - 1);
122+
if (mainUi->radioButton_PhaseAverage->isChecked())
123+
{
124+
phaseFunction[i] = para->phaseFunctionAve[indexWL][i];
125+
}
126+
if (mainUi->radioButton_PhasePara->isChecked())
127+
{
128+
phaseFunction[i] = para->phaseFunctionPara[indexWL][i];
129+
}
130+
if (mainUi->radioButton_PhasePerp->isChecked())
131+
{
132+
phaseFunction[i] = para->phaseFunctionPerp[indexWL][i];
133+
}
134+
}
135+
136+
if (mainUi->radioButton_PhaseAverage->isChecked())
137+
ui->textBrowser_Display->append("Angle(deg)\t Phase Function (Ave) @ Wavelength of " + QString::number(currentWL) + " nm");
138+
else
139+
if (mainUi->radioButton_PhasePara->isChecked())
140+
ui->textBrowser_Display->append("Angle(deg)\t Phase Function (Para) @ Wavelength of " + QString::number(currentWL) + " nm");
141+
else
142+
if (mainUi->radioButton_PhasePerp->isChecked())
143+
ui->textBrowser_Display->append("Angle(deg)\t Phase Function (Perp @ Wavelength of " + QString::number(currentWL) + " nm");
144+
for (int i = 0; i<para->nTheta; i++)
145+
ui->textBrowser_Display->append(QString::number(theta[i]) + "\t" + QString::number(phaseFunction[i]));
145146
}

src/displaydialog.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,11 @@ class DisplayDialog : public QDialog
1717
explicit DisplayDialog(QWidget *parent = 0);
1818
~DisplayDialog();
1919
void DisplayData(Ui_MainWindow *, parameters *);
20+
Ui::DisplayDialog *ui;
2021

2122
private slots:
2223
void on_pushButton_Close_clicked();
2324

24-
private:
25-
Ui::DisplayDialog *ui;
2625
};
2726

2827
#endif // DISPLAYDIALOG_H

src/icon/Banner.png

33.6 KB
Loading

src/icon/VPlogo.ico

37.9 KB
Binary file not shown.

src/icon/VPlogoMie.ico

62.6 KB
Binary file not shown.

src/icon/vpIcon.png

-2.37 KB
Loading

0 commit comments

Comments
 (0)