% that is simple geometry: metal strip in air +SiO2 % metalic strip on dielectric %%%%%%%%%%%%%%%%%%%%%%%%% lambda=1.550; MetalWidth=4; MyMaterial(1).name='Co'; [nFerro G]=ferro(lambda,'Co'); if imag(nFerro)>0 % in comsol loss is negative nFerro=nFerro'; end MyMaterial(1).n=nFerro; MyMaterial(2).name='SiO2'; nSubstrate=nSiO2(lambda); MyMaterial(2).n=nSubstrate; MyMaterial(3).name='Air'; nAir=1; MyMaterial(3).n=nAir; CalculationWidth=8; MetalThickness=1; SubThickness=2; %{ beta=sqrt(nMetal^2*nSubstrate^2/(nMetal^2+nSubstrate^2)); disp(['beta in 2D: ' num2str(beta) ' loss ' num2str(kdb(-imag(beta),lambda)/10) ' dB/mm']) if useSlabAprox=='y'; nAprox=beta;end; %} %%%%%%%%%%%%%%%%% FilletRadius=0.1; % um model.param.set('lambda',[num2str(lambda) '[um]'], 'wavelength'); model.param.set('MetalWidth',[num2str(MetalWidth) '[um]'], 'width of metals'); model.param.set('CalculationWidth',[num2str(CalculationWidth) '[um]'], 'width of main wire'); model.param.set('AirThickness',[num2str(MetalThickness) '[um]'], 'width of main wire'); model.param.set('SiO2SubThickness',[num2str(SubThickness) '[um]'], 'width of main wire'); % Co r5=MyGeometry.feature.create('r5', 'Rectangle'); r5.set('size',{'CalculationWidth' 'AirThickness'}); r5.set('pos',{'-CalculationWidth/2' '0'}); MyGeometry.run('r5'); MyGeometry.feature().create('selCo', 'Selection'); MyGeometry.feature('selCo').selection('selection').set('r5',1); MyMaterial(1).Object2Sel{1}='selCo'; MyMaterial(1).Object2{1}='r5'; % SiO2 sub r1=MyGeometry.feature.create('r1', 'Rectangle'); r1.set('size',{'CalculationWidth' 'SiO2SubThickness'}); r1.set('pos',{'-CalculationWidth/2' '-SiO2SubThickness'}); MyGeometry.run('r1'); MyGeometry.feature().create('selSiO2', 'Selection'); MyGeometry.feature('selSiO2').selection('selection').set('r1',1); MyMaterial(2).Object2Sel{1}= 'selSiO2'; MyMaterial(2).Object2{1}='r1'; % air r3=MyGeometry.feature.create('r3', 'Rectangle'); r3.set('size',{'(CalculationWidth-MetalWidth)/2' 'AirThickness'}); r3.set('pos',{'MetalWidth/2' '0'}); MyGeometry.run('r3'); r4=MyGeometry.feature.create('r4', 'Rectangle'); r4.set('size',{'(CalculationWidth-MetalWidth)/2' 'AirThickness'}); r4.set('pos',{'-CalculationWidth/2' '0'}); MyGeometry.run('r4'); MyGeometry.runAll; MyGeometry.feature.create('fil1', 'Fillet'); MyGeometry.feature('fil1').selection('point').set('r4', [2]); MyGeometry.feature('fil1').set('radius', num2str(FilletRadius)); MyGeometry.run; MyGeometry.feature().create('selAir1', 'Selection'); MyGeometry.feature('selAir1').selection('selection').set('fil1',1); MyMaterial(3).Object2Sel{1}= 'selAir1'; MyMaterial(3).Object2{1}='fil1'; MyGeometry.feature.create('fil2', 'Fillet'); MyGeometry.feature('fil2').selection('point').set('r3', [1]); MyGeometry.feature('fil2').set('radius', num2str(FilletRadius)); MyGeometry.run; MyGeometry.feature().create('selAir2', 'Selection'); MyGeometry.feature('selAir2').selection('selection').set('fil2',1); MyMaterial(3).Object2Sel{2}= 'selAir2'; MyMaterial(3).Object2{2}='fil2';