登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
大家帮忙看看这个3D_FDTD介质球的RCS有什么问 ..
发帖
回复
1
2
3
4116
阅读
29
回复
大家帮忙看看这个3D_FDTD介质球的RCS有什么问题
离线
cc81372365
UID :27752
注册:
2009-03-18
登录:
2023-11-09
发帖:
345
等级:
论坛版主
0楼
发表于: 2010-11-29 13:16:05
//****************************************************************//
-z>Z0viA
//
zR3lX}g
//********* 3D_介质球散射(RCS)FDTD程序 **********//
Z>>gXh<e[
//
@1J51< x
//****************************************************************//
FcA)RsMI*
//
p[af[!
//入射波为Y方向的平面波(theta=pi/2 , phi=pi/2), RCS观察角为(theta=pi/2 , phi = 0到2pi)
mK7^:(<.LO
// 数字0,1代表场值经过傅里叶变换后的复数的实部和虚部
!%Z)eO~Z
// 金属方柱置于中心位置(ic,jc),激励源为高斯脉冲源
EyKkjEXx_
#include <iostream>
Et@=Ic^E
#include <iomanip>
hB2s$QS
#include <fstream>
@&i#S}%/
//#include <omp.h>
Xa@ _^oL
#include <time.h>
zezofW]a
#include <valarray>
2m)kyQ
#include <math.h>
" kE:T.,
#include <stdio.h>
m<,y-bQ*(
#include <stdlib.h>
lzr>WbM{{p
0,"n-5Im
#include "complex_operation.h"
VrnK)za*H
#define IE 60
)$9C` d[
#define JE 60
4acP*LkkQ
#define KE 60
"FLD%3l
#define ia 15
d @^o/w8
#define ja 15
)$lSG}WD
#define ka 15
I9Edw]
#define length 41
8a":[Q[
using namespace std;
[+:mt</HN
ofstream outFile;
2heWE
int main()
G]m[S-
{
?C#F?N0
int i,j,k,ic,jc,kc,ib,jb,kb;
`/gEKrhL-
int npml,n_pml,T;
F=*BvI"+
double radius,v,lamda,Z,f,kk;
K8yyxJ
double epsz_r,epsz,muz,muz_r,ddx,dt,pi,sigma;
pZ@W6}
double xn,xxn;
||*&g2Y
double t0,spread,pulse;
YP .%CD(K
double ez_inc[JE]={0},hx_inc[JE]={0};
EE{#S
double ez_low_m1=0,ez_low_m2=0,ez_high_m1=0,ez_high_m2=0;
:Z*02JwK
int ixh,jyh,kzh;
YN5OuKMUd'
int co=0;
:) Fp B"
double rcs[361]={0.0};
O_s9
double ine[2] = {0.0};
=@ L5
double ine_fudu = 0.0;
Us@ {w`T
double curl_h,curl_e;
,,wyydG
double dist,xdist,ydist,zdist;
SS45<!iy
double dx[IE][JE][KE]={0},dy[IE][JE][KE]={0},dz[IE][JE][KE]={0};
lo>-}xd
double ex[IE][JE][KE]={0},ey[IE][JE][KE]={0},ez[IE][JE][KE]={0};
sa0^1$(<
double hx[IE][JE][KE]={0},hy[IE][JE][KE]={0},hz[IE][JE][KE]={0};
n{qw ]/
double ix[IE][JE][KE]={0},iy[IE][JE][KE]={0},iz[IE][JE][KE]={0};
=JySY@?9
double gax[IE][JE][KE]={0},gay[IE][JE][KE]={0},gaz[IE][JE][KE]={0};
"$,}|T?Y`
double gbx[IE][JE][KE]={0},gby[IE][JE][KE]={0},gbz[IE][JE][KE]={0};
!Wdt:MUI8
double idxl[ia][JE][KE]={0},idxh[ia][JE][KE]={0};
0N3tsIm>
double idyl[IE][ja][KE]={0},idyh[IE][ja][KE]={0};
@6I[{{>X
double idzl[IE][JE][ka]={0},idzh[IE][JE][ka]={0};
SCI-jf3WN
double ihxl[ia][JE][KE]={0},ihxh[ia][JE][KE]={0};
)z*$`?)k
double ihyl[IE][ja][KE]={0},ihyh[IE][ja][KE]={0};
B4*X0x
double ihzl[IE][JE][ka]={0},ihzh[IE][JE][ka]={0};
sGDrMAQt
double gi1[IE]={0},gi2[IE]={0},gi3[IE]={0};
J7 *G/F
double gj1[JE]={0},gj2[JE]={0},gj3[JE]={0};
a dz;N;rIY
double gk1[KE]={0},gk2[KE]={0},gk3[KE]={0};
]' "^M
double fi1[IE]={0},fi2[IE]={0},fi3[IE]={0};
"z(fBnv
double fj1[JE]={0},fj2[JE]={0},fj3[JE]={0};
2Xj-A\Oh~
double fk1[KE]={0},fk2[KE]={0},fk3[KE]={0};
!w;A=
double Ex_down[length][length][2]={0},Ey_down[length][length][2]={0};
-f|+
double Hx_down[length][length][2]={0},Hy_down[length][length][2]={0};
S#0|#Z5qD
double Ex_up[length][length][2]={0},Ey_up[length][length][2]={0};
i-"h"nF"
double Hx_up[length][length][2]={0},Hy_up[length][length][2]={0};
[V #&sAe
double Ex_left[length][length][2]={0},Ez_left[length][length][2]={0};
v%l|S{>(
double Hx_left[length][length][2]={0},Hz_left[length][length][2]={0};
v&CO#vK5.
double Ex_right[length][length][2]={0},Ez_right[length][length][2]={0};
tUAY]BJ*s
double Hx_right[length][length][2]={0},Hz_right[length][length][2]={0};
e G*s1uQl
double Ey_front[length][length][2]={0},Ez_front[length][length][2]={0};
P7BJ?x
double Hy_front[length][length][2]={0},Hz_front[length][length][2]={0};
ru6H nLhL
double Ey_back[length][length][2]={0},Ez_back[length][length][2]={0};
z*k3q`=>
double Hy_back[length][length][2]={0},Hz_back[length][length][2]={0};
r/s&ee
ic = IE/2;
No92Y^~/
jc = JE/2;
%;B(_ht<-w
kc = KE/2;
d)17r\*>I
ib = IE - ia -1;
Ygkd~g
jb = JE - ja -1;
}v(H E%~}
kb = KE - ka -1;
:;hBq4h
//外推边界位置
JG+g88
int dis = 5;
5@%=LPV
const int i_front = ib + dis;
g8iB;%6
const int i_back = ia - dis;
<g|nmu)o$
const int j_right = jb + dis;
\A ~I>x
const int j_left = ja - dis;
v_1JH<GJ-
const int k_up = kb + dis;
7PQj7&m
const int k_down = ka - dis;
te)g',#lT
pi = 3.1415926;
ETH#IM8J
epsz = 8.8e-12; // 真空介电常数
9T0wdK]
epsz_r = 4.0; // 相对介电常数
[(e`b
muz = 4*pi*1e-7; // 真空磁导率
JY050FL
muz_r = 1.0; // 相对磁导率
8L9S^ '
sigma = 0; // 介质电导率
>`,#%MH#
v = 3.0e8; // 波速
dPdHY`
f = 9.375e9; // 频率 10GHz
u):Rw
lamda = v/f; // 波长 0.03m
m(7_ZiL=
kk = 2*pi/lamda; // 波数
r^o}Y
Z = sqrt(muz/epsz); // 真空波阻抗 377
Q&U= jX
ddx = lamda/42; // 网格尺寸
1r-,VX7
dt = ddx/(2.0*v); // 时间步长
CsST-qxg
/* Initialize the arrays */
$Bwvw)(%
for ( i=0; i<IE; i++)
/+JP~K
{
r<f-v_bxF
for ( j=0; j<JE; j++)
j|$y)FBX
{
"6Hjji@A
for ( k=0; k<KE; k++)
?H7p6mu
{
"*>QxA%c4
ex
[j][k] = 0.0;
~BYEeUo;%v
ey
[j][k] = 0.0;
@l6dJ
ez
[j][k] = 0.0;
YWBP'Mo
dx
[j][k] = 0.0;
N(({2'Rr
dy
[j][k] = 0.0;
hwol7B>
dz
[j][k] = 0.0;
lj}1'K@M
hx
[j][k] = 0.0;
G3?a~n^b
hy
[j][k] = 0.0;
)mo|.L0
hz
[j][k] = 0.0;
cX=b q_
ix
[j][k] = 0.0;
?k7/`gU
iy
[j][k] = 0.0;
?$8 ,j+&I
iz
[j][k] = 0.0;
d7-F&!sQ
gax
[j][k] = 1.0;
}"; hz*a
gay
[j][k] = 1.0;
gu.))3D9
gaz
[j][k] = 1.0;
]I*#R9
gbx
[j][k] = 0.0;
@ :
gby
[j][k] = 0.0;
jQwg)E+o;
gbz
[j][k] = 0.0;
iNrmhiql
}
~zOU/8n ,F
}
4#Nd;gM2
}
Rx"VscB6z
for ( i=0; i<ia; i++)
UNH}*]u4`
{
Sm I8&c
for ( j=0; j<JE; j++)
pcxl2I
{
}y=n#%|i.
for ( k=0; k<KE; k++)
>5@ 0lYhH
{
qP .VK?jF|
idxl
[j][k] = 0.0;
E6&uZr
idxh
[j][k] = 0.0;
zZ"')+7q&%
ihxl
[j][k] = 0.0;
[?r\b
ihxh
[j][k] = 0.0;
&WWO13\qd
}
0#[Nfe*
}
`9"jHw`D
}
FVLA^$5c
for ( i=0; i<IE; i++)
Z(`K6`KM
{
FUv)<rK
for ( j=0; j<ja; j++)
1nM?>j%k
{
* jNu?$
for ( k=0; k<KE; k++)
"@'9+$i6
{
Fb4S/_ V
idyl
[j][k] = 0.0;
GH)+yD[o
idyh
[j][k] = 0.0;
AxqTPx7`|
ihyl
[j][k] = 0.0;
gdn,nL`dP
ihyh
[j][k] = 0.0;
58gt*yVu
}
?B31t9
}
|c+N)FB
}
nv|y@!(
for ( i=0; i<IE; i++)
HBkQ`T
{
JC?V].) y5
for ( j=0; j<JE; j++)
C g,w6<7
{
b:d.Lf{y7
for ( k=0; k<ka; k++)
O!cO/]<
{
&7y1KwfXn
idzl
[j][k] = 0.0;
WRyv >Y
idzh
[j][k] = 0.0;
T=KrT7
ihzl
[j][k] = 0.0;
C&K(({5O
ihzh
[j][k] = 0.0;
M(f*hOG{Y
}
K>p:?w
}
9!OCilG
}
Z"8cGN'
//PML初始化
(YH{%8 Z0
for ( i=0; i<IE; i++)
Tf]VcEF
{
{}gk4xr
gi1
= 0;
B!C32~[
fi1
= 0;
mp$II?hZ*
gi2
= 1;
v?' k)B
fi2
= 1;
!{=%l+^.
gi3
= 1;
sy#j+gZ
fi3
= 1;
?=o]Wx0(9
}
(HgdmN%
for ( j=0; j<JE; j++)
si4=C
{
*} 4;1OVT
gj1[j] = 0;
'$ nGtB5
fj1[j] = 0;
"Q!{8 9Y
gj2[j] = 1;
3mn-dKe((
fj2[j] = 1;
CMf~Yv
gj3[j] = 1;
j W]c9u
fj3[j] = 1;
Jx[e{o)o
}
^\t">NJ^
for ( k=0; k<KE; k++)
7.'j~hJL
{
C2%3+
gk1[k] = 0;
Z"&ODVP
fk1[k] = 0;
dufHd
gk2[k] = 1;
~bQ:gArk
fk2[k] = 1;
UVRV7^eTe
gk3[k] = 1;
8pKPbi;(2
fk3[k] = 1;
5N}|VGN
}
9jFDBy+
radius = 10 ;
L.&Vi"M <@
n_pml = 7; //PML层厚度
.:Xe* Q
npml = 7;
N9hWx()v
for (i = 0; i < n_pml; i++)
jtC ob'n8
{
<}>-ip?
xxn = (double)(npml-i)/(double)npml;
k5<