1 Introduction

The boundary element method (BEM) is a well-known method for computing the (quasi-static) potential field resulting from applied forces on the boundaries of piecewise homogeneous media, as well as within them. Examples of applications are those in electrostatics, deformations in elastic media, and in bioelectricity. The basis of the method was formulated by Smythe [27]. Theory and examples of 2D applications can be found, in, e.g., [4]. Early applications to 3D are described in, e.g. [3, 10, 16], more recent ones in [12, 23, 32].

In bioelectricity, the applied forces result from impressed electric currents and the medium is a volume conductor model comprising a set of closed non-intersecting surfaces that are nested inside the body surface. The surfaces considered are the interfaces between regions having a different electric conductivity. The surfaces carry so-called secondary sources. These are virtual sources that are placed in a virtual, homogeneous, isotropic medium of infinite extent. Their strengths are computed such that the continuity conditions of electric volume conduction theory at these interfaces are satisfied [12, 22, 27].

The requisite basic computations involved in the BEM are those of the potential fields generated by monolayer and/or double layer sources distributed over the surfaces. Based on the superposition theorem, the potential at each field point is computed as the sum of the contributions of the primary sources and those of the secondary current sources on all of the small surface elements considered.

Prominent applications of the BEM in bioelectricity aim at linking the potential field on a closed internal surface that encompasses all primary sources to the potential field on the thorax surface. Examples are the ones in which the internal surface is the pericardium, the surface closely encompassing the heart [3, 5, 13, 17, 25, 29], or the cortical surface [2]. The solving of this type of mixed boundary value problem (Cauchy problem [27]) involves both double and monolayers [3, 20, 27, 29].

The interfaces that are relevant in the field of bioelectricity generally have a complex shape. This necessitates a numerical handling of the computation of the fields generated by the sources, both the primary and the secondary ones [13]. To this end, the surfaces are subdivided into numerous, small planar elements. The triangular shape produces a close fit of the mesh to the interfaces.

In early applications, the distribution of the source strength over the triangle, the so-called shape function, was taken to be uniform. However, this approach was soon realized as being suboptimal since it creates an unrealistic discontinuity of the source strength across the edges of neighboring triangles. Instead, linear shape functions with their strength at their vertices proportional to the local potential have been proposed. Closed-form analytical expressions are known for the potential fields generated by source distributions on a triangle of the uniform double layer [30], the linearly distributed variant [6] as well as for the uniform monolayer [9].

Up until now, the field generated by the monolayer with linearly distributed source strength has been computed on the basis of numerical methods for solving the involved integral. This article presents an exact, closed form expression for this solution.

The organization of the article is as follows. First, in Sect. 2, the basic notations used are listed, followed by the introduction to the problem in hand. Next, a section is included that describes the solution for the uniform monolayer [9] in a notation that prepares the way for the derivation for the linearly distributed monolayer presented in the subsequent section.

Next, some examples are shown of the resulting potential fields, including those for the situation in which a field point coincides with one of the vertices of the source triangle. This is the situation that is highly relevant in BEM-based computations.

A further motivation for this contribution and the relevance of the results is discussed in the final section. In an appendix, the basic integrals used are listed. Moreover, for the sake of completeness, the corresponding results for the double layer are included, taken from the literature, but now cast in the notation of this article.

2 Preliminaries

2.1 Notation

Throughout, vectors in 3D space are denoted by lower case variables with an overhead arrow, e.g., \( \vec{r}, \) their lengths (unit m) by dropping the arrow. The vector product of vectors \( \vec{a} \) and \( \vec{b} \) is denoted by \( \vec{a} \times \vec{b} \) (cross product), the scalar vector product by \( \vec{a} \cdot \vec{b} \) (dot product). The source triangle is denoted by Δ; its normal \( \vec{n} \) is found from the cross product of any two of its edges. The norm of \( \vec{n}, \) denoted by n, equals twice the area (S Δ) of the source triangle. The normalized version of \( \vec{n} \) is denoted by \( \vec{n}_{\text{n}} . \)

Variables expressed in the domain of linear algebra are denoted as follows. Column vectors are shown in lower-case bold type face, e.g., applied to \( \vec{n} \) this yields n. Row vectors are primed. Vector norms are shown using regular font. Column vectors having unit elements only are denoted by u.

Matrices are shown in upper-case bold. The transpose of a matrix M is primed: M′.

2.2 Problem statement

