@@ -325,16 +325,6 @@ void MainWindowSupport::ProcessMonoDisperse(Ui_MainWindow *ui, Parameters *para)
325325 plot.AssignValuesPhaseFunctionLinearPlot (ui,para);
326326 plot.AssignValuesS1S2Plot (ui, para);
327327 plot.AssignValuesOtherPlots (ui, para);
328-
329- // Check independent/dependent scattering
330- double clearanceToWavelength, sizeParameter, volFraction, criticalWavelength;
331- QString strRegime;
332- bool flagVolFrac = ui->radioButton_VolFrac ->isChecked ();
333- if (mCalc ->CheckIndependentScattering (para, clearanceToWavelength, sizeParameter, volFraction,
334- criticalWavelength, strRegime, flagVolFrac))
335- {
336- PrepareScatteringRegimeWarning (clearanceToWavelength, sizeParameter, volFraction, criticalWavelength, strRegime);
337- }
338328}
339329
340330// Run Poly disperse distribution
@@ -355,16 +345,6 @@ void MainWindowSupport::ProcessPolyDisperse(Ui_MainWindow *ui, Parameters *para)
355345 plot.AssignValuesPhaseFunctionLinearPlot (ui,para);
356346 plot.AssignValuesS1S2Plot (ui, para);
357347 plot.AssignValuesOtherPlots (ui, para);
358-
359- // Check independent/dependent scattering
360- double clearanceToWavelength, sizeParameter, volFraction, criticalWavelength;
361- QString strRegime;
362- bool flagVolFrac = ui->radioButton_VolFrac ->isChecked ();
363- if (mCalc ->CheckIndependentScattering (para, clearanceToWavelength, sizeParameter, volFraction,
364- criticalWavelength, strRegime, flagVolFrac))
365- {
366- PrepareScatteringRegimeWarning (clearanceToWavelength, sizeParameter, volFraction, criticalWavelength, strRegime);
367- }
368348}
369349
370350// Sphere distribution in polydisperse
@@ -623,34 +603,48 @@ void MainWindowSupport::ReadCustomData(Parameters *para, QString fileName, bool
623603 }
624604}
625605
606+ // Check independent/dependent scattering
607+ void MainWindowSupport::CheckIndependentScattering (Ui_MainWindow *ui, Parameters *para)
608+ {
609+ mCalc = new Calculate ();
610+
611+ double clearanceToWavelength, sizeParameter, volFraction, wavelength, clearance;
612+ QString strRegime;
613+ bool flagVolFrac = ui->radioButton_VolFrac ->isChecked ();
614+ if (mCalc ->CheckIndependentScattering (para, clearanceToWavelength, sizeParameter, volFraction,
615+ wavelength, clearance, strRegime, flagVolFrac))
616+ {
617+ PrepareScatteringRegimeWarning (clearanceToWavelength, sizeParameter, volFraction,
618+ wavelength, clearance, strRegime);
619+ }
620+ }
621+
626622// Prepare Scattering Regime Warning
627623void MainWindowSupport::PrepareScatteringRegimeWarning (double clearanceToWavelength, double sizeParameter,
628- double volFraction, double criticalWavelength ,
629- QString strRegime)
624+ double volFraction, double wavelength ,
625+ double clearance, QString strRegime)
630626{
631627 QString strClearance = QString::number (clearanceToWavelength, ' f' , 3 );
628+ bool isIndependentTien = true ;
629+ bool isIndependentGaly = true ;
630+ QString strTienCriteria;
631+ QString strGalyCriteria;
632632
633- // Logic, Threshold Strings and Hyperlink for Tien and Drolen
634- bool isIndependentTien = (clearanceToWavelength > 0.5 );
635- QString strTienResult = isIndependentTien ?
636- QString (" <font color='green'>Independent</font> (c/λ=%1)" ).arg (strClearance) :
637- QString (" <font color='red'>Dependent</font> (c/λ=%1)" ).arg (strClearance);
638- QString strTienCriteria = " c/λ > 0.5" ;
639633 QString strTienDorlenLink = " <a href='https://doi.org/10.1615/AnnualRevHeatTransfer.v1.30' style='color: #0000EE;'>Tien and Drolen (1987)</a>" ;
640-
641- // Logic, Threshold Strings and Hyperlink for Galy et al.
642- bool isIndependentGaly = false ;
643- QString strGalyCriteria;
644634 QString strGalyLink = " <a href='https://doi.org/10.1016/j.jqsrt.2020.106924' style='color: #0000EE;'>Galy et al. (2020)</a>" ;
645635
636+ // Low Concentration Regime
646637 if (volFraction <= 0.006 )
647638 {
648639 if (sizeParameter > 0.388 )
649640 {
641+ isIndependentTien = (clearanceToWavelength > 0.5 );
642+ strTienCriteria = " c/λ > 0.5 (χ ≥ 0.388)" ;
643+
650644 if (sizeParameter <= 2.0 )
651645 {
652646 isIndependentGaly = (clearanceToWavelength > 2.0 );
653- strGalyCriteria = " c/λ > 2.0 (0.388 ≤ χ ≤ 2)" ;
647+ strGalyCriteria = " c/λ > 2.0 (χ ≤ 2)" ;
654648 }
655649 else
656650 {
@@ -660,45 +654,72 @@ void MainWindowSupport::PrepareScatteringRegimeWarning(double clearanceToWavelen
660654 }
661655 else
662656 {
657+ isIndependentTien = true ;
658+ strTienCriteria = " χ ≤ 0.388" ;
663659 isIndependentGaly = true ;
664- strGalyCriteria = " Independent ( χ ≤ 0.388) " ;
660+ strGalyCriteria = " χ ≤ 0.388" ;
665661 }
666662 }
667663 else
668664 {
669- if (sizeParameter <= 2.0 )
665+ // High Concentration Regime
666+ if (volFraction > 0.1 )
670667 {
671- isIndependentGaly = (clearanceToWavelength > 2.0 );
672- strGalyCriteria = " c/λ > 2.0 (χ ≤ 2)" ;
668+ isIndependentTien = false ;
669+ strTienCriteria = " f<sub>v</sub> ≤ 0.1" ;
670+ isIndependentGaly = false ;
671+ strGalyCriteria = " f<sub>v</sub> ≤ 0.1" ;
673672 }
674- else
673+ else // Transitional Regime (0.006 < fv <= 0.1)
675674 {
676- isIndependentGaly = (clearanceToWavelength > 5.0 );
677- strGalyCriteria = " c/λ > 5.0 (χ > 2)" ;
675+ isIndependentTien = (clearanceToWavelength > 0.5 );
676+ strTienCriteria = " c/λ > 0.5" ;
677+
678+ if (sizeParameter <= 2.0 )
679+ {
680+ isIndependentGaly = (clearanceToWavelength > 2.0 );
681+ strGalyCriteria = " c/λ > 2.0 (χ ≤ 2)" ;
682+ }
683+ else
684+ {
685+ isIndependentGaly = (clearanceToWavelength > 5.0 );
686+ strGalyCriteria = " c/λ > 5.0 (χ > 2)" ;
687+ }
678688 }
679689 }
680- QString strGalyResult = isIndependentGaly ?
681- QString (" <font color='green'>Independent</font> (c/λ=%1)" ).arg (strClearance) :
682- QString (" <font color='red'>Dependent</font> (c/λ=%1)" ).arg (strClearance);
683690
684- // --- Detailed Context Section ---
691+ QString strTienResult;
692+ QString strGalyResult;
693+ if (volFraction > 0.1 )
694+ {
695+ // Display Volume Fraction as the primary reason for dependency
696+ QString strVolFraction = QString::number (volFraction, ' g' , 4 );
697+ strTienResult = QString (" <font color='red'>Dependent</font> (f<sub>v</sub>=%1)" ).arg (strVolFraction);
698+ strGalyResult = QString (" <font color='red'>Dependent</font> (f<sub>v</sub>=%1)" ).arg (strVolFraction);
699+ }
700+ else
701+ {
702+ strTienResult = isIndependentTien ?
703+ QString (" <font color='green'>Independent</font> (c/λ=%1)" ).arg (strClearance) :
704+ QString (" <font color='red'>Dependent</font> (c/λ=%1)" ).arg (strClearance);
705+
706+ strGalyResult = isIndependentGaly ?
707+ QString (" <font color='green'>Independent</font> (c/λ=%1)" ).arg (strClearance) :
708+ QString (" <font color='red'>Dependent</font> (c/λ=%1)" ).arg (strClearance);
709+ }
710+
711+ // Detailed Context Section
685712 QString strRegimeContext =
686713 " <b>Regime Definitions:</b><br>"
687714 " • Low Concentration Regime:<b> f<sub>v</sub> ≤ 0.006</b><br>"
688715 " • Transitional Regime:<b> 0.006 < f<sub>v</sub> ≤ 0.1</b><br>"
689716 " • High Concentration Regime:<b> f<sub>v</sub> > 0.1</b>" ;
690717
691-
692- // --- Constructing the Message ---
718+ // Constructing the Message
693719 QString msg = QString (
694720 " <h3>Dependent Scattering Warning</h3>"
695721 " The current parameters suggest <b>dependent</b> scattering effects in the <b>%1</b>. "
696- " Results should be interpreted with caution.<br><br>"
697-
698- " <b>Current Parameters:</b><br>"
699- " • Volume Fraction (<b>f<sub>v</sub></b>) = <b>%8</b><br>"
700- " • Size Parameter (<b>χ</b>) = <b>%9</b> at Wavelength (<b>λ</b>) = <b>%11 nm</b><br>"
701- " • Clearance to Wavelength Ratio (<b>c/λ</b>) = <b>%10</b><br>"
722+ " Results should be interpreted with caution.<br>"
702723
703724 " <table border='1' cellspacing='0' cellpadding='4' style='border-collapse: collapse; width: 100%;'>"
704725 " <tr bgcolor='#f2f2f2'>"
@@ -710,22 +731,27 @@ void MainWindowSupport::PrepareScatteringRegimeWarning(double clearanceToWavelen
710731 " <tr><td>%5</td><td>%6</td><td>%7</td></tr>"
711732 " </table><br><br>"
712733
713- " %12"
734+ " <b>Current Parameters:</b><br>"
735+ " • Volume Fraction (<b>f<sub>v</sub></b>) = <b>%8</b><br>"
736+ " • Size Parameter (<b>χ</b>) = <b>%9</b><br>"
737+ " • Clearance (<b>c</b>) = Interparticle Distance - 2 × Radius = <b>%12 μm </b><br>"
738+ " • Medium Wavelength (<b>λ</b>) = <b>%11 μm</b><br>"
739+ " • Clearance to Wavelength Ratio (<b>c/λ</b>) = <b>%10</b><br><br>"
740+ " %13"
714741 )
715742 .arg (strRegime)
716743 .arg (strTienDorlenLink).arg (strTienCriteria).arg (strTienResult)
717744 .arg (strGalyLink).arg (strGalyCriteria).arg (strGalyResult)
718745 .arg (volFraction, 0 , ' g' , 4 )
719746 .arg (sizeParameter, 0 , ' g' , 3 )
720747 .arg (clearanceToWavelength, 0 , ' f' , 3 )
721- .arg (criticalWavelength, 0 , ' g' , 5 )
748+ .arg (wavelength, 0 , ' g' , 5 )
749+ .arg (clearance, 0 , ' g' , 5 )
722750 .arg (strRegimeContext);
723751
724752 DisplayWarning (msg);
725753}
726754
727-
728-
729755// Display warning message
730756void MainWindowSupport::DisplayWarning (QString warningMessage)
731757{
0 commit comments