TWO DIMENSIONAL LAPACE’S EQUATION SOLUTION

by Reinaldo Baretti Machin

 

The following approximation is carried out iteratively

 

V(x,y) =[V(x+h,y)+V(x-h,y) +V(x,y+h) +V(x,y-h)]/4

 

 

c solution to Laplace equation in two dimensions

      dimension vxy0(0:500), vxyL(0:500),vyx0(0:500), vyxL(0:500),

     $V1(30,30) ,v2(30,30)

c Lx , Ly dimension of the rectangular plate

       real Lx, Ly

       tol=1.E-3

       Lx=0.5

       ly=0.5

       nx=10

       ny=10

       dx=Lx/float(nx)

       dy=ly/float(ny)

c boundary conditions

      do 10  i=0,nx

      x=float(i)*dx

      y=float(i)*dy

c  boundary conditions

      vxy0(i)=0.

      vxyL(i) = 200*x

       vyx0(i)=0.

       vyxL(i)= 200*y

10    continue

c  falta arreglar frontera

 

      do 15 j=0,ny

      v1(0,j)=vyx0(j)

      v1(nx,j)=vyxL(j)

15    continue

      do 17 i=0,nx

      v1(i,0)=vxy0(i)

      v1(i,ny)=vxyL(i)

17    continue

      do 20 i=1,nx-1

      do 20 j=1,ny-1

      x=float(i)*dx

      y=float(i)*dy

      v1(i,j)= .5*(vyx0(J)+(x/lx)*(vyxl(j)-vyx0(j))+ vxy0(i)+(y/Ly)*(

     $vxyl(i)-vxy0(i)) )

20    continue

      niter=1

35    dvmax=0.

      do 30 i=1,nx-1

      do 30 j=1,ny-1

      v2(i,j)=.25*(v1(i+1,j)+v1(i-1,j)+v1(i,J+1)+v1(i,j-1))

       test =abs((v2(i,j)-v1(i,j))/v2(i,j))

      dvmax=amax1(dvmax,abs(test))

30    continue

      do 40 i=1,nx-1

      do 40 j=1,ny-1

      v1(i,j)=v2(i,j)

40    continue

       Niter=niter+1

      If (dvmax-tol)50,50 ,35

50    print*,'niter=',niter

      do 60 i=0,nx

      j=5

      y=dy*float(j)

      x=dx*float(i)

      print*,'v1(i,j), solex=',v1(i,j) , 400.*x*y

60    continue

      stop

      end

     

      RUN

       niter= 61

 v1(i,j), solex=  0.  0.

 v1(i,j), solex=  5.0529356  5.

 v1(i,j), solex=  10.1007614  10.

 v1(i,j), solex=  15.141264  15.000001

 v1(i,j), solex=  20.167345  20.

 v1(i,j), solex=  25.1799679  25.

 v1(i,j), solex=  30.1726761  30.0000019

 v1(i,j), solex=  35.1499329  35.

 v1(i,j), solex=  40.1093864  40.

 v1(i,j), solex=  45.0582924  45.

 v1(i,j), solex=  50.  50.

Hosted by www.Geocities.ws

1