The fields produced by the sources on the basic, triangular BEM element ∆ to be discussed are the ones generated by current source densities impressed over ∆. The pertinent geometrical configuration is depicted in Fig. 1. The triangle vertices are labeled (k, l, m) in a clockwise order when viewed from the origin. The normal of the triangle is oriented in the direction of a right-hand screw rotated in the order of the vertices k, l, m. The edges of the triangle are defined as \( \vec{e}_{k} = \vec{r}_{\ell } - \vec{r}_{k} , \) \( \vec{e}_{\ell } = \vec{r}_{m} - \vec{r}_{\ell }, \) and \( \vec{e}_{m} = \vec{r}_{k} - \vec{r}_{m}. \)

Fig. 1
figure 1

Diagram introducing the computation of the potential at the origin generated by current source densities over a triangle. The vector \( \vec{r} \) points from the field point, here taken to be the origin, to source locations on the triangle

3 The potential field generated by impressed monolayer current distributions

The problem addressed in this article is the computation of the potential \( \Upphi (\vec{r}^{\prime}) \) at field point \( \vec{r}^{\prime} \) resulting from a monolayer with strength \( J_{\Updelta } (\vec{r}) \) (unit A/m) that impresses a point source type of electric current \( I(\vec{r}) = J_{\Updelta } (\vec{r})\,{\text{d}}S \) (unit A) into the surrounding medium from an infinitesimally small part of the triangle, dS, located at \( \vec{r}. \) In an analogy with Coulomb’s law for point charges in infinite space [27], the potential field in the electric volume conduction problem is found from the superposition of the contributions of the elementary sources:

$$ \Upphi \left( {\vec{r}^{\prime}} \right) = \frac{1}{4\pi \sigma }\int\limits_{\Updelta } {\frac{{J_{\Updelta } (\vec{r})}}{R}} \,{\text{d}}S , $$
(1)

with σ the electric conductivity of the medium (unit S/m) and R the length of the vector connecting field point \( \vec{r}^{\prime} \) to source location \( \vec{r}. \)

The solution for an arbitrary field point is identical to the one found by shifting the entire geometry such that the field point of interest lies at the origin. By doing so, Eq. 1 may be written as

$$ \Upphi = \frac{1}{4\pi \sigma }\int\limits_{\Updelta } {\frac{{J_{\Updelta } (\vec{r})}}{r}} \,{\text{d}}S, $$
(2)

with \( \Upphi = \Upphi (\vec{r}^{\prime} = \vec{0}). \)

3.1 The uniform monolayer

For a uniform monolayer we have \( J_{\Updelta } (\vec{r}) = J_{\Updelta } \) and Eq. 2 reduces to

$$ \Upphi = \frac{1}{4\pi \sigma }\int\limits_{\Updelta } {\frac{{J(\vec{r})}}{r}} \,{\text{d}}S = \frac{{J_{\Updelta } }}{4\pi \sigma }\int\limits_{\Updelta } \frac{1}{r} \,{\text{d}}S. $$
(3)

The basic problem to be addressed is the solving of the integral on the right, the factor scaling it being application specific. In the literature, a multitude of papers dealing with this the solution of the integral are documented [9, 11, 14, 15, 18, 19, 24], exhibiting different approaches to the solution method and details of the results. Below, the solution derived by Ferguson et al. [9] is presented in a compact notation that is used throughout this article. The solution, denoted as \( \Upgamma_{\Updelta }, \) reads

$$ \Upgamma_{\Updelta } = h\Upomega_{\Updelta } + {\text{h}}^{\prime}\gamma. $$
(4)

The variables shown represent:

  • h: the height of the tetrahedron formed by the three vectors defining the triangle and the field point (at the origin) as shown in Fig. 1, computed from \( h = \left[ {\vec{r}_{k} \vec{r}_{l} \vec{r}_{m} } \right]/n, \) with \( \left[ {\vec{r}_{k} \vec{r}_{l} \vec{r}_{m} } \right] = \vec{r}_{k} \times \vec{r}_{\ell } \cdot \vec{r}_{m} \) denoting the triple vector product of the vectors specifying the triangle vertices relative to the field point. In the sequel this triple vector product is denoted by T. Its numerical value equals that of the determinant of the matrix of size 3 × 3 whose elements are the vertex coordinates of the source triangle.

  • \( \Upomega_{\Updelta } \): the solid angle subtended by the source triangle at the field point (Eq. 25).

  • h: a column vector with elements: \( h_{k} = \left[ {\vec{r}_{k} \vec{r}_{l} \vec{n}_{\text{n}} } \right]/e_{k} , \) \( h_{\ell } = \left[ {\vec{r}_{\ell } \vec{r}_{m} \vec{n}_{\text{n}} } \right]/e_{\ell } , \) and \( h_{m} = \left[ {\vec{r}_{m} \vec{r}_{k} \vec{n}_{\text{n}} } \right]/e_{m} . \) These represent the signed distances between the projection, \( \vec{p}, \) of the field point on the plane of the source triangle and its projections on the lines carrying the edges. The sign of the elements is negative if, when traveling along the line segment in the direction of the corresponding edge, the projection \( \vec{p} \) lies on the right, else it is positive except if \( \vec{p} \) lies on the line segment, where it is zero.

  • \( {\varvec{\gamma}} \): a column vector with elements γ j (j = k, l, m) that are the line integrals over the edges j (Eq. 19).

