⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 e_sources.m

📁 利用电磁场的源激发方法来计算光子晶体波导例如光子晶体光纤
💻 M
字号:
% calculate TM fields. 
% each line in the matrix represents a matching-point (MP).
function [mHet, mEet, mEez] = e_sources(testing, sources, Y, kc, beta)
global EPSILON0 MU0 C

vSx = testing.vX;
vSy = testing.vY;
vNx = testing.vNx;
vNy = testing.vNy;
vEx = sources.vX;
vEy = sources.vY;

[mSx, mEx] = ndgrid(vSx, vEx);
[mSy, mEy] = ndgrid(vSy, vEy);
[mNx, mEx] = ndgrid(vNx, vEx);
[mNy, mEy] = ndgrid(vNy, vEy);

mR = sqrt((mSx-mEx).^2 + (mSy-mEy).^2);

%if abs(kc)>TOL
    % electric field radial component
%   mEr = 1/(4*Y)*beta*kc*besselh(1,2,kc*mR);
    mEr = 1/(4*Y)*beta*kc*hankel2(1,kc*mR);
    % electric field z component
%    mEez = 1/(Y*4*j)*kc^2*besselh(0,2,kc*mR);
    mEez = 1/(Y*4*j)*kc^2*hankel2(0,kc*mR);
% else
%      % electric field radial component
%      mEr = j/(4*Y)*beta/pi*2./mR;
%      % electric field z component
%      mEez = 1/(Y*4*j)*j*2/pi*log(1.781/2*mR)*kc^2;
% end
% magnetic field azimuthal component
mHphi = Y/(j*beta)*mEr;
% calculate tangential components
mDx = mSx-mEx;
mDy = mSy-mEy;
mAlpha = 1./mR.*(mDx.*mNx + mDy.*mNy);
mBeta = 1./mR.*(-mDx.*mNy + mDy.*mNx);
mEet = mEr.*mBeta;
mHet = mHphi.*mAlpha;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -