登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
fdtd二维仿真中高斯脉冲不对称??
发帖
回复
1550
阅读
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个网格的点发现波形不对称,所有的参数都做了检查,应该不是程序的问题,那是什么问题呢?
pEz^z9
r73W.&
是由于网格造成的离散误差,还是其他什么问题?
r7].48D
r~JGs?GH
代码: 代码做了注释
OiXO<1'$
n_rpT.[
// 2d.cpp : Defines the entry point for the console application.
d>mT+{3
//
tl{{Vc[
#include "stdafx.h"
l53Q"ajG
#include <math.h>
{ `Z~T&}~T
#include <stdlib.h>
YjnQ@IfIH
- f ^!R
#define IE 600 //网格数
b{,v?7^4
#define JE 600
&;pM<h
#define TIME 400 //时间步
wdf;LM
#define F 1.5e9 //频率
5-ED\-
int _tmain(int argc, _TCHAR* argv[])
TBrwir
{
fzw:[z:%
double ga[IE][JE],dz[IE][JE],ez[IE][JE],hx[IE][JE],hy[IE][JE];
/\<x8BJ
int l,n,i,j,ic,jc,nsteps;
QZG<sZ0"
double ddx,dt,T,epsz,pi,epsilon,sigma,eaf;
j24DL+
double t0,spread,pulse;
8X.= 6M
double temp;
CbW[_\
double eztemp1[TIME],eztemp2[TIME];
^|zag
FILE *fp,*fp1;//,*fopen();
s3m\
ic = IE/2; //源点位置
< qab\M0W
jc = JE/2;
ra6\+M~}e
ddx = 3.0e8/F/10;
KQb&7k.
dt = ddx/6e8;
iLJ@oM;2
epsz = 8.8e-12;
^&C/,,U
pi = 3.1415926;
AX%}ip[PC
}y+Qj6dP
for(i=0;i<200;i++) //记录采样点数据变量
Hc@_@G
{
U}DE9e{/!
eztemp1
= 0.0;
!hM`Oe`S
eztemp2
= 0.0;
?>{u@tYL
}
`L 1+j
u=qaz7E
for(j=0;j<JE;j++)
G u_\ySV/y
{
4eB oR%2o
printf("%2d ",j);
+6l#hO7h
for(i=0;i<IE;i++)
ybsw{[X>M
{
[<{r~YFjWW
dz
[j] = 0.0;
)eT>[['fm
ez
[j] = 0.0;
0G-obHe0
hx
[j] = 0.0;
D!OY <?
hy
[j] = 0.0;
9B;WjXSe
ga
[j] = 1.0;
q2J|koT
//printf("%2d ",ga
[j]);
;+(_stxqV9
}
~]RfOpq^w
//printf("\n ");
boCi*]
}
wu eDedz\
t0 = 250.0;
V sxI
spread = 2;
sbX7VfAR`
T = 0;
ZO/Jf Jn~
nsteps = TIME;
3M+rFB}tS
while(nsteps>0)
[e ztu9
{
0{%@"Fb0O
/*printf("ntsteps---");
LxGD=b
scanf("%d",&nsteps);
$0K@=7ms
printf("%d \n",nsteps);*/
|a"]@W$>
// printf("spread---");
mD.6cV
//scanf("%d",&spread);
]|PTZ1?j
//printf("%d \n",spread);
.tGz, z}
T = 0;
0SWqC@AR%
for(n=0;n<nsteps;n++)
J^CAQfcx
{
(yi zM
$:oC\K6
T = T + 1;
6nE/8m
for(j=1;j<IE;j++) {
`JDZR:bMaT
for(i=1;i<IE;i++) {
s@iY'11
dz
[j] = dz
[j] + 0.5*(hy
[j]-hy[i-1][j]-hx
[j] + hx
[j-1]); } }
,j`48S@
L~)8Q(f
// temp = (t0*dt-T*dt)/(10./F);
<QFayZ$
temp = (t0-T)/(80);
0Fon`3(^\
pulse = exp(-4.*3.1415926*pow(temp,2)); //高斯脉冲
j;E$7QH[
//pulse = sin(3.1415926/20*n);
P (7Q8i'
dz[ic][jc] = pulse;
Xe_djy'8
zj] g^c;
eztemp1[n] = pulse; //记录采样点值
GVA%iE.
eztemp2[n] = ez[ic][ic-5];
OomC%9/=,
for(j=1;j<JE;j++) {
*yw!Y{e!9
for(i=1;i<IE;i++) {
F(."nUrf
ez
[j] = ga
[j]*dz
[j]; } }
xRgdU+,Mj
p&V64L:V
q78OP}
for(j=0;j<=JE-1;j++) {
"= %"@"<)
for(i=0;i<IE-1;i++) {
j!!s>7IZ
hx
[j] = hx
[j] + 0.5*(ez
[j] -ez
[j+1]); } }
%X.g+uu
"OYD9Q''
for(j=0;j<JE-1;j++) {
hKN ;tq,
for(i=0;i<=IE-1;i++) {
=O"]e/CfO
hy
[j] = hy
[j] + 0.5*(ez[i+1][j] -ez
[j]); } }
S'qT+pP
}
xR%NiYNQz
`:~Wu/Ogr
$\vNSTE
//for(j=1;j<jc;j++){
w{dRf!b69
// printf("%2d ",j);
13Z,;YW
// for(i=1;i<ic;i++){
'R'hRMD9o
// printf("%5.2f ",ez[2*i][2*j]); }
=^rp= Az
// printf("\n");
b?KdR5
//}
onRTX|#
nsteps=0;
VVAc bAGJ
printf("T = %5.0f\n",T);
2jC:uk
fp=fopen("Ezsource.txt","w");
)sdHJ
fp1=fopen("Ez.txt","w");
ebJTrh <{
//for(j=0;j<JE;j++){
.TdFI"Yn
// for(i=0;i<IE;i++){
gsEcvkj*
// fprintf(fp,"%6.3f",ez
[j]);
CUG"2K9
//
'"\n,3h
// }
@$^4Av-
F1_,V?
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
描述:仿真结果
图片:untitled.jpg
共
1
条评分
gwzhao
rf币
+5
积极参与论坛交流,加分!
2010-03-14
dgu
发帖
回复