12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- redrawoff;
- slash = "/";
- if (operatingsystem == "windows") {slash = "\\";}
- #########################################
- # Set constants
- mkm = 1e-6;
- groupscope("::model");
- select("FDTD");
- min_mesh_step=get("min mesh step");
- select("sub-Au");
- sub_Au_z_max = get("z max");
- #########################################
- # Create results dir if needed
- monitor_name = "monitor_2";
- curdir = pwd;
- dirname_base = filebasename(currentfilename)+"."+fileextension(currentfilename)+".1D."+monitor_name+".results";
- dirname = curdir+slash+dirname_base;
- files = splitstring(dir,endl);
- isCreated = false;
- for(i=1:length(files)) {
- if (files{i} == dirname_base) { isCreated = true;}
- }
- if (isCreated){ ?"output dir already exist";
- } else { system("mkdir "+dirname);}
- #########################################
- # Get FDTD material data
- #groupscope("::model::mon");
- min_f = getglobalmonitor("minimum frequency");
- max_f = getglobalmonitor("maximum frequency");
- fpoints = getglobalmonitor("frequency points");
- fvec=linspace(min_f,max_f,fpoints);
- #Au_name = "Au (Gold) - Johnson and Christy Copy 2";
- Au_name = "Au-McPeak";
- n_fdtd=getfdtdindex(Au_name,fvec,min_f,max_f);
- #n_fdtd;
- #########################################
- ?"Save data";
- cd(dirname);
- ?dirname;
- format long;
- #z_arr = [5, 20];
- #########################################
- E = getresult(monitor_name, "E");
- H = getresult(monitor_name, "H");
- wl_len = length(E.lambda);
- z_len = length(E.z);
- for (j=1:wl_len){
- #Save to file
- fname = dirname+slash+"wl"+num2str(E.lambda(j))+".txt";
- ?E.lambda(j);
- if (fileexists(fname)){rm(fname);}
- write(fname,"z, dip.power, Ex, Ey, Ez, Hx, Hy, Hz, n_Au");
- for (i=1:z_len){
- str = num2str(E.z(i))
- +", "+num2str(dipolepower(E.f(j)))
- +", "+num2str(E.Ex(1,1,i,j))
- +", "+num2str(E.Ey(1,1,i,j))
- +", "+num2str(E.Ez(1,1,i,j))
- +", "+num2str(H.Hx(1,1,i,j))
- +", "+num2str(H.Hy(1,1,i,j))
- +", "+num2str(H.Hz(1,1,i,j))
- +", "+num2str(n_fdtd(j))
- ;
- write(fname,str);
- }
- }
- cd(curdir);
- redrawon;
|