An alternative derivation of Eq. 4, in which the solid angle appearing in this expression is explained, is shown in [28].

4 The potential field of linearly distributed monolayer current densities

We now turn to the main topic, the handling of the case where the monolayer strength is linearly distributed over the triangle. To this end, the monolayer strength is written as

$$ \begin{aligned} J_{\Updelta } (\vec{r}) &= J(\vec{r}_{k} )w_{k} (\vec{r}) + J(\vec{r}_{\ell } )w_{\ell } (\vec{r}) \\ & \quad + J(\vec{r}_{m} )w_{m} (\vec{r}), \\ \end{aligned} $$
(5)

with (dimensionless) linear shape functions \( w_{j} (\vec{r}),\;j \in (k,\ell ,m) \) having a unit value at any vertex j and zero value at the remaining two.

Inserting Eq. 5 in 2 yields

$$ \Upphi = \frac{1}{4\pi \sigma }\sum\limits_{j = k,\ell ,m} {J(\vec{r}_{j} )} \int\limits_{\Updelta } {\frac{{w_{j} (\vec{r})}}{r}} \,{\text{d}}S , $$
(6)

showing the integral in Eq 2 as broken up into three sub-integrals of identical type.

A function having the desired nature of \( w_{j} (\vec{r}) \) for j = k is

$$ w_{k} (\vec{r}) = \frac{{\left[ {\vec{r}_{\ell } \vec{r}_{m} \vec{r}} \right]}}{{\left[ {\vec{r}_{\ell } \vec{r}_{m} \vec{r}_{k} } \right]}} = \frac{{\vec{r}_{\ell } \times \vec{r}_{m} \cdot \vec{r}}}{T} . $$
(7)

The other two are found by cyclic permutation of the indices \( k,\;\ell ,\;{\text{and}}\;m. \) Using \( \vec{r}_{k} \times \vec{r}_{\ell } + \vec{r}_{\ell } \times \vec{r}_{m} + \vec{r}_{m} \times \vec{r}_{k} = \vec{n},\) a property of the tetrahedron, it can be seen that

$$ \sum\limits_{j = k,\ell ,m} {w_{j} \left( {\vec{r}} \right)} = 1 , $$
(8)

as required.

In the following, the integral in Eq. 6 for index \( j \in \left( {k,\ell ,m} \right) \) is denoted by \( \Upgamma_{j}, \) a scalar (unit m), and its vector notation by a column vector Γ. By introducing \( \vec{z}_{k} = \vec{r}_{\ell } \times \vec{r}_{m}, \) we may write \( \Upgamma_{j} \) as

$$ \Upgamma_{j} = \frac{1}{T}\vec{z}_{j} \cdot \int\limits_{\Updelta } {\frac{{\vec{r}}}{r}} \,{\text{d}}S . $$
(9)

Based on Eq. 8 and the additive property of integration, the terms \( \Upgamma_{j} \) must add up to the integral for the uniform distribution, \( \Upgamma_{\Updelta } \):

$$ \Upgamma_{k} + \Upgamma_{\ell } + \Upgamma_{m} = \Upgamma_{\Updelta } . $$
(10)

Next, an auxiliary vector \( \vec{G} \) (unit m2) is introduced:

$$ \vec{G} = \int\limits_{\Updelta } {\frac{{\vec{r}}}{r} \times {\text{d}}\vec{S}} = - \int\limits_{\Updelta } {\nabla r \times {\text{d}}\vec{S}} = - \oint {r\;{\text{d}}\vec{c}} , $$
(11)

in which the equality on the right follows from Stoke’s theorem [27]. The value of the contour integral is

