Reflexion sobre la multicapa

v13n13a11

    #include <stdio.h>
    #include <math.h>
    #include <stdlib.h>
    #include <iostream>
    #include <fstream>
    #include <string>
    #include <sstream>
    #include <vector>
    using namespace std;
     
    int main( int argc, const char* argv[] )
    {
    double pi=2.0*asin(1.0);
    double sx=100.0,sy=100.0,d=0.1,Om=0.5;
    int    Nsources=50,isources;
    double source_i=-25.0,source_f=25.0,dsource,source; 
    double ang,source_x,source_y,desp_x;
    int    NL,iNL; 
    ang    = 0.0*(pi/180.0); 
    desp_x = -0.4*sx;
    NL     = 20;

    ofstream myfile100;myfile100.open ("b005.ctl");
     
    myfile100 << "(define-param sx " << sx << ")"                << "\n";
    myfile100 << "(define-param sy " << sy << ")"                << "\n";
    myfile100 << "(define-param d  " <<  d << ")"                << "\n";
    myfile100 << "(define-param Om " << Om << ")"                << "\n";
    myfile100 << "(set! geometry-lattice"                        << "\n"; 
    myfile100 << " (make lattice (size sx sy no-size))"          << "\n";
    myfile100 << ")"                                             << "\n";
    myfile100 << "(set! geometry "                               << "\n";
    myfile100 << " (list "                                       << "\n";
    myfile100 << "  (make block  "                               << "\n";
    myfile100 << "   (center -49 -49)"                           << "\n";
    myfile100 << "   (size d d infinity) "                       << "\n";
    myfile100 << "   (material (make medium (epsilon 1.1))) "    << "\n";
    myfile100 << "  )"                                           << "\n";

    for (iNL=0 ; iNL<=NL ; iNL++)
    {
    myfile100 << "   "                                           << "\n";
    myfile100 << "  (make block  "                               << "\n";
    myfile100 << "   (center "<<0.25+iNL<<" 0)"                  << "\n";
    myfile100 << "   (size 0.5 sy infinity) "                    << "\n";
    myfile100 << "   (material (make medium (epsilon 5.52))) "   << "\n";
    myfile100 << "  )"                                           << "\n";
    myfile100 << "   "                                           << "\n"; 
    myfile100 << "   "                                           << "\n";
    myfile100 << "  (make block  "                               << "\n";
    myfile100 << "   (center "<<0.75+iNL<<" 0)"                  << "\n";
    myfile100 << "   (size 0.5 sy infinity) "                    << "\n";
    myfile100 << "   (material (make medium (epsilon 2.13))) "   << "\n";
    myfile100 << "  )"                                           << "\n";
    myfile100 << "   "                                           << "\n"; 
    }      
    myfile100 << " )"                                            << "\n";
    myfile100 << ")"                                             << "\n";
    myfile100 << "(set! sources"                                 << "\n";
    myfile100 << " (list"                                        << "\n";
    dsource=(source_f-source_i)/float(Nsources);
    for (isources=0 ; isources<=Nsources ; isources++)
    {
     source = source_i+float(isources)*dsource;
     if(source<0)
     {
      source_x=+sin(ang)*abs(source);
      source_y=-cos(ang)*abs(source);
     }
     if(source>=0)
     {
      source_x=-sin(ang)*abs(source);
      source_y=+cos(ang)*abs(source);
     }
     source_x=source_x+desp_x;
     cout<<isources<<" "<<source<<" "<<source_x<<" "<<source_y    <<" \n";
     myfile100 << "  (make source"                                << "\n";
     myfile100 << "   (src (make continuous-src (frequency 0.4)))"<< "\n";
     myfile100 << "   (component Ez)"                             << "\n";
     myfile100 << "   (center "<<source_x<<" "<<source_y<<")"     << "\n";
     myfile100 << "   (amplitude +1.0)"                           << "\n";
     myfile100 << "  )"                                           << "\n";
    }
    myfile100 << " )"                                            << "\n";
    myfile100 << ")"                                             << "\n";
    myfile100 << "(set! pml-layers"                              << "\n";
    myfile100 << " (list (make pml (thickness 1.0)))"            << "\n";
    myfile100 << ")"                                             << "\n";
    myfile100 << "(set! resolution 10)"                          << "\n";
    myfile100 << "(run-until 200"                                << "\n";
    myfile100 << " (at-beginning output-epsilon)"                << "\n";
    myfile100 << "  (to-appended \"ez\""                         << "\n";
    myfile100 << "   (at-every 1.0 output-efield-z))"            << "\n";
    myfile100 << ")"                                             << "\n";
    myfile100.close();
    //system("meep a001.ctl > a001.out");
    //system("h5topng -t 0:99 -R -Zc dkbluered -a yarg -A a001-eps-000000.00.h5 a001-ez.h5");
    //system("convert a001*.png a001.gif");
    }

