################################################ # filename: bsdf_export_asap.lsf # # Description: This file can be used to export # the BRDF and BTDF information calculated # in bsdf_calculation_bloch.lsf to an # ASAP *.inr file. This file assumes that # the BRDF data is a function only of # the incident polar angle (theta) and the output # polar angle (theta_out). The azimuthal angle # (phi_out) should be a single number. # # This file was produced in collaboration with # Jon Herlocker at BRO. # # Copyright 2009 Lumerical Solutions Inc ################################################ data_filename = "bsdf_final.ldf"; asapfile1 = "brdf_simple.inr"; asapfile2 = "btdf_simple.inr"; loaddata(data_filename); if(fileexists(asapfile1)) { rm(asapfile1); } if(fileexists(asapfile2)) { rm(asapfile2); } ?"writing scattering data to ASAP files"; spacer = " "; spacer2 = spacer+spacer; write(asapfile1,"$CASE LOWER "); write(asapfile1,"models"); write(asapfile1,spacer + "rawdata "); write(asapfile2,"$CASE LOWER "); write(asapfile2,"models"); write(asapfile2,spacer + "rawdata "); # calculate in direction cosine space ux_in = sin(theta*pi/180); uy_in = 0; ux_out = sin(theta_out*pi/180); uy_out = 0; for(i=1:length(theta)) { write(asapfile1,spacer); write(asapfile1,"!! begin incidence "+ num2str(theta(i)) + " degrees"); write(asapfile1,spacer); write(asapfile2,spacer); write(asapfile2,"!! begin incidence "+ num2str(theta(i)) + " degrees"); write(asapfile2,spacer); write(asapfile1,spacer2 + num2str(ux_in(i)) + spacer2 + num2str(uy_in)); write(asapfile2,spacer2 + num2str(ux_in(i)) + spacer2 + num2str(uy_in)); for(j=1:length(theta_out)) { write(asapfile1,spacer2 + num2str(ux_out(j)) + spacer2 + num2str(uy_out) + spacer2 + num2str(BRDF(i,j))); write(asapfile2,spacer2 + num2str(ux_out(j)) + spacer2 + num2str(uy_out) + spacer2 + num2str(BTDF(i,j))); } write(asapfile1,spacer); write(asapfile1,"!! end incidence "+ num2str(theta(i)) + " degrees"); write(asapfile1,spacer); write(asapfile2,spacer); write(asapfile2,"!! end incidence "+ num2str(theta(i)) + " degrees"); write(asapfile2,spacer); } write(asapfile1,"return"); write(asapfile1,"$case upper "); write(asapfile2,"return"); write(asapfile2,"$case upper "); ?"ASAP RAWDATA MODEL files completed";