# Ce:YIG index = 2.22 # MO(+) eps_pos= [ 2.22^2, 0.005i, 0; -0.005i, 2.22^2, 0; 0, 0, 2.22^2]; # MO(-) eps_neg= [ 2.22^2, -0.005i, 0; 0.005i, 2.22^2, 0; 0, 0, 2.22^2]; mymaterial = addmaterial("(n,k) Material"); if (materialexists("MO_pos")){deletematerial("MO_pos");} setmaterial(mymaterial,"name","MO_pos"); setmaterial("MO_pos", "Anisotropy",1); # enable diagonal anisotropy setmaterial("MO_pos","Refractive Index",real(sqrt(eig(eps_pos,1)))); # set real part of diagonal elements of refractive indexes setmaterial("MO_pos","Imaginary Refractive Index",imag(sqrt(eig(eps_pos,1)))); # set imaginary part of diagonal elements of refractive indexes setnamed("MO_pos","material","MO_pos"); mymaterial = addmaterial("(n,k) Material"); if (materialexists("MO_neg")){deletematerial("MO_neg");} setmaterial(mymaterial,"name","MO_neg"); setmaterial("MO_neg", "Anisotropy",1); # enable diagonal anisotropy setmaterial("MO_neg","Refractive Index",real(sqrt(eig(eps_pos,1)))); # set real part of diagonal elements of refractive indexes setmaterial("MO_neg","Imaginary Refractive Index",imag(sqrt(eig(eps_pos,1)))); # set imaginary part of diagonal elements of refractive indexes setnamed("MO_neg","material","MO_neg"); ### Setting of transformation matrix U ### addgridattribute("matrix transform"); # add matrix transform grid attribute set("U",ctranspose(eig(eps_pos,2))); # set the complex conjugate transpose of Evc to grid attribute property U set("name","pos_attribute"); # set Evc to grid attribute property U addgridattribute("matrix transform"); # add matrix transform grid attribute set("U",ctranspose(eig(eps_neg,2))); # set the complex conjugate transpose of Evc to grid attribute property U set("name","neg_attribute"); # set Evc to grid attribute property U