3.7  Subroutine L3LC

In this section the Fortran subroutine L3LC is described. The subroutine computes the discrete form of the three-dimensional Laplace integral operators. Details of the background methods employed by the subroutines are given. The subroutine is applied to the a test problem where the boundary is a cube, using the method in Subsection 3.5.2 and results are given.

3.7.1  Background Methods

The regular integrals that arise are approximated by a quadrature rule defined on a triangle. Laursen and Gellert [21] contains a selection of Gauss-Legendre quadrature rules for the triangle. The non-regular integrals that arise are computed by the following methods. See Jaswon and Symm [14], Terai [24], Banerjee and Butterfield [2] for the background to these methods.

The M0 and M0t operators have regular kernels, hence the aim is to find expressions for:

{ L0
e'
 
}DG'(p) =
ó
õ
DG' 
 G0(p,q)  dSq  ,
(45)

{ N0
e'
 
}DG'(p; vp) =
vp

ó
õ
DG' 
  G0
nq
(p,q)  dSq   ,
(46)
where DG' is a planar triangular element, p Î DG' (though not on an edge or corner of the element). Let R(q) be the distance from p to the edge of the element for q Î [0, 2 p], as illustrated in figure 3.3.

Figure 3.3.

The integrals (45) and (46) may be written in the form:

{ L0
e'
 
}D[(G)] (p) = 1
4 p
ó
õ
2 p

0 
R(q) d q ,

{ N0
e'
 
}D[(G)] (p; vp) = - 1
4 p
ó
õ
2 p

0 
1
R(q)
d q .
In order to evaluate the integrals, a similar technique to that described in Guermond [10] is followed. The triangular element D[(G)] is divided into three D1, D2 and D3 by joining the point p to the vertices. The resulting triangles have the form of figure 3.4. After some elementary analysis, we obtain

{L0
e'
 
}DS' (p) =
å
D1, D2, D3 
1
4 p
R(0) sinB( logtan( B+A
2
) - logtan B
2
)   and

{N0
e'
 
}DS' (p; vp) =
å
D1, D2, D3 
1
4 p
cos(B+A) - cosB
R(0) sinB
 .

Figure 3.4.

3.7.2  Subroutine L3LC

In this section the subroutine L3LC.FOR is introduced and demonstrated through the test problem L3LC_T.FOR .

3.7.3  Test Program and Results

The program in file L3LC_T.FOR is a test for subroutine L3LC. It computes the solution to the Laplace problem interior to a cube. In order to use L3LC, the cube is represented by 24 uniform triangles. The boundary functions are approximated by a constant on each triangular panel.

Simple changes in the program allow the set up of the following data: the choice of quadrature rule, the geometry of the surface (of the approximating polyhedron), the boundary condition and the exact solution, the points in the interior where the solution is sought.

During execution, the program gives the solution at the collocation points (the points at the centre of each element) and the solution at the selected interior point. The program also give the exact solution at the same points so that computed and exact solutions may be compared.

In L3LC_T.FOR results are computed for the test problem of a cube, bounded by x,y,z = ±1. The cube is approximated by 24 uniform elements. The integrals are computed by a 7 point Gaussian quadrature rule for triangles.

The analytic problem that is considered is f(p) = p3. The computed and exact results are compared at the collocation points in the output to the program. The solutions are also compared at (0,0,0.5); the exact solution is 0.5, the computed solution is 0.490392 to six decimal places.


Return to boundary-element-method.com/laplace
Return to boundary-element-method.com