123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #include <complex>
- #include <cstdio>
- #include <string>
- #include "../src/nmie-applied.hpp"
- #include "../src/nmie-applied-impl.hpp"
- int main(int , char **) {
- try {
- nmie::MultiLayerMieApplied<double> multi_layer_mie;
- const std::complex<double> epsilon_Si(18.4631066585, 0.6259727805);
- const std::complex<double> epsilon_Ag(-8.5014154589, 0.7585845411);
- const std::complex<double> index_Si = std::sqrt(epsilon_Si);
- const std::complex<double> index_Ag = std::sqrt(epsilon_Ag);
- double WL=500;
- double core_width = 5.27;
- double inner_width = 8.22;
- double outer_width = 67.91;
- core_width = 5.27;
- inner_width = 8.22;
- outer_width = 67.91;
- multi_layer_mie.AddTargetLayer(core_width, index_Si);
- multi_layer_mie.AddTargetLayer(inner_width, index_Ag);
- multi_layer_mie.AddTargetLayer(outer_width, index_Si);
- multi_layer_mie.SetWavelength(WL);
- multi_layer_mie.RunMieCalculation();
- double Qabs = multi_layer_mie.GetQabs();
- printf("Qabs = %g\n", Qabs);
- } catch( const std::invalid_argument &ia ) {
-
- std::cerr << "Invalid argument: " << ia.what() << std::endl;
- return -1;
- }
- return 0;
- }
|