Skip to content

Commit 400ede7

Browse files
committed
Fixed incorrect VolFraction usage
1 parent 0a2f867 commit 400ede7

4 files changed

Lines changed: 41 additions & 11 deletions

File tree

src/app/calc/calculate.cpp

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,8 @@ void Calculate::DiameterRangeSetting(Parameters *para, unsigned int index)
470470

471471
// Determines the scattering regime based on Tien et. al, A.R. Heat Trandfer 1(1987) & Galy et al. JQSRT 246(2020)
472472
bool Calculate::CheckIndependentScattering(Parameters *para, double &clearanceToWavelength, double &sizeParameter,
473-
double &volFraction, double &criticalWavelength, QString &strRegime)
473+
double &volFraction, double &criticalWavelength, QString &strRegime,
474+
bool flagVolFlag)
474475
{
475476
double const volumeConstant = (4.0/3.0) * M_PI ;
476477
double effectiveRadius = 0.0;
@@ -483,7 +484,14 @@ bool Calculate::CheckIndependentScattering(Parameters *para, double &clearanceTo
483484
{
484485
effectiveRadius = para->meanRadius;
485486
double singleSphVolume = volumeConstant * pow(effectiveRadius, 3);
486-
volFraction = singleSphVolume * para->numDensityArray[0] / 1e9;
487+
if (flagVolFlag)
488+
{
489+
volFraction = para->volFraction;
490+
}
491+
else
492+
{
493+
volFraction = singleSphVolume * para->numDensityArray[0] / 1e9;
494+
}
487495
interParticleDistance = 1e3 / pow(para->numDensityArray[0], 1.0 / 3.0);
488496
}
489497
else //polydisperse
@@ -496,7 +504,14 @@ bool Calculate::CheckIndependentScattering(Parameters *para, double &clearanceTo
496504
totalVolume += singleSphVolume * para->numDensityArray[i];
497505
totalNumDensity += para->numDensityArray[i];
498506
}
499-
volFraction = totalVolume / 1e9;
507+
if (flagVolFlag)
508+
{
509+
volFraction = para->volFraction;
510+
}
511+
else
512+
{
513+
volFraction = totalVolume / 1e9;
514+
}
500515
interParticleDistance = 1e3 / pow(totalNumDensity, 1.0 / 3.0);
501516

502517
double averageVolume = totalVolume / totalNumDensity;

src/app/calc/calculate.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ class Calculate
3333
double CalculateG(std::complex<double> *S1, std::complex<double> *S2, Parameters *para);
3434
bool CheckIndependentScattering(Parameters *para, double &clearanceToWavelength,
3535
double &sizeParameter, double &volFraction,
36-
double &criticalWavelength, QString &strRegime);
36+
double &criticalWavelength, QString &strRegime,
37+
bool flagVolFlag);
3738
};
3839

3940
#endif // CALCULATE_H

src/app/dialog/mainwindowsupport.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,9 @@ void MainWindowSupport::ProcessMonoDisperse(Ui_MainWindow *ui, Parameters *para)
329329
//Check independent/dependent scattering
330330
double clearanceToWavelength, sizeParameter, volFraction, criticalWavelength;
331331
QString strRegime;
332-
if(mCalc->CheckIndependentScattering(para, clearanceToWavelength, sizeParameter, volFraction, criticalWavelength, strRegime))
332+
bool flagVolFrac = ui->radioButton_VolFrac->isChecked();
333+
if(mCalc->CheckIndependentScattering(para, clearanceToWavelength, sizeParameter, volFraction,
334+
criticalWavelength, strRegime, flagVolFrac))
333335
{
334336
DisplayScatteringRegimeWarning(clearanceToWavelength, sizeParameter, volFraction, criticalWavelength, strRegime);
335337
}
@@ -357,7 +359,9 @@ void MainWindowSupport::ProcessPolyDisperse(Ui_MainWindow *ui, Parameters *para)
357359
//Check independent/dependent scattering
358360
double clearanceToWavelength, sizeParameter, volFraction, criticalWavelength;
359361
QString strRegime;
360-
if(mCalc->CheckIndependentScattering(para, clearanceToWavelength, sizeParameter, volFraction, criticalWavelength, strRegime))
362+
bool flagVolFrac = ui->radioButton_VolFrac->isChecked();
363+
if(mCalc->CheckIndependentScattering(para, clearanceToWavelength, sizeParameter, volFraction,
364+
criticalWavelength, strRegime, flagVolFrac))
361365
{
362366
DisplayScatteringRegimeWarning(clearanceToWavelength, sizeParameter, volFraction, criticalWavelength, strRegime);
363367
}