$$ \begin{aligned} \vec{G} &= \oint r \;{\text{d}}\vec{c} = \sum\limits_{j = k,\ell ,m} {\int\limits_{0}^{1} {r\left( \lambda \right)\vec{e}_{j} \,{\text{d}}\lambda } } \\ & = \sum\limits_{j = k,\ell ,m} {\frac{{\vec{e}_{j} }}{{e_{j} }}} \int\limits_{0}^{1} {r\left( \lambda \right)e_{j} \,{\text{d}}\lambda } = \sum\limits_{j = k,\ell ,m} {\frac{{\vec{e}_{j} }}{{e_{j} }}I_{1,j} } \\ \end{aligned} , $$
(12)

with \( I_{1,j} \) denoting the line integral \( I_{1} \) (Eq. 21) pertaining to edge j; its column vector variant is denoted as \( {\mathbf{I}}_{1} \).

By inserting the vector synthesis \( \vec{r} = \frac{1}{T}\sum\nolimits_{j = k,\ell ,m} {\left( {\vec{z}_{j} \cdot \vec{r}} \right)\;\vec{r}_{j} } \) in the left integral in Eq. 11, an alternative for \( \vec{G} \) is found:

$$ \begin{gathered} \vec{G} = \frac{1}{T}\int\limits_{\Updelta } {\sum\limits_{j = k,\ell ,m} {\frac{{\left( {\vec{z}_{j} \cdot \vec{r}} \right)\;\vec{r}_{j} }}{r}} \times \;\vec{n}_{n} {\text{dS}}} \hfill \\ \quad = \vec{n}_{n} \times \sum\limits_{j = k,\ell ,m} {\vec{r}_{j} } \;\;\frac{1}{T}\int\limits_{\Updelta } {\frac{{\left( {\vec{z}_{j} \cdot \vec{r}} \right)}}{r}} \;{\text{dS}}. \hfill \\ \end{gathered} $$

By recognizing \( \Upgamma_{j} \) as introduced in Eq. 9, we have

$$ \vec{G} = \vec{n}_{\text{n}} \times \sum\limits_{j = k,\ell ,m} {\vec{r}_{j} } \;\Upgamma_{j}. $$
(13)

The vectors \( \vec{n}_{\text{n}} \times \vec{r}_{j} \) are stored as the columns of a matrix N of size 3 × 3 and a column vector y is defined by its elements\( \sum\nolimits_{j = k,\ell ,m} {\frac{{\vec{e}_{j} }}{{e_{j} }}} I_{1,j} . \) Equating the final expression for \( \vec{G} \) shown in Eq. 12 to the one in Eq. 13 yields \( {\mathbf{N}}\,{\varvec{\Upgamma}} = {\mathbf{y}}, \) from which it may seem as if the solution Γ might be found. However, the rank of matrix N is 2 since the vectors \( \vec{n}_{\text{n}} \; \times \vec{r}_{j} \) lie in the same plane, a plane normal to \( \vec{n}_{\text{n}}.\) Hence, the linear system is under-determined. This problem is dealt with by adding Eq. 10 as a constraint, which leads to the 4 × 3 linear system

$$ \left[ \begin{gathered} {\mathbf{N}} \hfill \\ {{\mathbf{u^{\prime}}}} \hfill \\ \end{gathered} \right]{\varvec{\Upgamma}} = \left[ \begin{gathered} {\mathbf{y}} \hfill \\ \Upgamma_{\Updelta } \hfill \\ \end{gathered} \right], $$
(14)

The least squares solution of this system yields the numerical column vector Γ,

$$ {\varvec{\Upgamma}} = {{\left( {{\mathbf{Z^{\prime}n}}\;\Upgamma_{\Updelta } - {\mathbf{E}}_{\text{c}}^{\prime } \,{\mathbf{E}}_{\text{n}} \,{\mathbf{I}}_{1} } \right)} \mathord{\left/ {\vphantom {{\left( {{\mathbf{Z^{\prime}n}}\;\Upgamma_{\Updelta } - {\mathbf{E}}_{\text{c}}^{\prime } \,{\mathbf{E}}_{\text{n}} \,{\mathbf{I}}_{1} } \right)} n}} \right. \kern-\nulldelimiterspace} n}, $$
(15)

in which E c is a matrix whose columns are coordinates of the edges of the source matrix after one step of cyclic permutation, i.e., \( [{\mathbf{e}}_{\ell } \;{\mathbf{e}}_{m} \;{\mathbf{e}}_{k} ], \) and E n a matrix whose columns are the normalized edge vectors.

