Browse Source

small changes

Konstantin Ladutenko 10 years ago
parent
commit
655a18901b
2 changed files with 13 additions and 3 deletions
  1. 12 3
      nmie.cc
  2. 1 0
      nmie.h

+ 12 - 3
nmie.cc

@@ -144,8 +144,8 @@ namespace nmie {
     for (int i = 0; i < nmax_ - 1; ++i) {
       const int n = i+1;
       NACS[i] = Qsca_ch_[i]*x2/(2.0*(2.0*static_cast<double>(n)+1));
-      if (NACS[i] > 0.250000001)
-	throw std::invalid_argument("Unexpected normalized absorption cross-section value!");
+      // if (NACS[i] > 0.250000001)
+      // 	throw std::invalid_argument("Unexpected normalized absorption cross-section value!");
     }
     return NACS;    
   }
@@ -160,6 +160,14 @@ namespace nmie {
   // ********************************************************************** //
   // ********************************************************************** //
   // ********************************************************************** //
+  std::vector<double> MultiLayerMie::GetQsca_channel() {
+    if (!isMieCalculated_)
+      throw std::invalid_argument("You should run calculations before result reques!");
+    return Qsca_ch_;
+  }
+  // ********************************************************************** //
+  // ********************************************************************** //
+  // ********************************************************************** //
   double MultiLayerMie::GetQbk() {
     if (!isMieCalculated_)
       throw std::invalid_argument("You should run calculations before result reques!");
@@ -771,7 +779,7 @@ c    MM       + 1  and - 1, alternately
       // prn((D1[n] + double(n)*zinv).real());
     }
     //     printf("\n\n"); iformat=0;
-    if (std::abs(D1[0]) > 1000.0 )
+    if (std::abs(D1[0]) > 100000.0 )
       throw std::invalid_argument
 	("Unstable D1! Please, try to change input parameters!\n");
     // Upward recurrence for PsiZeta and D3 - equations (18a) - (18d)
@@ -1105,6 +1113,7 @@ c    MM       + 1  and - 1, alternately
       Qsca_ch_[i] += (n + n + 1)*(an[i].real()*an[i].real() + an[i].imag()*an[i].imag()
 			    + bn[i].real()*bn[i].real() + bn[i].imag()*bn[i].imag());
       Qsca_ += Qsca_ch_[i];
+      //printf(" %g:%g", Qext_ch_[i], Qsca_ch_[i]);
       // Equation (29) TODO We must check carefully this equation. If we
       // remove the typecast to double then the result changes. Which is
       // the correct one??? Ovidio (2014/12/10) With cast ratio will

+ 1 - 0
nmie.h

@@ -146,6 +146,7 @@ namespace nmie {
     double GetQabs();
     double GetQbk();
     double GetQpr();
+    std::vector<double> GetQsca_channel();
     std::vector<double> GetQabs_channel();
     std::vector<double> GetQabs_channel_normalized();