|
@@ -78,7 +78,8 @@ namespace nmie {
|
|
// Return value: //
|
|
// Return value: //
|
|
// Number of multipolar expansion terms used for the calculations //
|
|
// Number of multipolar expansion terms used for the calculations //
|
|
//**********************************************************************************//
|
|
//**********************************************************************************//
|
|
- int ScattCoeffs(const unsigned int L, const int pl, std::vector<double>& x, std::vector<std::complex<double> >& m, const int nmax, std::vector<std::complex<double> >& an, std::vector<std::complex<double> >& bn) {
|
|
|
|
|
|
+ int ScattCoeffs(const unsigned int L, const int pl, std::vector<double>& x, std::vector<std::complex<double> >& m,
|
|
|
|
+ const int nmax, std::vector<std::complex<double> >& an, std::vector<std::complex<double> >& bn) {
|
|
|
|
|
|
if (x.size() != L || m.size() != L)
|
|
if (x.size() != L || m.size() != L)
|
|
throw std::invalid_argument("Declared number of layers do not fit x and m!");
|
|
throw std::invalid_argument("Declared number of layers do not fit x and m!");
|
|
@@ -133,7 +134,10 @@ namespace nmie {
|
|
// Return value: //
|
|
// Return value: //
|
|
// Number of multipolar expansion terms used for the calculations //
|
|
// Number of multipolar expansion terms used for the calculations //
|
|
//**********************************************************************************//
|
|
//**********************************************************************************//
|
|
- int nMie(const unsigned int L, const int pl, std::vector<double>& x, std::vector<std::complex<double> >& m, const unsigned int nTheta, std::vector<double>& Theta, const int nmax, double *Qext, double *Qsca, double *Qabs, double *Qbk, double *Qpr, double *g, double *Albedo, std::vector<std::complex<double> >& S1, std::vector<std::complex<double> >& S2) {
|
|
|
|
|
|
+ int nMie(const unsigned int L, const int pl, std::vector<double>& x, std::vector<std::complex<double> >& m,
|
|
|
|
+ const unsigned int nTheta, std::vector<double>& Theta, const int nmax,
|
|
|
|
+ double *Qext, double *Qsca, double *Qabs, double *Qbk, double *Qpr, double *g, double *Albedo,
|
|
|
|
+ std::vector<std::complex<double> >& S1, std::vector<std::complex<double> >& S2) {
|
|
|
|
|
|
if (x.size() != L || m.size() != L)
|
|
if (x.size() != L || m.size() != L)
|
|
throw std::invalid_argument("Declared number of layers do not fit x and m!");
|
|
throw std::invalid_argument("Declared number of layers do not fit x and m!");
|
|
@@ -203,7 +207,10 @@ namespace nmie {
|
|
// Return value: //
|
|
// Return value: //
|
|
// Number of multipolar expansion terms used for the calculations //
|
|
// Number of multipolar expansion terms used for the calculations //
|
|
//**********************************************************************************//
|
|
//**********************************************************************************//
|
|
- int nMie(const unsigned int L, std::vector<double>& x, std::vector<std::complex<double> >& m, const unsigned int nTheta, std::vector<double>& Theta, double *Qext, double *Qsca, double *Qabs, double *Qbk, double *Qpr, double *g, double *Albedo, std::vector<std::complex<double> >& S1, std::vector<std::complex<double> >& S2) {
|
|
|
|
|
|
+ int nMie(const unsigned int L, std::vector<double>& x, std::vector<std::complex<double> >& m,
|
|
|
|
+ const unsigned int nTheta, std::vector<double>& Theta,
|
|
|
|
+ double *Qext, double *Qsca, double *Qabs, double *Qbk, double *Qpr, double *g, double *Albedo,
|
|
|
|
+ std::vector<std::complex<double> >& S1, std::vector<std::complex<double> >& S2) {
|
|
return nmie::nMie(L, -1, x, m, nTheta, Theta, -1, Qext, Qsca, Qabs, Qbk, Qpr, g, Albedo, S1, S2);
|
|
return nmie::nMie(L, -1, x, m, nTheta, Theta, -1, Qext, Qsca, Qabs, Qbk, Qpr, g, Albedo, S1, S2);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -235,7 +242,10 @@ namespace nmie {
|
|
// Return value: //
|
|
// Return value: //
|
|
// Number of multipolar expansion terms used for the calculations //
|
|
// Number of multipolar expansion terms used for the calculations //
|
|
//**********************************************************************************//
|
|
//**********************************************************************************//
|
|
- int nMie(const unsigned int L, const int pl, std::vector<double>& x, std::vector<std::complex<double> >& m, const unsigned int nTheta, std::vector<double>& Theta, double *Qext, double *Qsca, double *Qabs, double *Qbk, double *Qpr, double *g, double *Albedo, std::vector<std::complex<double> >& S1, std::vector<std::complex<double> >& S2) {
|
|
|
|
|
|
+ int nMie(const unsigned int L, const int pl, std::vector<double>& x, std::vector<std::complex<double> >& m,
|
|
|
|
+ const unsigned int nTheta, std::vector<double>& Theta,
|
|
|
|
+ double *Qext, double *Qsca, double *Qabs, double *Qbk, double *Qpr, double *g, double *Albedo,
|
|
|
|
+ std::vector<std::complex<double> >& S1, std::vector<std::complex<double> >& S2) {
|
|
return nmie::nMie(L, pl, x, m, nTheta, Theta, -1, Qext, Qsca, Qabs, Qbk, Qpr, g, Albedo, S1, S2);
|
|
return nmie::nMie(L, pl, x, m, nTheta, Theta, -1, Qext, Qsca, Qabs, Qbk, Qpr, g, Albedo, S1, S2);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -269,7 +279,10 @@ namespace nmie {
|
|
// Return value: //
|
|
// Return value: //
|
|
// Number of multipolar expansion terms used for the calculations //
|
|
// Number of multipolar expansion terms used for the calculations //
|
|
//**********************************************************************************//
|
|
//**********************************************************************************//
|
|
- int nMie(const unsigned int L, std::vector<double>& x, std::vector<std::complex<double> >& m, const unsigned int nTheta, std::vector<double>& Theta, const int nmax, double *Qext, double *Qsca, double *Qabs, double *Qbk, double *Qpr, double *g, double *Albedo, std::vector<std::complex<double> >& S1, std::vector<std::complex<double> >& S2) {
|
|
|
|
|
|
+ int nMie(const unsigned int L, std::vector<double>& x, std::vector<std::complex<double> >& m,
|
|
|
|
+ const unsigned int nTheta, std::vector<double>& Theta, const int nmax,
|
|
|
|
+ double *Qext, double *Qsca, double *Qabs, double *Qbk, double *Qpr, double *g, double *Albedo,
|
|
|
|
+ std::vector<std::complex<double> >& S1, std::vector<std::complex<double> >& S2) {
|
|
return nmie::nMie(L, -1, x, m, nTheta, Theta, nmax, Qext, Qsca, Qabs, Qbk, Qpr, g, Albedo, S1, S2);
|
|
return nmie::nMie(L, -1, x, m, nTheta, Theta, nmax, Qext, Qsca, Qabs, Qbk, Qpr, g, Albedo, S1, S2);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -296,7 +309,10 @@ namespace nmie {
|
|
// Return value: //
|
|
// Return value: //
|
|
// Number of multipolar expansion terms used for the calculations //
|
|
// Number of multipolar expansion terms used for the calculations //
|
|
//**********************************************************************************//
|
|
//**********************************************************************************//
|
|
- int nField(const unsigned int L, const int pl, const std::vector<double>& x, const std::vector<std::complex<double> >& m, const int nmax, const unsigned int ncoord, const std::vector<double>& Xp_vec, const std::vector<double>& Yp_vec, const std::vector<double>& Zp_vec, std::vector<std::vector<std::complex<double> > >& E, std::vector<std::vector<std::complex<double> > >& H) {
|
|
|
|
|
|
+ int nField(const unsigned int L, const int pl, const std::vector<double>& x, const std::vector<std::complex<double> >& m,
|
|
|
|
+ const int nmax, const unsigned int ncoord,
|
|
|
|
+ const std::vector<double>& Xp_vec, const std::vector<double>& Yp_vec, const std::vector<double>& Zp_vec,
|
|
|
|
+ std::vector<std::vector<std::complex<double> > >& E, std::vector<std::vector<std::complex<double> > >& H) {
|
|
if (x.size() != L || m.size() != L)
|
|
if (x.size() != L || m.size() != L)
|
|
throw std::invalid_argument("Declared number of layers do not fit x and m!");
|
|
throw std::invalid_argument("Declared number of layers do not fit x and m!");
|
|
if (Xp_vec.size() != ncoord || Yp_vec.size() != ncoord || Zp_vec.size() != ncoord
|
|
if (Xp_vec.size() != ncoord || Yp_vec.size() != ncoord || Zp_vec.size() != ncoord
|