The three elements of Γ are the three integrals in Eq. 6, thus yielding the final solution:

$$ \Upphi = \frac{1}{4\pi \sigma }\sum\limits_{j = k,\ell ,m} {J(\vec{r}_{j} )} \;\Upgamma_{j} $$
(16)

resulting from combining Eqs. 6 and 16, an expression that holds true throughout 3D space.

5 Results

The most pertinent result discussed in this article is the closed form analytical expression Eq. 15, which, inserted in Eq. 16, specifies the potential field generated by a current monolayer over a triangle with linearly distributed source density. Throughout, the pertinent variables are expressed in SI units.

5.1 Numerical aspects

When testing numerical implementation of Eq. 16 the computation of the \( \gamma_{j} \) factors, introduced in Eq. 4 and specified in Eq. 19, proved to be the most sensitive element. As discussed in Appendix 1, and based on the physics involved, the argument of the logarithm must be greater than one. To ensure this property in the wake of rounding off steps in the numerical handling, the machine epsilon was added to the numerator as well as to the denominator in Eq. 19. Following this, for field points in the plane of the source triangle, on its edges, at its vertices as well as for field points very close to it, the results proved to be accurate within machine precision.

5.2 Some examples

In the following, some examples are presented of potential fields generated based on Eq. 16, also aimed at demonstrating the major properties of these fields. In these examples, a unit value of the conductivity σ is assigned to the medium.

Equation 16 was stated to be valid throughout 3D space. This is illustrated in Fig. 2: the potential field in the plane of the triangle. The [x y z] vertex coordinates are: A: [2 0 0], B: [−1.5 2 0] and C: [−1 0 0]. The left panel depicts the situation in which the linear distribution of the source current density was specified by assigning a unit value (J = 1 A/m2) to vertex A and zero values to the other two. The resulting field generated by the uniform unit source density is shown on the right panel. The nature of the fields resulting from assigning a unit density to either vertex B or C is similar to the ones shown in the left panel. The potential values at the vertices for the three basic linearly distributed cases and for the uniform case, as well as the corresponding extremes are listed in Table 1.

Fig. 2
figure 2

Left panel potential field in plane of a monolayer linearly distributed over a triangle, with unit source density J at vertex A and zero at vertices B and C; iso-potential line spacing 0.025, maximum: 0.18814. Right panel corresponding result for uniform source strength. Iso-potential line spacing 0.05, maximum: 0.45853. Location of the maxima marked by +. Values at the vertices as listed in Table 1

Table 1 Columns Φ(A), Φ(B), and Φ(C): the potential at vertices A, B, and C of the source triangle specified in Fig. 2

The corresponding fields on the plane z = 0.5 are shown in Fig. 3.

Fig. 3
figure 3

As in Fig. 2, now with the plane of observation at z = 0.5. Dotted the projections of the contours of the source triangle at z = 0 (Fig. 2). Maxima left and right panels: 0.098542 and 0.27704, respectively; step sizes left and right: 0.0125 and 0.025, respectively

Another view on the nature of the potential field of the monolayer is presented in Fig. 4. It depicts the potential profile along a line directed along the normal of the source triangle (parallel to the z-axis), passing through its center of gravity. The profile is generated by a uniform density \( J_{\Updelta } \)over the triangle (right panel Fig. 2). A characteristic feature of the monolayer source is the discontinuity in the slope of the potential profile, changing abruptly (from 0.5 to −0.5 V/m for the uniform case) when crossing the monolayer in a direction parallel to its surface normal. Since \( J_{z} = - \sigma \frac{\partial \Upphi }{\partial z} \) and a unit value was taken for \( J_{\Updelta } \) as well as for σ, the observed slope reflects the symmetric outflow of one half of the surface current density from each side of the monolayer. Figure 4 is the quantification for the triangle of the general profiles of this fundamental source type as discussed in the major textbooks on potential theory (e.g., Figs. 1.7 in Panofski and Phillips [20]).

Fig. 4
figure 4

Solid line potential profile along the axis parallel to the z = axis, passing through the center of gravity (COG) of the source triangle (right panel Fig. 2). Uniform monolayer strength J  = 1 A/m2. Dotted line potential profile of a current monopole with strength J S located at the COG. Dashed-dotted line the tangent to profile for \( z \to 0 \) (slope: 0.5 V/m)