src/test/test_calculate.cpp

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -484,6 +484,7 @@ void TestCalculate::test_CheckIndependentScattering_HighConcentration()
484484
{
485485
double clearanceToWavelength, sizeParameter, volFraction, criticalWavelength;
486486
QString strRegime;
487+
bool flagVolFrac = false;
487488

488489
mPara->nRadius = 1;
489490
mPara->meanRadius = 1.0;
@@ -492,7 +493,8 @@ void TestCalculate::test_CheckIndependentScattering_HighConcentration()
492493
mPara->medRef = 1.0;
493494

494495
bool isDependent = mCalc->CheckIndependentScattering(mPara, clearanceToWavelength, sizeParameter,
495-
volFraction, criticalWavelength, strRegime);
496+
volFraction, criticalWavelength, strRegime,
497+
flagVolFrac);
496498
QVERIFY(isDependent == true);
497499
}
498500

@@ -501,6 +503,7 @@ void TestCalculate::test_CheckIndependentScattering_LowConcSmallSize()
501503
{
502504
double clearanceToWavelength, sizeParameter, volFraction, criticalWavelength;
503505
QString strRegime;
506+
bool flagVolFrac = false;
504507

505508
mPara->nRadius = 1;
506509
mPara->meanRadius = 0.01;
@@ -509,7 +512,8 @@ void TestCalculate::test_CheckIndependentScattering_LowConcSmallSize()
509512
mPara->medRef = 1.0;
510513

511514
bool isDependent = mCalc->CheckIndependentScattering(mPara, clearanceToWavelength, sizeParameter,
512-
volFraction, criticalWavelength, strRegime);
515+
volFraction, criticalWavelength, strRegime,
516+
flagVolFrac);
513517
QVERIFY(isDependent == false);
514518
}
515519

@@ -518,6 +522,7 @@ void TestCalculate::test_CheckIndependentScattering_TransitionalDependent()
518522
{
519523
double clearanceToWavelength, sizeParameter, volFraction, criticalWavelength;
520524
QString strRegime;
525+
bool flagVolFrac = false;
521526

522527
mPara->nRadius = 1;
523528
mPara->meanRadius = 1.0;
@@ -529,7 +534,8 @@ void TestCalculate::test_CheckIndependentScattering_TransitionalDependent()
529534
// clearanceToWavelength = (5.84 - 2*1.0) / 1.0 = 3.84
530535
// 3.84 <= 5.0 (required clearance)
531536
bool isDependent = mCalc->CheckIndependentScattering(mPara, clearanceToWavelength, sizeParameter,
532-
volFraction, criticalWavelength, strRegime);
537+
volFraction, criticalWavelength, strRegime,
538+
flagVolFrac);
533539
QVERIFY(isDependent == true);
534540
}
535541

@@ -538,6 +544,7 @@ void TestCalculate::test_CheckIndependentScattering_LowConcLargeSizeIndependent(
538544
{
539545
double clearanceToWavelength, sizeParameter, volFraction, criticalWavelength;
540546
QString strRegime;
547+
bool flagVolFrac = false;
541548

542549
mPara->nRadius = 1;
543550
mPara->meanRadius = 1.0;
@@ -549,7 +556,8 @@ void TestCalculate::test_CheckIndependentScattering_LowConcLargeSizeIndependent(
549556
// clearanceToWavelength = (46.4 - 2) / 0.5 = 88.8
550557
// 88.8 > 5.0, should be independent (false)
551558
bool isDependent = mCalc->CheckIndependentScattering(mPara, clearanceToWavelength, sizeParameter,
552-
volFraction, criticalWavelength, strRegime);
559+
volFraction, criticalWavelength, strRegime,
560+
flagVolFrac);
553561
QVERIFY(isDependent == false);
554562
}
555563

@@ -558,6 +566,7 @@ void TestCalculate::test_CheckIndependentScattering_Polydisperse()
558566
{
559567
double clearanceToWavelength, sizeParameter, volFraction, criticalWavelength;
560568
QString strRegime;
569+
bool flagVolFrac = false;
561570

562571
mPara->nRadius = 2;
563572
mPara->radArray[0] = 0.5;
@@ -568,6 +577,7 @@ void TestCalculate::test_CheckIndependentScattering_Polydisperse()
568577
mPara->medRef = 1.0;
569578

570579
bool isDependent = mCalc->CheckIndependentScattering(mPara, clearanceToWavelength, sizeParameter,
571-
volFraction, criticalWavelength, strRegime);
580+
volFraction, criticalWavelength, strRegime,
581+
flagVolFrac);
572582
QVERIFY(isDependent == false);
573583
}

0 commit comments

Comments
 (0)