登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
fdtd二维仿真中高斯脉冲不对称??
发帖
回复
1549
阅读
0
回复
[
求助
]
fdtd二维仿真中高斯脉冲不对称??
离线
yanghchuan
学习
UID :42864
注册:
2009-09-30
登录:
2012-03-11
发帖:
43
等级:
仿真一级
0楼
发表于: 2010-03-14 21:21:42
— 本帖被 gwzhao 执行加亮操作(2010-03-14) —
在做二维ftdt程序时,用高斯脉冲做源,采样离源点5个网格的点发现波形不对称,所有的参数都做了检查,应该不是程序的问题,那是什么问题呢?
2U-3Q]/I}
M`S0u~#tI
是由于网格造成的离散误差,还是其他什么问题?
'}Ri`
6]-SK$
代码: 代码做了注释
O(_[ayE
\(%Y%?dy
// 2d.cpp : Defines the entry point for the console application.
\}]!)}G
//
m>SErxU(z
#include "stdafx.h"
t'ZWc\
#include <math.h>
[k-+AA>:
#include <stdlib.h>
H'HSD,>(
j!3 Gz
#define IE 600 //网格数
xZV1k~C
#define JE 600
MeUaTJFEB
#define TIME 400 //时间步
@}kv-*
#define F 1.5e9 //频率
h>Hb`G<
int _tmain(int argc, _TCHAR* argv[])
*_ ?dVhxf
{
a5w:u5
double ga[IE][JE],dz[IE][JE],ez[IE][JE],hx[IE][JE],hy[IE][JE];
MMj9{ou
int l,n,i,j,ic,jc,nsteps;
*&f$K1p
double ddx,dt,T,epsz,pi,epsilon,sigma,eaf;
_/O25% l
double t0,spread,pulse;
v%ioj0,
double temp;
wd)jl%
double eztemp1[TIME],eztemp2[TIME];
vv=VRhwF
FILE *fp,*fp1;//,*fopen();
@/k@WhFZ
ic = IE/2; //源点位置
a+Ac[>
jc = JE/2;
c*@G_rb
ddx = 3.0e8/F/10;
85GKymz$P
dt = ddx/6e8;
H@l}WihW
epsz = 8.8e-12;
~}<DG1!
pi = 3.1415926;
\m1~jMz*>k
yBI'djL~>
for(i=0;i<200;i++) //记录采样点数据变量
~9j%Hm0ht
{
5YrBW:_OI
eztemp1
= 0.0;
+a*tO@HG
eztemp2
= 0.0;
%RDI!e<e}
}
%AQIGBcgL
5<w g8y
for(j=0;j<JE;j++)
{P*m;a`}
{
2,*M|+W~
printf("%2d ",j);
:kGU,>BN
for(i=0;i<IE;i++)
u7=U^}#
{
-{ZWo:,r~q
dz
[j] = 0.0;
QcpXn4/*
ez
[j] = 0.0;
G\(|N9^:
hx
[j] = 0.0;
!o$!Fr c
hy
[j] = 0.0;
` Jdb ;
ga
[j] = 1.0;
9V5-%Iv
//printf("%2d ",ga
[j]);
NQ6sGL
}
.?l\g-;=
//printf("\n ");
0'IBN}
}
73){K?R
t0 = 250.0;
{D=@n4JO
spread = 2;
,TFIG^Dvq
T = 0;
4t)/
nsteps = TIME;
YIjTL!bA"
while(nsteps>0)
L`24?Y{
{
KVJ_E!i
/*printf("ntsteps---");
z^<"x|:
scanf("%d",&nsteps);
Dtj&W<NXo
printf("%d \n",nsteps);*/
[KxF'm z9
// printf("spread---");
8-O)Xx}cU
//scanf("%d",&spread);
pa#IJ
//printf("%d \n",spread);
[Vma^B$7Vj
T = 0;
F>rH^F
for(n=0;n<nsteps;n++)
%Z1N;g0
{
BT(CM,bp
yeMB0Z*r
T = T + 1;
Bi{$@n&?f
for(j=1;j<IE;j++) {
4#lo$#
for(i=1;i<IE;i++) {
cCxBzkH6
dz
[j] = dz
[j] + 0.5*(hy
[j]-hy[i-1][j]-hx
[j] + hx
[j-1]); } }
v\{!THCSh
X*\J_
// temp = (t0*dt-T*dt)/(10./F);
/gG"v5]
temp = (t0-T)/(80);
eow'K 821A
pulse = exp(-4.*3.1415926*pow(temp,2)); //高斯脉冲
4F{70"a
//pulse = sin(3.1415926/20*n);
1@-Ns
dz[ic][jc] = pulse;
E@b(1@
' <=+;q
eztemp1[n] = pulse; //记录采样点值
5s]. @C8
eztemp2[n] = ez[ic][ic-5];
VTH> o>g
for(j=1;j<JE;j++) {
|)*fRL,
for(i=1;i<IE;i++) {
&c,kQo+pA
ez
[j] = ga
[j]*dz
[j]; } }
)>Yu!8i
~Rr~1I&mR,
$b mLu=9
for(j=0;j<=JE-1;j++) {
}B1!gz$YNO
for(i=0;i<IE-1;i++) {
GI1
hx
[j] = hx
[j] + 0.5*(ez
[j] -ez
[j+1]); } }
y_?Me]
zO iu5
for(j=0;j<JE-1;j++) {
1aTB%F
for(i=0;i<=IE-1;i++) {
:*KHx|Q
hy
[j] = hy
[j] + 0.5*(ez[i+1][j] -ez
[j]); } }
V=*wKuB
}
`V04\05
n<u $=H
O`<KwUx !
//for(j=1;j<jc;j++){
.Fp4: e
// printf("%2d ",j);
ZEx}$<)_
// for(i=1;i<ic;i++){
kbe-1 <72
// printf("%5.2f ",ez[2*i][2*j]); }
Dg?:/=,=9r
// printf("\n");
aYSCw3C<
//}
9_5ow
nsteps=0;
)<tI!I][j
printf("T = %5.0f\n",T);
^t#&@-'(d
fp=fopen("Ezsource.txt","w");
~W-PD
fp1=fopen("Ez.txt","w");
tw9f%p
//for(j=0;j<JE;j++){
~5oPpTAe
// for(i=0;i<IE;i++){
mVpMh#zw
// fprintf(fp,"%6.3f",ez
[j]);
%B.yW`,X
//
lx7Q.su'
// }
5yz(>EVH
?)ONf#4Y
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
描述:仿真结果
图片:untitled.jpg
共
1
条评分
gwzhao
rf币
+5
积极参与论坛交流,加分!
2010-03-14
dgu
发帖
回复