#include <stdio.h>
    #include <math.h>
    #include <stdlib.h>
    #include <iostream>
    #include <fstream>
    #include <string>
    #include <sstream>
    #include <vector>
    using namespace std;
     
    int main( int argc, const char* argv[] )
    {
    double pi=2.0*asin(1.0);
    double sx=100.0,sy=100.0,d=0.1,Om=0.5;
    int    Nsources=50,isources;
    double source_i=-25.0,source_f=25.0,dsource,source; 
    double ang,source_x,source_y,desp_x;
    int    NL,iNL; 
    ang    = 0.0*(pi/180.0); 
    desp_x = -0.4*sx;
    NL     = 20;

    ofstream myfile100;myfile100.open ("b005.ctl");
     
    myfile100 << "(define-param sx " << sx << ")"                << "\n";
    myfile100 << "(define-param sy " << sy << ")"                << "\n";
    myfile100 << "(define-param d  " <<  d << ")"                << "\n";
    myfile100 << "(define-param Om " << Om << ")"                << "\n";
    myfile100 << "(set! geometry-lattice"                        << "\n"; 
    myfile100 << " (make lattice (size sx sy no-size))"          << "\n";
    myfile100 << ")"                                             << "\n";
    myfile100 << "(set! geometry "                               << "\n";
    myfile100 << " (list "                                       << "\n";
    myfile100 << "  (make block  "                               << "\n";
    myfile100 << "   (center -49 -49)"                           << "\n";
    myfile100 << "   (size d d infinity) "                       << "\n";
    myfile100 << "   (material (make medium (epsilon 1.1))) "    << "\n";
    myfile100 << "  )"                                           << "\n";

    for (iNL=0 ; iNL<=NL ; iNL++)
    {
    myfile100 << "   "                                           << "\n";
    myfile100 << "  (make block  "                               << "\n";
    myfile100 << "   (center "<<0.25+iNL<<" 0)"                  << "\n";
    myfile100 << "   (size 0.5 sy infinity) "                    << "\n";
    myfile100 << "   (material (make medium (epsilon 5.52))) "   << "\n";
    myfile100 << "  )"                                           << "\n";
    myfile100 << "   "                                           << "\n"; 
    myfile100 << "   "                                           << "\n";
    myfile100 << "  (make block  "                               << "\n";
    myfile100 << "   (center "<<0.75+iNL<<" 0)"                  << "\n";
    myfile100 << "   (size 0.5 sy infinity) "                    << "\n";
    myfile100 << "   (material (make medium (epsilon 2.13))) "   << "\n";
    myfile100 << "  )"                                           << "\n";
    myfile100 << "   "                                           << "\n"; 
    }      
    myfile100 << " )"                                            << "\n";
    myfile100 << ")"                                             << "\n";
    myfile100 << "(set! sources"                                 << "\n";
    myfile100 << " (list"                                        << "\n";
    dsource=(source_f-source_i)/float(Nsources);
    for (isources=0 ; isources<=Nsources ; isources++)
    {
     source = source_i+float(isources)*dsource;
     if(source<0)
     {
      source_x=+sin(ang)*abs(source);
      source_y=-cos(ang)*abs(source);
     }
     if(source>=0)
     {
      source_x=-sin(ang)*abs(source);
      source_y=+cos(ang)*abs(source);
     }
     source_x=source_x+desp_x;
     cout<<isources<<" "<<source<<" "<<source_x<<" "<<source_y    <<" \n";
     myfile100 << "  (make source"                                << "\n";
     myfile100 << "   (src (make continuous-src (frequency 0.53)))"<< "\n";
     myfile100 << "   (component Ez)"                             << "\n";
     myfile100 << "   (center "<<source_x<<" "<<source_y<<")"     << "\n";
     myfile100 << "   (amplitude +1.0)"                           << "\n";
     myfile100 << "  )"                                           << "\n";
    }
    myfile100 << " )"                                            << "\n";
    myfile100 << ")"                                             << "\n";
    myfile100 << "(set! pml-layers"                              << "\n";
    myfile100 << " (list (make pml (thickness 1.0)))"            << "\n";
    myfile100 << ")"                                             << "\n";
    myfile100 << "(set! resolution 10)"                          << "\n";
    myfile100 << "(run-until 200"                                << "\n";
    myfile100 << " (at-beginning output-epsilon)"                << "\n";
    myfile100 << "  (to-appended \"ez\""                         << "\n";
    myfile100 << "   (at-every 1.0 output-efield-z))"            << "\n";
    myfile100 << ")"                                             << "\n";
    myfile100.close();
    //system("meep a001.ctl > a001.out");
    //system("h5topng -t 0:99 -R -Zc dkbluered -a yarg -A a001-eps-000000.00.h5 a001-ez.h5");
    //system("convert a001*.png a001.gif");
    }