登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
大家帮忙看看这个3D_FDTD介质球的RCS有什么问 ..
发帖
回复
1
2
3
4115
阅读
29
回复
大家帮忙看看这个3D_FDTD介质球的RCS有什么问题
离线
cc81372365
UID :27752
注册:
2009-03-18
登录:
2023-11-09
发帖:
345
等级:
论坛版主
0楼
发表于: 2010-11-29 13:16:05
//****************************************************************//
`FF8ie 8L
//
8G^<[`.@j
//********* 3D_介质球散射(RCS)FDTD程序 **********//
a$11PBi[9
//
Gs0H@
//****************************************************************//
uXZg1F)
//
h) (*q+a
//入射波为Y方向的平面波(theta=pi/2 , phi=pi/2), RCS观察角为(theta=pi/2 , phi = 0到2pi)
7 h=QW5
// 数字0,1代表场值经过傅里叶变换后的复数的实部和虚部
%Q"(/jm?
// 金属方柱置于中心位置(ic,jc),激励源为高斯脉冲源
(GKpA}~R
#include <iostream>
cD}Sf>
#include <iomanip>
0JyVNuHn
#include <fstream>
o @Z#
//#include <omp.h>
XFwLz
#include <time.h>
{=:#S+^ER
#include <valarray>
WY
#include <math.h>
K7TzF&
#include <stdio.h>
f>9s!Hpu_
#include <stdlib.h>
<O~WB
sp9W?IJ 6c
#include "complex_operation.h"
vRQOs0F;
#define IE 60
VRng=,
#define JE 60
a>mMvc"
#define KE 60
VU.@R,
#define ia 15
7N8H)X
#define ja 15
^V*-1r1
#define ka 15
Vzlh+R>c
#define length 41
c@(&[/q!
using namespace std;
A&5:ATQ/|
ofstream outFile;
fRZ KEIyk
int main()
kQ>^->w
{
JgRYljQi2
int i,j,k,ic,jc,kc,ib,jb,kb;
%8.J=B
int npml,n_pml,T;
77 r(*.O|
double radius,v,lamda,Z,f,kk;
pf" <!O[
double epsz_r,epsz,muz,muz_r,ddx,dt,pi,sigma;
\fWW'
double xn,xxn;
u eb-2[=
double t0,spread,pulse;
{d3<W N
double ez_inc[JE]={0},hx_inc[JE]={0};
.10y0FL4
double ez_low_m1=0,ez_low_m2=0,ez_high_m1=0,ez_high_m2=0;
0$ .m_0H
int ixh,jyh,kzh;
L5fuM]G`
int co=0;
63WS7s"
double rcs[361]={0.0};
d3Di/Iej
double ine[2] = {0.0};
i&Fiq&V)[
double ine_fudu = 0.0;
|AhF7Mj*
double curl_h,curl_e;
< B g8,;
double dist,xdist,ydist,zdist;
_Q(g(p&
double dx[IE][JE][KE]={0},dy[IE][JE][KE]={0},dz[IE][JE][KE]={0};
V\5 L?}
double ex[IE][JE][KE]={0},ey[IE][JE][KE]={0},ez[IE][JE][KE]={0};
`RRE(SiKU
double hx[IE][JE][KE]={0},hy[IE][JE][KE]={0},hz[IE][JE][KE]={0};
R=j% S!
double ix[IE][JE][KE]={0},iy[IE][JE][KE]={0},iz[IE][JE][KE]={0};
M" lg%j
double gax[IE][JE][KE]={0},gay[IE][JE][KE]={0},gaz[IE][JE][KE]={0};
Z=S>0|`R
double gbx[IE][JE][KE]={0},gby[IE][JE][KE]={0},gbz[IE][JE][KE]={0};
"hz\Z0zg2
double idxl[ia][JE][KE]={0},idxh[ia][JE][KE]={0};
_D7 ]-3uC!
double idyl[IE][ja][KE]={0},idyh[IE][ja][KE]={0};
e( X|3h|
double idzl[IE][JE][ka]={0},idzh[IE][JE][ka]={0};
^]C&tG0 !
double ihxl[ia][JE][KE]={0},ihxh[ia][JE][KE]={0};
6i@\5}m=
double ihyl[IE][ja][KE]={0},ihyh[IE][ja][KE]={0};
2{,n_w?Wy
double ihzl[IE][JE][ka]={0},ihzh[IE][JE][ka]={0};
VaONd0Z I
double gi1[IE]={0},gi2[IE]={0},gi3[IE]={0};
v;1F[?@3Y
double gj1[JE]={0},gj2[JE]={0},gj3[JE]={0};
Q%S9fq,q
double gk1[KE]={0},gk2[KE]={0},gk3[KE]={0};
t~7V{ xk
double fi1[IE]={0},fi2[IE]={0},fi3[IE]={0};
R,2P3lv1v@
double fj1[JE]={0},fj2[JE]={0},fj3[JE]={0};
}YhtUWz].
double fk1[KE]={0},fk2[KE]={0},fk3[KE]={0};
W-~n|PX8+
double Ex_down[length][length][2]={0},Ey_down[length][length][2]={0};
ZAKeEm2A
double Hx_down[length][length][2]={0},Hy_down[length][length][2]={0};
25y6a|`
double Ex_up[length][length][2]={0},Ey_up[length][length][2]={0};
LtgXShp_!
double Hx_up[length][length][2]={0},Hy_up[length][length][2]={0};
rNOES3[~
double Ex_left[length][length][2]={0},Ez_left[length][length][2]={0};
:nY2O
double Hx_left[length][length][2]={0},Hz_left[length][length][2]={0};
cgu~
double Ex_right[length][length][2]={0},Ez_right[length][length][2]={0};
G bP!9I
double Hx_right[length][length][2]={0},Hz_right[length][length][2]={0};
&BE g
double Ey_front[length][length][2]={0},Ez_front[length][length][2]={0};
0u B'g+MU`
double Hy_front[length][length][2]={0},Hz_front[length][length][2]={0};
e$)300 o
double Ey_back[length][length][2]={0},Ez_back[length][length][2]={0};
H].y w9
double Hy_back[length][length][2]={0},Hz_back[length][length][2]={0};
vdDludEv
ic = IE/2;
uGN^!NG-0
jc = JE/2;
* *H&+T/B
kc = KE/2;
,3i,P(?(
ib = IE - ia -1;
E; $+f
jb = JE - ja -1;
\00DqL(Oj`
kb = KE - ka -1;
Z"-L[2E/{!
//外推边界位置
;lX(}2tXW
int dis = 5;
{LzH&qu
const int i_front = ib + dis;
po9 9 y-
const int i_back = ia - dis;
t(!r8!c u}
const int j_right = jb + dis;
PCrU<J 7
const int j_left = ja - dis;
nz.{P@[Qk
const int k_up = kb + dis;
BP[|nL
const int k_down = ka - dis;
&;TJ~r#K
pi = 3.1415926;
^eYqll/U
epsz = 8.8e-12; // 真空介电常数
z&8un%Jt
epsz_r = 4.0; // 相对介电常数
_jU5O;
muz = 4*pi*1e-7; // 真空磁导率
07g':QU@
muz_r = 1.0; // 相对磁导率
K5t0L!6<+
sigma = 0; // 介质电导率
yF._*9Q3hK
v = 3.0e8; // 波速
IeX^4rc(
f = 9.375e9; // 频率 10GHz
`Mj}md;O"
lamda = v/f; // 波长 0.03m
bizTd
kk = 2*pi/lamda; // 波数
=DbY? Q<Q
Z = sqrt(muz/epsz); // 真空波阻抗 377
T'-FV
ddx = lamda/42; // 网格尺寸
gR^>3n'
dt = ddx/(2.0*v); // 时间步长
2S3lsp5!
/* Initialize the arrays */
,|?CU r9Y
for ( i=0; i<IE; i++)
?(6m VyIe
{
hg@}@Wq\)
for ( j=0; j<JE; j++)
4\ c,)U}
{
h0vob_Fdl
for ( k=0; k<KE; k++)
fU3`v\X
{
Ty(@+M~-
ex
[j][k] = 0.0;
QYb33pN|
ey
[j][k] = 0.0;
1SIq[1
ez
[j][k] = 0.0;
S8Fmy1#
dx
[j][k] = 0.0;
RkeltE~u
dy
[j][k] = 0.0;
V D?*h
dz
[j][k] = 0.0;
)D-c]+yt
hx
[j][k] = 0.0;
#zUXyT#X
hy
[j][k] = 0.0;
CWo1.pV w
hz
[j][k] = 0.0;
NG&_?|OmV
ix
[j][k] = 0.0;
.9[45][FK
iy
[j][k] = 0.0;
M6r^L6$N
iz
[j][k] = 0.0;
H5cV5E0
gax
[j][k] = 1.0;
-D^A:}$
gay
[j][k] = 1.0;
%?C8mA'w
gaz
[j][k] = 1.0;
m(iR|Zx
gbx
[j][k] = 0.0;
g?v\!/~(u
gby
[j][k] = 0.0;
_Us*+ 2(4L
gbz
[j][k] = 0.0;
S/ywA9~3Q
}
X .F^$
}
M]v=-
}
wXjFLg!g?
for ( i=0; i<ia; i++)
gd/H``x|Y
{
?rX]x8iP
for ( j=0; j<JE; j++)
?YM4b5!3T
{
6(|d|Si *c
for ( k=0; k<KE; k++)
nR>r2wMk@
{
6 Si-u
idxl
[j][k] = 0.0;
;^Sr"v6r>u
idxh
[j][k] = 0.0;
~rr 4ok
ihxl
[j][k] = 0.0;
ysIh[1E~%:
ihxh
[j][k] = 0.0;
= VLS/\A
}
|wE3UWsy
}
x3ERCqTR
}
?Ucu#UO
for ( i=0; i<IE; i++)
cV{%^0?D
{
]j~"mFAP
for ( j=0; j<ja; j++)
}V;+l8
{
^I6^g
for ( k=0; k<KE; k++)
4F3x@H'
{
Z BUArIC
idyl
[j][k] = 0.0;
wu9=N ^x
idyh
[j][k] = 0.0;
sAJ7R(p
ihyl
[j][k] = 0.0;
f&,{XZ
ihyh
[j][k] = 0.0;
)&{K~i ;:
}
dBV7Te4L
}
5F|8?BkOL^
}
\qvaE+
for ( i=0; i<IE; i++)
x_!0.SU
{
{+<P:jbz;
for ( j=0; j<JE; j++)
6&Juv
{
fEE /-}d
for ( k=0; k<ka; k++)
88"Sai
{
]{~NO{0@Y
idzl
[j][k] = 0.0;
P|2E2=G
idzh
[j][k] = 0.0;
`cQo0{xK
ihzl
[j][k] = 0.0;
&M/0g]4p
ihzh
[j][k] = 0.0;
gk BdR +
}
:HxA`@Ok
}
IL/Yc1
}
pCpb;<JG
//PML初始化
+ 1IQYa|
for ( i=0; i<IE; i++)
;;$# )b
{
ZD#9&q'4<
gi1
= 0;
R1:k23{
fi1
= 0;
8n BL\{'B[
gi2
= 1;
Xb !MaNm)
fi2
= 1;
7?gFy-
gi3
= 1;
tj]9~eJ-
fi3
= 1;
MF3b{|Z
}
Lj\/Ji_
for ( j=0; j<JE; j++)
-V"22sR]
{
d%I"/8-J
gj1[j] = 0;
Ch()P.n?
fj1[j] = 0;
}0`nvAf
gj2[j] = 1;
Sw`RBN[ yo
fj2[j] = 1;
_sE#)@p
gj3[j] = 1;
0n ~ Zz
fj3[j] = 1;
/WV7gO&L1
}
; R=.iOn
for ( k=0; k<KE; k++)
(C] SH\
{
@pI5lh
gk1[k] = 0;
H xV#WoYKj
fk1[k] = 0;
B<8N96fx
gk2[k] = 1;
`dMqe\o%!
fk2[k] = 1;
:M{Y,~cP
gk3[k] = 1;
m\>a,oZH
fk3[k] = 1;
&bz:K8c
}
GhY1k";
radius = 10 ;
c H-@V<
n_pml = 7; //PML层厚度
%u^JpC{E
npml = 7;
@=]~\[e\
for (i = 0; i < n_pml; i++)
MaBYk?TR~
{
V~ ~=Qp+.
xxn = (double)(npml-i)/(double)npml;
b?4/#&z]
xn = 0.33*pow(xxn,3);
rdnno
fi1
= xn;
1QZ&Mj^^
fi1[IE-1-i] = xn;
-"Y{$/B
gi2
= 1.0/(1.0 + xn);
o[ENp'r
gi2[IE-1-i] = 1.0/(1.0 + xn);
]u-]'P
gi3
= (1.0 - xn)/(1.0 + xn);
Ed0I WPx
gi3[IE-1-i] = (1.0 - xn)/(1.0 + xn);
0yx 3OY
xxn = (double)(npml-i-.5)/(double)npml;
Ee1LO#^_6
xn = .33*pow(xxn,3);
MF60-VE
gi1
= xn;
BYW^/B Y)
gi1[IE-2-i] = xn;
@ ''GPL@
fi2
= 1.0/(1.0 + xn);
Giq=*D+
fi2[IE-2-i] = 1.0/(1.0 + xn);
b96%")
fi3
= (1.0 - xn)/(1.0 + xn);
Bx"7%[
fi3[IE-2-i] = (1.0 - xn)/(1.0 + xn);
VN0mDh?E
}
to8X=80-3
for (j = 0; j < n_pml; j++)
YI-O{U
{
i`/+,<
xxn = (double)(npml-j)/(double)npml;
2>-S-;i
xn = .33*pow(xxn,3);
=K&\E2kA4
fj1[j] = xn;
dw~p?[
fj1[JE-1-j] = xn;
dt[k\ !-v
gj2[j] = 1.0/(1.0 + xn);
m|=Ecu
gj2[JE-1-j] = 1.0/(1.0 + xn);
N$Y " c*
gj3[j] = (1.0 - xn)/(1.0 + xn);
IC{eE
gj3[JE-1-j] = (1.0 - xn)/(1.0 + xn);
/MB{Pmk$R
xxn = (double)(npml-j-.5)/(double)npml;
;n=. {[,
xn = .33*pow(xxn,3);
+5.t. d
gj1[j] = xn;
,<