📄 init.f90
字号:
!=========================================================================================
! subroutine init
!=========================================================================================
subroutine init
use consts
use fdtd
implicit none
integer id
real lambda0
!----------------------------------------------------------------------------------------------
call input
!------------------------------------空间时间步长-------------------------------------------------------
lambda0=c/freq
dx=lambda0/nlambda0
dy=dx
dt=(1.0d0/freq)/nperiod
!------------------------------------介质参数-------------------------------------------------------
nmedia=3
! 1:真空中
eps(1)=epsilon0
mu(1)=mu0
sig(1)=0.0d0
! 2:pec,pmc
! 3:一般介质
eps(3)=2.25*epsilon0
mu(3)=mu0
sig(3)=0.d0
!-------------------------------------迭代系数------------------------------------------------
! 1:真空中
cex0=1.0d0
cey0=1.0d0
cexry0=(dt/epsilon0)/dy
ceyrx0=(dt/epsilon0)/dx
chzry0=(dt/mu0)/dy
chzrx0=(dt/mu0)/dx
! 3:一般介质
do id=3,nmedia
cex(id)=(1.0d0-((sig(id)*dt)/(2.0d0*eps(id))))/(1.0d0+((sig(id)*dt)/(2.0d0*eps(id))))
cey(id)=(1.0d0-((sig(id)*dt)/(2.0d0*eps(id))))/(1.0d0+((sig(id)*dt)/(2.0d0*eps(id))))
cexry(id)=(dt/eps(id))/(1.0d0+((sig(id)*dt)/(2.0d0*eps(id))))/dy
ceyrx(id)=(dt/eps(id))/(1.0d0+((sig(id)*dt)/(2.0d0*eps(id))))/dx
chz(id)=(1.0d0-((sig(id)*dt)/(2.0d0*mu(id))))/(1.0d0+((mu(id)*dt)/(2.0d0*mu(id))))
chzry(id)=dt/mu(id)/(1.0d0+sig(id)*dt/2.0d0*mu(id))/dy
chzrx(id)=dt/mu(id)/(1.0d0+sig(id)*dt/2.0d0*mu(id))/dx
!chzry(id)=(dt/mu(id))/dy
!chzrx(id)=(dt/mu(id))/dx
end do
!---------------------------------- mur吸收系数---------------------------------------------
mur1_cx=(c*dt-dx)/(c*dt+dx)
mur1_cy=(c*dt-dy)/(c*dt+dy)
return
end subroutine
!================================================================================================
! input
!================================================================================================
subroutine input
use fdtd
implicit none
freq=8.54131054d14
nx=300
ny=500
nlambda0=30
nperiod=100
time_start=300
time_end=2000
time_step=5
return
end subroutine
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -