|
@@ -78,8 +78,8 @@ namespace nmie {
|
|
|
throw std::invalid_argument("Declared number of layers do not fit x and m!");
|
|
|
try {
|
|
|
MultiLayerMie ml_mie;
|
|
|
- ml_mie.SetLayersSize(x);
|
|
|
- ml_mie.SetLayersIndex(m);
|
|
|
+ ml_mie.SetAllLayersSize(x);
|
|
|
+ ml_mie.SetAllLayersIndex(m);
|
|
|
ml_mie.SetPECLayer(pl);
|
|
|
ml_mie.SetMaxTerms(nmax);
|
|
|
|
|
@@ -135,8 +135,8 @@ namespace nmie {
|
|
|
throw std::invalid_argument("Declared number of sample for Theta is not correct!");
|
|
|
try {
|
|
|
MultiLayerMie ml_mie;
|
|
|
- ml_mie.SetLayersSize(x);
|
|
|
- ml_mie.SetLayersIndex(m);
|
|
|
+ ml_mie.SetAllLayersSize(x);
|
|
|
+ ml_mie.SetAllLayersIndex(m);
|
|
|
ml_mie.SetAngles(Theta);
|
|
|
ml_mie.SetPECLayer(pl);
|
|
|
ml_mie.SetMaxTerms(nmax);
|
|
@@ -299,8 +299,8 @@ namespace nmie {
|
|
|
try {
|
|
|
MultiLayerMie ml_mie;
|
|
|
//ml_mie.SetPECLayer(pl); // TODO add PEC layer to field plotting
|
|
|
- ml_mie.SetLayersSize(x);
|
|
|
- ml_mie.SetLayersIndex(m);
|
|
|
+ ml_mie.SetAllLayersSize(x);
|
|
|
+ ml_mie.SetAllLayersIndex(m);
|
|
|
ml_mie.SetFieldCoords({Xp_vec, Yp_vec, Zp_vec});
|
|
|
ml_mie.RunFieldCalculation();
|
|
|
E = ml_mie.GetFieldE();
|
|
@@ -421,7 +421,7 @@ namespace nmie {
|
|
|
// ********************************************************************** //
|
|
|
// Modify size of all layers //
|
|
|
// ********************************************************************** //
|
|
|
- void MultiLayerMie::SetaAllLayersSize(const std::vector<double>& layer_size) {
|
|
|
+ void MultiLayerMie::SetAllLayersSize(const std::vector<double>& layer_size) {
|
|
|
isExpCoeffsCalc_ = false;
|
|
|
isScaCoeffsCalc_ = false;
|
|
|
isMieCalculated_ = false;
|
|
@@ -629,8 +629,9 @@ namespace nmie {
|
|
|
D1[n - 1] = static_cast<double>(n)*zinv - 1.0/(D1[n] + static_cast<double>(n)*zinv);
|
|
|
}
|
|
|
|
|
|
- if (std::abs(D1[0]) > 100000.0)
|
|
|
- throw std::invalid_argument("Unstable D1! Please, try to change input parameters!\n");
|
|
|
+ if (std::abs(D1[0]) > 1.0e8)
|
|
|
+// throw std::invalid_argument("Unstable D1! Please, try to change input parameters!\n");
|
|
|
+ printf("Warning: Potentially unstable D1! Please, try to change input parameters!\n");
|
|
|
|
|
|
// Upward recurrence for PsiZeta and D3 - equations (18a) - (18d)
|
|
|
PsiZeta_[0] = 0.5*(1.0 - std::complex<double>(std::cos(2.0*z.real()), std::sin(2.0*z.real()))
|