The dotted lines represent the potential profile generated by a single, equivalent monopole current source with strength \( J_{\Updelta } S_{\Updelta }.\) It illustrates that at sufficiently large distances from the source triangle, the potential may be approximated by that of a current monopole. The decay of the potential is as 1/r. However, close to the triangular source element the correspondence with the profile generated by the surface density is poor. The potential tends toward infinite values close to the point source. Depending on the accuracy aimed for, fields further away than, say, three times the size of the triangle expressed, e.g., by the radius of the circumscribed circle (2.07 for the triangle shown in Fig. 2) may permit field computations based on such equivalent sources.

For the computation of the most significant terms in the BEM transfer matrix, the values at the vertices of the source triangles, such approximations are inadequate, as can be seen in Fig. 4.

Fig. 5
figure 5

Diagram introducing the computation of the potential at the origin generated by a line source density along a line segment with endpoints B and C. The vector \( \vec{r} \)is drawn from the field point at the origin to an elementary part of the line source

In Appendix 3, dedicated analytical expressions are shown for the values at the vertices. These have been derived directly from Eqs. 19 and 20.

5.3 Comparison with numerical integration

Various algorithms have been published for solving integrals of scalar functions \( f(\vec{r}) \) over a triangle. These involve weighted sums of function evaluations at selected nodes on the triangle. Basic schemes are such as listed in Sect. 25.4 of [1], advanced ones such as in [26]. By increasing the number of nodes the accuracy of the results can be improved. However, if a closed form analytical solution is lacking the accuracy can not be quantified. This problem is more acute in cases where \( f(\vec{r}) \) is singular, such as in Eq. 6. In such cases iterative refinements of the spatial sampling are used until a predefined convergence criterion is met. In BEM applications, the number of function calls required may be high and the “true” solution may not be found.

The performance of the Matlab function quad2d, based on [26], using its default tolerance settings, was tested in its computation of Eq. 6, while taking the results based on Eq. 16, implemented by the author in a Matlab script pdmltr, taken as the reference. Field points were used with their 3D coordinates drawn from the standard Gaussian density, which were shifted to the COG of the triangle shown in Fig. 2. In runs with 1000 of such random field points the maximum of the observed relative absolute errors was typically 0.05%. The total computation time required for the 1000 calls of quad2d was 6.3 s, when using pdmltr it was 0.23 s, a time-ratio of about 28. In runs where the field points were projected on the plane of the triangle, the maximum of the relative absolute errors was high as 0.5%, the time-ratio increased up to 90. When restricting the observation points to the vertices of the triangle, the maximum relative error was 5.5e−6; the time-ratio was 3.3.

6 Discussion

In this article, a closed form analytical expression is presented for computing the potential field generated by a current monolayer current whose strength is linearly distributed on a triangle. The pertinent expressions are Eqs. 15 and 16. These imply the correct treatment of the singularity of the function 1/r for coinciding source and field point locations. Expressions for handling this situation are shown in Appendix 3.

The derivation of Eq. 16 was inspired by a dedicated analysis [28] of de Munck’s procedure for finding the corresponding solution for the linearly distributed double layer [6]. The implementation of Eq. 16 is less forbidding than may appear at first glance. The intermediate values of computations such as triangle edge lengths, normals, solid angles, and the logarithms are identical to the ones required for computing the field generated by a double layer on a triangle with linearly distributed strength (compare Eqs. 4, 15, 25, and 26).

Suggestions for using higher order shape functions have been reported in the literature, e.g., [14]. When considering their application on any given triangular mesh, one would be well advised to contrast this to a straightforward refinement of the triangulation in which all additional nodes are projections of the triangle refinement onto the actual, generally non-planar, geometry treated [31].

The interest in the use of the method of fundamental solutions (MFS) appears to be increasing [8]. As in early BEM applications [10], this method implies the use of sets of virtual monopolar sources, for which the infinite medium potential field is indeed fundamental and simple. However, by their nature these sources have an essential singularity at their locus (Fig. 4), which necessitates the inclusion of an extremely dense set of nodes in the handling of boundary value problems. This holds true in particular in situations where the boundaries of the non-intersecting interfaces of different compartments are close to one another. Statements made in the literature that the MFS would obviate the meshing of the involved surfaces conceal the fact that imaging the results demands the construction of such meshes.

The closed-form analytical expression presented in this paper is exact, may serve as the gold standard and is faster than numerical procedures. For large-scale applications [2] an implementation, e.g., in C++, will obviously yield timing values that differ from the ones listed.

The numerical values listed in Table 1 may serve to check any implementation of the basic expressions described. A basic Matlab script for the involved computations is available upon request from the author.