登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
程序
>
FDFD 频域有闲差分2D散射问题
发帖
回复
2031
阅读
0
回复
[
求助
]
FDFD 频域有闲差分2D散射问题
离线
stevenkay
alizwell
UID :2851
注册:
2007-05-22
登录:
2017-09-27
发帖:
110
等级:
仿真二级
0楼
发表于: 2016-10-15 20:41:34
大家好,有懂FDFD方法的朋友吗?最近我看了网上的一份教程,自己动手编写了一个求解2纬自由空间Hz模式传播的代码。虽然加上了PML和周期边界条件,可是有反射,驻波很明显。能否请达人指教?代码有三部分组成,
j7b 4wH\#
FDFD_2D_freespace.m是主文件,需要调用两个函数 (无法用附件故把原代码写在下面)
d8&T62Dnd4
yeeder.m 生成基于yee网个的差分算子,
j5G=ZI86y
calcpml2d.m生成PML边界条件
,YF1*69
jAfqC@e
请指正
MGH2z:
下图是计算结果,可以看到明显的驻波,SF为散射场区域,按理说应该没有场才对。
3+H[S#e:Z
xo#K_"E
%% This block tests the 2D FDFD to visualise if standing wave exists
d*l2x[8}g-
% positive convention must be applied because of the DEX DEY DHX DHY uses
RAFdo
% positive convention to account periodic boudnary conditions.
m[tsG=XBN
% d/dz=0; H mode with Hz Ex Ey and E mode with Ez Hx Hy
9S8V`aC
clear all
Rl n% Y
close all
I[bWd{i:
clc
Ym 1; /'
Degree=pi/180;
zG\:#,9
%=========== Source Parameters ===========
yo :63CPP
c0=299792458;
-GYJ)f
Theta=15*Degree;
sv2XD}}
f0=8e9; % 8GHz design frequency
0}WDB_L
f1=20e9; % 10GHz source frequency
a6 w'.]m
Lam0=c0/f0; % design wavelength
B4x@{rtER
Lam1=c0/f1; % source frequency
0D&-BAzi
k0=2*pi/Lam1; % wave vector determined by the source
13f'zx(AO
kx=k0*cos(Theta);
b&*N
ky=k0*sin(Theta);
X;CRy,
Mode='H'; % H mode and E mode leads to different routines
apWv+A
% ==============GRID PARAMETERS==============
v>sjS3
NRES=20; % mask for reflected wave
L+_ JKc
BUFX=1*Lam0*[1 1]; % spacer region above and below grating excluding PML
fiW2m=h_
NPML=[30 30 0 0]; % PML xlo xhi, but no PML ylo yhi
"]U_o<V
%========== dx dy Nx Ny ===============
~$m:j];
dx=min(Lam1/20, Lam0/20);
YA~`R~9d
dy=min(Lam1/20, Lam0/20);
5QZ}KNJ|t~
Nx=round(sum(BUFX)/dx)+NPML(1)+NPML(2);
=L*-2cE6#
Ny=31; % to make odd number
YD] :3!MI
% ==========================================================
kn}bb*eZ
% Build the Device on 2X Grids based on Yee grids
8BX9JoDi
% 2X Grids
*`V r P
% the dielectric assumed isotropic
EKNmXt1 lE
% =========================================================
6`Diz_(
Nx2=2*Nx;
QUWx\hqE
Ny2=2*Ny;
+f'@
UR2=ones(Nx2,Ny2); % permeability is 1 EVERYWHERE
S.!K
ER2=ones(Nx2,Ny2); % permitivity is 1 EVERYWHERE
BB.120v&N
83_vo0@<6
8JU{]Z!G<;
%================Parse to 1X Grid=================
xPz Bbe
URxx=UR2(1:2:Nx2,2:2:Ny2);
[I78<IJc
URyy=UR2(2:2:Nx2,1:2:Ny2);
YB376/
URzz=UR2(2:2:Nx2,2:2:Ny2);
GB}!7W"
ERxx=ER2(2:2:Nx2,1:2:Ny2);
R6\|:mI,$
ERyy=ER2(1:2:Nx2,2:2:Ny2);
eJE!\ucS2W
ERzz=ER2(1:2:Nx2,1:2:Ny2);
op61-:q/
%=============PML APPLIED TO X =================
%:\GYs(Y
[sx,sy]=calcpml2d([Nx, Ny], NPML); % 20 cell on each boudary
_Q7]Dw/w\
ERxx=ERxx.*sy./sx;
1Sd<cOEd
ERyy=ERyy.*sx./sy;
/g$8JL
ERzz=ERzz.*sx.*sy;
Wcki=ac\v!
URxx=URxx.*sy./sx;
QI`&N(n
URyy=URyy.*sx./sy;
7towjwr
URzz=URzz.*sx.*sy;
+<fT\Oq#
%==============Form Sparse Matrix ====================
C#P7@ JE
ERxx=spdiags(reshape(ERxx,Nx*Ny,1),0,Nx*Ny,Nx*Ny);
@s|yH"
ERyy=spdiags(reshape(ERyy,Nx*Ny,1),0,Nx*Ny,Nx*Ny);
a|Wrc)UR
ERzz=spdiags(reshape(ERzz,Nx*Ny,1),0,Nx*Ny,Nx*Ny);
JN3&(t
URxx=spdiags(reshape(URxx,Nx*Ny,1),0,Nx*Ny,Nx*Ny);
Bs^p!4=
URyy=spdiags(reshape(URyy,Nx*Ny,1),0,Nx*Ny,Nx*Ny);
\6;b.&%w2
URzz=spdiags(reshape(URzz,Nx*Ny,1),0,Nx*Ny,Nx*Ny);
K9) |b`E=
%===== Form the Normalised Curl Operators ============
{~ 1 ~V
[DEX,DEY,DHX,DHY]=yeeder([Nx Ny], [dx*k0 dy*k0], [0 -2], [kx/k0, ky/k0]); % normalised
IgPU^?sp
hI,+J>
%==============Build Scattering Problem ===========
4{LKT^(!f
% form sorce field as a column vector b
=1zRm >m
% Mask Matrix for TF/SF regions
-=)+)9~G
% Solve the linear function
>f(M5v(D\
%==================================================
$'COsiK7
%=== Source field plane wave=====
"=yz}~,
x=dx.*(0:Nx-1);
9b)'vr*Hy7
y=dy.*(0:Ny-1);
&0SgEUZr
[X,Y]=meshgrid(x,y);
E=t^I/f)E
X=X.';
gQuU_dbXSB
Y=Y.'; % meshgrid transpose X to horizontal axis so must be corrected
]*<!|;q
fsrc=exp(1j.*kx.*X+1j.*ky.*Y); % positive convention
Tfw5i,{
b=reshape(fsrc,Nx*Ny,1); % Keep exciation as a collomn vector
O}X@QG2_
"s7}eWM*a
% ========== Mask Q TF/SF Interface ============
bpdluWS+ )
Q=ones(Nx, Ny);
~z7Fz"o<
Q(NPML(1)+NRES:Nx,:)=0;
U3t)yr h
Q=diag(sparse(Q(:)));
ftP]WGSS>
AA[?a
% ========== solve linear function =================
kg^5D3!2{Q
if Mode=='H'
rS_pv=0S
&nb ..
BQ(sjJ$v6F
(>`S{L C>s
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
描述:SF 为散射场区域,TF为总场区域
图片:abs_Hz.jpg
描述:PML
附件:
calcpml2d.txt
(3 K) 下载次数:1
描述:YEE 差分算子
附件:
yeeder.txt
(3 K) 下载次数:1
共
条评分
专业是电磁兼容测试和建模
发帖
回复