欧拉折线法绘制电场线

利用最常规的模拟方法——欧拉折线法绘制四电荷电场线,fortran写的,下一个版本会有python的Vpython动画版。
module conts
integer :: N=18,Num=4
real(4) :: q(4)
data q/1.0,-1.0,1.0,-1.0/
complex :: p(4)
data p/(1.0,1.0),(-1.0,1.0),(-1.0,-1.0),(1.0,-1.0)/
real(4) :: pai=3.1415926
real(4) :: ds=0.01
real(4) :: dr=0.3
end

program Main
use conts
complex :: r,s
integer :: i,j
open(10,file="data.dat")
do i=1,Num
do j=1,N
s=exp(j*pai/N*(0,1)*2.)
r=p(i)+dr*s
call plot(r)
enddo
enddo
end

subroutine plot(r)
use conts
complex :: E,r
do
write(10,*) real(r),aimag(r)
r=r+ds*E(r)/abs(E(r))
if(abs(r-p(1))20.0) exit
enddo
end

complex function E(r)
use conts
complex :: r
integer :: i
E=(0,0)
do i=1,Num
E=E+q(i)*(r-p(i))/abs(r-p(i))**3
enddo
return
end

效果如图所示电场线

2条评论

  1. TheWorld Browser TheWorld Browser Windows 7 x64 Edition Windows 7 x64 Edition
    Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 TheWorld 6

    利用最常规的模拟方法——欧拉折线法绘制四电荷电场线,fortran写的,下一个版本会有python的Vpython动画版。

  2. Google Chrome 38.0.2064.0 Google Chrome 38.0.2064.0 Windows XP Windows XP
    Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2064.0 Safari/537.36

    留言是种美德,写点什么…

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注