This page intentionally left blank
FAST MULTIPOLE BOUNDARY ELEMENT METHOD
The fast multipole method is one of the most important algorithms in
computing developed in the 20th century. Along with the fast multipole method, the boundary element method (BEM) has also emerged
as a powerful method for modeling large-scale problems. BEM models with millions of unknowns on the boundary can now be solved on
desktop computers using the fast multipole BEM. This is the first book
on the fast multipole BEM, which brings together the classical theories in BEM formulations and the recent development of the fast multipole method. Two- and three-dimensional potential, elastostatic, Stokes
flow, and acoustic wave problems are covered, supplemented with exercise problems and computer source codes. Applications in modeling
nanocomposite materials, biomaterials, fuel cells, acoustic waves, and
image-based simulations are demonstrated to show the potential of the
fast multipole BEM. This book will help students, researchers, and engineers to learn the BEM and fast multipole method from a single source.
Dr. Yijun Liu has more than 25 years of research experience on the
BEM for subjects including potential; elasticity; Stokes flow; and electromagnetic, elastic, and acoustic wave problems, and he has published
extensively in research journals. He received his Ph.D. in theoretical and
applied mechanics from the University of Illinois and, after a postdoctoral research appointment at Iowa State University, he joined the Ford
Motor Company as a CAE (computer-aided engineering) analyst. He
has been a faculty member in the Department of Mechanical Engineering at the University of Cincinnati since 1996. Dr. Liu is currently on the
editorial board of the international journals Engineering Analysis with
Boundary Elements and the Electronic Journal of Boundary Elements.
Fast Multipole
Boundary Element Method
THEORY AND APPLICATIONS
IN ENGINEERING
Yijun Liu
University of Cincinnati
CAMBRIDGE UNIVERSITY PRESS
Cambridge, New York, Melbourne, Madrid, Cape Town, Singapore,
São Paulo, Delhi, Dubai, Tokyo
Cambridge University Press
The Edinburgh Building, Cambridge CB2 8RU, UK
Published in the United States of America by Cambridge University Press, New York
www.cambridge.org
Information on this title: www.cambridge.org/9780521116596
© Yijun Liu 2009
This publication is in copyright. Subject to statutory exception and to the
provision of relevant collective licensing agreements, no reproduction of any part
may take place without the written permission of Cambridge University Press.
First published in print format 2009
ISBN-13
978-0-511-60504-8
eBook (NetLibrary)
ISBN-13
978-0-521-11659-6
Hardback
Cambridge University Press has no responsibility for the persistence or accuracy
of urls for external or third-party internet websites referred to in this publication,
and does not guarantee that any content on such websites is, or will remain,
accurate or appropriate.
Contents
Preface
Acknowledgments
Acronyms Used in This Book
page xi
xv
xvii
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 What Is the Boundary Element Method?
1.2 Why the Boundary Element Method?
1.3 A Comparison of the Finite Element Method and the
Boundary Element Method
1.4 A Brief History of the Boundary Element Method and
Other References
1.5 Fast Multipole Method
1.6 Applications of the Boundary Element Method in
Engineering
1.7 An Example – Bending of a Beam
1.8 Some Mathematical Preliminaries
1.8.1 Integral Equations
1.8.2 Indicial Notation
1.8.3 Gauss Theorem
1.8.4 The Green’s Identities
1.8.5 Dirac δ Function
1.8.6 Fundamental Solutions
1.8.7 Singular Integrals
1.9 Summary
Problems
1
1
2
3
3
4
5
9
9
10
11
12
12
12
13
15
15
2 Conventional Boundary Element Method for Potential
Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.1 The Boundary-Value Problem
17
v
vi
Contents
2.2
2.3
2.4
2.5
Fundamental Solution for Potential Problems
Boundary Integral Equation Formulations
Weakly Singular Forms of the Boundary Integral Equations
Discretization of the Boundary Integral Equations for 2D
Problems Using Constant Elements
2.6 Using Higher-Order Elements
2.6.1 Linear Elements
2.6.2 Quadratic Elements
2.7 Discretization of the Boundary Integral Equations for 3D
Problems
2.8 Multidomain Problems
2.9 Treatment of the Domain Integrals
2.9.1 Numerical Integration Using Internal Cells
2.9.2 Transformation to Boundary Integrals
2.9.3 Use of Particular Solutions
2.10 Indirect Boundary Integral Equation Formulations
2.11 Programming for the Conventional Boundary Element
Method
2.12 Numerical Examples
2.12.1 An Annular Region
2.12.2 Electrostatic Fields Outside Two Conducting Beams
2.12.3 Potential Field in a Cube
2.12.4 Electrostatic Field Outside a Conducting Sphere
2.13 Summary
Problems
18
19
23
24
26
26
29
30
34
35
35
35
36
36
38
39
39
40
43
43
45
45
3 Fast Multipole Boundary Element Method for Potential
Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.1
3.2
Basic Ideas in the Fast Multipole Method
Fast Multipole Boundary Element Method for 2D Potential
Problems
3.2.1 Multipole Expansion (Moments)
3.2.2 Error Estimate for the Multipole Expansion
3.2.3 Moment-to-Moment Translation
3.2.4 Local Expansion and Moment-to-Local Translation
3.2.5 Local-to-Local Translation
3.2.6 Expansions for the Integral with the F Kernel
3.2.7 Multipole Expansions for the Hypersingular
Boundary Integral Equation
3.2.8 Fast Multipole Boundary Element Method
Algorithms and Procedures
3.2.9 Preconditioning
3.2.10 Estimate of the Computational Complexity
48
50
51
53
54
54
56
56
57
58
64
65
Contents
vii
3.3
Programming for the Fast Multipole Boundary Element
Method
3.3.1 Subroutine fmmmain
3.3.2 Subroutine tree
3.3.3 Subroutine fmmbvector
3.3.4 Subroutine dgmres
3.3.5 Subroutine upward
3.3.6 Subroutine dwnwrd
3.4 Fast Multipole Formulation for 3D Potential Problems
3.5 Numerical Examples
3.5.1 An Annular Region
3.5.2 Electrostatic Fields Outside Conducting Beams
3.5.3 Potential Field in a Cube
3.5.4 Electrostatic Field Outside Multiple Conducting
Spheres
3.5.5 A Fuel Cell Model
3.5.6 Image-Based Boundary Element Method Models and
Analysis
3.6 Summary
Problems
65
67
67
69
70
70
70
71
74
74
75
78
78
79
80
83
83
4 Elastostatic Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
The Boundary-Value Problem
Fundamental Solution for Elastostatic Problems
Boundary Integral Equation Formulations
Weakly Singular Forms of the Boundary Integral
Equations
Discretization of the Boundary Integral Equations
Recovery of the Full Stress Field on the Boundary
Fast Multipole Boundary Element Method for 2D
Elastostatic Problems
4.7.1 Multipole Expansion for the U Kernel Integral
4.7.2 Moment-to-Moment Translation
4.7.3 Local Expansion and Moment-to-Local
Translation
4.7.4 Local-to-Local Translation
4.7.5 Expansions for the T Kernel Integral
4.7.6 Expansions for the Hypersingular Boundary Integral
Equation
Fast Multipole Boundary Element Method for 3D
Elastostatic Problems
Fast Multipole Boundary Element Method for Multidomain
Elasticity Problems
86
87
88
91
92
93
95
97
98
98
99
99
100
101
104
viii
Contents
4.10 Numerical Examples
4.10.1 A Cylinder with Pressure Loads
4.10.2 A Square Plate with a Circular Hole
4.10.3 Multiple Inclusion Problems
4.10.4 Modeling of Functionally Graded Materials
4.10.5 Large-Scale Modeling of Fiber-Reinforced
Composites
4.11 Summary
Problems
108
108
110
111
113
115
117
118
5 Stokes Flow Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.1
5.2
5.3
5.4
The Boundary-Value Problem
Fundamental Solution for Stokes Flow Problems
Boundary Integral Equation Formulations
Fast Multipole Boundary Element Method for 2D Stokes
Flow Problems
5.4.1 Multipole Expansion (Moments) for the U Kernel
Integral
5.4.2 Moment-to-Moment Translation
5.4.3 Local Expansion and Moment-to-Local Translation
5.4.4 Local-to-Local Translation
5.4.5 Expansions for the T Kernel Integral
5.4.6 Expansions for the Hypersingular Boundary Integral
Equation
5.5 Fast Multipole Boundary Element Method for 3D Stokes
Flow Problems
5.6 Numerical Examples
5.6.1 Flow That Is Due to a Rotating Cylinder
5.6.2 Shear Flow Between Two Parallel Plates
5.6.3 Flow Through a Channel with Many Cylinders
5.6.4 A Translating Sphere
5.6.5 Large-Scale Modeling of Multiple Particles
5.7 Summary
Problems
120
120
121
124
126
127
127
128
128
129
130
133
133
135
138
141
142
144
145
6 Acoustic Wave Problems . . . . . . . . . . . . . . . . . . . . . . . . . 146
6.1
6.2
6.3
6.4
6.5
Basic Equations in Acoustics
Fundamental Solution for Acoustic Wave Problems
Boundary Integral Equation Formulations
Weakly Singular Forms of the Boundary Integral
Equations
Discretization of the Boundary Integral Equations
147
150
152
154
156
Contents
ix
6.6
Fast Multipole Boundary Element Method for 2D Acoustic
Wave Problems
6.7 Fast Multipole Boundary Element Method for 3D Acoustic
Wave Problems
6.8 Numerical Examples
6.8.1 Scattering from Cylinders in a 2D Medium
6.8.2 Radiation from a Pulsating Sphere
6.8.3 Scattering from Multiple Scatterers
6.8.4 Performance Study of the 3D Fast Multipole
Boundary Element Method Code
6.8.5 An Engine-Block Model
6.8.6 A Submarine Model
6.8.7 An Airbus A320 Model
6.8.8 A Human-Head Model
6.8.9 Analysis of Sound Barriers – A Half-Space Acoustic
Wave Problem
6.9 Summary
Problems
157
159
163
163
164
165
166
167
169
170
170
172
174
174
APPENDIX A: Analytical Integration of the Kernels . . . . . . . . . . . . 177
A.1 2D Potential Boundary Integral Equations
A.2 2D Elastostatic Boundary Integral Equations
A.3 2D Stokes Flow Boundary Integral Equations
177
178
181
APPENDIX B: Sample Computer Programs . . . . . . . . . . . . . . . . . . 184
B.1
B.2
B.3
A Fortran Code of the Conventional Boundary Element
Method for 2D Potential Problems
A Fortran Code of the Fast Multipole Boundary Element
Method for 2D Potential Problems
Sample Input File and Parameter File
184
192
220
References
223
Index
233
Preface
This book is an introduction to the fast multipole boundary element method
(BEM), which has emerged in recent years as a powerful and practical numerical tool for solving large-scale engineering problems based on the boundary
integral equation (BIE) formulations. The book integrates the classical results
in BIE formulations, the conventional BEM approaches applied in solving
these BIEs, and the recent fast multipole BEM approaches for solving largescale BEM models. The topics covered in this book include potential, elasticity, Stokes flow, and acoustic wave problems in both two-dimensional (2D)
and three-dimensional (3D) domains.
The book can be used as a textbook for a graduate course in engineering
and by researchers in the field of applied mechanics and engineers from industries who would like to further develop or apply the fast multipole BEM to
solve large-scale engineering problems in their own field. This book is based
on the lecture notes developed by the author over the years for a graduate
course on the BEM in the Department of Mechanical Engineering at the University of Cincinnati. Many of the results are also from the research work of the
author’s group at Cincinnati and from the collaborative research conducted by
the author with other researchers during the last 20 years.
The book is divided into six chapters. Chapter 1 is a brief introduction
to the BEM and the fast multipole method. Discussions on the advantages
of the BEM are highlighted. A simple beam problem is used to illustrate the
idea of transforming a problem cast in a differential equation formulation to a
boundary equation formulation. The mathematical background needed in this
book is also reviewed in this chapter.
Chapter 2 is on the potential problems governed by the Poisson equation
or the Laplace equation. This is the most important chapter of this book, which
presents the procedures in developing the BIE formulations and the conventional BEM to solve these BIEs. The fundamental solution and its properties are discussed. Both the conventional (singular) and hypersingular BIE
formulations are presented, and the weakly singular nature of these BIEs is
xi
xii
Preface
emphasized. Discretization of the BIEs using constant and higher-order elements is presented, and the related issues in handling multidomain problems,
domain integrals, and indirect BIE formulations are also reviewed. Finally,
programming for the conventional BEM is discussed, followed by numerical
examples solved by using the conventional BEM.
Chapter 3 is on the fast multipole BEM for solving potential problems,
which lays the foundations for all the subsequent chapters. Detailed derivations of the formulations, discussions on the algorithms, and computer programming for the fast multipole BEM are presented for 2D potential problems, which will serve as the prototype of the fast multipole BEM for all other
problems discussed in the subsequent chapters. Then, the fast multipole formulation for 3D potential problems is presented. Numerical examples of both
2D and 3D problems are presented to demonstrate the efficiency and accuracy of the fast multipole BEM for solving large-scale problems. This chapter should be considered the focus of this book and studied thoroughly if one
wishes to develop his or her own fast multipole BEM computer codes for solving other problems.
The approaches and results developed in Chapters 2 and 3 are extended
in the following three chapters to solve 2D and 3D elasticity problems (Chapter 4), Stokes flow problems (Chapter 5), and acoustic wave problems (Chapter 6). In each case, the related BIE formulations are presented first, and the
same systematic fast multipole BEM approaches developed for 2D and 3D
potential problems are extended to the related fast multipole formulations for
the subject of the chapter. In all of these chapters, the use of the dual BIE formulations (a linear combination of the conventional and hypersingular BIEs)
is emphasized because of the faster convergence rate they have for the fast
multipole BEM solutions.
One important objective of this book is to demonstrate the applications
of the fast multipole BEM in solving large-scale practical engineering problems. To this end, many numerical examples are presented in Chapters 3–6 to
demonstrate the relevance and usefulness of the fast multipole BEM, not only
in academic research but also in real engineering applications. Many of the
large-scale models solved by using the fast multipole BEM are still beyond
the reach of the domain-based numerical methods, which clearly demonstrates
the huge potentials of the fast multipole BEM in many emerging areas such as
modeling of advanced composites, biomaterials, microelectromechanical systems, structural acoustics, and image-based modeling and analysis.
Exercise problems are provided at the end of each chapter for readers to
review the materials covered in the chapter. More exercise problems or course
projects on computer-code development and software applications can be utilized to help further understand the methods and enhance the skills. All of the
computer programs of the fast multipole BEM for potential, elasticity, Stokes
Preface
xiii
flow and acoustic wave problems that are discussed in this book are available
from the author’s website (http://urbana.mie.uc.edu/yliu).
Analytical integration of the kernel functions for 2D potential, elasticity,
and Stokes flow cases and the sample computer source codes for both the 2D
potential conventional BEM and the fast multipole BEM are provided in the
two appendices. Electronic copies of these source codes can be downloaded
from this book’s webpage at the Cambridge University Press website. References for all the chapters are provided at the end of the book.
The author hopes that this book will help to advance the fast multipole
BEM – an elegant numerical method that has huge potential in solving many
large-scale problems in engineering. The author welcomes any comments and
suggestions on further improving this book in its future editions and also takes
full responsibility for any mistakes and typographical errors in this current
edition.
Yijun Liu
Cincinnati, Ohio, USA
Yijun.Liu@uc.edu
Acknowledgments
The author would like to dedicate this book to Professor Frank J. Rizzo, a pioneer in the development of the BIE and BEM and now retired after teaching
for more than 30 years at four universities in the United States. The author
was fortunate enough to have the opportunity of conducting research under
the guidance of Professor Rizzo from 1988 to 1994, first as a Ph.D. student and
later as a postdoctoral research associate, at three of the four universities. His
insightful views on the BIE and BEM, his serious attitude toward research,
and his thoughtfulness to his students have had an immense and long-lasting
impact on the author’s academic career.
The author is also indebted to Professor Tianqi Ye, now retired from the
Northwestern Polytechnical University in Xi’an, China, who introduced the
author to the interesting subject of the BIE and BEM and taught the author
that “everything important is simple” in order to pursue the best solutions for
seemingly complicated problems.
The author would also like to thank Professor Naoshi Nishimura at Kyoto
University for his tremendous help in the research on the fast multipole BEM
in the past few years. During 2003–2004, the author spent eight months in Professor Nishimura’s group and gained in-depth knowledge of the fast multipole
BEM through almost daily discussions with Professor Nishimura. Much of the
content presented in this book is based on the collaborative work of the author
with Professor Nishimura’s group at Kyoto University.
During the course of his research in the last 20 years, the author received a
great deal of advice and help from many other researchers in the field of BIE
and BEM. He would like to thank Professor David J. Shippy at the University of Kentucky and Professor Thomas J. Rudolphi at Iowa State University
for their advice in different stages of his graduate studies, and Professor Subrata Mukherjee at Cornell University for the continued exchange of ideas and
collaborations on several research endeavors that have benefited the author
greatly.
xv
xvi
Acknowledgments
The author would also like to sincerely thank his former and current students at the University of Cincinnati for their contributions to the research
on the fast multipole BEM, especially to Drs. Liang Shen (3D potential
and acoustics), Xiaolin Chen (image-based modeling with the fast multipole BEM), and Milind Bapat (2D and 3D acoustics). Without the students’
research contributions, this book would not have been possible.
The author sincerely acknowledges the U.S. National Science Foundation for supporting his research and the Japan Society for the Promotion of
Science Fellowship for Senior Researchers. Permission from Advanced CAE
R
Research, LLC (ACR) in using the software package FastBEM Acoustics
for
solving the 3D examples in Chapter 6 is also acknowledged.
Senior editor Peter C. Gordon at Cambridge University Press offered
tremendous encouragement and advice to the author in the preparation of this
manuscript. The author sincerely thanks him for his professional help in this
endeavor.
Finally, the author would like to express his gratitude to his wife Rue
Yuan, son Fred, and family back in China for their understanding, encouragement, patience, and sacrifice during the last 20 years.
Acronyms Used in This Book
1D:
2D:
3D:
one-dimensional
two-dimensional
three-dimensional
BC:
BEM:
BIE:
BNM:
boundary condition
boundary element method
boundary integral equation
boundary node method
CBIE:
CHBIE:
CNT:
CPU:
CPV:
conventional boundary integral equation
dual BIE formulation
carbon nanotube
central processing unit
Cauchy principal value
DOF:
degree of freedom
EFM:
element-free method
FDM:
FEM:
FFT:
FMM:
finite difference method
finite element method
fast Fourier transform
fast multipole method
GMRES: generalized minimal residual
HBIE:
HFP:
hypersingular boundary integral equation
Hadamard finite part
L2L:
local-to-local
M2L:
M2M:
M2X:
moment-to-local
moment-to-moment
multipole-to-exponential
xvii
xviii
Acronyms Used in This Book
MD:
MEMS:
molecular dynamics
microelectromechanical system
NURBS:
nonuniform rational B spline
ODE:
ordinary differential equation
PC:
PDE:
personal computer
partial differential equation
Q8:
Q4:
eight-node
four-node
RAM:
RBC:
RVE:
random-access memory
red blood cell
representative volume element
SOFC:
STL:
solid oxide fuel cell
stereolithography
X2L:
X2X:
exponential-to-local
exponential-to-exponential
1
Introduction
1.1 What Is the Boundary Element Method?
The boundary element method (BEM) is a numerical method for solving
boundary-value or initial-value problems formulated by use of boundary integral equations (BIEs). In some literature, it is also called the boundary integral equation method. Figure 1.1 shows the relation of the BEM to other
numerical methods commonly applied in engineering, namely the finite difference method (FDM), finite element method (FEM), element-free (or meshfree)
method (EFM), and boundary node method (BNM). The FDM, FEM, and
EFM can be regarded as domain-based methods that use ordinary differential
equation (ODE) or partial differential equation (PDE) formulations, whereas
the BEM and BNM are regarded as boundary-based methods that use the BIE
formulations. It should be noted that the ODE/PDE formulation and the BIE
formulation for a given problem are equivalent mathematically and represent
the local and global statements of the same problem, respectively. In the BEM,
only the boundaries – that is, surfaces for three-dimensional (3D) problems or
curves for two-dimensional (2D) problems – of a problem domain need to be
discretized. However, the BEM does have similarities to the FEM in that it
does use elements, nodes, and shape functions, but on the boundaries only.
This reduction in dimensions brings about many advantages for the BEM that
are discussed in the following sections and throughout this book.
1.2 Why the Boundary Element Method?
The BEM offers some unique advantages for solving many engineering problems. The following are the main advantages of the BEM:
r Accuracy: The BEM is a semianalytical method and thus is more accurate,
especially for stress concentration problems such as fracture analysis of
structures.
1
2
Introduction
Engineering Problems
Mathematical Models
Boundary Integral Equation
(BIE) Formulations
Differential Equation
(ODE/PDE) Formulations
Numerical
Analytical
FDM
FEM
EFM
Analytical
Others
BEM
Numerical
BNM
Others
Figure 1.1. Relations of commonly used numerical methods for solving engineering
problems.
r Efficient in modeling: The BEM mesh (a collection of the elements used to
discretize a continuum structure) is much easier to generate for 3D problems or infinite domain problems because of the dimension reduction in
the BIE formulations.
r An independent numerical method: The BEM can be applied along with
the other domain-based methods to verify the solutions to a problem for
which no analytical solution is available.
1.3 A Comparison of the Finite Element Method and
the Boundary Element Method
Table 1.1 gives a comparison of the BEM with the FEM regarding their main
features, as well as advantages and disadvantages. This comparison is by no
Table 1.1. A comparison of the FEM and BEM
FEM
BEM
Features
r Derivative-based (local) approach
r Domain mesh: 2D or 3D mesh
r Symmetrical, sparse matrices
r Many commercial packages available
r
r
r
r
Advantages
r Solution is fast
r Suitable for general structure analysis;
large mechanical systems
r Nonlinear problems
r Composite materials (macroscale analysis)
Integral-based (global) approach
Boundary mesh: 1D or 2D mesh
Nonsymmetrical, dense matrices
Fewer commercial packages available
r Mesh generation is fast
r Suitable for stress concentration
problems (e.g., fracture mechanics)
r Infinite domain problems
r Composite materials (e.g., microscale
continuum models)
1.5 Fast Multipole Method
means complete, and certainly will change with the new development in either
the FEM or BEM.
1.4 A Brief History of the Boundary Element Method
and Other References
The direct BIE formulations and their modern numerical solutions that use
boundary elements for problems in applied mechanics originated more than
40 years ago during the 1960s. The 2D potential problem was first formulated
in terms of a direct BIE and solved numerically by Jaswon [1], Symm [2], and
Jaswon and Ponter [3]. This work was later extended to the vector case – 2D
elastostatic problem by Rizzo in the early 1960s for his Ph.D. dissertation at
the University of Illinois at Urbana-Champaign, which was later published as
a journal article in 1967 [4]. Following these early works, extensive research
efforts were made in BIE formulations of many problems in applied mechanics
and in the numerical solutions during the 1960s and 1970s [5–20]. The name
boundary element method appeared in the mid-1970s in an attempt to make an
analogy with the FEM [21–23].
Some of the important textbooks and research volumes in the 1980s and
early 1990s, which made significant contributions to the research and development of the BIE/BEM, can be found in Refs. [24–28]. A few recent research
volumes with advanced treatment of the topics on BIE/BEM can be found in
Refs. [29–32]. Readers may consult these publications for more detailed discussions on many of the topics in this book or other topics not covered in this
book regarding the BIE formulations and the related conventional BEM solution techniques.
1.5 Fast Multipole Method
Although the BEM has enjoyed the reputation of easy meshing in modeling
many problems with complicated geometries, its efficiency in solutions has
been a serious problem for analyzing large-scale models. For example, the
BEM has been limited to solving problems with a few thousand degrees of
freedom (DOFs) on a personal computer (PC) for many years. This is because
the conventional BEM, in general, produces dense and nonsymmetric matrices that, although smaller in size, require O(N 2 ) operations to compute the
coefficients and another O(N 3 ) operations to solve the system by using direct
solvers (here, N is the number of equations of the linear system or DOFs in
the BEM model).
In the mid-1980s, Rokhlin and Greengard [33–35] pioneered the innovative fast multipole method (FMM) that can be used to accelerate the solutions
of BIE by severalfold to reduce the CPU time in a FMM-accelerated BEM
3
4
Introduction
to O(N). However, it took almost a decade for the mechanics community to
realize the potential of the FMM for the BEM. Some of the early research on
the fast multipole BEM in applied mechanics can be found in Refs. [36–40],
which show the great promise of the fast multipole BEM for solving largescale engineering problems. A comprehensive review of the fast-multipoleaccelerated BIE/BEM and the research work up to 2002 can be found in
Ref. [41].
In this book, we use the FMM to solve the various BEM systems of equations for potential, elastostatic, Stokes flow, and acoustic wave problems. The
fast multipole BEM represents the future of BEM research and applications.
However, understanding the BIE formulations and the conventional BEM
procedures in solving these BIEs is still very important. Learning the intricacies of the BIE formulations and the conventional BEM while promoting
the fast multipole BEM is emphasized in this book.
1.6 Applications of the Boundary Element Method in Engineering
Today, the BEM has gained a great deal of attention in the field of computational mechanics, especially with the help of the FMM. The applications
of the BEM are now well beyond the range of classical potential and elasticity theories, extending to many engineering fields, including heat transfer, diffusion and convection, fluid flows, fracture mechanics, geomechanics, plates
and shells, inelastic problems, contact problems, wave propagations (acoustic, elastic, and electromagnetic waves), electrostatic problems, design sensitivity and optimizations, and inverse problems. Examples of the fast multipole
BEM applications are given in the following chapters, in which applications of
the fast multipole BEM for solving large-scale problems in many engineering
fields are presented.
As an example, we use an engine-block model (Figure 1.2) to conduct
a thermal analysis and compare the results obtained with the FEM and the
R
BEM. With the FEM (using ANSYS
), more than 363,000 volume elements
are applied with DOFs above 1.5 million. With the BEM (a fast multipole
BEM code discussed in Chapter 3), only about 42,000 constant surface elements (triangular constant elements) are applied with the same number of
DOFs. Furthermore, meshing the volume is considerably more difficult and
takes longer human time than meshing the surfaces of the engine block. On a
desktop PC, the FEM solution took 50 min to finish, whereas the BEM solution took only about 16 min. The differences in the computed results for the
temperature fields by the FEM and the BEM (Figure 1.3) are less than 1%.
Considering the human time saved during the discretization stage, the advantage of the BEM in modeling 3D problems with complicated geometries is
most evident.
1.7 An Example – Bending of a Beam
5
y
y
(a)
x
z
x
z
(b)
Figure 1.2. An engine block discretized using finite elements and boundary elements:
(a) FEM (363,000 volume elements/1.5 million DOFs), (b) BEM (42,000 surface
elements/DOFs).
1.7 An Example – Bending of a Beam
We first study a simple beam-bending problem (Figure 1.4) to see that the
boundary approach is a valid and equivalent approach to solving engineering
problems that are usually written in ODEs or PDEs.
We have the following governing equations based on simple beam
theory:
EI
d 2v
= M(x),
dx 2
(1.1)
dM
= Q(x),
dx
(1.2)
dQ
= q(x),
dx
(1.3)
y
y
z
x
z
(a)
(b)
Figure 1.3. Temperature field computed using finite elements and boundary elements:
(a) FEM (CPU time = 50 min), (b) BEM (CPU time = 16 min).
x
6
Introduction
y
q(x)
ML
M0
L
Q0
Figure 1.4. A simple beam-bending problem.
x
QL
for x ∈ (0, L), where v(x) is the deflection of the beam, EI is the bending stiffness, M(x) is the bending moment, Q(x) is the shear force, and q(x) is the
distributed load in the lateral direction (Figure 1.4). Combining Eqs. (1.1)–
(1.3), we also have:
EI
d 4v
= q(x).
dx 4
(1.4)
To solve the beam problem, we need to solve either Eq. (1.1) if the bending moment M(x) is known or Eq. (1.4) if M(x) is not readily available, under
given boundary conditions at x = 0 and x = L. In the following discussion, it
is shown that solving ODE (1.1) is equivalent to solving an integral equation
formulation that involves boundary values only.
We first consider the so-called fundamental solution for Eq. (1.1), or the
Green’s function for an infinitely long beam (Figure 1.5). Consider the load
case in which a unit concentrated force P = 1 is applied at point x0 of the
beam.
The bending moment M∗ (x0 , x) in the beam at x is governed by the following equation [see Eqs. (1.2) and (1.3)]:
d2 M∗ (x0 , x)
= δ(x0 , x),
dx 2
∀x, x0 ∈ (−∞, +∞),
(1.5)
where δ(x0 , x) is the Dirac δ function used to represent the distributed load
q(x) in this case. An engineering “definition” of the Dirac δ function δ(x0 , x)
can be given as:
0,
if x = x0
δ(x0 , x) =
.
(1.6)
∞, if x = x0
An important property of the Dirac δ function δ(x0 , x), which is a generalized
function, is the sifting property [42] given by:
+∞
f (x)δ(x0 , x)dx = f (x0 )
(1.7)
−∞
for any continuous function f (x).
y
P=1
0
x
r
x0
Figure 1.5. An infinitely long beam with
a point force.
x
1.7 An Example – Bending of a Beam
7
Solving Eq. (1.5) by using, for example, Fourier transformation (see Problem 1.1) or simply from the physical argument, we can show that the bending
moment at x that is due to the unit point force at x0 is:
1
M∗ (x0 , x) = r,
2
(1.8)
where r = |x0 − x| is the distance between the source point x0 and field point x.
This is the fundamental solution for Eq. (1.1) and is the first ingredient needed
in our boundary formulation. The second ingredient is the following generalized Green’s identity:
L 2
d2 u
dv
du x=L
d v
(1.9)
−
v
u 2 − 2 v dx = u
dx
dx
dx dx x=0
0
for any two functions u(x) and v(x) with sufficient smoothness (continuity of
the derivatives). The significance of this identity is that it can transform a onedimensional (1D) domain integral to evaluations of the functions at the boundaries.
Now if we select u to be the fundamental solution M∗ (x0 , x) satisfying
Eq. (1.5) and v to be the deflection of the beam satisfying Eq. (1.1), we have
the following result from Eq. (1.9):
L
2
d2 M∗
dM∗ x=L
∗d v
∗ dv
−
v dx = M
.
−
v
M
dx 2
dx 2
dx
dx
0
x=0
Applying Eqs. (1.1) and (1.5), we obtain
L
M
dv
dM∗ x=L
dx − M∗
−
v
M∗
v(x0 ) =
EI
dx
dx
0
x=0
or
L
v(x0 ) =
0
M∗ (x0 , x)
M(x)
dx + Q∗ (x0 , L)v L − Q∗ (x0 , 0)v0
EI
− M∗ (x0 , L)θ L + M∗ (x0 , 0)θ0 ,
∀x0 ∈ (0, L),
(1.10)
in which v0 , v L, θ0 , and θ L are the deflection and rotation of the beam at the
left and right ends, respectively, and Q∗ is the shear force in the fundamental
solution corresponding to M∗ in (1.8); that is:
1
,
for x > x0
∗
(x
,
x)
dM
0
.
(1.11)
= 2
Q∗ (x0 , x) =
dx
− 1 , for x < x
0
2
Equation (1.10) is an expression of the solution for deflection at any point
inside the beam. Once the deflections and rotations at the two ends (boundaries) of the beam are obtained, we can use Eq. (1.10) to evaluate the deflection of the beam at any point x0 .
8
Introduction
y
F
Figure 1.6. A cantilever beam.
EI
L
x
To derive a boundary formulation, we first let x0 tend to 0 in Eq. (1.10) to
have:
L
x M(x)
1
L
1
v0 =
dx + v L + v0 − θ L,
2
2
2
0 2 EI
and then we let x0 tend to L in Eq. (1.10) to have:
vL =
0
L
L − x M(x)
1
L
1
dx + v L+ v0 + θ0 .
2
EI
2
2
2
Writing the two equations in a matrix form, we obtain the following boundary
formulation:
L
1
L
1
1 −1
v0
0 1
θ0
x
+
=
M(x)dx.
2 −1
2 −1 0
2EI 0
vL
θL
1
L− x
(1.12)
This boundary formulation is equivalent to the ODE given in (1.1). If
the bending moment is known, this equation can be applied to solve for the
unknown boundary variables v0 , v L, θ0 , and θ L first.
As an example, we consider the cantilever beam in Figure 1.6 by using
our derived boundary formulation. In this case, the bending moment is found
to be:
M(x) = F(L − x),
and the boundary conditions are:
v0 = 0,
Thus, boundary equation (1.12) yields:
1 −1 L
vL
2
1 0
θL
θ0 = 0.
F L3
=
12EI
1
2
.
Solving this equation, we obtain the deflection and rotation of the beam at the
right end:
F L3
vL
2
.
=
6EI 3/L
θL
1.8 Some Mathematical Preliminaries
9
Substituting these results into expression (1.10), we also have:
L
|x − x0 | F(L − x)
1 F L3
L − x0 F L2
v(x0 ) =
dx +
−
2
EI
2 3EI
2
2EI
0
=
F
(3L − x0 )x02 ,
6EI
∀x0 ∈ (0, L);
which agrees with the result from solving Eq. (1.1) directly. Thus, boundary
formulation (1.12) is equivalent to the ODE formulation in Eq. (1.1).
Note that the simple beam example is used here to illustrate the procedures in transforming an ODE or PDE statement of a problem to a boundary
formulation and the ingredients needed in this process. It does not mean that
we will use this boundary formulation to solve beam-bending problems. In
fact, there are no advantages in solving 1D problems by using the boundary
formulations or the BEM in general.
The two major ingredients in the boundary formulation are the fundamental solution and the generalized Green’s identity. These two topics are
expanded in following sections.
1.8 Some Mathematical Preliminaries
Some mathematical results needed in later chapters of this book are reviewed
in this section. For more detailed coverage of these topics, the reader should
consult other books on the related topics. Many of the topics are covered in
Fung’s outstanding textbook [43].
1.8.1 Integral Equations
An integral equation is an equation that contains unknown functions under the
integral sign. For example, the following equations are two integral equations
in one dimension:
b
K(x, y)φ(y)dy = f (x),
(1.13)
a
φ(x) =
b
K(x, y)φ(y)dy + g(x),
(1.14)
a
in which φ is an unknown function, K(x, y) is a known kernel function, and f
and g are two given functions. Equation (1.13) is a linear Fredholm equation
of the first kind, whereas Eq. (1.14) is a linear Fredholm equation of the second
kind. The kernel function K(x, y) determines the characteristics of the integral
equation. For example, if:
K(x, y) =
1
,
|x − y|
10
Introduction
then the integrals in (1.13) and (1.14) are singular when x ∈ (a, b), and Eqs.
(1.13) and (1.14) are called singular integral equations.
1.8.2 Indicial Notation
Indicial notation is extremely useful in deriving the equations in BIE formulations. In indicial notation, coordinates x, y, and z are replaced with
x1 , x2 , and x3 , respectively, for 3D problems, or simply as xi , for i = 1, 2 (for
two dimensions) or 1, 2, 3 (for three dimensions). For example, the equation
of a plane in 3D space, ax + by + cz = p, can be written as:
3
ai xi = p,
i=1
if we set a1 = a, a2 = b, and a3 = c. The preceding expression can be further
simplified if we apply Einstein’s summation convention, which says that summation is implied if an index is repeated twice in the same term. With this
convention, the preceding equation for the plane in 3D space can be written
simply as:
ai xi = p,
where i is called a dummy index and can be changed to other symbols. For
−
→
→
example, the dot product of two vectors −
a and b can be expressed as:
−
→
−
→
a · b = ai bi = ak bk ,
in indicial notation. A linear system of equations Ax = b can be written as:
ai j x j = bi ,
with indices i and j running from 1, 2, . . . , n (number of the equations).
Differentiations of a function f (x, y, z) = f (xi ) can be expressed as:
∂f ∂f ∂f
∂f
≡ f,i ,
,
,
⇒
∂ x ∂ y ∂z
∂ xi
df =
∂f
∂f
∂f
dx1 +
dx2 +
dx3 = f,i dxi ,
∂ x1
∂ x2
∂ x3
∇2 f =
∂2 f
∂2 f
∂2 f
+
+
= f,ii .
∂ x12
∂ x22
∂ x32
The Kronecker delta δi j is defined by:
1, if i = j
,
δi j =
0, if i = j
(1.15)
(1.16)
1.8 Some Mathematical Preliminaries
11
which is similar to the identity matrix. The Kronecker delta can be used to
simplify expressions. For example,
ai b j δi j = ai bi = a j b j and f,i j δ jk = f,ik .
Another important symbol in indicial notation is the permutation symbol
ei jk , which is defined as:
for cyclic suffix order: 123, 231, 312
1,
(1.17)
ei jk = −1, for cyclic suffix order: 132, 213, 321
0,
if any two indices are the same.
For example, e112 = 0, e231 = 1, e213 = −1, e333 = 0, and so on. The vector
−
→ → −
−
→
→
product of two vectors −
a and b is −
c =→
a × b . In indicial notation, the
→
components of −
c are given by ci = ei jk a j bk when the permutation symbol is
used.
A useful relation between the Kronecker delta and the permutation
symbol is:
ei jk eilm = δ jl δkm − δ jm δkl .
(1.18)
This relation can be verified from the vector identity:
−
→ →
−
→
−
→ →
−
→
→
→
→
a ×( b × −
c ) = (−
a ·−
c ) b − (−
a · b )−
c.
1.8.3 Gauss Theorem
The Gauss theorem in calculus is probably the single most important formula
we need in the development of BIE formulations. For a closed domain V
(either in two or three dimensions) with boundary S, we have:
φ,i dV = φni dS
(1.19)
V
S
for any differentiable function φ(xi ), where ni is the component (direction
cosines) of the outward normal. The following equations are some of the variations of the Gauss theorem:
Fi , j dV =
Fi n j dS,
(1.20)
V
S
div FdV =
V
F · ndS,
(1.21)
n × FdS,
(1.22)
S
∇ × FdV =
V
where F = Fi (x j ) is a vector function.
S
12
Introduction
1.8.4 The Green’s Identities
Using the Gauss theorem, we can establish readily the following Green’s first
identity:
∂v
2
u∇ vdV = u dS −
u,i v,i dV,
(1.23)
V
S ∂n
V
and the Green’s second identity:
∂u
∂v
2
2
(u∇ v − v∇ u)dV =
−v
dS
u
∂n
∂n
V
S
(1.24)
for any two continuous functions u and v. Various forms of the Green’s second
identity are used in the development of the BIEs for different problems.
1.8.5 Dirac δ Function
The Dirac δ function δ(x, y) in two and three dimensions has the following
sifting properties [42]:
f (x), if x ∈ V
,
(1.25)
f (y)δ(x, y)dV(y) =
0,
if x ∈
/ V∪S
V
V
− ∂ f (x),
∂
f (y)
δ(x, y)dV(y) =
∂ xi
∂ xi
0,
if x ∈ V
if x ∈
/ V ∪ S,
(1.26)
in which x and y represent two points in space, and f (x) = f (xi ) is a differentiable function. In generalized function theory, the Dirac δ function is continuous and differentiable [42]. Applications of the Dirac δ function can greatly
simplify the derivations of the BIEs.
1.8.6 Fundamental Solutions
Fundamental solutions are important ingredients in BIE formulations. Without these fundamental solutions, we cannot convert the ODEs or PDEs into
BIEs in general. For different problems, we have different fundamental solutions, which are the solutions that are due to a unit source (heat source, point
force, unit charge, and so on) in an infinite space. These solutions have been
found for most linear problems, and we do not delve into the derivations of
these fundamental solutions. However, understanding the behaviors of the
fundamental solution for a particular problem at hand is very important in
developing good strategy to solving the problem with the BEM. This point is
elaborated on in later chapters.
For simple problems, a Fourier transform can be applied to obtain the
fundamental solutions. For example, for beam equation (1.4), the fundamental
1.8 Some Mathematical Preliminaries
13
solution v ∗ (x0 , x) satisfies the following equation:
EI
d4 v ∗ (x0 , x)
= δ(x0 , x),
dx 4
∀x, x0 ∈ (−∞, +∞),
(1.27)
in which the Dirac δ function δ(x0 , x) represents the unit point force at x0
(Figure 1.5). For a function f (x), the Fourier transform and its inverse are
defined by:
+∞
1
F [ f (x)] = √
f (x)eiλx dx = F(λ),
(1.28)
2π −∞
+∞
1
F (λ) e−iλx dλ,
(1.29)
f (x) = √
2π −∞
respectively. Applying the Fourier transform to Eq. (1.27) and noticing that
∗
dv
F [δ(x)] = 1, F
= iλF [v ∗ ] ,
dx
we obtain from Eq. (1.27):
λ4 EIF [v ∗ ] = 1 or
F [v ∗ ] =
1
.
EIλ4
The inverse transform yields:
v ∗ (x0 , x) =
1 3
r ,
12EI
with r = |x0 − x| .
(1.30)
This is the deflection of the beam at x that is due to the point force at x0 .
Applying Eq. (1.1), we have:
M∗ (x0 , x) = EI
d2 v ∗
1
= r,
dx 2
2
which is the corresponding moment in the fundamental solution as given in
Eq. (1.8).
1.8.7 Singular Integrals
We encounter various so-called singular integrals in the BIE formulations. In
these singular integrals, the integrands have singular points at which the integrands tend to infinity. Although we can show in later chapters that singular integrals in the BIEs can be removed analytically by use of the so-called
weakly singular forms of the BIEs, understanding the singular integrals is still
very important in studying BIEs and BEMs.
We use a few 1D cases as examples to illustrate the behaviors and results
of the singular integrals. First, consider the following integral:
b
(1.31)
f1 (x) =
log |x − y|dy for a < x < b.
a
14
Introduction
The integrand tends to infinity at x = y; thus, the integral is singular. This is an
improper integral and is evaluated as follows:
x−ε1
b
f1 (x) = lim
log |x − y| dy + lim
log |x − y| dy
ε1 →0 a
ε2 →0
x+ε2
y=x−ε
= lim [−(x − y) log(x − y) − y] y=a 1
ε1 →0
y=b
+ lim [(y − x) log(y − x) − y] y=x+ε2
ε2 →0
= (x − a) [log(x − a) − 1] + (b − x) [log(b − x) − 1] .
Thus, integral f1 (x) in (1.31) exists regardless of the values of ε1 and ε2 and is
called a weakly singular integral.
Next, consider the following strongly singular integral:
b
1
(1.32)
f2 (x) =
dy for a < x < b.
a y−x
We regard this as an improper integral and evaluate it as follows:
x−ε1
b
1
1
f2 (x) = lim
dy + lim
dy
ε1 →0 a
ε2 →0 x+ε2 y − x
y−x
y=x−ε1
y=b
+ lim [log |y − x|]
= lim [log |y − x|]
ε1 →0
= log
b− x
x−a
y=a
ε2 →0
y=x+ε2
+ lim log ε1 − lim log ε2 ,
ε1 →0
ε2 →0
which does not exist if ε1 and ε2 are kept independent of each other. It is only
when ε1 = ε2 that the integral has a finite value:
b− x
f2 (x) = log
,
(1.33)
x−a
which is called the Cauchy principal value (CPV) of the integral in (1.32).
Therefore, f2 (x) is called a CPV integral in that the integral is evaluated
with a small “symmetrical” region subtracted from the domain of integration
(ε1 = ε2 ) at x.
Consider the following hypersingular singular integral:
b
1
f3 (x) =
dy, for a < x < b.
(1.34)
2
a (y − x)
We evaluate this integral by using the CPV definition:
x−ε
b
1
1
dy +
dy
f3 (x) = lim
2
2
ε→0
(y − x)
a
x+ε (y − x)
1 b
1 x−ε
= lim −
−
ε→0
(y − x) a
(y − x) x+ε
1
1
2
=−
−
+ lim
,
x−a
b − x ε→0 ε
Problems
15
which does not exist even in the sense of a CPV integral. However, in the
BIE formulations, we find that an infinite term like 2/ε is canceled out by the
integral with the same integrand on the small region (x − ε, x + ε). Therefore,
f3 (x) is still meaningful and called a Hadamard finite part (HFP) integral [44],
with the finite part given by [45]:
f3 (x) = −
1
1
−
.
x−a
b− x
(1.35)
1.9 Summary
In this chapter, a general introduction of the BIE and the BEM is provided. A
comparison of the BEM with the FEM is discussed. A simple beam problem is
used as an example to show the procedures in formulating and solving a problem by using the boundary formulation. Two important ingredients are needed
in the BIE formulations. One is the fundamental solution that is specific to a
given problem and is available for most linear problems. Another ingredient
is the generalized Green’s identity associated with the differential operator
for describing the problem. Some mathematical results that are needed in the
development of the BIE and the BEM are reviewed, especially the index notation and the Gauss theorem in various forms.
Problems
1.1. Using a Fourier transform, solve Eq. (1.5) to obtain the moment in the
fundamental solution given in (1.8) for the simple beam problem.
1.2. Derive the generalized Green’s identity given in (1.9).
1.3. Derive the following generalized Green’s identity corresponding to ODE
(1.4),
3
x=L
d4 u
d v
d3 u
d2 u dv
du d2 v
d4 v
,
−
u 4 − 4 v dx = u 3 − 3 v + 2
dx
dx
dx
dx
dx dx dx dx 2 x=0
(1.36)
L
0
for any two continuous functions u and v on the interval (0, L). If u and v
represent the deflections of a straight beam with length L, bending stiffness EI, and under two different sets of loading conditions, respectively,
what is the physical meaning of this identity?
1.4. Give the values of the following expressions, if defined:
δi j = ?;
δi j δi j = ?;
δi j δi j δi j = ?.
1.5. Verify the following results:
ei jk ei jk = 6;
ei jk A j Ak = 0.
16
Introduction
→
→
→
→
→
1.6. Express the triple scalar product −
u · (−
v ×−
w ) of three vectors −
u, −
v,
−
→
and w (in three dimensions) in the index form.
−
→ →
−
→
→
→
→
1.7. Verify Eq. (1.18) using the vector identity −
a ×( b ×−
c ) = (−
a ·−
c)b −
−
→
→
→
(−
a · b )−
c.
1.8. Write Eqs. (1.21) and (1.22) in index forms.
1.9. Show that the CPV of the following integral does not exist:
b
1
f (x) =
dy, for a < x < b.
a |y − x|
2
Conventional Boundary Element Method
for Potential Problems
Many problems in engineering can be described by the Laplace equation or
the Poisson equation. These problems can be termed potential problems, such
as heat conduction, potential flows, electrostatic fields, or the mechanics problem of a bar in torsion. In this chapter, we study the BIE formulations for
solving potential problems and learn how to solve these BIEs by using the
conventional BEM. In Chapter 3, we study the fast multipole BEM that can
accelerate the BEM solutions for large-scale potential problems.
2.1 The Boundary-Value Problem
We consider the following Poisson equation governing the potential field φ in
domain V (either 2D or 3D, finite or infinite):
∇ 2 φ + f = 0,
in V,
(2.1)
where f is a known function in domain V. The boundary conditions (BCs) to
be considered are:
φ = φ,
q≡
on Sφ
∂φ
= q,
∂n
(Dirichlet BC),
on Sq
(Neumann BC),
(2.2)
(2.3)
in which the over bar indicates the prescribed value for the function, Sφ ∪
Sq = S is the boundary of the domain, and n is the outward normal of the
boundary S (Figure 2.1). Note that the normal derivative of φ (corresponding to heat flux in thermal analysis) can be expressed as q = ∂∂φ
n = φ,k nk
xk k
in index notation, with nk being the components or direction cosines of
normal n.
With the fundamental solution and the second Green’s identity, we can
convert the preceding boundary-value problem given in Eqs. (2.1)–(2.3) into
BIE formulations.
17
18
Conventional Boundary Element Method for Potential Problems
y
n
r
Figure 2.1. A 3D finite domain V with
boundary S.
2
V
x
S
1
3
2.2 Fundamental Solution for Potential Problems
The fundamental solution G(x, y) for potential problems satisfies:
∇ 2 G(x, y) + δ(x, y) = 0,
∀x, y ∈ R2 /R3 ,
(2.4)
in which the derivatives are taken at point y, that is, ∇ 2 = ∂ 2 (·) /∂ yi ∂ yi , and
R 2 and R 3 indicate the full 2D and 3D spaces, respectively. The Dirac d function δ(x, y) in Eq. (2.4) represents a unit source (e.g., heat source) at the source
point x, and G(x, y) represents the response (e.g., temperature) at the field
point y that is due to that source.
The fundamental solution G(x, y) is given by:
1
1
log
, for two dimensions,
2π
r
G(x, y) =
(2.5)
1 ,
for three dimensions,
4πr
where r is the distance between the source point x and field point y, and its
normal derivative is:
1
−
r,k nk (y), for two dimensions,
2πr
∂G(x, y)
F(x, y) ≡
=
(2.6)
∂n(y)
1
−
r,k nk (y), for three dimensions,
4πr 2
with r,k = ∂r/∂ yk = (yk − xk )/r . The fundamental solution satisfies the following integral identities [46–48]:
First identity:
F(x, y) dS(y) =
S
−1,
∀x ∈ V
0,
∀x ∈ E.
(2.7)
Second identity:
S
∂ F(x, y)
dS(y) = 0,
∂ n(x)
∀x ∈ V ∪ E.
(2.8)
2.3 Boundary Integral Equation Formulations
Third identity:
S
∂G(x, y)
nk (y)dS(y) −
∂ n(x)
S
19
nk (x),
∂ F(x, y)
(yk − xk )dS(y) =
0,
∂ n(x)
Fourth identity:
F(x, y)(yk − xk ) dS(y) − G(x, y) nk (y)dS(y) = 0,
S
∀x ∈ V
∀x ∈ E.
(2.9)
∀x ∈ V ∪ E,
S
(2.10)
in which S can be an arbitrary closed contour (for two dimensions) or surface
(for three dimensions), V is the domain enclosed by S, and E is the infinite
domain outside S. These identities have clear physical meanings and can be
very convenient in deriving various weakly singular or nonsingular forms of
the BIEs for potential problems [46–48]. We can obtain these identities readily
by integrating governing equation (2.4) over the domain V and invoking the
Gauss theorem [46–48].
2.3 Boundary Integral Equation Formulations
To derive the direct BIE corresponding to PDE (2.1), we apply the second
Green’s identity given in Eq. (1.24):
u∇ v − v∇ u dV =
2
2
V
S
∂u
∂v
−v
dS.
u
∂n
∂n
(2.11)
Let v(y) = φ(y), which satisfies Eq. (2.1), and u(y) = G(x, y), which satisfies
Eq. (2.4). We have, from identity Eq. (2.11):
G(x, y)∇ 2 φ(y) − φ(y)∇ 2 G(x, y) dV(y)
V
∂G(x, y)
∂φ(y)
=
− φ(y)
dS(y).
G(x, y)
∂n(y)
∂n(y)
S
Applying Eqs. (2.1), (2.4), and (1.25), we obtain:
φ(x) =
[G(x, y)q(y) − F(x, y)φ(y)] dS(y)
G(x, y) f (y)dV(y), ∀x ∈ V,
+
S
(2.12)
V
where q = ∂φ/∂n.
Equation (2.12) is the representation integral of the solution φ inside the
domain V for Eq. (2.1). Once the boundary values of both φ and q are known
on S, Eq. (2.12) can be applied to calculate φ everywhere in V, if needed.
20
Conventional Boundary Element Method for Potential Problems
Figure 2.2. Limits as x approaches boundary S.
x
V
d
2
S − Sε
Sε
1
To solve the unknown boundary values of φ and q on S, we let x tend to S
to obtain a BIE from Eq. (2.12). To do this, we consider the following limit:
lim φ(x) = lim
[G(x, y)q(y) − F(x, y)φ(y)] dS(y) + G(x, y) f (y)dV(y) .
x→S
x→S
S
V
(2.13)
The kernel G(x, y) is weakly singular at r = 0 [of O(log r ) in two dimensions
and O(1/r ) in three dimensions] and F(x, y) is strongly singular [of O(1/r )
in two dimensions and O(1/r 2 ) in three dimensions]. Therefore, we cannot
place x on boundary S directly in Eq. (2.13). Careful consideration of the limit
process is necessary for each integral on the right-hand side of Eq. (2.13).
We now proceed to use the 2D case as an example to see how to evaluate
the limits in (2.13). We first divide the boundary S into two parts: S − Sε and
Sε , where Sε is a small segment with length 2ε centered around the point to
which x will approach (Figure 2.2).
The first integral on the right-hand side of (2.13) is evaluated as:
lim G(x, y)q(y)dS(y) = lim
G(x, y)q(y)dS(y)
x→S S
ε→0 S−Sε
G(x, y)dS(y)q(yξ ),
+ lim
d→0
ε→0
Sε
where yξ is a point on Sε . When ε is small, Sε can be regarded as a straight-line
segment (assuming S is smooth); the analytical integration of G kernel on this
line segment is given in Appendix A.1, Eq. (A.5). When Eq. (A.5) is used, the
limit of this integral turns out to be:
lim
G(x, y)dS(y)q(yξ ) = 0.
d→0
ε→0
Sε
Therefore:
lim G(x, y)q(y)dS(y) = lim
x→S
S
ε→0
G(x, y)q(y)dS(y) =
S−Sε
G(x, y)q(y)dS(y),
S
(2.14)
where the last integral is evaluated with the definition of a CPV integral. (For
simplicity of notation, no special symbol is used here to indicate this fact.)
2.3 Boundary Integral Equation Formulations
21
Similarly, the second integral on the right-hand side of (2.13) is evaluated
as:
F(x, y)φ(y)dS(y) = lim
lim
x→S
ε→0
S
F(x, y)φ(y)dS(y)
S−Sε
+ lim
d→0
ε→0
F(x, y)dS(y)φ(yξ ).
Sε
Applying the result in Eq. (A.6) of Appendix A.1, we obtain:
1
F(x, y)dS(y)φ(yξ ) = − φ(x), x ∈ S,
2
Sε
1
lim F(x, y)φ(y)dS(y) = lim
F(x, y)φ(y)dS(y) − φ(x)
x→S S
ε→0 S−Sε
2
1
F(x, y)φ(y)dS(y) − φ(x), x ∈ S,
=
2
S
lim
d→0
ε→0
(2.15)
where the last integral is understood as a CPV integral that is evaluated on
S − Sε with ε → 0. We see that there is a jump term associated with the integral
with the F kernel as x approaches S. The third integral on the right-hand side
of (2.13) has no jump term; that is:
G(x, y) f (y)dV(y) =
lim
x→S
V
G(x, y) f (y)dV(y).
(2.16)
V
Substituting Eqs. (2.14)–(2.16) into (2.13) and combining the free terms, we
arrive at the following conventional BIE (CBIE):
c(x)φ(x) =
[G(x, y)q(y) − F(x, y)φ(y)] dS(y)
G(x, y) f (y)dV(y), ∀x ∈ S,
+
S
(2.17)
V
in which c(x) is a coefficient and c(x) = 1/2 if S is smooth around x. The same
result can be derived for the 3D case. In this equation, both variables φ and q
are now on the boundary S. Later, we will see that we can write CBIE (2.17) in
a weakly singular form by using the integral identities for the fundamental
solution, so that we do not need to evaluate the CPV integral (with the F kernel) and the constant c(x) explicitly in the solutions of the BIE.
Treatment of the domain integral in CBIE (2.17) is discussed in Section
2.9 for the case in which f (y) is nonzero over a finite area or volume within
the domain V. When f (y) is due to a concentrated or point source within V,
we can write f (y) as:
f (y) = Qδ(x Q, y),
(2.18)
22
Conventional Boundary Element Method for Potential Problems
where x Q is the location of the source and Q represents the intensity of the
source. Using the sifting property of the Dirac d function [Eq. (1.25)], we can
evaluate the domain integral in CBIE (2.17) for this case as follows:
G(x, y) f (y)dV(y) = Q G(x, y)δ(x Q, y)dV(y) = QG(x, x Q). (2.19)
V
V
This contribution is added to the right-hand side vector b of the BEM system
of equations based on the CBIE (discussed in Section 2.5).
Once we obtain the unknown variables φ and q on S from solving CBIE
(2.17), we can evaluate the potential inside the domain V by using the representation integral of (2.12), if needed. To evaluate the derivatives of the potential in V, we take the derivative of (2.12) to obtain:
∂φ
∂ F(x, y)
∂G(x, y)
(x) =
q(y) −
φ(y) dS(y)
∂ xi
∂ xi
∂ xi
S
∂G(x, y)
f (y)dV(y), ∀x ∈ V.
(2.20)
+
∂ xi
V
Letting the source point x tend to boundary S and multiplying both sides
of (2.20) with the normal at x, we obtain the so called hypersingular BIE
(HBIE):
c(x)q(x) = [K(x, y)q(y) − H(x, y)φ(y)] dS(y)
S
+
K(x, y) f (y)dV(y),
∀x ∈ S,
(2.21)
V
where the two new kernels are:
1
r,k nk (x),
∂G(x, y)
2πr
K(x, y) ≡
=
∂n(x)
1 r,k nk (x),
4πr 2
H(x, y) ≡
for two dimensions,
(2.22)
for three dimensions,
∂ F(x, y)
∂n(x)
1
[nk (x)nk (y) − 2r,k nk (x)r,l nl (y)] ,
2πr 2
=
1 [nk (x)nk (y) − 3r,k nk (x)r,l nl (y)] ,
4πr 3
for two dimensions
.
for three dimensions
(2.23)
K(x, y) kernel is strongly singular, and the first integral in HBIE (2.21) is a
CPV integral, the H(x, y) kernel is hypersingular, and the second integral in
(2.21) is a HFP integral. HBIE (2.21) also can be written in a weakly singular
form, and we do not need to evaluate these singular or hypersingular integrals
in the BEM unless they can be evaluated readily (as in the constant-element
case that we discuss in the next section).
2.4 Weakly Singular Forms of the Boundary Integral Equations
23
The CBIE degenerates when it is applied to solve crack problems or thin
inclusion problems [49]. In these cases, the HBIE can be applied alone or in
combination with the CBIE to have a nondegenerate dual BIE formulation
for crack problems and thin-shape problems. We will see some examples later
in this and subsequent chapters.
CBIE (2.17) and HBIE (2.21) are also valid for an infinite domain problem, where the domain is outside a closed boundary S and extends to infinity. We can show that contributions of integrals on the boundaries at infinity
vanish if we assume that φ(R) ∼ O(1/Rα ) and q(R) ∼ O(1/R1+α ), as R → ∞,
where R is the radius of a large circle (2D) or sphere (3D) and the real number
α > 0.
2.4 Weakly Singular Forms of the Boundary Integral Equations
CBIE (2.17) and HBIE (2.21) can be recast into forms that involve only weakly
singular integrals [46–48] or even nonsingular forms without any singular integrals [47]. For example, using the first identity in (2.7) for the fundamental
solution G(x, y), we can show that the coefficient c(x) in CBIE (2.17) can be
written as:
c(x) = 1 + lim
F(x, y)dS(y) = γ − lim
F(x, y)dS(y)
d→0
ε→0
=γ−
ε→0
Sε
S−Sε
∀x ∈ S (a CPV integral),
F(x, y)dS(y),
(2.24)
S
in which γ = 0 for finite domain and γ = 1 for infinite domain problems. Substituting the preceding expression for c(x) in CBIE (2.17), we obtain the following weakly singular form of the CBIE:
γ φ(x) +
F(x, y) [φ(y) − φ(x)] dS(y)
S
G(x, y)q(y)dS(y) +
=
S
G(x, y) f (y)dV(y),
∀x ∈ S,
(2.25)
V
in which the integral with the F kernel is now weakly singular, because
1
O r O (r ) = O (1) ,
F(x, y) [φ(y) − φ(x)] ∼
1
1
,
O 2 O (r ) = O
r
r
for two dimensions,
for three dimensions,
as r → 0, if φ is continuous. Similarly, using the first three identities for the
fundamental solution, we can derive the following weakly singular form of the
24
Conventional Boundary Element Method for Potential Problems
HBIE (see Refs. [50, 51] for the results of a Helmholtz equation with a Laplace
equation as a special case):
∂φ
H(x, y) φ(y) − φ(x) −
(x)(ξα − ξoα ) dS(y)
∂ ξα
S
∂φ
+ eα k
(x) [K(x, y)nk (y) + F(x, y)nk (x)] dS(y)
∂ ξα
S
= [K(x, y) + F(x, y)] q(y) dS(y)
γ q(x) +
S
F(x, y) [q(y) − q(x)] dS(y) +
−
S
K(x, y) f (y)dV(y),
∀x ∈ S,
V
(2.26)
in which ξα and ξoα are the coordinates of y and x, respectively, in tangential directions (α = 1 for two dimensions and α = 1, 2 for three dimensions)
in the local (natural) coordinate system on an element and eα k = ∂ ξα /∂ xk
[51]. All the integrals in (2.26) are now, at most, weakly singular if φ has continuous first derivatives.
Weakly singular forms of the BIEs, or regularized BIEs, which do not contain any strongly singular and hypersingular integrals, are useful in cases in
which higher-order boundary elements are applied to solve the BIEs. In these
cases, analytical evaluations of the singular integrals are difficult or impossible
to obtain and the use of numerical integrations is troublesome. When constant
elements are used, all the singular and hypersingular integrals can be evaluated analytically (see Appendix A.1); therefore, the original singular forms of
CBIE (2.17) and HBIE (2.21) can be applied directly.
2.5 Discretization of the Boundary Integral Equations
for 2D Problems Using Constant Elements
We now apply the boundary elements to discretize the BIEs in order to solve
them numerically for the unknown boundary variables. As an example, we discretize the CBIE (assuming f = 0) in (2.17) for 2D problems by using constant
elements.
First, we divide the boundary S into line segments (elements) S j and
place one node on each element (Figure 2.3). The total number of elements
is M, and the total number of nodes is N. In the case of using constant elements, we have N = M. Next, we place the source point x at node i and notice
that:
φ(y) = φ j , q(y) = q j ,
on element
Sj ,
2.5 Discretization of the Boundary Integral Equations
y
∆ Sj
25
n
r
V
element
node
S
2
i
ξ=0
ξ
ξ=1
1
Figure 2.3. Discretization of boundary S using constant elements.
where φ j and q j ( j = 1, 2, . . . , N) are the nodal values of φ and q, respectively, on element S j for constant elements. CBIE (2.17) becomes:
1
φi =
2
N
N
[Gi q j − Fi φ j ] dS =
j=1
Sj
Gi dSq j −
j=1
Sj
Fi dSφ j , (2.27)
Sj
where Gi and Fi are the kernels with the source point x placed at node i. We
obtain the following discretized equation of CBIE (2.17) for node i:
1
φi =
2
N
gi j q j − fˆi j φ j ,
for i = 1, 2, . . . , N,
(2.28)
j=1
where the coefficients are given by:
gi j =
Gi dS,
Sj
fˆi j =
Fi dS,
for i, j = 1, 2, . . . , N.
(2.29)
Sj
The preceding integrals can be evaluated analytically for all singular (i = j) or
nonsingular (i = j) cases with the constant elements (see Appendix A.1).
In matrix form, Eq. (2.28) can be written as:
f11
f21
.
.
.
f N1
f12
f22
..
.
f N2
· · · f1N
φ1
g11
· · · f2N φ2 g21
.
.
..
. = ..
. ..
.
.
φN
g N1
· · · f NN
g12
g22
..
.
g N2
· · · g1N
q1
· · · g2N q2
. . ..
.. ,
. .
.
qN
· · · g NN
(2.30)
where fi j = fˆi j + 12 δi j . In the conventional BEM approach, we form a standard linear system of equations as follows by applying the boundary condition
26
Conventional Boundary Element Method for Potential Problems
at each node and switching the columns in the two matrices in Eq. (2.30):
a11
a21
.
.
.
a N1
a12
a22
..
.
a N2
a1N
b1
λ1
a2N λ2
b2
=
..
.. .. ,
.
.
.
λN
bN
· · · a NN
···
···
..
.
or
Aλ = b,
(2.31)
where A is the coefficient matrix, λ is the unknown vector (with unknown φ
or q at each node), and b is the known right-hand-side vector. Obviously, the
construction of matrix A requires O(N 2 ) operations using Eqs. (2.29), and
the size of the required memory for storing A is also O(N 2 ) because A is,
in general, a nonsymmetric and dense matrix. The solution of the system in
Eq. (2.31) using direct solvers such as Gauss elimination requires O(N 3 ) operations because of this general matrix. Thus, the conventional BEM approach
by solving Eq. (2.31) directly can handle only BEM models with a few thousand equations on a desktop computer with 1-GB RAM (GB is gigabyte and
RAM is random-access memory).
By solving Eq. (2.31), we can obtain all the unknown boundary variables
on each element. If the fields inside the domain are demanded, we can compute φ by using integral representation (2.12) and the derivatives of φ by using
(2.20) in similar discretized forms. Discretization of the BIEs using constant
elements is straightforward, and all the integrals of the kernels on the elements can be evaluated analytically. However, the accuracy of the constant
elements is not very good, and usually more constant elements are needed to
obtain reasonably accurate BEM results as compared with those obtained with
high-order elements.
2.6 Using Higher-Order Elements
Higher-order boundary elements are needed to improve the accuracy and efficiency of the BEM solutions in situations in which accuracy and efficiency
are critical, such as stress concentration problems. For curved boundaries,
higher-order elements, such as quadratic elements, are also beneficial because
of the more accurate representation of the geometry. However, the use of
higher-order elements also presents some challenges. Analytical integrations
of the coefficients are no longer available, in general, and numerical integrations need to be used. In the following subsection, we discuss the linear and
quadratic elements for 2D problems.
2.6.1 Linear Elements
For discretization using linear elements (Figure 2.4), each element is associated with two nodes placed at the ends of the element. The element is assumed
2.6 Using Higher-Order Elements
27
y
n
n
∆ Sk
∆ Sk
r
V
S
1
2
i
2
ξ =0
ξ =1
ξ
1
Figure 2.4. Discretization of boundary S using linear elements.
to be straight, and the fields are assumed to vary linearly over the element.
Two shape functions are introduced to represent the function on an element.
For example, on element Sk (k = 1, 2, 3, . . . , M, with M being the total number of elements), we have:
2
φ(y) = φ(ξ ) =
Nα (ξ )φ α ,
(2.32)
Nα (ξ )qα ,
(2.33)
α=1
2
q(y) = q(ξ ) =
α=1
where φ 1 , φ 2 and q1 , q2 are the nodal values of φ and q at local nodes 1 and
2, respectively; ξ is the local (natural) coordinate defined on the element; and
N1 (ξ ) and N2 (ξ ) are the linear shape functions given by:
N1 (ξ ) = 1 − ξ,
N2 (ξ ) = ξ.
and
(2.34)
Placing source point x at node i (i = 1, 2, 3, . . . , N), we have the following
discretized equation for CBIE (2.17) (with f = 0):
M
ci φi =
[Gi q − Fi φ] dS,
Sk
k=1
M
2
=
M
Nα qα dS −
Gi
Sk
k=1
M
2
α=1
Gi Nα dS qα −
=
k=1 α=1
Sk
2
Nα φ α dS,
Fi
k=1
Sk
α=1
M
Fi Nα dS φ α ,
2
k=1 α=1
(2.35)
Sk
that is,
M
2
M
2
α α
gik
q −
ci φi =
k=1 α=1
α α
φ ,
fˆik
k=1 α=1
(2.36)
28
Conventional Boundary Element Method for Potential Problems
where:
α
=
gik
Gi Nα dS
α
=
fˆik
Sk
Fi Nα dS
(2.37)
Sk
with i = 1, 2, 3, . . . , N (number of nodes), k = 1, 2, 3, . . . , M (number of
elements), and a = 1 and 2 (number of local nodes on each element). Rearranging the terms according to the global nodes (instead of elements), we
obtain from Eq. (2.36):
N
ci φi =
N
gi j q j −
j=1
fˆi j φ j ,
(2.38)
j=1
α
α
where gi j and fˆi j are sums of the integrals gik
and fˆik
on elements around
node j, respectively. Thus, we have a linear system of equation similar to
Eq. (2.28) and the matrix form is identical to Eq. (2.30), where fi j = fˆi j +
ci δi j (no sum over i).
In general, numerical integration schemes need to be used to evaluate
the coefficients in (2.30) using formulas (2.37). For example, for nondiagonal
terms (i = j), we have:
α
gik
=
1
Gi Nα dS =
Gi [x, y(ξ )]Nα (ξ ) |J |dξ,
(2.39)
0
Sk
where the global coordinate y is related to the local coordinate by:
2
Nα (ξ )ylα ,
yl (ξ ) =
for l = 1, 2,
α=1
with ylα being the nodal values of yl , and:
dy2 2
dy1 2
dS =
+
dξ = |J | dξ, where
dξ
dξ
|J | =
dy1
dξ
2
+
dy2
dξ
2
is the Jacobian of the coordinate transformation. The integral on the righthand side of Eq. (2.39) can be evaluated by standard Gaussian quadrature. In
most cases, a four-point quadrature should be sufficient. The second integral
in (2.37) is handled in a similar way.
For the diagonal terms, we can evaluate the coefficients analytically by
using the definition of CPV integrals. The results are:
La
1
1
Lb
gii =
3 + 2 log
3 + 2 log
+
,
8π
La
8π
Lb
(2.40)
fˆii = 0, i = 1, 2, 3, . . . , N;
2.6 Using Higher-Order Elements
29
y
∆ Sk
n
n
∆ Sk
r
V
S
1
i
2
2
ξ = –1 ξ = 0
3
ξ=1
ξ
1
Figure 2.5. Discretization of boundary S using quadratic elements.
in which La and Lb are the lengths of the two elements before and after node
i. For coefficient fii , there is an easy way to calculate their values. Suppose we
have a uniform potential field, with φ = 1 and q = 0 everywhere. Then, from
Eq. (2.30), we obtain:
N
fii = −
fi j ,
(2.41)
j=i
for finite domain problems, which avoids calculation of ci at each node. For
infinite domain problems, the contributions from integrals at infinity do not
vanish for uniform potentials. Thus, the relation in (2.41) is changed to:
N
fii = 1 −
fi j .
(2.42)
j=i
Results in (2.41) and (2.42) are exact, meaning that there is no additional error
introduced. We can derive these results analytically by using identity (2.7) for
the fundamental solution [46].
2.6.2 Quadratic Elements
Quadratic elements can be used for problems demanding even higher accuracy, such as problems with singular fields caused by cracklike objects, problems with curved boundaries, and so on. There are three nodes on a quadratic
element (Figure 2.5). The element can be a quadratic curve, which is a more
accurate representation for a domain with curved boundaries. The three
quadratic-shape functions are given as follows in the local coordinate ξ :
N1 (ξ ) =
1
ξ (ξ − 1),
2
N2 (ξ ) = (1 − ξ )(1 + ξ ),
N3 (ξ ) =
1
ξ (ξ + 1).
2
(2.43)
30
Conventional Boundary Element Method for Potential Problems
On each element, we have:
3
φ(y) = φ(ξ ) =
Nα (ξ )φ α ,
(2.44)
Nα (ξ )qα ,
(2.45)
α=1
3
q(y) = q(ξ ) =
α=1
and for the geometry:
3
Nα (ξ )ylα ,
yl (ξ ) =
for l = 1, 2.
(2.46)
α=1
Using quadratic elements, we can write the discretized form of CBIE
(2.17) (with f = 0) as:
M
3
M
3
α α
gik
q −
ci φi =
k=1 α=1
in which:
α
gik
=
α
=
fˆik
α α
φ ,
fˆik
(2.47)
k=1 α=1
Sk
Gi Nα dS,
(2.48)
Fi Nα dS,
Sk
with i = 1, 2, 3, . . . , N, k = 1, 2, 3, . . . , M, and a = 1, 2, and 3. Rearranging the
terms according to the global nodes (based on the element connectivity information), we obtain a system of equations similar to that given in (2.30). In
this case, all the coefficients gi j and fi j in (2.30) need to be calculated numerically by Gaussian quadrature, except for fii , which still can be determined by
Eq. (2.41) for a finite domain or Eq. (2.42) for an infinite domain, without
introducing any additional errors.
2.7 Discretization of the Boundary Integral Equations
for 3D Problems
For 3D problems, surfaces of a domain will be discretized using surface elements, which can be constant, linear, or quadratic (Figure 2.6). The shape of
an element can be triangular or quadrilateral. For a constant element, there is
only one node located at the center of the element. For a linear element, there
is one node at each vertex of the element. For a quadratic element, there is one
node at each vertex and on each edge of the element. Implementation of the
constant elements is straightforward, and analytical integrations of the kernels
2.7 Discretization of the Boundary Integral Equations for 3D Problems
(a)
(b)
31
(c)
Figure 2.6. Surface elements for 3D problems: (a) constant, (b) linear, (c) quadratic.
are possible. However, using linear and quadratic elements is more accurate
and efficient.
We use the quadrilateral four-node (Q4) linear elements (Figure 2.7) as
an example to see how to discretize the CBIE for 3D problems.
In the natural coordinate system (ξ, η), the four shape functions are:
1
(1 − ξ )(1 − η),
4
1
N2 (ξ, η) = (1 + ξ )(1 − η),
4
1
N3 (ξ, η) = (1 + ξ )(1 + η),
4
1
N4 (ξ, η) = (1 − ξ )(1 + η).
4
N1 (ξ, η) =
Note that
4
α=1
(2.49)
Nα = 1 at any point inside the element, as expected.
η
η =1
3
4
Figure 2.7. A Q4 linear element for 3D
problems.
ξ
2
2
η = −1
1
3
1
ξ = −1
ξ =1
32
Conventional Boundary Element Method for Potential Problems
For a 3D problem, the discretized form of CBIE (2.17) (with f = 0) can
still be written as follows with the Q4 elements:
4
M
M
4
α α
gik
q −
ci φi =
k=1 α=1
where:
α
gik
=
α
fˆik
=
α α
φ ,
fˆik
(2.50)
k=1 α=1
Sk
Gi Nα dS,
(2.51)
Fi Nα dS,
Sk
with i = 1, 2, 3, . . . , N (total number of nodes on the surface), k = 1, 2, 3, . . . ,
M (total number of elements), and a = 1, 2, 3 and 4 (for Q4 elements). Information about the element connectivity is needed to assemble the system of
equations as given in Eq. (2.30). For example, if the global node number of
α
local node a of element k is j, then coefficient gik
should go to the ith row and
jth column of the g matrix on the right-hand side of Eq. (2.30).
In 3D cases, all the coefficients gi j and fi j we determine by using (2.51) are
surface integrals that we can calculate numerically using Gaussian quadrature,
except for fii , which we can still determine by Eq. (2.41) for a finite domain or
Eq. (2.42) for an infinite domain. For example, to compute gi j , we proceed as
follows:
α
gik
=
Gi Nα dS =
Sk
1
−1
1
−1
Gi [x, y(ξ, η)]Nα (ξ, η) |J|dξ dη,
(2.52)
where |J| is the determinant of the Jacobian matrix; that is:
î 1
∂ y1
|J| = det ∂ξ
∂ y1
∂η
î 2
∂ y2
∂ξ
∂ y2
∂η
î 3
∂ y3
∂ξ
∂ y3
∂η
,
(2.53)
with î k being the unit base vector along the yk axis.
Quadrilateral eight-node (Q8) quadratic elements (Figure 2.8) have also
been used widely in the BEM for 3D problems because of their accuracy and
flexibility in modeling curved surfaces. Using quadratic elements is even more
beneficial for the conventional BEM because they can deliver more accurate
results with fewer elements when the number of elements is limited by the
method or the computer.
2.7 Discretization of the Boundary Integral Equations for 3D Problems
33
η
7
3
4
Figure 2.8. A Q8 quadratic element for
3D problems.
6
ξ
8
2
1
1
2
5
3
In the natural coordinate system (ξ, η), the eight shape functions for Q8
elements are:
N1 (ξ, η) =
1
(1 − ξ )(η − 1)(ξ + η + 1),
4
N2 (ξ, η) =
1
(1 + ξ )(η − 1)(η − ξ + 1),
4
N3 (ξ, η) =
1
(1 + ξ )(1 + η)(ξ + η − 1),
4
N4 (ξ, η) =
1
(ξ − 1)(η + 1)(ξ − η + 1),
4
1
N5 (ξ, η) = (1 − η)(1 − ξ 2 ),
2
N6 (ξ, η) =
1
(1 + ξ )(1 − η2 ),
2
N7 (ξ, η) =
1
(1 + η)(1 − ξ 2 ),
2
(2.54)
1
(1 − ξ )(1 − η2 ).
2
Again, we have the relation 8α=1 Nα = 1 at any point (ξ, η) inside the element. Both the physical fields and the geometry (coordinates) are interpolated
using these shape functions in a manner similar to that previously discussed for
Q4 elements.
It is difficult to evaluate analytically the singular (CPV) and hypersingular
(HFP) integrals on 3D curved elements. Therefore, the weakly singular forms
of the BIEs can be applied to avoid direct evaluation of such singular integrals, especially using any numerical integration scheme. Treatment of various
singular integrals using the weakly singular forms of the BIEs and quadratic
surface elements can be found in Refs. [18, 46, 50–54].
N8 (ξ, η) =
34
Conventional Boundary Element Method for Potential Problems
(φ1, q1)
n
V2
V1
(φ2, q2)
SI
Figure 2.9. A multidomain problem.
S2
n
S1
2.8 Multidomain Problems
For multidomain problems, regions of different materials can be treated separately first by the BEM and then assembled together with the interface conditions. For example, suppose that we need to solve the potential problem in a
multiple domain comprising two material regions V1 and V2 with the interface
SI (Figure 2.9).
For region 1, we have the following BEM equation from Eq. (2.30):
φ1
q1
I
I
= G1 G1
,
(2.55)
F1 F1
I
φ1
q1I
and for region 2:
F2
F2I
φ2
φ2I
= G2
G2I
q2
q2I
,
(2.56)
where fm and qm are the nodal values of φ and q, respectively, on the boundI
I
ary Sm of domain m; and φm
and qm
are the nodal values of φ and q, respectively, on interface SI from domain m (here, m = 1 or 2). Applying the interface conditions (assuming perfect bonding):
φ1I = φ2I ≡ φ I ,
(2.57)
q1I = −q2I ≡ q I ,
we can write Eqs. (2.55) and (2.56) in a single matrix equation as:
φ1
q1
I
I
G1 0
G1
F1 F1 0
I
I
=
.
φ
q
I
0
F2 F2
0
−G2I G2
φ2
q2
Moving the unknown term q I to the left-hand side, we obtain:
φ1
q1
F1 0
F1I −G1I φ2
G1 0
I=
0
G
0
F2 F2I
G2I
q
φ
2
2
I
q
.
(2.58)
(2.59)
2.9 Treatment of the Domain Integrals
35
It is noticed that for multidomain problems, the matrices of the BEM system
of equations become banded, which will be more obvious when more subdomains are involved. This is an advantage for solving the system of equations
because of the improved conditioning. For problems with slender domains,
even if they are not multidomain problems, we can apply the multidomain
technique to reduce the bandwidth of the equations.
2.9 Treatment of the Domain Integrals
If the function f (x) in CBIE (2.17) is not zero over a finite area or volume,
we need to deal with this domain integral that contains no unknown variables. There are several options in evaluations of the domain integrals. Some
basic approaches are reviewed briefly in the following subsections. More
advanced techniques for dealing with various domain integrals in the BEM
can be found in the literature, such as the dual reciprocal methods (see, e.g.,
Ref. [55]).
2.9.1 Numerical Integration Using Internal Cells
In this approach, we simply divide the domain V into L cells Vk (k =
1, 2, . . . , L) and proceed as follows, with the source point x placed at node i
on the boundary:
bi =
L
G(x, y) f (y)dV(y) =
V
Gi f dV =
V
Gi f dV,
k=1
(2.60)
Vk
where the integral on each cell can be evaluated numerically with a Gaussian
quadrature. The contribution bi is added to the right-hand side vector in Eq.
(2.31). The internal cells can be coarser and do not need to match the mesh
on the boundary. This is the easiest and earliest approach for dealing with the
domain integrals in the BEM. However, it is no longer used widely because
of the need to use the domain cells, which is not consistent with the boundary
approach.
2.9.2 Transformation to Boundary Integrals
A more elegant approach to deal with domain integrals is to transform them
into boundary integrals and use the same boundary mesh to evaluate them as
that used to solve the boundary variables. There were many methods developed in the past 30 years or so in this regard, including the dual reciprocal
methods. A very basic method is given here as an example.
36
Conventional Boundary Element Method for Potential Problems
Suppose that f (x) is a harmonic function (e.g., f is constant or linear over
the domain V); we have ∇ 2 f = 0. Next, we write the fundamental solution as:
G(x, y) = ∇ 2 G ∗ (x, y).
This is possible because for two dimensions, we have:
1
1
G ∗ (x, y) =
log
+ 1 r 2,
8π
r
(2.61)
(2.62)
and for three dimensions, we have:
G ∗ (x, y) =
1
r.
8π
(2.63)
Applying the Green’s second identity (2.11), we evaluate:
! 2 ∗"
∇ G f dV
G(x, y) f (y)dV(y) =
V
V
!
"
∂f
∂G ∗
=
G ∗ ∇ 2 f dV +
f − G∗
dS;
∂n
∂n
V
S
that is,
G(x, y) f (y)dV(y) =
V
S
∂G ∗
∗∂f
f −G
dS,
∂n
∂n
(2.64)
which transforms the domain integral into a boundary integral.
2.9.3 Use of Particular Solutions
In this approach, we simply seek to find a particular solution φ p of Eq. (2.1),
such that φ = φ c + φ p and:
∇ 2 φ p + f = 0, ∇ 2 φ c = 0.
(2.65)
Thus, the free term f is taken care of by the particular solution φ p . The problem is reduced to solving a Laplace equation for φ c under modified boundary
conditions.
2.10 Indirect Boundary Integral Equation Formulations
We can use the fundamental solutions to construct BIEs directly, without
using the Green’s identities. The BIEs constructed in this way often contain density functions that do not have direct physical meanings. Thus, these
BIEs are called indirect BIE formulations. For example, consider the following
integral representation:
φ(x) = G(x, y)σ (y)dS(y), ∀x ∈ V,
(2.66)
S
2.10 Indirect Boundary Integral Equation Formulations
37
which is called a single-layer potential [56]. It can be shown that φ(x) given by
(2.66) satisfies the Laplace equation [Eq. (2.1) with f = 0]. The density function
σ (y) has no clear physical meaning in this case. Field φ(x) can be determined
by Eq. (2.66) after the density function σ (y) is found on the boundary. Taking
the derivative of (2.66) and letting x approach boundary S, we can obtain the
following two BIEs:
φ(x) =
G(x, y)σ (y)dS(y),
∀x ∈ S,
(2.67)
S
∂φ
(x) =
∂n
S
∂G(x, y)
1
σ (y)dS(y) + σ (x),
∂n(x)
2
∀x ∈ S.
(2.68)
If we use (2.67) on Sφ where φ is given (Dirichlet BC), we obtain from (2.67):
φ(x) =
G(x, y)σ (y)dS(y),
∀x ∈ S,
(2.69)
S
which is an integral equation of the first kind. If we use (2.68) on Sq where q is
given (Neumann BC), we obtain from (2.68):
q(x) =
S
∂G(x, y)
1
σ (y)dS(y) + σ (x),
∂n(x)
2
∀x ∈ S,
(2.70)
which is an integral equation of the second kind. BEM equations based on
Eqs. (2.67) and (2.68) can be applied to solve for unknown density σ (y) over
the entire boundary S. Then, going back to the single-layer potential representation of φ(x) in Eq. (2.66), we can evaluate φ(x) everywhere inside the
domain V. This is one of the indirect BIE formulations in the BEM.
Starting with the following double-layer potential [56] representation:
φ(x) =
S
∂G(x, y)
µ(y)dS(y),
∂n(y)
∀x ∈ V,
(2.71)
we can formulate another indirect BIE formulation for potential problems.
The advantages of using indirect BIE formulations are that fewer integrals need to be computed to form the BEM system of equations, and better conditioning of the BEM equations can be achieved by selecting integral
equations of the second kind based on the boundary conditions. The disadvantage of using indirect BIEs is obvious, in that the density functions σ (y)
and µ(y) are not the physical quantities directly, and a postprocessing step is
needed to obtain the field φ(x), which can offset the savings in forming the
BIE equations. In addition, better conditioning can always be achieved with a
combination of the CBIE and HBIE (direct BIEs), as discussed later.
38
Conventional Boundary Element Method for Potential Problems
Start
Initiate parameters
Read in the BEM model
(prep_model.f)
Compute the right-hand-side vector in Aλ = b
(bvector.f)
Form the coefficient matrix in Aλ = b
(coefficient.f)
Figure 2.10. Flowchart for a conventional
BEM program for solving 2D potential problems.
Call LAPACK direct solver
(dgesv.f)
Evaluate fields inside the domain
(domain_field.f)
Output the results
Stop
2.11 Programming for the Conventional Boundary
Element Method
A sample program written in Fortran for solving general 2D potential problems is provided in Appendix B.1. In the conventional BEM approach, we
need to first form the BEM system of equations, as shown in Eq. (2.31), then
use a direct solver (e.g., using Gauss elimination) or an iterative solver (e.g.,
the generalized minimal residual method [GMRES]) to solve the linear systems, and finally we evaluate the field inside the domain if needed.
The flowchart as shown in Figure 2.10 is typical for conventional BEM
programs using the Fortran language. The main components of a BEM program are subroutines for reading the model data (nodes, elements, BCs, and
field points inside the domain), computing the right-hand-side vector b, computing the coefficients to form the system matrix A, solving the system of
equations (in this case, using the direct solver from LAPACK), evaluating
the field values inside the domain when needed, and writing the output files.
2.12 Numerical Examples
39
a
Figure 2.11. A simple potential problem in an annular
region V.
O
V
Sa
Sb
The subroutines indicated in the flowchart in Figure 2.10 are those given in
Appendix B.1 for the program for solving general 2D potential problems with
the CBIE and using constant elements. Programs for other problems or using
other types of elements may need a few additional subroutines, such as those
for numerical integration of singular and nonsingular integrals.
For a beginner in BEM research and development, it is very important
and beneficial if he or she can write a 2D BEM code using the conventional
BEM approach first, so that he or she can understand the structure of a BEM
program and implementation of its major components. The program provided
in Appendix B.1 can serve as a starting point. Explanations of the main program, subroutines, and main variables are provided within the code. A sample
input file is also provided in Appendix B.3, which can be used as a template
to prepare input files for other 2D potential problems. In this program, all the
integrals, including the singular ones, are computed with the analytical results
given in Appendix A.1, which is possible only with constant elements.
2.12 Numerical Examples
A few examples are given in this section to show the accuracy of the BEM for
solving potential problems. More examples, especially those involving largescale problems, are given in the next chapter related to the fast multipole
BEM.
2.12.1 An Annular Region
We first consider a simple potential (e.g., heat conduction) problem in a 2D
annular region, as shown in Figure 2.11, for which the available analytical
solution can be used to verify the BEM results. The BEM program given
in Appendix B.1 is used in this study. The field φ is given on the inner
boundary Sa , and the normal derivative is given on the outer boundary Sb.
b
40
Conventional Boundary Element Method for Potential Problems
Table 2.1. Results of the potential and
normal derivative for the annular region
N
qa
φb
36
72
360
720
1440
2400
4800
7200
9600
−401.7715
−400.4007
−400.0148
−400.0036
−400.0005
−400.0006
−400.0006
−399.9982
−399.9969
376.7236
377.1410
377.2548
377.2579
377.2586
377.2588
377.2589
377.2589
377.2589
Analytical solution −400.0000
377.2589
The analytical solution for this (axisymmetric) problem is given by:
#r $
φ(r ) = φa + qbb log
,
a
(2.72)
where φa and qb are the given values of φ and q on boundaries Sa and Sb,
respectively, and r is the radial coordinate in a polar-coordinate system centered at O. This gives:
b
b
∂φ
φb = φ(b) = φa + qbb log
, qa =
(a) = −qb .
(2.73)
a
∂n
a
For this problem, we choose a = 1, b = 2, φa = 100, and qb = 200. This
gives:
φb = 377.258872, qa = −400.0.
We discretize the inner and outer boundaries with the same number of elements. Table 2.1 shows the results of φb and qa for this problem as the total
number of elements increases from 36 to 9600. As we can see, the results for
the BEM converge quickly to the exact solution for the mesh with only 72 constant elements with a relative error of 0.1%. The results continue to improve
until reaching the mesh with 4800 elements. For the two larger meshes (with
7200 and 9600 elements), the results for qa deviate slightly from the exact solution, which may be caused by numerical errors that are due to the extremely
small elements in the mesh.
2.12.2 Electrostatic Fields Outside Two Conducting Beams
Next, we consider the electrostatic field surrounding two thin beams that are
applied with opposite voltages (Figure 2.12). This is an exterior problem that is
also governed by the Laplace equation. However, for this problem, a dual BIE
formulation that is a linear combination of CBIE (2.17) and HBIE (2.21) is
2.12 Numerical Examples
41
y
σ+
σ–
–σ –
h
L
+V
g
x
–V
+σ
+
L
h
d
Figure 2.12. Electrostatic field around two parallel beams.
used to overcome the difficulties associated with thin shapes if the CBIE is
applied alone [49, 57].
In Figure 2.12, the length of the beam is L, the thickness is h, and the
gap between the two beams is g. An offset d in the x direction also may be
introduced between the two beams. A potential (voltage) V is applied to the
top beam, and the negative potential (−V) is applied to the bottom beam. For
this problem, the analytical solution for the charge density σ − on the lower
surface of the top beam is given by (see, e.g., Ref. [58]):
σ− = ε
∂φ
V
2V
=ε
=ε
∂n
n
g
(2.74)
for the region away from the edges of the beams. This formula is used to verify
the BEM results.
The parameters used here are ε = 1, L = 0.01 m, h = 0.0001 m, g = 0.0011
m, d = 0, and V = 1. Constant elements are used. The number of elements
along the beam-length direction is increased from 10, 20, 50, to 100, and 5
elements are used on each edge (side) of the beams, corresponding to BEM
models with 30, 50, 110, and 210 elements per beam, respectively. The BEM
results obtained with the dual BIE formulations converge very quickly. Figure
2.13 shows the convergence of the BEM results for the charge densities on
the lower and upper surfaces of the top beam. In fact, the model with just 10
elements along the beam-length direction yields a value of σ − at the middle
of the lower surface of the top beam that agrees with the analytical solution
(σ − = 1818 in this case) within the first four digits.
Figure 2.14 shows the charge density on the top beam in the same parallel
beam model but with an offset d = g = 0.0011 m and using 210 elements per
beam. The charge densities in the middle of the beam remain the same (σ − =
1818), whereas the fields near the edges have marked changes. The charge
densities on the bottom beam have negative values and are “antisymmetrical”
relative to the results on the top beam and thus are not plotted.
3000
σ–
2800
σ+
2600
10 elements/length
10 elements/length
2400
20 elements/length
20 elements/length
50 elements/length
50 elements/length
100 elements/length
100 elements/length
2200
Charge density
2000
1800
1600
1400
1200
1000
800
600
400
200
0
–200
0
0.001
0.002
0.003
0.004
0.005
0.006
0.007
0.008
0.009
0.01
x (m)
Figure 2.13. Convergence of the BEM results obtained using a dual BIE on the top
beam in the parallel beam model (ε = 1, L = 0.01 m, h = 0.0001 m, g = 0.0011 m, d =
0, and V = 1).
3600
3400
3200
top beam
3000
σ−
top beam
σ+
2800
2600
Charge density
2400
2200
2000
1800
1600
1400
1200
1000
800
600
400
200
0
–200
0
0.001
0.002
0.003
0.004
0.005
0.006
0.007
0.008
0.009
0.01
x (m)
Figure 2.14. Charge density on the top beam in the parallel beam model with offset
(ε = 1, L = 0.01 m, h = 0.0001 m, g = 0.0011 m, d = g, V = 1, and 210 elements per
beam).
2.12 Numerical Examples
43
0.4
0
z
0.2
–0.2
–0.4
z
–0.4
–0.4
–0.2
–0.2
y
0
0
0.2
x
0.2
0.4
x
y
0.4
Figure 2.15. A cube meshed with 768 elements and with linear potential in the x
direction.
2.12.3 Potential Field in a Cube
Two 3D examples are given next using a BEM program with constant surface elements [59]. A cube is shown in Figure 2.15, which is a simple interior
problem used to show the accuracy of the 3D code with constant elements. The
cube has an edge length = 1 and is applied with a linear potential φ(x, y, z) = x
on all surfaces. The normal derivative q for this problem should be 1 on the
surface at x = 0.5 and −1 on the surface at x = −0.5.
Table 2.2 shows the results obtained with the conventional BEM and by
using the CBIE, HBIE, and dual BIE for BEM meshes with increasing numbers of elements. One can conclude from these results that the HBIE and the
dual BIE are equally as accurate as the CBIE. Note that constant triangular
elements are used in this study. If linear or quadratic elements were applied,
a few elements should have been sufficient for obtaining results with a similar
level of accuracy because of the specified linear field.
2.12.4 Electrostatic Field Outside a Conducting Sphere
A single conducting sphere model (Figure 2.16) is shown next. This is a simple
exterior problem with curved boundaries. The conducting sphere has a radius
44
Conventional Boundary Element Method for Potential Problems
Table 2.2. Results for the cube with a linear potential in the x direction
Model
Normal derivative at (0.5, 0, 0)
Elem/edge
Total DOFs
CBIE
HBIE
Dual BIE
2
4
8
12
16
20
24
48
192
768
1728
3072
4800
6912
1.08953
0.99124
0.99825
0.99908
0.99942
0.99959
0.99969
1.07225
1.00624
1.00438
1.00327
1.00260
1.00216
1.00185
1.06800
0.99754
0.99894
0.99934
0.99953
0.99963
0.99970
Exact Value
1.00000
a = 1, and a constant electric potential φ0 = 1 is applied on its surface. The
analytical solution of the electric field outside the sphere is φ = (a/r )φ0 , with r
being the distance from the center of the sphere, which gives a charge density
on the surface equal to 1, assuming the dielectric constant ε = 1.
Table 2.3 gives the BEM results of the charge density at the point (1, 0,
0) on the surface of the sphere. For this problem, the dual BIE is slightly less
accurate than the CBIE because of the curved surface that cannot be represented accurately by constant elements and can cause the evaluations of hypersingular integrals to be less accurate [59].
Several numerical examples for solving both 2D and 3D potential problems are presented in this subsection. Constant elements are used for all the
examples, and reasonably accurate BEM solutions are obtained. Linear or
quadratic elements can be applied to improve the accuracy of the BEM solutions (see problems). These examples are used again in the next chapter on
z
x
y
Figure 2.16. A spherical perfect conductor meshed with 4800 elements.
Problems
45
Table 2.3. Results for the single perfect
conducting sphere
Charge density at (1, 0, 0)
Model
DOFs
CBIE
Dual BIE
768
1728
3072
4800
6912
0.98749
0.99377
0.99634
0.99761
0.99832
0.95086
0.96609
0.97431
0.97937
0.98278
Exact Value
1.00000
the fast multipole solution techniques to demonstrate the computational efficiencies of the fast multipole BEM for solving large-scale problems.
2.13 Summary
In this chapter, the BIE formulations for solving potential problems are presented. It is shown that the partial differential equation (Poisson equation or
Laplace equation) can be transformed into BIEs with the help of the fundamental solution and the Green’s identity. Both the conventional BIE and the
hypersingular BIE formulations are discussed. Weakly singular forms of these
BIEs are also presented to show that singular integrals in the BIE formulations and therefore their BEM solutions can be avoided altogether if the integral terms are arranged properly. The discretization procedures are discussed
with constant, linear, and quadratic line elements for 2D problems and with
linear and quadratic surface elements for 3D problems. Programming for the
BEM using the conventional approach is discussed briefly, and several numerical examples are presented.
This chapter is the basis for all other chapters dealing with fast multipole
solution techniques for potential, elasticity, Stokes flow, and acoustic wave
problems. The basic ideas, BIE formulations, BEM discretization procedures,
programming, and solutions for those problems are similar to these discussed
in this chapter. Therefore, it is very important to understand all of the material
covered in this chapter before moving on to the following chapters.
Problems
2.1. Show that G(x, y) given by Eq. (2.5) does satisfy Eq. (2.4); that is,
∇ 2 G(x, y) = 0, for r = 0; and near r = 0, −∇ 2 G(x, y) behaves like a
%
δ(x, y) function. For example, − Vε ∇ 2 G(x, y)dV(y) = 1, where Vε is a
circular region centered at x with radius ε.
46
Conventional Boundary Element Method for Potential Problems
2.2. Verify that φ given by integral representation (2.12) does satisfy Poisson
equation (2.1).
2.3. Show that:
r,i j =
2.4.
2.5.
2.6.
2.7.
2.8.
2.9.
2.10.
2.11.
1
(δi j − r,i r, j ) ,
r
(2.75)
&
where r = (yi − xi )(yi − xi ) is the distance between source point x and
field point y.
Verify the second integral identity for the fundamental solution G(x, y)
given in (2.8).
Show that CBIE (2.17) and HBIE (2.21) are also valid for infinite domain
problems; that is, contributions of integrals on boundaries at infinity
should vanish.
Verify the weakly singular form of the CBIE in (2.25) using integral identity (2.7).
Verify formulas in Eqs. (2.40) for linear elements.
Show that the result in Eq. (2.42) is true for infinite domain problems
regardless of which type of element is used.
Applying the program in Appendix B.1, solve the cylinder problem
shown in Figure 2.11 by using a quarter-symmetry model and compare
your results with those presented in Table 2.1.
Develop a program (in Fortran, C/C++, or Matlab) using linear line elements for solving general 2D potential problems. You can start with the
program using constant elements given in Appendix B.1.
Develop a program (in Fortran, C/C++, or Matlab) using quadratic line
elements for solving general 2D potential problems. You can start with
the program using constant elements given in Appendix B.1.
3
Fast Multipole Boundary Element Method
for Potential Problems
Although the BEM has enjoyed the reputation of ease in modeling or meshing
for problems with complicated geometries or in infinite domains, its efficiency
in solutions has been a serious drawback for analyzing large-scale models. For
example, the BEM has been limited to solving problems with only a few thousand DOFs on a PC for many years. This is because the conventional BEM, as
described in the previous chapter, produces dense and nonsymmetric matrices that although smaller in sizes, require O(N 2 ) operations for computing
the coefficients and O(N 3 ) operations for solving the system by using direct
solvers (N is the number of equations of the linear system or DOFs).
In the mid-1980s, Rokhlin and Greengard [33–35] pioneered the innovative fast multipole method (FMM) that can be used to accelerate the solutions of BEM by severalfold, promising to reduce the CPU time in FMMaccelerated BEM to O(N). With the help of the FMM, the BEM can now solve
large-scale problems that are beyond the reach of other methods. We call the
fast multipole accelerated BEM fast multipole BEM or simply fast BEM from
now on to distinguish it from the conventional BEM described in the previous chapter. Some of the early work on fast multipole BEMs in mechanics can
be found in Refs. [36–40], which show the great promise of the fast multipole
BEM for solving large-scale problems. A comprehensive review of the fast
multipole BIE/BEM research up to 2002 can be found in Ref. [41].
In this chapter, the FMM for solving the BEM systems of equations for
potential problems is introduced. First, the fast multipole BEM for 2D potential problems is discussed in detail. Then, the fast multipole BEM for 3D
potential problems is introduced. Several examples of modeling large-scale
potential problems are provided. This chapter forms the basis for all subsequent chapters on fast multipole BEM approaches for elasticity, Stokes flow,
and acoustic wave problems.
47
48
Fast Multipole Boundary Element Method for Potential Problems
3.1 Basic Ideas in the Fast Multipole Method
To facilitate the discussion, the BEM system of equations (2.30) is repeated
here:
f12 · · · f1N
f11
φ1
g11 g12 · · · g1N
q1
q2
f
f
·
·
·
f
φ
g
g
·
·
·
g
21
21
22
2N
2
22
2N
.
.
=
. (3.1)
.
.
.
.
.
.
.
.
.
.
..
..
..
..
..
..
..
..
.
.
f N1 f N2 · · · f NN
φN
g N1 g N2 · · · g NN
qN
After the boundary conditions are applied, a standard linear system of equations [Eq. (2.31)] is formed as follows by switching the columns in the two
matrices in Eq. (3.1):
a11 a12 · · · a1N
λ1
b1
a21 a22 · · · a2N λ2 b2
.
(3.2)
..
.. .. = .. , or Aλ = b,
..
.
.
.
.
.
.
.
a N1 a N2 · · · a NN
λN
bN
where A is the coefficient matrix, λ is the unknown vector, and b is the known
right-hand-side vector. Obviously, the construction of matrix A requires
O(N 2 ) operations and the size of the required memory for storing A is also
O(N 2 ) because A is, in general, a nonsymmetric and dense matrix. The solution of the system in Eq. (3.2) by use of direct solvers such as Gauss elimination is even worse, requiring O(N 3 ) operations because of this general matrix.
Even with iterative solvers, the solution time is still O(N 2 ). That is why the
conventional BEM approach for solving BIEs is, in general, slow and inefficient for large-scale problems despite its robustness in the meshing stage as
compared with other domain-based methods.
The main idea of the fast multipole BEM is to apply iterative solvers (e.g.,
GMRES) to solve Eq. (3.2) and use the FMM to accelerate the matrix–vector
multiplication (Aλ) in each iteration, without ever forming the entire matrix
A explicitly. Direct integrations are still needed when the elements are close
to the source point, whereas fast multipole expansions are used for elements
that are far away from the source point. Figure 3.1 is a graphical illustration of
the fast multipole BEM compared with the conventional BEM. For the farfield calculations, the node-to-node (or element-to-element) interactions in
the conventional BEM [Figure 3.1(a)] are replaced with cell-to-cell interactions [Figure 3.1(b)] by a hierarchical tree structure of cells containing groups
of elements (in Figure 3.1, the dots indicate nodes and cells and the lines indicate the interactions needed). This is possible by use of the multipole and local
expansions of the integrals and some translations that are discussed in the following section. The numbers of lines represent the computational complexities
3.1 Basic Ideas in the Fast Multipole Method
49
(b)
(a)
Figure 3.1. A graphical illustration of (a) the conventional BEM approach [O(N 2 )],
and (b) the fast multipole BEM [O(N) for log N].
of the two approaches, and a dramatic decrease of operations in the fast multipole BEM is obvious from this illustration.
A fundamental reason for the reduction in operations in the fast multipole
BEM, as shown in Figure 3.1(b), is due to the fact that the Green’s functions
or the kernels in the BIEs can be expanded in the following form:
y
G(x, y) =
Gix (x, yc )Gi (y, yc ),
(3.3)
i
where yc is an expansion point. This can be achieved by use of various forms
of expansions, including but not limited to Taylor series expansions. By using
an expansion as in Eq. (3.3), we can write the original integral, such as the one
with the G kernel in CBIE (2.17), as:
y
x
G(x, y)q(y)dS(y) =
Gi (x, yc )
Gi (y, yc )q(y)dS(y),
(3.4)
Sc
i
Sc
where Sc is a subset of S away from x. In the conventional BEM, the integral is
computed with the expression on the left-hand side of Eq. (3.4) directly. Any
changes in the location of the source point x will require reevaluation of the
entire integral. In the fast multipole BEM, when the source point x is far away
from Sc , the original integral is computed with the expression on the righthand side of Eq. (3.4), in which the new integrals need to be evaluated only
once, independent of the locations of the source point x. That is, the direct
relation between x and y is cut off by use of the expansion and introduction
of the new “middle” point yc . Additional expansions and translations, as well
as the hierarchical tree structure of the elements, are introduced in the fast
multipole BEM to further reduce the computational costs.
Using the FMM for the BEM, we can reduce the solution time to O(N)
for large-scale problems [41]. We can also reduce the memory requirement
to O(N) because, with iterative solvers, the entire matrix does not need to be
stored in the memory. This drastic improvement in computing efficiency has
presented many opportunities for the BEM. Large BEM models with a couple
50
Fast Multipole Boundary Element Method for Potential Problems
Sc
n
z
r
zc
Figure 3.2. Complex notation and the related
points for fast multipole expansions.
2
0
zc ′
z0
zL′
zL
1
million DOFs that could not be solved by the conventional BEM before can
now be solved readily by using the fast multipole BEM within hours on a PC
or BEM models with tens of millions of DOFs on a supercomputer.
3.2 Fast Multipole Boundary Element Method
for 2D Potential Problems
In this section, we first discuss the expansions that are used in the FMM for
2D potential problems. Then, the main procedures and algorithms in the fast
multipole BEM are described.
We first consider the following integral with the G kernel in CBIE (2.17):
G(x, y)q(y)dS(y),
(3.5)
Sc
in which Sc is a subset of boundary S and away from the source point x.
For convenience, we introduce complex notation; that is, we replace the
source point:
x ⇒ z0 = x1 + i x2
and the field point:
y ⇒ z = y1 + i y2
in the complex plane, where i =
tion, we can write:
√
−1 (Figure 3.2). Using the complex nota-
G(x, y) = Re{G(z0 , z)},
(3.6)
where:
G(z0 , z) = −
1
log(z0 − z)
2π
(3.7)
3.2 Fast Multipole Boundary Element Method for 2D Potential Problems
is the fundamental solution in complex notation and Re{ } indicates the real
part of the variable or function. Thus, the integral in (3.5) is equivalent to the
real part of the following integral:
G(z0 , z)q(z)dS(z),
(3.8)
Sc
where q(z) is still a real-valued function of complex variable z.
We now introduce several important concepts in the FMM that form the
building blocks for the fast multipole BEM.
3.2.1 Multipole Expansion (Moments)
The first idea is to expand the kernel function to see if we can separate the
source point z0 (x) and field point z (y). To do this, we introduce an expansion
point zc that is close to the field point z (Figure 3.2); that is, |z − zc | |z0 − zc |.
We can write:
1
1
z − zc
G(z0 , z) = −
log(z0 − z) = −
log(z0 − zc ) + log 1 −
. (3.9)
2π
2π
z0 − zc
Applying the following Taylor series expansion:
log(1 − ξ ) = −
∞ ξk
,
k=1 k
for |ξ | < 1,
(3.10)
to the second logarithmic term on the right-hand side of Eq. (3.9), we obtain:
G(z0 , z) =
1
2π
∞
Ok (z0 − zc )Ik (z − zc ).
(3.11)
k=0
We previously introduced two auxiliary functions Ik (z) and Ok (z) defined by:
zk
, for k ≥ 0;
k!
(k − 1)!
Ok (z) =
, for k ≥ 1;
zk
Ik (z) =
(3.12)
O0 (z) = − log(z).
and
The derivatives of functions Ik (z) and Ok (z) satisfy:
Ik (z) = Ik−1 (z),
Ok (z) = −Ok+1 (z),
for k ≥ 1;
and
I0 (z) = 0;
for k ≥ 0 .
(3.13)
In addition, we have the following two results:
k
Ik (z1 + z2 ) =
k
Ik−l (z1 )Il (z2 ) =
l=0
∞
Ok (z1 + z2 ) =
Il (z1 )Ik−l (z2 );
l=0
l
(−1) Ok+l (z1 )Il (z2 ),
l=0
(3.14)
for |z2 | < |z1 | .
51
52
Fast Multipole Boundary Element Method for Potential Problems
The first equation is simply the binomial formula and the second is simply a
Taylor series expansion of Ok about point z1 .
Note that in the G kernel given in Eq. (3.11), z0 and z are now separated
because of the introduction of the “middle point” zc , which is a key in the
FMM. The integral in (3.8) is now evaluated as follows:
G(z0 , z)q(z)dS(z) =
Sc
1
2π
∞
Ok (z0 − zc )Ik (z − zc ) q(z)dS(z);
Sc
k=0
that is, the multipole expansion:
1
G(z0 , z)q(z)dS(z) =
2π
Sc
where:
∞
Ok (z0 − zc )Mk (zc ),
(3.15)
k=0
Mk (zc ) =
Ik (z − zc )q(z)dS(z),
k = 0, 1, 2, . . . ,
(3.16)
Sc
are called moments about zc , which are independent of the collocation point z0
and need to be computed only once. After these moments are obtained, the G
kernel integral can be evaluated readily by using Eq. (3.15) for any collocation
point z0 away from Sc (which will be within a cell centered at zc ).
We can evaluate the moments analytically by using the complex notation
on constant elements. Suppose we have a line element starting at point za and
ending at zb. From Eq. (3.16), the contribution to the moment from this element can be evaluated as:
zb
zb
(e)
Mk (zc ) =
Ik (z − zc )q(z)dS(z) = qe
Ik (z − zc )dS(z)
za
= qe
za
zb
za
(z − zc )k
dS(z),
k!
(3.17)
in which qe is the nodal value of q on this element. Notice the relation:
dy1
dy2
+i
dS = ωdS,
(3.18)
dz = dy1 + idy2 =
dS
dS
where ω is the complex (unit) tangential vector along the boundary S. Using
this relation, we can evaluate the preceding moment contribution as:
(e)
Mk (zc ) = qe
zb
za
(z − zc )k
ωdz = qe ω [Ik+1 (zb − zc ) − Ik+1 (za − zc )] , (3.19)
k!
where ω is the complex conjugate of ω. This analytical result can facilitate
very efficient and accurate evaluations of the moments defined in Eq. (3.16)
for constant elements.
3.2 Fast Multipole Boundary Element Method for 2D Potential Problems
3.2.2 Error Estimate for the Multipole Expansion
Errors in the multipole expansion are controlled by the number of terms used
in the expansion in (3.11). An error bound can be derived readily for this multipole expansion (cf. results in Ref. [35]). If we apply a multipole expansion with
p terms in Eq. (3.15), we have for the error bound:
p
1
p
EM ≡ G(z0 , z)q(z)dS(z) −
Ok (z0 − zc )Mk (zc )
Sc
2π
k=0
∞
1
Ok (z0 − zc )Mk (zc )
=
2π
k= p+1
≤
1
2π
1
≤
2π
≤
≤
1
2π
A
2π
∞
k= p+1
∞
Ok (z0 − zc ) Mk (zc )
Ok (z0 − zc ) Ik (z − zc )q(z)dS(z)
Sc
k= p+1
∞
Ok (z0 − zc )
Sc
k= p+1
∞
k= p+1
Ik (z − zc ) q(z) dS(z)
k
Ok (z0 − zc ) R
k!
∞
(k − 1)! Rk
A
≤
k k!
2π
|z − zc |
k= p+1 0
∞
Rk
|z − zc |k
k= p+1 0
=
A
2π
=
1
A
Rp+1
,
2π |z0 − zc | p+1 1 − R/|z0 − zc |
in which R is the radius of a region centered at zc such that:
q(z) dS(z).
|z − zc | < R and A ≡
(3.20)
Sc
Let ρ = |z0 − zc |/R; the preceding estimate of the error bound can be written
as:
p
A
1
1
p
.
(3.21)
EM ≤
2π (ρ − 1) ρ
We notice from estimate (3.21) that the larger the value of ρ, the smaller the
value of this estimate of the error bound. If ρ ≥ 2 – that is, when |z0 − zc | ≥
2R – we have the following estimate:
p
EM
A
≤
2π
p
1
.
2
(3.22)
53
54
Fast Multipole Boundary Element Method for Potential Problems
An error bound can be used to estimate the number (p) of the expansion terms
so that it can be determined automatically by the computer program.
3.2.3 Moment-to-Moment Translation
If the expansion point zc is moved to a new location zc (Figure 3.2), we can
apply a translation to obtain the moment at the new location without recomputing the moment by using Eq. (3.16). We obtain this translation by considering the following for the moments:
Mk (zc ) =
Ik (z − zc )q(z)dS(z)
Sc
Ik [(z − zc ) + (zc − zc )] q(z)dS(z).
=
Sc
Applying the binomial formula or the first equation in Eq. (3.14), we obtain:
k
Mk (zc ) =
Ik−l (zc − zc )Ml (zc ).
(3.23)
l=0
This is the moment-to-moment (M2M) translation for the moments in which zc
is moved to zc . Note that there are only a finite number of terms needed in
this translation; that is, no additional truncation error is introduced in M2M
translations.
3.2.4 Local Expansion and Moment-to-Local Translation
Next, we introduce another expansion, the so-called local expansion about
the source point z0 (x). Suppose zL is a point close to the source point z0
(Figure 3.2); that is, |z0 − zL| |zL − zc |. From the multipole expansion in
Eq. (3.15), we have:
∞
1
G(z0 , z)q(z)dS(z) =
Ok (z0 − zc )Mk (zc )
2π
Sc
=
1
2π
k=0
∞
Ok [(zL − zc ) + (z0 − zL)] Mk (zc ).
k=0
Applying the second equation in Eq. (3.14) with z1 = zL − zc and z2 = z0 − zL,
we obtain the following local expansion:
∞
1
G(z0 , z)q(z)dS(z) =
Ll (zL)Il (z0 − zL),
(3.24)
2π
Sc
l=0
where the local expansion coefficients Ll (zL) are given by the following
moment-to-local (M2L) translation:
∞
Ll (zL) = (−1)l
Ol+k (zL − zc )Mk (zc ).
k=0
(3.25)
3.2 Fast Multipole Boundary Element Method for 2D Potential Problems
Similar to the multipole expansion, an estimate of the error bound for a
local expansion with p terms from Eq. (3.24) can be found as follows [35]:
p
1
p
Ll (zL)Il (z0 − zL)
EL ≡ G(z0 , z)q(z)dS(z) −
Sc
2π
l=0
p+1
∞
A 4e( p + ρ)(ρ + 1) + ρ 2
1
1
Ll (zL)Il (z0 − zL) ≤
=
2π
2πρ(ρ
−
1)
ρ
l= p+1
(3.26)
for any p ≥ max{2, 2ρ/(ρ − 1)}, where e is the base of the natural logarithm,
and A and ρ are as defined for estimate (3.21).
It is interesting to note that we can also derive the preceding results in
Eqs. (3.24) and (3.25) for the local expansion by starting from the following
expression:
G(z0 , z) = −
1
1
log(z0 − z) =
2π
2π
∞
Ok (z − zL)Ik (z0 − zL),
(3.27)
k=0
which is a Taylor series expansion of G(z0 , z) about the point z0 = zL that we
can establish readily by using the Taylor series expansion as in Eq. (3.10). This
expansion is symmetrical to the one in Eq. (3.11), which is an expansion of
G(z0 , z) about the point z = zc .
We start with the expansion in Eq. (3.27) and evaluate:
G(z0 , z)q(z)dS(z)
Sc
∞
1
=
Ok (z − zL)q(z)dS(z) Ik (z0 − zL)
2π
Sc
k=0
1
=
2π
=
1
2π
∞
Ok ((z − zc ) + (zc − zL)) q(z)dS(z) Ik (z0 − zL)
k=0
∞
Sc
∞
(−1)l Ok+l (zc − zL)Il (z − zc )q(z)dS(z) Ik (z0 − zL),
k=0
Sc l=0
where zc is an expansion point near z with |z − zc | |zL − zc | and the second
relation in Eq. (3.14) has been applied. That is:
G(z0 , z)q(z)dS(z)
Sc
1
=
2π
∞
∞
(−1) Ok+l (zc − zL)
Il (z − zc )q(z)dS(z) Ik (z0 − zL).
l
k=0
l=0
Sc
(3.28)
Invoking the definition of the moment in Eq. (3.16), we can obtain Eqs. (3.24)
and (3.25) for the local expansion from Eq. (3.28). This suggests that we can
also establish the local expansion directly by simply defining the moment
55
56
Fast Multipole Boundary Element Method for Potential Problems
by using Eq. (3.16) without introducing the multipole expansion as given in
Eq. (3.15).
3.2.5 Local-to-Local Translation
If the point for local expansion is moved from zL to zL (Figure 3.2), we
have the following expression by using a local expansion with p terms from
Eq. (3.24):
p
1
G(z0 , z)q(z)dS(z) ∼
Ll (zL)Il (z0 − zL)
=
2π
Sc
1
=
2π
l=0
p
Ll (zL)Il [(z0 − zL ) + (zL − zL)].
l=0
Applying the first result in Eq. (3.14) and the relation
p p
l=m , we obtain:
m=0
p
1
G(z0 , z)q(z)dS(z) ∼
Ll (zL )Il (z0 − zL ),
=
2π
Sc
p l
l=0
m=0
=
(3.29)
l=0
where the new coefficients are given by the following local-to-local (L2L)
translation:
p
Ll (zL ) =
Im−l (zL − zL)Lm (zL).
(3.30)
m=l
Replacing m − l with m, we can also write (3.30) in an alternative form:
p−l
Ll (zL ) =
Im (zL − zL)Ll+m (zL).
(3.31)
m=0
Note again that L2L translations involve only finite sums and do not introduce
any new source of errors once the number of the local expansion terms p is
fixed.
3.2.6 Expansions for the Integral with the F Kernel
We now consider the integral with the F kernel in CBIE (2.17) in complex
notation:
F(z0 , z)φ(z)dS(z),
(3.32)
Sc
where φ(z) is still a real-valued function of complex variables z, and F(z0 , z) is
the F kernel in complex notation and can be written as:
F(z0 , z) =
∂G
= (n1 + in2 )G = n(z)G ,
∂n
with G ≡
∂G
.
∂z
(3.33)
3.2 Fast Multipole Boundary Element Method for 2D Potential Problems
Thus, the F kernel in real variables can be expressed as:
F(x, y) = Re{F(z0 , z)} = n1 Re G − n2 Im G .
(3.34)
From Eq. (3.11), we have:
G =
1
2π
∞
Ok (z0 − zc )Ik−1 (z − zc ),
(3.35)
k=1
and the integral in Eq. (3.32) becomes:
F(z0 , z)φ(z)dS(z) =
Sc
in which:
'k (zc ) =
M
1
2π
∞
'k (zc ),
Ok (z0 − zc ) M
(3.36)
k=1
n(z)Ik−1 (z − zc )φ(z)dS(z),
k = 1, 2, 3, . . . ,
(3.37)
Sc
are the moments for the F kernel integral, similar to those in Eq. (3.16) for the
G kernel integral.
Again, on a constant element starting at point za and ending at zb, we can
evaluate the contribution to this moment analytically by using the relation in
Eq. (3.18):
zb
(e)
'
n(z)Ik−1 (z − zc )φ(z)dS(z) = φe nω [Ik (zb − zc ) − Ik (za − zc )] ,
Mk (zc ) =
za
(3.38)
where φe is the nodal value of φ on this element.
The M2M, M2L, and L2L translations remain the same for the F kernel
'0 = 0. Therefore, all the translations used for Mk are
integral, except that M
'k directly.
applied for M
3.2.7 Multipole Expansions for the Hypersingular Boundary
Integral Equation
For the two integrals in HBIE (2.21), we can obtain the multipole expansions
by directly taking derivatives of the related integrals in the CBIE. For example, for the K kernel integral, we have the following relations:
∂G
∂G
,
= n(z0 )
∂n(z0 )
∂z0
∂
K(z0 , z)q(z)dS(z) = n(z0 )
G(z0 , z)q(z)dS(z)
∂z0 Sc
Sc
K(z0 , z) =
=
1
n(z0 )
2π
∞
Ll (zL)Il−1 (z0 − zL),
l=1
(3.39)
57
58
Fast Multipole Boundary Element Method for Potential Problems
y
n
∆ Sj
V
Figure 3.3. Discretization of the boundary S by use of constant elements.
r
2
S
i (x)
1
by using Eq. (3.24) for the G kernel integral. That is, the local expansion for
the K kernel integral in the HBIE is given by:
K(z0 , z)q(z)dS(z) =
Sc
1
n(z0 )
2π
∞
Ll+1 (zL)Il (z0 − zL),
(3.40)
l=0
in which the same moments, M2M, M2L, and L2L translations for the G kernel
integral in the CBIE can be applied directly. The same relation exists between
the H kernel integral in the HBIE and the F kernel integral in the CBIE.
3.2.8 Fast Multipole Boundary Element Method Algorithms
and Procedures
We are now ready to discuss the algorithms in the FMM for solving 2D potential problems by using the BEM. These fast multipole algorithms are the basic
ones that can be extended readily to solve 3D potential problems and other
2D and 3D problems. Advanced algorithms, such as the adaptive algorithms,
that can further speed up the solutions of the BEM equations also exist in the
literature [60, 61].
An iterative solver, such as GMRES, is used to solve BEM equation (3.2).
Each equation in this system of equations represents the sum of the integrals
on all the elements when the source point is placed at one node. The FMM
is used to evaluate the integrals on those elements that are far away from the
source point, whereas the conventional approach is applied to evaluate the
integrals on the remaining elements that are close to the source point.
The detailed algorithms or procedures in the fast multipole BEM can be
described as follows:
Step 1. Discretization. For a given problem, discretize the boundary S in the
same way as in the conventional BEM approach. For example, we can
apply constant elements to discretize the boundary S of a 2D domain,
as shown in Figure 3.3.
3.2 Fast Multipole Boundary Element Method for 2D Potential Problems
19
20
18
59
17
21
16
15
22
14
23
13
24
12
25
11
26
10
9
27
8
28
29
2
30
1
3
4
5
6
7
2
3
0
1
Figure 3.4. A hierarchical cell structure covering all of the boundary elements (the
small square on the right-hand side shows the numbering scheme for the child cells of
any given cell).
Step 2. Determine a tree structure of the boundary element mesh. For a 2D
problem, we first consider a square that covers the entire boundary
S and call this square the cell of level 0 (Figure 3.4). Then, we start
dividing this parent cell into four equal child cells of level 1. Continue
dividing in this way the cells that contain elements. For example, take
a parent cell of level l and divide it into four child cells of level l + 1.
Stop dividing a cell if the number of elements in that cell is fewer than
a prespecified number (for illustration only, this number is taken as
1 in the example shown in Figure 3.4). A cell having no child cells is
called a leaf (e.g., the shaded cells in Figure 3.4). Note that the edge
length of a cell at level l is given by L/2l , with L being the length of the
edge of the largest cell at level 0. In this process, an element is considered to be within a cell if the center of the element is inside that cell. A
quad-tree structure of the cells covering all the elements is thus formed
after this procedure is completed (Figure 3.5).
Step 3. Upward pass. Compute the moments on all cells, at all levels with l ≥
2, with up to p terms, and trace the tree structure upward (Figure 3.6).
For a leaf, Eq. (3.16) is applied directly (with Sc being the set of the
60
Fast Multipole Boundary Element Method for Potential Problems
Cell level:
0
0
0
1
0
1
2
0
2
2
3
0
2
6
2
3
3
0
1
1
2
30 29
2
3
2
3
1
2
2
26
4
2
28 27
1
3
3
1
2
2
3
21
3
0
1
5
7
8
3
0
2
22
25
1
3
9
10
3
1
3
24 23
0
1
1
3
0
1
3
0
18 17
20 19
1
3
11 12
1
2
13 14
0
4
1
16 15
elements
Figure 3.5. A hierarchical quad-tree structure for the 2D boundary element mesh.
elements contained in the leaf and zc the centroid of the leaf). For a
parent cell, calculate the moment by summing the moments on its four
child cells using the M2M translation – that is, Eq. (3.23) – in which zc
is the centroid of the parent cell and zc is the centroid of a child cell.
Note that the moments need to be computed again for each new iteration of the solution because these moments involve the integration
Multipole expansion
M2M translation
Center of parent cells
Center of leaves
Figure 3.6. Upward pass: Multipole expansions and M2M translations (Step 3).
3.2 Fast Multipole Boundary Element Method for 2D Potential Problems
Cells in
interaction list
(M2L)
Cell C (direct)
Far cells
(L2L)
Adjacent cells
(direct)
Figure 3.7. Grouping of the cells for cell C at level l.
of the kernels and estimated boundary solutions from the previous
iteration.
Step 4. Downward pass. Let us first define a few terms used in describing the
downward pass (Figure 3.7). Two cells are said to be adjacent cells at
level l if they have at least one common vertex. (For two leaf cells
at different levels, if the parent cell of one of the leaf cells shares at
least a common vertex with the other leaf cell, they are also said to
be adjacent cells.) Two cells are said to be well separated at level l if
they are not adjacent at level l but their parent cells are adjacent at
level l − 1. The list of all the well-separated cells from a level l cell C
is called the interaction list of C. Cells are called to be far cells of C if
their parent cells are not adjacent to the parent cell of C.
In the downward pass, we compute the local expansion coefficients on all cells starting from level 2 and tracing the tree structure
downward to all the leaves (Figure 3.8). The local expansion associated
with a cell C is the sum of the contributions from the cells in the interaction list of cell C and from all the far cells. The former is calculated
by use of the M2L translation, Eq. (3.25), with moments associated
with cells in the interaction list. The latter is calculated by use of the
L2L translation, Eq. (3.30) or (3.31), for the parent cell of C with the
expansion point being shifted from the centroid of C’s parent cell to
that of C. For a cell C at level 2, we use only the M2L translation
to compute the coefficients of the local expansion. Figure 3.8 shows
how the local expansion coefficient is calculated through this downward pass for cell C where node 29 is located in our example model
(see Figure 3.4).
61
62
Fast Multipole Boundary Element Method for Potential Problems
Cell C
M2L translation
Level 2 cell center
(a)
M2L translation
L2L translation
Level 2 cell center
M2L at level 3
Level 3 cell center
Level 4 cell center
M2L at level 4
(b)
Figure 3.8. Downward pass: M2L and L2L translations (Step 4). (a) Level 2 cells;
(b) levels 3 and 4 cells.
3.2 Fast Multipole Boundary Element Method for 2D Potential Problems
Direct evaluation
Local expansion
Level 3 cell center
Level 4 cell center
Collocation point
Node 29
A leaf cell (adjacent
to cell C)
Figure 3.9. Evaluation of all the integrals for a collocation point (Step 5).
Step 5. Evaluation of the integrals. We use the G kernel integral in Eq. (3.8) as
an example. Suppose the collocation point z0 is on an element in leaf C
(see Figure 3.7). We compute the contributions from elements in leaf
C and its adjacent cells directly as in the conventional BEM.
We compute contributions from all other cells (cells in the interaction list of C and far cells) by using the local expansion; that is, Eq.
(3.24). We do this by using the local expansion coefficients for cell C,
which were computed in Step 4, and shifting the expansion point from
the centroid of C to the collocation point z0 (see Figure 3.6). That is,
the integral is decomposed as follows:
G(z0 , z)q(z)dS(z) =
GqdS +
GqdS,
(3.41)
S
S Near
S Far
where the integral on S Near (cell C and its adjacent cells) is done
by direct integration as in the conventional BEM, and the integral on
S Far (cells in the interaction list and far cells for cell C) is done by the
FMM (M2L and L2L translations, respectively). Figure 3.9 shows how
the evaluation of all the integrals is done for node 29 in our example
model (see Figure 3.4).
Step 6. Iterations of the solution. The iterative solver updates the unknown
solution vector λ in the system Aλ = b and continues at Step 3 to evaluate the next matrix and vector multiplication (Aλ) until the solution
of λ converges within the given tolerance.
63
64
Fast Multipole Boundary Element Method for Potential Problems
The fast multipole algorithm discussed in this section is the original algorithm, which is efficient for BEM models in which the elements are about the
same size and distributed uniformly in a bulky domain. For BEM models with
nonuniform element distributions and especially with large elements adjacent
to smaller elements, the so-called adaptive FMMs are more efficient, in which
the definitions of the adjacent cells and cells in the interaction list are further
refined. Discussions on the adaptive algorithms can be found in Refs. [60, 61].
3.2.9 Preconditioning
Applying a good preconditioner for the iterative solver is very beneficial, if
not crucial, for the convergence of the iterative solutions and the computational efficiency. Unlike that of the direct solver, the CPU time used by an
iterative solver in solving a linear system of equations is unpredictable. The
solution can converge within a few iterations for some cases, whereas it takes
a few hundred iterations in other cases, depending on the conditioning of the
system. It has been found that the number of iterations is directly related to
the condition number of the system of equations to be solved with iterative
solvers. To accelerate the iterative solution process – that is, to reduce the
number of iterations for a given tolerance – a preconditioning matrix can be
introduced to improve the conditioning of the BEM system matrix.
A simple and effective choice is to use a block diagonal preconditioner in
the form:
A1 0
0
··· 0
0
A2 0
··· 0
,
0
0
A
·
·
·
0
3
M=
(3.42)
..
..
..
..
. 0
.
.
.
0
0
0
0
An
in which Ai is a submatrix of A with the coefficient formed on a leaf by direct
evaluation of the integrals within that leaf. Using the preconditioner matrix M,
we change the original system:
Aλ = b
(3.43)
! −1 "
M A λ = M−1 b
(3.44)
to
for left preconditioning, or to:
!
"
AM−1 (Mλ) = b
(3.45)
for right preconditioning, both of which can potentially yield better conditioned systems. Other forms of the preconditioners are also available, and it
3.3 Programming for the Fast Multipole Boundary Element Method
is still an important research topic to find a better preconditioner for the fast
multipole BEM in many applications. Further discussion on the preconditioners for multidomain and elasticity problems is provided in the next chapter
after the discussion of the fast multipole BEM for elasticity problems.
3.2.10 Estimate of the Computational Complexity
When the size of a BEM model is large, the estimated cost of the entire process
just described for the fast multipole BEM is O(N), with N being the number of
elements or nodes, if the number of terms p in the multipole and local expansions and the maximum number of elements maxl allowed in a leaf are kept
constant [41]. This claim on the O(N) complexity of the fast multipole BEM
is based on the following observations:
r N = number of leaves in the mesh ∼
= N/maxl = O(N)
leaf
r N = number of cells ∼
N
×
(1
+
1/4 + 1/42 + 1/43 + · · · +) ≤ Nleaf ×
= leaf
cell
(4/3) = O(N)
r Number of adjacent cells = 9; number of cells in the interaction list = 27
(for 2D models)
r Number of operations in computing multipole moments = p × maxl ×
Nleaf = O(N)
r Number of operations in upward pass = Ncell × 4 × p2 = O(N)
r Number of operations in downward pass = N × p2 (L2L) + 27 × p2
cell
(M2L)] = O(N)
r Number of operations in local expansions = N × p = O(N)
r Number of operations in direct evaluation of the integrals = N × 9 ×
maxl = O(N)
All the preceding estimates are at most O(N); therefore, the total computational cost is also O(N). These estimates will be slightly different for 3D
cases and for dynamic problems. This O(N) efficiency in computing for the
fast multipole BEM is very significant when we solve large-scale problems, as
will be demonstrated later through the numerical examples.
3.3 Programming for the Fast Multipole Boundary Element Method
We now discuss the main structure of a fast multipole BEM code for solving
general 2D potential problems. This code, written in Fortran, is discussed in
Ref. [62] and is provided in Appendix B.2. This fast multipole BEM code for
general 2D potential problems can be used as the basis to develop fast multipole BEM programs for 3D potential, as well as 2D and 3D elasticity, Stokes
flow, and acoustic wave problems, using constant or higher-order elements.
65
66
Fast Multipole Boundary Element Method for Potential Problems
Start the program
Initiate parameters and
call FMM BEM
(fmmmain.f )
Read in the BEM model
(prep_model.f )
Construct the tree structure
(tree.f )
Compute the right-hand-side vector b
(fmmbvector.f )
upward.f
moment.f
dwnwrd.f
direct.f
msolve.f
Call GMRES solver to
solve Aλ = b
(dgmres.f )
matvec.f
Output the results
upward.f
moment.f
dwnwrd.f
direct.f
Stop
Figure 3.10. Flowchart for a fast multipole BEM program.
The flowchart of this fast multipole BEM code for the 2D potential code is
given in Figure 3.10. The chart shows the main tasks for the program and the
related subroutines (functions). The source code (dgmres.f) for the iterative
solver GMRES (SLATEC GMRES package) can be downloaded from the
netlib website (http://www.netlib.org/).
The program for the fast multipole BEM is much more involved than the
program for the conventional BEM because of the tree structure of the cells
and various expansions. Because of the restrictions of the SLATEC GMRES
solver, a large array is needed in the program to pass the variables to the
GMRES solver. Therefore, the main purpose of the main program is to allocate all the variables in this large array by calling the lpointer subroutine. Then,
the subroutine for the fast multipole BEM, fmmmain, is invoked, which can be
regarded as the starting point for the fast multipole BEM code. Explanations
3.3 Programming for the Fast Multipole Boundary Element Method
of all the main variables used in the program are given at the end of the main
program (see Appendix B.2). A few important subroutines in the program are
discussed in the following subsection, and other subroutines can be understood
readily by reading the source code directly.
3.3.1 Subroutine fmmmain
The fmmmain subroutine starts with calling subroutine prep model, which
reads in the data for the boundary nodes, elements, boundary conditions, and
field (interior) points from file input.dat (which is identical to the one used for
the conventional BEM code in Appendix B.1), and the additional parameters
used in the fast multipole expansions and solver GMRES from file input.fmm
(a sample file is given in Appendix B.3). It then generates the tree structure,
computes the right-hand-side b vector, solves the system of equations Aλ = b
using the GMRES solver, computes values at interior points, and finally outputs the results.
3.3.2 Subroutine tree
We create the quad-tree structure for the elements by calling the subroutine
tree, which is an essential piece of the entire code. The information of the
tree structure is stored in several arrays in the code. To understand how this
subroutine is used to create the tree structure, let us use the BEM model shown
in Figure 3.4 as the example.
Cells in the tree structure are numbered in the following way: The largest
cell at level 0 is called Cell 1, the four cells at level 1 are numbered 2, 3, 4, and
5, respectively, according to the order 0, 1, 2, 3, as shown in the side box in Figure 3.4. We continue in this way to level 2 cells and so on until we reach all the
leaves. Empty cells (without any elements) are ignored. Cell numbers for the
cells at levels 0, 1, and 2 for the model in Figure 3.4 are shown in Figure 3.11.
There are 30 elements in the model in Figure 3.4. The tree code sorts the
elements in each cell (using the nodes, which are at the centers of the elements), first in the y direction and then in the x direction (twice) by dividing
the elements into two groups according to the centerline in the related direction. This is done by invoking the subroutine bisec. Four child cells are formed
after this process, which continues until a leaf is reached (in this example, each
leaf contains only one element). The process can be illustrated as in Table 3.1,
which produces a tree structure with 4 levels, 53 cells, and 30 leaves, as shown
in Figure 3.5. The elements in the tree structure are rearranged (from left to
right as shown in Table 3.1 and Figure 3.5); this information is stored in array
ielem(k), which gives the original element number for the kth element in the
tree structure.
67
68
Fast Multipole Boundary Element Method for Potential Problems
Table 3.1. Regrouping the elements using the tree code for the model in Figure 3.4
Tree
level
Sequences of the elements in the tree structure
0
1
2
3
4
ielem(k)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
1 2 3 26 27 28 29 30 4 5 6 7 8 9 10 19 20 21 22 23 24 25 11 12 13 14 15 16 17 18
29 30 1 2 3 26 27 28 4 5 6 7 8 9 10 22 23 24 25 21 19 20 11 12 13 14 17 18 15 16
29 30 1 2 3 27 28 26 4 5 6 7 8 9 10 25 23 24 22 21 20 19 11 12 13 14 18 17 15 16
30 29 1 2 3 28 27 26 4 5 6 7 8 9 10 25 24 23 22 21 20 19 11 12 13 14 18 17 16 15
30 29 1 2 3 28 27 26 4 5 6 7 8 9 10 25 24 23 22 21 20 19 11 12 13 14 18 17 16 15
Five other arrays are used in the subroutine itree to store the additional
information for the tree structure: itree, loct, numt, ifath, and level.
Array itree(i) gives the cell location of the ith cell within its corresponding
tree level. At level l, the bounding square for the domain (Cell 0) is divided by
2l × 2l grids. The numbering of the 2l × 2l small squares starts from the lowerleft corner with numbers 0, 1, 2, 3, . . . , and so on, first in the x direction, then
in the y direction. For example, for Cell 5 in Figure 3.11, itree(5) = 3, and for
Cell 12, itree(12) = 8. Values of itree can be used to determine the locations
(coordinates) of the cells at all tree levels.
Cell 14 19
20
Cell 13
18
Cell 16
21
22
Cell 17
17
16
Cell 4
15
Cell 5
14
23
24 Cell 12
Cell 15
13
12
25
Cell 1
11
26
10
27
Cell 8
Cell 10
Cell 11
9
8
28
Cell 2
29
Cell 6 30
2
1
Cell 7
3
4
5
Cell6 3 7
Cell 9
Figure 3.11. Cell numbers for cells at levels 0, 1, and 2 for the model in Figure 3.4.
3.3 Programming for the Fast Multipole Boundary Element Method
Table 3.2. Values of the arrays defining the tree
structure for cells at levels 0, 1, and 2
Cell no. i
itree(i)
loct(i)
numt(i)
ifath(i)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
..
.
0
0
1
2
3
0
1
4
2
3
7
8
12
13
11
14
15
..
.
1
1
9
16
23
1
3
6
9
11
12
16
20
21
23
27
29
..
.
30
8
7
7
8
2
3
3
2
1
4
4
1
2
4
2
2
..
.
1
1
1
1
1
2
2
2
3
3
3
4
4
4
5
5
5
..
.
Array loct(i) indicates the starting place of the elements included in the
ith cell in the array ielem. For example, for Cell 15 in Figure 3.11, loct(15) =
23.
Array numt(i) gives the number of elements included in the ith cell. For
example, numt(3) = 7 for Cell 3 in Figure 3.11.
Array ifath(i) gives the cell number of the parent cell of the ith cell. For
example, ifath(1) = 0 for Cell 1 and ifath(11) = 3 for Cell 11 in Figure 3.11.
The values of the arrays itree, loct, numt, and ifath for cells at levels 0, 1,
and 2 for the model in Figure 3.11 are listed in Table 3.2, which we can use to
understand the meanings of these arrays and the tree structure generated by
the subroutine tree.
Finally, array level(l) is used to indicate the starting cell number of all
level l cells in the tree structure. For the model in Figure 3.11, level(1) = 2,
level(3) = 6, and level(3) = 18.
3.3.3 Subroutine fmmbvector
After the tree structure is formed, we compute the right-hand-side b vector
by using the fast multipole algorithms using the subroutine fmmbvector. We
do this only once by calling the subroutines upward and dwnwrd. For largescale models, using the FMM in computing the right-hand-side b vector can
69
70
Fast Multipole Boundary Element Method for Potential Problems
also save significant CPU time as compared with using the conventional direct
method, which is also O(N2 ).
3.3.4 Subroutine dgmres
The dgmres subroutine is the GMRES solver in the SLATEC package from
www.netlib.org. One does not need to understand the inner workings of this
GMRES iterative solver to apply this subroutine. To use this GMRES solver,
one needs to prepare only two subroutines: msolve and matvec, which are two
external subroutines for dgmres.
The msolve subroutine prepares a preconditioning matrix for the iterative solver GMRES. In this program, the preconditioning matrix is formed by
the block diagonal matrices based on the elements on the leaves. This preconditioning matrix is computed only once in the first iteration with the direct
method and stored for use in all other iterations. This matrix is stored in the
array rwork, and the related information (location and dimensions of each
diagonal block matrix) is stored in array iwork.
The matvec subroutine provides the algorithm for the matrix–vector multiplication (Aλ) using the fast multipole algorithms by simply calling the upward
and dwnwrd subroutines using the values for the solution vector from the previous iteration.
3.3.5 Subroutine upward
The upward subroutine calculates the multipole moments for all cells from
leaves up to cells at level 2, climbing the tree structure upward and by using
the boundary values from the previous iteration. For leaves, the moments are
computed directly using the definition by calling the subroutine moment. For
parent cells, M2M translations are applied to form the moments from the
moments on their child cells.
3.3.6 Subroutine dwnwrd
The dwnwrd subroutine calculates the local expansions of the two integrals
with G and F kernels at each source point. For far cells, the contributions are
calculated with L2L translations. For cells in the interaction list, the contributions are calculated with M2L translations. For neighboring cells, direct integrations are applied by calling the direct subroutine, which is a variation of the
coefficient subroutine used in the conventional BEM code (see Appendix B.1).
The 2D program just discussed can be extended readily to develop fast
multipole BEM programs for 3D potentials and 2D or 3D elasticity, Stokes
3.4 Fast Multipole Formulation for 3D Potential Problems
71
flow, and acoustic wave problems. For 3D problems, the major changes will
be in the tree structure, in which the quad-tree structure for 2D problems is
changed to an oct-tree structure.
3.4 Fast Multipole Formulation for 3D Potential Problems
In this section, the basic fast multipole expansions for 3D potential problems
are discussed. We can implement the 3D fast multipole BEM by extending
many of the results discussed in the previous sections for 2D potential problems. For example, the quad-tree structure for the elements in 2D problems
is extended to an oct-tree structure of elements in 3D problems, in which the
cells will be boxes and each parent cell will have eight child cells. The main
structure of a computer program for 3D problems remains the same as the
one discussed in the previous section for 2D problems.
First, we note that the kernel G(x, y) in Eq. (2.5) for 3D potential problems can be expanded as follows (see, e.g., Refs. [41, 61, 63]):
G(x, y) =
1
1
=
4πr
4π
∞
n
Sn,m (x − yc )Rn,m (y − yc ),
y − yc < x − yc ,
n=0 m=−n
(3.46)
where yc is the expansion center close to the field point y and the overbar
indicates the complex conjugate. The two functions Rn,m and Sn,m are called
solid harmonic functions, given by:
Rn,m (x) =
1
Pm (cos θ )eimφ r n ,
(n + m)! n
Sn,m (x) = (n − m)!Pnm (cos θ)eimφ
1
,
r n+1
(3.47)
(3.48)
where (ρ, θ, φ) are the coordinates of x used here in a spherical coordinate
system (specifically, x1 = ρ sin θ cos φ, x2 = ρ sin θ sin φ, x3 = ρ cos θ ) and Pnm
is the associated Legendre function. In this book, the following definition of
the associated Legendre function is applied [64]:
Pnm (x) = (1 − x 2 )m/2
dm
Pn (x),
dx m
(3.49)
where Pn (x) is the Legendre polynomials of degree n [64]. In the literature, a
slightly different definition exists for the associate Legendre function, in which
a factor (−1)m is added to the right-hand side of Eq. (3.49).
72
Fast Multipole Boundary Element Method for Potential Problems
The kernel F(x, y) for 3D potential problems can also be expanded as
follows:
F(x, y) =
=
∂G(x,y)
∂n(y)
1
4π
∞
n
Sn,m (x − yc )
n=0 m=−n
∂ Rn,m (y − yc )
,
∂n(y)
y − yc < x − yc .
(3.50)
Applying expansions in Eqs. (3.46) and (3.50), we can evaluate the G and F
integrals in CBIE (2.17) on Sc (a subset of S that is away from source point x)
as follows:
∞
n
1
G(x,y)q(y)dS(y) =
Sn,m (x − yc )Mn,m (yc ), y − yc < x − yc ,
4π
Sc
n=0 m=−n
(3.51)
∞
n
1
'n,m (yc ), y − yc < x − yc ,
F(x,y)φ(y)dS(y) =
Sn,m (x − yc ) M
4π
Sc
n=0 m=−n
(3.52)
'n,m are the multipole moments centered at yc and defined
where Mn,m and M
as:
Rn,m (y − yc )q(y)dS(y),
(3.53)
Mn,m (yc ) =
'n,m (yc ) =
M
Sc
Sc
∂ Rn,m (y − yc )
φ(y)dS(y).
∂n(y)
(3.54)
When the multipole expansion center is moved from yc to yc , we apply the
following M2M translation:
n
n
Mn,m (yc ) =
Rn,m (y − yc )q(y)dS(y) =
Sc
Rn ,m (yc − yc )Mn−n ,m−m (yc ),
n =0 m =−n
(3.55)
'n,m .
which is also valid for M
The local expansion for the G kernel integral on Sc is given as:
G(x,y)q(y)dS(y) =
Sc
1
4π
∞
n
Rn,m (x − x L)Ln,m (x L),
(3.56)
n=0 m=−n
where the local expansion coefficients Ln,m (x L) are given by the following M2L
translation:
∞
Ln,m (x L) = (−1)
n
n
Sn+n ,m+m (x L − yc )Mn ,m (yc ), |x − x L| < yc − x L,
n =0 m =−n
(3.57)
in which x L is the local expansion center.
3.4 Fast Multipole Formulation for 3D Potential Problems
73
The local expansion center can be shifted from x L to x L by the following
L2L translation:
∞
n
Ln,m (x L ) =
Rn −n,m −m (x L − x L)Ln ,m (x L).
(3.58)
n =n m =−n
A similar local expansion and the same M2L and L2L translations are also
'n,m .
valid for the F kernel integral with the moment M
For HBIE (2.21) in three dimensions, we can obtain the local expansions
for the K and H integrals by taking the normal derivatives of the local expansions for the G and F integrals, respectively. For example, we have for the K
kernel integral:
K(x,y)q(y)dS(y) =
Sc
1
4π
∞
n=0
n
∂ Rn,m (x − x L)
Ln,m (x L),
∂n(x)
m=−n
(3.59)
with Mn,m in M2L translation (3.57). A similar local expansion exists for the
H kernel integral in the HBIE. Therefore, the same moments, M2M, M2L,
and L2L translations used for the G and F integrals in the CBIE can be used
directly for the K and H integrals in the HBIE.
As mentioned previously, the implementation of the fast multipole BEM
for 3D problems can be done readily by extending the results from the 2D
case. First, the quad-tree structure used for 2D domains is replaced with an
oct-tree structure, in which each cell in the oct-tree structure is a cube or a
box. A parent cell will contain eight child cells for 3D problems. Other data
structures are similar to those in the 2D case, and the 2D fast multipole BEM
code discussed in the previous section can be modified readily to develop a
code for solving 3D potential problems.
However, the fast multipole BEM for 3D problems is much more computing intensive than that for 2D problems because of the complexities of
the expansions and translations required in the formulation. Careful considerations are needed in the computation of these expansions and translations;
for example, using various recursive relations in evaluating the solid harmonic functions [63]. Adaptive algorithms [60, 61] based on further refined
tree structures and a new version of the FMM using diagonal translations
[61, 65, 66] have also been developed that can significantly improve the computational efficiencies for solving large-scale 3D potential problems.
An adaptive fast multipole BEM code for solving 3D potential problems based on the work in Ref. [61] can be found at the author’s website
(http://urbana.mie.uc.edu/yliu/Software), where the program and sample input
files can be downloaded. This adaptive FMM BEM code is used in solving all
the 3D examples in the following section.
74
Fast Multipole Boundary Element Method for Potential Problems
Table 3.3. Results of the potential and normal derivative for the annular region
φb
qa
N
Fast multipole
BEM
Conventional
BEM
Fast multipole
BEM
Conventional
BEM
36
72
360
720
1440
2400
4800
7200
9600
−401.7716
−400.4006
−400.0149
−400.0035
−400.0007
−400.0019
−400.0016
−399.9973
−399.9977
−401.7715
−400.4007
−400.0148
−400.0036
−400.0005
−400.0006
−400.0006
−399.9982
−399.9969
376.7237
377.1410
377.2548
377.2579
377.2586
377.2588
377.2589
377.2588
377.2589
376.7236
377.1410
377.2548
377.2579
377.2586
377.2588
377.2589
377.2589
377.2589
Analytical solution
−400.0000
377.2589
3.5 Numerical Examples
The same examples used in the previous chapter (see Section 2.12) with the
conventional BEM approach are solved again with the fast multipole BEM
programs. The accuracy and efficiency of the fast multipole BEM are compared with those of the conventional BEM.
3.5.1 An Annular Region
We first solve the same 2D potential problem as described in Section 2.12.1
and shown in Figure 2.11. For the fast multipole BEM, the numbers of terms
for both moments and local expansions were set to 15, the maximum number
of elements in a leaf to 20, and the tolerance for convergence of the solution
to 10−8 . The fast multipole BEM results converged in 11 iterations for the
smallest model (with 36 elements) and in 43 iterations for the largest model
(with 9600 elements). These numbers can be reduced to 9 and 28 iterations,
respectively, if the tolerance for convergence is reduced to 10−6 .
Table 3.3 shows the results of φb and qa obtained for this problem by use of
the fast multipole BEM and compared with the conventional BEM as the total
number of elements increases from 36 to 9600. As we can see, the fast multipole BEM is found to be as equally accurate as the conventional BEM with
moderate values for the parameters in the fast multipole BEM. The CPU times
used for both approaches in these calculations are plotted in Figure 3.12, which
shows the significant advantage of the fast multipole BEM in savings compared
with those of the conventional BEM. For example, for the largest model with
9600 elements, the fast multipole BEM used fewer than 17 s, whereas the conventional BEM used about 7500 s of CPU time on a laptop PC with a Pentium
IV 2.4-GHz CPU.
3.5 Numerical Examples
75
1400
Conventional BEM
1200
FMM BEM
Total CPU time (s)
1000
800
600
400
200
0
0
1000
2000
3000
4000
5000
DOFs
6000
7000
8000
9000
Figure 3.12. Comparison of the CPU times used by the conventional BEM and the
FMM BEM.
3.5.2 Electrostatic Fields Outside Conducting Beams
We next study the simplified 2D models of comb drives used in microelectromechanical systems (MEMSs) by using the developed fast multipole BEM and
comparing it with the conventional BEM. Both the CBIE and the dual BIE
(CHBIE) formulations are used for this study. For the fast multipole BEM,
the numbers of terms for both moments and local expansions are set to 15, the
maximum number of elements in a leaf to 100, and the tolerance for convergence of the solutions to 10−6 .
The comb-drive models are built with the basic two-parallel-beam model
used in Chapter 2 and shown in Figure 2.12. The parameters used are ε = 1,
L = 0.01 m, h = 0.0002 m, g = 0.0003 m, d = 0.0005 m, and V = 1. Figure
3.13 shows a model with 17 beams. The two support beams on the left-hand
and right-hand sides are not modeled in the BEM discretization. Two hundred
elements are used along the beam length and five elements on each edge (with
a total of elements equal to 410 for each beam). When more beams are added
into the model, the number of elements along the beam length is increased to
400.
Figure 3.14 shows the computed charge densities on the center beam
(beam 1) with positive voltage and the beam just below the center beam (beam
2) with negative voltage for the model with 17 beams shown in Figure 3.13.
10,000
+V
–V
0.004
y(m)
0.002
0
–0.002
–0.004
0
0.002
0.004
0.006
0.008
0.01
x(m)
Figure 3.13. A 2D comb-drive model with 17 beams.
10,000
Charge density
5000
On beam 1 (V = +1)
0
On beam 2 (V = –1)
–5000
–10,000
0
0.002
0.004
0.006
0.008
0.01
x(m)
Figure 3.14. Charge densities on center beam 1 and beam 2 (below the center beam).
76
3.5 Numerical Examples
77
10,000
CPU Time (s)
1000
100
Conventional BEM with Dual BIE
Fast Multipole BEM with Regular BIE
10
1
Fast Multipole BEM with Dual BIE
10 3
10 4
10 5
DOFs
Figure 3.15. CPU times for the conventional BEM and fast multipole BEM.
Because of the symmetry of the fields above and below each beam, the charge
densities on the top and bottom surfaces of each beam are identical; thus, only
one field is plotted for each beam. The charge densities on the two beams are
also of opposite sign and “antisymmetrical,” as expected. It should be noted
that the fields in MEMS are more complicated than those that the simple
parallel-beam models can represent, especially near the edges of the beams,
because of the simplified geometries used.
Figure 3.15 shows the CPU time comparison in which the conventional
BEM and the fast multipole BEM are used in solving these simple comb-drive
models on the 2.4-GHz Pentium IV laptop PC. Again, the conventional BEM
can solve models only with up to 10,000 DOFs. Conversely, the fast multipole BEM with the dual BIE converges faster than the one with the regular
BIE (CBIE alone) because of the better conditioning of the dual BIE formulation. The fast multipole BEM results converge in about 30 to 70 iterations when the dual BIE is used and in about 50 to more than 100 iterations
when the regular BIE is used. It is evident from these studies that the dual
BIE is very effective in solving MEMS problems with thin beams and the fast
multipole BEM using the dual BIE is very efficient in solving large-scale 2D
models.
10 6
78
Fast Multipole Boundary Element Method for Potential Problems
Table 3.4. Results for the cube with a linear potential in the x direction
Charge density at (0.5, 0, 0)
Model
Conventional BEM
Fast multipole BEM
Elem/edge
DOFs
CBIE
HBIE
CHBIE
CBIE
HBIE
CHBIE
2
4
8
12
16
20
24
28
32
48
192
768
1728
3072
4800
6912
9408
12288
1.08953
0.99124
0.99825
0.99908
0.99942
0.99959
0.99969
−
1.07225
1.00624
1.00438
1.00327
1.00260
1.00216
1.00185
−
1.06800
0.99754
0.99894
0.99934
0.99953
0.99963
0.99970
−
1.08955
0.99124
0.99825
0.99908
0.99943
0.99962
0.99969
0.99976
0.99981
1.07278
1.00624
1.00438
1.00327
1.00260
1.00218
1.00184
1.00161
1.00143
1.06843
0.99754
0.99894
0.99934
0.99953
0.99965
0.99969
0.99975
0.99979
Exact value
1.00000
3.5.3 Potential Field in a Cube
The cube problem used in Subsection 2.12.3 and shown in Figure 2.15 is solved
with the 3D fast multipole BEM code and compared with the conventional
BEM. For the fast multipole BEM, 15 terms are used in all of the expansions
and the tolerance for convergence is set to 10−6 .
Table 3.4 shows the results obtained with the fast multipole BEM and
compared with those of the conventional BEM, using the CBIE, HBIE, and
CHBIE, for BEM meshes with increasing numbers of elements. We can conclude from these results that the HBIE and CHBIE are equally as accurate
as the CBIE; so is the fast multipole BEM compared with the conventional
BEM. Constant triangular elements are used in this study. If linear or
quadratic elements were applied, a few elements should have been sufficient
for obtaining results of a similar accuracy because of the specified linear field.
3.5.4 Electrostatic Field Outside Multiple Conducting Spheres
In this example, 11 perfectly conducting spheres (Figure 3.16) are analyzed
with the fast multipole BEM. The center large sphere has a radius of 3; the 10
small spheres have the same radius of 1, and are distributed evenly on a circle
with a radius of 5 and cocentered with the large sphere. A constant electric
potential φ = +5 is applied to the large sphere and five of the small spheres,
and a potential φ = −5 is applied to the other five small spheres (Figure 3.16).
For the fast multipole BEM, elements per leaf are limited to 200, 10 terms are
used in the expansions, and the tolerance for convergence is set to 10−4 .
The charge densities on the surfaces of the spheres are plotted in Figure 3.17 with the mesh using 10,800 elements per sphere. The plots are almost
3.5 Numerical Examples
79
φ = +5
φ = −5
z
x
y
Figure 3.16. An 11-spherical perfect conductor model.
identical among the different meshes and exhibit the same symmetrical pattern, as it should be. Table 3.5 shows the maximum and minimum values of
the charge densities on the spheres when the different meshes are used. These
values are very stable and converged within the first two significant digits
(except for the last set of data with the CBIE). Further improvements can be
achieved by using a tighter set of parameters for the fast multipole BEM (e.g.,
more expansion terms and smaller tolerance). The last two columns of Table
3.5 show the numbers of iterations with the GMRES solver for the CBIE and
the CHBIE. The numbers of iterations for the CHBIE is about half those for
the CBIE because of the better conditioning of the systems of equations based
on the CHBIE.
3.5.5 A Fuel Cell Model
Next, an example of more challenging problems is presented. Figure 3.18(a)
shows a solid oxide fuel cell (SOFC) model with nine cells used for thermal
analysis. There are 1000 small holes on the inner and outer surfaces of each
q
10
8
6
4
2
0
−2
−4
−6
−8
−10
−12
−14
−16
z
x
y
Figure 3.17. Contour plot of the charge densities on the spheres.
80
Fast Multipole Boundary Element Method for Potential Problems
Table 3.5. Results for the 11-sphere model obtained with the fast multipole BEM
Charge densities on the spheres
Model
min
max
Numbers of
iterations
Elem/sphere
DOFs
CBIE
CHBIE
CBIE
CHBIE
CBIE
CHBIE
768
1200
1728
2352
3072
3888
4800
7500
10800
8448
13200
19008
25872
33792
42768
52800
82500
118800
−16.4905
−16.5363
−16.6322
−16.6436
−16.6733
−16.6648
−16.7435
−16.7068
−17.1157
−15.5285
−15.7922
−15.9618
−16.0789
−16.1618
−16.2195
−16.2671
−16.3614
−16.4279
11.1837
11.2218
11.2558
11.2746
11.3792
11.3810
11.3787
11.2964
12.6511
10.3923
10.5920
10.7156
10.8041
10.9160
10.9464
10.9763
11.0283
11.0851
14
15
17
18
19
20
20
21
22
8
8
8
8
8
7
8
8
7
cylindrical cell, with a total of 9000 holes for the entire stack model. Because
R
of the extremely complicated geometry, the FEM (e.g., ANSYS
) can model
only one cell on a PC with 1-GB RAM. For the fast multipole BEM, however, multicell models can be handled readily, such as the nine-cell stack modeled successfully with 530,230 elements and solved on a desktop PC with 1-GB
RAM [Figure 3.18 (b)].
3.5.6 Image-Based Boundary Element Method Models and Analysis
In recent years, digital models using 3D scanning technologies have attracted
much attention in many engineering fields, such as reverse engineering and
biomedical engineering applications. Computer-scanned images are often
φ
950
900
850
800
750
700
650
600
550
500
450
x
y
(a)
z
(b)
Figure 3.18. A fuel cell model using the fast multipole BEM: (a) 3 × 3 stack model;
(b) computed temperature.
3.5 Numerical Examples
complicated in geometry and difficult to mesh and analyze with the domainbased methods because of the lack of the volume data from the scanned
images. The scanned data are surface-based and usually in stereolithography
(STL), nonuniform rational B spline (NURBS), and other file formats. Construction of the volume using these surface data is time-consuming and often
inaccurate. Conversely, meshing the boundary of a scanned object using the
surface data is straightforward and can be as accurate as the resolution of the
scanner allows.
The fast multipole BEM seems to be a very natural choice to be integrated for the image-based analysis of various engineering problems. Boundary meshes can be obtained quickly from the scanned surface data, especially
data in the STL format. Fast and accurate analysis using the fast multipole
BEM can then be obtained. The potentials of the integration of the fast multipole BEM with 3D imaging technologies are huge in applications of reverse
engineering, material characterizations, and biomedical applications.
A couple of examples are presented here to show the potential of the
image-based analysis with the fast multipole BEM. This work is described in
more detail in Ref. [67]. Figure 3.19 shows oil-lamp models generated by a
R
3D laser scanner and analyzed by both the FEM (ANSYS
software) and the
3D fast multipole BEM code [61]. The FEM volume mesh contains 403,271
tetrahedral elements, whereas the BEM mesh has 42,810 triangular elements
to maintain a similar surface mesh density as in the FEM mesh. The top of
the lamp is applied with a temperature of one unit and the bottom with a zero
temperature. The other surfaces have zero-flux BCs. The two computed temperature results are comparable, as shown in the figure. The CPU times are
close to 1 h for the ANSYS solution and less than 15 mins for the fast multipole BEM simulation, computed on a 3.2-GHz Pentium IV desktop PC.
Figure 3.20 shows a microscale model and thermal analysis of a weak trabecular bone sample using a 3D microscanner together with the fast multipole
BEM code. There are about 200,000 elements in this model, and the model
was solved in 3.4 h on the Pentium IV PC. The longer CPU time in solving this model is due to the increased number of iterations. Because of the
many thin shapes in this complicated model, the conditioning of the BEM system of equations worsened; thus, it requires more iterations when the iterative solver is used. More discussions of the preceding results can be found in
Ref. [67].
All of the preceding numerical examples clearly demonstrate the accuracy and efficiency of the fast multipole BEM for solving large-scale 2D and
3D potential problems. In all of the cases, constant elements were applied
to implement the fast multipole BEM. Constant elements can certainly be
replaced with higher-order elements to improve the accuracy of a fast multipole BEM code. However, this may not be advantageous, considering the
81
82
Fast Multipole Boundary Element Method for Potential Problems
0
.111111
.222222
.333333
.444444
(a)
.555556
.666667
.777778
.888889
1
(b)
T
0.95
0.9
0.85
0.8
0.75
0.7
0.65
0.6
0.55
0.5
0.45
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
(c)
(d)
Figure 3.19. Image-based thermal analysis of an oil lamp model: (a) FEM volume
mesh, (b) FEM temperature results, (c) BEM surface mesh, (d) BEM temperature
results.
z
z
x
x
y
y
T
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
160
160
180
180
200
z
z
200
220
220
240
240
−50
−100
0
−50
y
50
0
100
(a)
x
−50
−100
0
−50
x
y
50
0
100
(b)
Figure 3.20. Image-based thermal analysis of a trabecular bone microstructure:
(a) BEM surface mesh, (b) BEM temperature results.
Problems
efficiency of the code for large-scale problems. For constant elements, all the
integrals can be evaluated analytically for all nonsingular, nearly singular, and
singular cases. There are no numerical integrations in the code. Therefore, the
code can be very efficient. For higher-order elements, however, this is not the
case, and we have to use numerical integration in the direct evaluations of
the integrals that can involve singular and nearly singular integrals. This complicates the code and reduces the efficiency of the fast multipole BEM solutions for large-scale problems.
3.6 Summary
An introduction of the fast multipole BEM is presented in this chapter for
2D and 3D potential problems. The main idea of the fast multipole BEM is
to replace the element-to-element interactions, which are costly to compute,
with cell-to-cell interactions through the introduction of the multipole expansions of the kernels and related translations that are integrated with a hierarchical tree structure of the boundary elements. Complete formulations and
implementation details of the fast multipole BEM are provided in this chapter.
The Fortran code provided in Appendix B is also discussed; it can be used to
solve 2D potential problems, to learn the structure of a fast multipole BEM
code, and to expand it to solve other large-scale 2D and 3D problems. Several numerical examples are presented to demonstrate the accuracy, efficiencies, and usefulness of the fast multipole BEM for solving large-scale 2D and
3D potential problems, especially in new technologies such as image-based
modeling and simulations in reverse engineering and biomedical engineering.
The fast multipole BEM algorithms and code presented in this chapter are
the essence of the discussions in this book that should be studied thoroughly
before one embarks on studying other topics in the fast multipole BEM. The
approaches and the code discussed in this chapter can also be extended readily to solve 2D and 3D vector (elastostatic and Stokes flow) and 2D and 3D
acoustic problems, as well as many other problems in applied mechanics.
Problems
3.1. Show that for two functions f1 (N) = a N 2 and f2 (N) = bN, one can
always have f1 f2 for sufficiently large N, no matter how small the
value of a and how large the value of b can be.
3.2. Verify Eq. (3.6) with Eq. (3.7); that is, the real part of G(z0 , z) in (3.7)
does give the real-valued Green’s function G(x, y) in real variables.
3.3. Derive expression (3.11) for the complex Green’s function by using a
Taylor series expansion.
3.4. Derive the L2L translation given in Eq. (3.30).
83
84
Fast Multipole Boundary Element Method for Potential Problems
3.5. Verify Eq. (3.34) with Eq. (3.33).
3.6. Write a computer code to generate the quad-tree structure shown in
Figure 3.5 for the boundary element mesh shown in Figure 3.4.
3.7. Continuing Problem 2.9 in Chapter 2, apply the 2D fast multipole BEM
code to the quarter-symmetry annular region model. Compare the accuracy and efficiency of the results obtained with the conventional BEM and
the fast multipole BEM.
3.8. Develop a 2D potential fast multipole BEM code using linear elements,
based on the 2D potential fast multipole BEM code given in Appendix
B.2 and with constant elements. Compare the accuracy and computational
efficiency of the developed code with those of the code using constant
elements.
3.9. Develop a 3D potential fast multipole BEM code using constant triangular
elements by extending the 2D potential fast multipole BEM code given in
Appendix B.2.
4
Elastostatic Problems
The direct BIE formulation and its numerical solutions using the BEM for 2D
elasticity problems were developed by Rizzo in the early 1960s and published
in Ref. [4] in 1967. Following this early work, extensive research efforts were
made for the development of the BIE and BEM for solving various elasticity problems (see, e.g., Refs. [24–28]). The advantages of the BEM for solving elasticity problems are the accuracy in modeling stress concentration or
fracture mechanics problems and the ease in modeling complicated elastic
domains such as various composite materials.
The FMM was applied to solving elasticity problems for more than a
decade. For 2D elasticity problems, Greengard et al. [68, 69] developed a fast
multipole formulation for solving the biharmonic equations using potential
functions. Peirce and Napier [36] developed a spectral multipole approach that
shares some common features with the FMMs. Richardson et al. [70] proposed
a similar spectral method using both 2D conventional and traction BIEs in
the regularized form. Fukui [71] and Fukui et al. [72] studied both the conventional BIE for 2D stress analysis and the HBIE for large-scale crack problems.
In his work, he first applied the complex variable representation of the kernels and then used the multipole expansions in complex variables as originally
used for 2D potential problems [35, 62]. Liu [73, 74] further improved Fukui’s
approach and proposed a new set of moments for 2D elasticity CBIEs, which
yields a very compact and efficient formulation with all the translations being
symmetrical regarding the two sets of moments. Wang and Yao [75] also studied crack problems by using a dual BIE approach, with the CBIE collocating
on one surface of a crack and HBIE on the other. They expanded the kernel
functions in their original forms by using complex Taylor series in an auxiliary
way following the approach in Ref. [76].
For 3D elasticity problems, Fu et al. [38] formulated the BIE for 3D elastic inclusion problems by using the FMM. Some other earlier development of
the fast multipole BEM for general 3D elasticity problems can be found in
Ref. [77] and for crack problems in Refs. [39, 78, 79]. Large-scale modeling of
85
86
Elastostatic Problems
composite materials using the fast multipole elasticity BEM can be found in
Refs. [80–82].
In this chapter, the governing equations for elasticity problems are
reviewed first. Then, the fundamental solutions are introduced and the BIEs
are established. The conventional BEM approach is discussed briefly, followed
by discussions on the FMM for solving the BIEs for 2D and 3D elasticity problems in both single and multiple domains. Numerical examples are provided
to demonstrate the accuracy and efficiencies of the fast multipole BEM for
solving large-scale elasticity problems.
4.1 The Boundary-Value Problem
Consider the displacement ui , strain εi j , and stress σi j in a linearly elastic solid
occupying domain V with boundary S. The governing equations for these elastic fields are as follows:
Equilibrium equations:
σi j , j + fi = 0,
in V,
(4.1)
where fi is the body force.
Strain–displacement relation:
εi j =
1
(ui , j +u j ,i ),
2
in V.
(4.2)
Stress–strain relation (constitutive equations):
σi j = Ei jkl εkl ,
in V,
(4.3)
where Ei jkl is the elastic modulus tensor given by:
Ei jkl = λδi j δkl + µ(δik δ jl + δil δ jk )
(4.4)
for isotropic materials, and λ and µ are the Lamé constants that are related to
Young’s modulus E and Poisson’s ratio ν by:
λ=
E
Eν
, µ=
.
(1 + ν)(1 − 2ν)
2(1 + ν)
(4.5)
The boundary conditions for an elasticity problem can be described by:
ui = ui
on Su (displacement BC),
ti = σi j n j = ti
on St (traction BC),
(4.6)
(4.7)
where the overbar indicates the given value, ti is the traction, ni are the components of the outward normal, and Su ∪ St = S.
The main objective in elasticity is to solve for the fields ui , εi j , and σi j using
governing equations (4.1), (4.2), and (4.3) under the BCs in (4.6) and (4.7).
4.2 Fundamental Solution for Elastostatic Problems
U32
U31
y
2
r
1
3
87
U33
x
P=1
R3
Figure 4.1. An infinite elastic domain applied with a unit concentrate force P at x.
4.2 Fundamental Solution for Elastostatic Problems
Consider the full infinite space (R2 for two dimensions or R3 for three dimensions) filled by an elastic material. Apply a unit concentrate force P at point
x in the ith direction. The responses (displacement, strain, and stress) at any
point y that are due to this unit force are called the fundamental solution (or
Kelvin’s solution) in elasticity (Figure 4.1).
The stress component i jk (x, y) in the fundamental solution satisfies the
following equilibrium equation:
i jk ,k (x, y) + δi j δ(x, y) = 0,
∀x, y ∈ R2 /R3 ,
(4.8)
where ( ) ,k = ∂ ( ) /∂ yk , the first index i indicates the direction of the unit concentrated force at the source point x, and the Dirac δ function δ(x, y) represents the body force corresponding to the unit concentrated force.
For 2D (plane-strain) problems, the displacement and traction components in the fundamental solution are given by:
1
1
1
Ui j (x, y) =
(3 − 4ν)δi j log
+ r,i r, j − δi j ,
(4.9)
8π µ(1 − ν)
r
2
1
∂r
Ti j (x, y) = −
[(1 − 2ν)δi j + 2r,i r, j ] − (1 − 2ν) (r,i n j − r, j ni ) ,
4π (1 − ν)r ∂n
(4.10)
in which the index i indicates the direction of the unit force at the source
point x and the index j indicates the jth component of the field at the field
point y. For plane-stress problems, Poisson’s ratio ν in the preceding expressions is replaced with ν/(1 + ν).
For 3D problems, the fundamental solution gives:
1
(4.11)
[(3 − 4ν)δi j + r,i r, j ] ,
16π µ(1 − ν)r
1
∂r
Ti j (x, y) = −
[(1 − 2ν)δi j + 3r,i r, j ] − (1 − 2ν) (r,i n j − r, j ni ) .
8π(1 − ν)r 2 ∂n
(4.12)
Ui j (x, y) =
88
Elastostatic Problems
It is interesting to note that the fundamental solution for elasticity problems is
closely related to the fundamental solution for potential problems. Both fundamental solutions have the same order of singularities as their corresponding
2D and 3D counterparts. For example, Ui j is weakly singular and Ti j is strongly
singular, similar to G and F, respectively, for the potential problems.
The fundamental solution for elastostatic problems also satisfies several
integral identities [46–48] as given in the following equations:
First identity:
Ti j (x, y)dS(y) =
S
Second identity:
S
−δi j ,
∀x ∈ V
0,
∀x ∈ E
∂ Ti j (x, y)
dS(y) = 0 ,
∂ xk
.
(4.13)
∀x ∈ V ∪ E.
(4.14)
Third identity:
δi j δkl ,
∂Uiq (x, y)
∂ Ti j (x, y)
n p (y)dS(y) −
(yl − xl )dS(y) =
E jlpq
∂ xk
∂ xk
0,
S
S
Fourth identity:
Ti j (x, y)(yk − xk )dS(y) − E jkpq Ui p (x, y)nq (y)dS(y) = 0,
S
S
∀x ∈ V
.
∀x ∈ E
(4.15)
∀x ∈ V ∪ E,
(4.16)
where S is an arbitrary and closed contour (for two dimensions) or surface (for
three dimensions), V is the domain enclosed by S, and E is the infinite (exterior) domain outside S. These identities have clear physical meanings and can
be very convenient in deriving various weakly singular forms of the BIEs for
elasticity problems [46–48]. These identities can be derived readily by integrating governing equation (4.8) over the domain V and invoking the Gauss
theorem [46–48].
4.3 Boundary Integral Equation Formulations
To derive the BIEs for elastostatic problems, we first establish the generalized Green’s identity corresponding to elasticity equations. Let (ui , εi j , σi j )
and (ui∗ , εi∗j , σi∗j ) be two sets of solutions satisfying governing equations (4.1)–
(4.3) in domain V. The following generalized Green’s identity, also called
Somigliana’s identity, holds:
!
"
! ∗
"
∗
∗
σ jk ,k u j − σ jk,k u j dV =
t j u j − t ∗j u j dS.
(4.17)
V
S
This identity can be derived readily by using either the Gauss theorem or the
virtual work theorem.
4.3 Boundary Integral Equation Formulations
89
Now, let (ui , εi j , σi j ) be the solution of the boundary-value problem that
needs to be solved, and let (ui∗ , εi∗j , σi∗j ) be the fundamental solution; that is:
u∗j (y) = Ui j (x, y),
t ∗j (y) = Ti j (x, y),
∗
σ jk,k
(y) = i jk,k (x, y).
Substituting these results into identity (4.17) and applying Eqs. (4.1) and (4.8),
we obtain the following representation integral of the displacement field in
domain V:
ui (x) = [Ui j (x, y)t j (y) − Ti j (x, y)u j (y)] dS(y)
S
Ui j (x, y) f j (y)dV(y), ∀x ∈ V.
(4.18)
+
V
Once the displacement ui and traction ti are obtained on the entire boundary
S, the preceding expression can be used to evaluate the displacement at any
point inside the domain V, if needed.
Let the source point x approach boundary S in Eq. (4.18) in the same way
as discussed in Chapter 2 for the BIE for potential problems; we obtain the
following conventional BIE (CBIE) for elastostatic problems:
ci j (x)u j (x) = [Ui j (x, y)t j (y) − Ti j (x, y)u j (y)] dS(y)
S
Ui j (x, y) f j (y)dV(y), ∀x ∈ S,
(4.19)
+
V
1/ δ
2 ij
where the coefficients ci j =
if S is smooth at source point x. In general,
we have the following expression for ci j :
ci j (x) = δi j + lim
Ti j (x, y)dS(y) = γ δi j − Ti j (x, y)dS(y),
(4.20)
ε→0
Sε (x)
S
in which γ = 0 for finite domain problems and γ = 1 for infinite domain problems and the last integral is a CPV integral. In deriving the preceding result,
the first identity in Eq. (4.13) is applied.
In CBIE (4.19), the integral with the U kernel is a weakly singular integral, whereas the integral with the T kernel is a strongly singular (CPV) integral. CBIE (4.19) can be applied to solve for the unknown displacement and
traction on the boundary.
The domain integral in CBIE (4.19) can be handled with the approaches
presented in Section 2.9 in the case in which f j (y) is nonzero over a finite area
or volume within the domain V. If f j (y) is due to a concentrated or point force
within V, we can write f j (y) as:
f j (y) = Q j δ(x Q, y),
(4.21)
where x Q is the location of the concentrated force and Q j represents the components of the concentrated force. Using the sifting property of the Dirac δ
90
Elastostatic Problems
function [Eq. (1.25)], we can evaluate the domain integral in CBIE (4.19) for
a concentrated force readily as follows:
Ui j (x, y) f j (y)dV(y) = Q j
V
Ui j (x, y)δ(x Q, y)dV(y) = Q j Ui j (x, x Q).
V
(4.22)
This contribution is added to the right-hand-side vector b of the BEM system
of equations based on CBIE (4.19).
Taking the derivatives of representation integral (4.18), applying the
stress–strain relation, and letting the source point x go to the boundary, we
can obtain the traction or HBIE as follows:
c̃i j (x)t j (x) = [Ki j (x, y)t j (y) − Hi j (x, y)u j (y)] dS(y)
S
Ki j (x, y) f j (y)dV(y), ∀x ∈ S,
(4.23)
+
V
where the coefficients c̃i j = 1/2δi j if S is smooth at source point x. For 2D
(plane-strain) problems, the two new kernels are:
1
[(1 − 2ν)(δi j r,k + δ jk r,i − δik r, j ) + 2r,i r, j r,k ] nk (x),
4π(1 − ν)r
(4.24)
µ
∂r
Hi j (x, y) =
2 [(1 − 2ν)δik r, j + ν(δi j r,k + δ jk r,i ) − 4r,i r, j r,k ]
2π(1 − ν)r 2
∂n
Ki j (x, y) =
+ 2ν(ni r, j r,k + nk r,i r, j ) − (1 − 4ν)δik n j
+ (1 − 2ν)(2n j r,i r,k + δi j nk + δ jk ni ) nk (x),
(4.25)
where ni (x) is the normal at the source point x. For 3D problems, the two new
kernels are:
1
[(1 − 2ν)(δi j r,k + δ jk r,i − δik r, j ) + 3r,i r, j r,k ] nk (x),
8π(1 − ν)r 2
(4.26)
µ
∂r
3 [(1 − 2ν)δik r, j + ν(δi j r,k + δ jk r,i ) − 5r,i r, j r,k ]
Hi j (x, y) =
4π(1 − ν)r 3
∂n
Ki j (x, y) =
+ 3ν(ni r, j r,k + nk r,i r, j ) − (1 − 4ν)δik n j
+ (1 − 2ν) (3n j r,i r,k + δi j nk + δ jk ni ) nk (x).
(4.27)
In HBIE (4.23), the integral with kernel K is a CPV integral, whereas the one
with kernel H is a HFP integral [83, 84]. As in the potential problem case, a
4.4 Weakly Singular Forms of the Boundary Integral Equations
91
dual BIE (or CHBIE) formulation using a linear combination of the CBIE
and HBIE can be written as:
CBIE + βHBIE = 0,
(4.28)
where β is the coupling constant. Dual BIE formulations were found to be
very effective and efficient for solving crack problems and problems involving
thin shapes [49, 85]. Dual BIE formulations are especially beneficial to the fast
multipole BEM because they provide better conditioning for BEM equations
and thus can facilitate faster convergence with iterative solvers.
4.4 Weakly Singular Forms of the Boundary Integral Equations
As for the BIEs for potential problems, CBIE (4.19) and HBIE (4.23) can be
recast into forms that involve only weakly singular integrals [46–48] or even
nonsingular forms without any singular integrals [47]. For example, by using
the result in (4.20) for the coefficient ci j (x) in CBIE (4.19), we obtain the following weakly singular form of the CBIE for elastostatics:
γ ui (x) + Ti j (x, y) [u j (y) − u j (x)] dS(y)
S
Ui j (x, y) f j (y)dV(y), ∀x ∈ S, (4.29)
= Ui j (x, y)t j (y)dS(y) +
S
V
in which γ = 0 for finite domain problems and γ = 1 for infinite domain problems. The integral with the T kernel is now weakly singular, because:
1
O
O (r ) = O (1) , for two dimensions
r
Ti j (x, y) [u j (y) − u j (x)] ∼
1
1
O
, for three dimensions
O
=
O
(r
)
2
r
r
as r → 0 if the displacement ui is continuous.
Similarly, by using the first three identities (4.13)–(4.15) for the fundamental solution, we can derive the following weakly singular form of the HBIE for
elastostatics [52]:
∂ uj
γ ti (x) + Hi j (x, y) u j (y) − u j (x) −
(x)(ξα − ξoα ) dS(y)
∂ ξα
S
∂ up
+ E jkpq eα q
(x) [Ki j (x, y)nk (y) + Tji (x, y)nk (x)] dS(y)
∂ ξα
S
(4.30)
= [Ki j (x, y) + Tji (x, y)] t j (y)dS(y)
S
− Tji (x, y) [t j (y) − t j (x)] dS(y) + Kij (x, y)fj (y)dV(y), ∀x ∈ S ,
S
V
in which ξα and ξoα are the coordinates of y and x, respectively, in tangential
directions (α = 1 for two dimensions and α = 1, 2 for three dimensions) in the
92
Elastostatic Problems
local (natural) coordinate system on an element and eα k = ∂ξα /∂ xk [52]. All
the integrals in (4.30) are now, at most, weakly singular if the displacement
field ui has continuous first derivatives.
Weakly singular forms of the BIEs, or regularized BIEs, which do not
contain any strongly singular and hypersingular integrals, are useful in cases
in which higher-order boundary elements are applied to solve the BIEs. In
these cases, analytical evaluations of the singular integrals are difficult or
impossible to obtain, and the use of numerical integration is troublesome.
When constant elements are used, all the singular and hypersingular integrals can be evaluated analytically (see Appendix A.2 for 2D cases); therefore,
the original singular forms of CBIE (4.19) and HBIE (4.23) can be applied
directly.
4.5 Discretization of the Boundary Integral Equations
Discretization of the BIEs for elasticity problems is similar to that for the
potential problems. The only difference is that we have two or three unknowns
at each node for 2D or 3D problems, respectively. For example, the discretized
form of CBIE (4.19) can be written as follows (without considering the body
force):
T11 T12 · · · T1N
u1
U11 U12 · · · U1N
t1
T21 T22 · · · T2N u2 U21 U22 · · · U2N t2
.
=
..
.
..
..
. . ..
.
.. ..
.. ,
. ..
.
.
.
.
.
.
.
.
T N1 T N2 · · · T NN
uN
U N1 U N2 · · · U NN
tN
(4.31)
in which ui and ti are the displacement and traction vectors at node i on
boundary S (i = 1, 2, . . . , N), and Ti j and Ui j are 2 × 2 (for 2D) or 3 × 3 (for
3D) submatrices we obtain by integrating the T and U kernels, respectively,
when the source point x is at node i and integrations are done on all elements
surrounding node j. For 2D constant elements, all the integrals can be evaluated analytically (Appendix A.2), whereas for linear and quadratic elements,
numerical integrations need to be used. The diagonal submatrices Tii can be
determined by imposing a rigid-body motion on Eq. (4.31) to obtain:
N
Ti j ,
for a finite domain
−
j=i
(4.32)
Tii =
N
I−
Ti j , for an infinite domain.
j=i
We can also prove this result by discretizing the weakly singular form of the
CBIE in Eq. (4.29) directly [46].
4.6 Recovery of the Full Stress Field on the Boundary
93
A standard linear system of equations is formed as follows by applying the
BC at each node and switching the columns in the two matrices in Eq. (4.31):
A11 A12 · · · A1N
b1
λ1
A21 A22 · · · A2N λ2 b2
.
(4.33)
..
.
..
.
.. = .. , or Aλ = b,
. ..
.
.
.
.
A N1 A N2 · · · A NN
λN
bN
where A is the coefficient matrix of dimensions 2N×2N (for two dimensions)
or 3N × 3N (for three dimensions), λ is the unknown vector, and b is the
known right-hand-side vector (which may also contain contributions from the
body forces). Again, the construction of matrix A requires O(N 2 ) operations,
and the size of the required memory for storing A is also O(N 2 ) because A
is, in general, a nonsymmetric and dense matrix. The solution of the system in
Eq. (4.33) by use of direct solvers such as Gauss elimination requires O(N 3 )
operations. Thus, the conventional BEM approach by solving Eq. (4.33)
directly is limited to BEM models with only a few thousand equations on a
desktop computer. In later sections, we discuss how to apply iterative solvers
to the linear system of equations in (4.33) and how to use the FMM to evaluate the far-field contributions in the matrix–vector multiplication in order to
accelerate the solutions of the BEM equations for elasticity problems and to
achieve the O(N) efficiency.
4.6 Recovery of the Full Stress Field on the Boundary
In stress analysis, values of all the stress components on the boundary are of
interest. However, in the BEM solution, only the displacement and traction
components on the boundary are solved. The full stress field is not known
from this solution, and the most important stress component – for example, the
hoop stress on the edge of a hole – is often missing. In the following, we discuss
how to recover the full stress field from the BEM solution of the displacement
and traction fields, using the 2D case as an example.
For 2D elasticity, we know the values of the displacement components
u and v and the traction components tx and t y at each node on the boundary
after we solve the BEM system of equations. To recover the stress components
σx , σ y , and τxy on the boundary, we proceed as follows.
First, we note the following two equations relating the stress and traction
components:
σx nx + τxy n y = tx ,
(4.34)
τxy nx + σ y n y = t y ,
(4.35)
in which nx and n y are the direction cosines of the normal n.
94
Elastostatic Problems
Second, we take the derivatives of the displacement field in the tangential
direction ξ (local coordinate) of the boundary S to obtain two more relations:
∂u ∂ x ∂u ∂ y
∂u
+
=
,
∂ x ∂ξ
∂ y ∂ξ
∂ξ
(4.36)
∂v
∂v ∂ x ∂v ∂ y
+
=
,
∂ x ∂ξ
∂ y ∂ξ
∂ξ
(4.37)
where we can readily compute the values of ∂u/∂ξ, ∂v/∂ξ, ∂ x/∂ξ, and ∂ y/∂ξ
on a boundary element by using the shape functions. For constant elements,
we can first compute the averaged displacement values at the end points of all
the elements and then apply a linear interpolation to compute the values of
these derivatives at the nodes (centers) of the elements.
Third, we write the 2D stress–strain relations as follows:
∂u
∂v
σx − C (1 − ν)
+ν
= 0,
(4.38)
∂x
∂y
∂u
∂v
σy − C ν
+ (1 − ν)
= 0,
(4.39)
∂x
∂y
∂u ∂v
τxy − G
+
= 0,
(4.40)
∂y ∂x
where C = E/ [(1 + ν)(1 − 2ν)] , G = E/ [2(1 + ν)], E is Young’s modulus,
and ν is Poisson’s ratio for the plane-strain case.
Therefore, we have seven equations, Eqs. (4.34)–(4.40), for seven unknowns on the boundary, σx , σ y , τxy , ∂u/∂ x, ∂u/∂ y, ∂v/∂ x, and ∂v/∂ y, which
are sufficient to recover all the stress components on the boundary. Note
that the four derivatives of the displacement components ∂u/∂ x, ∂u/∂ y,
∂v/∂ x, and ∂v/∂ y can be used to determine directly the strain components
εx , ε y , and γxy , if needed.
Combining the seven equations in (4.34)–(4.40), we obtain the following
linear system of equations for the recovery of the full stresses (and strains) in
the 2D case:
σx
tx
σ
y
0
0
0
0
nx 0 n y
t
y
τxy
0
0
0
0
0 n y nx
∂u
∂u
∂x
∂y
0 0 0
0
0
∂x
∂ξ
∂ξ
∂ξ
∂x
∂y
∂v .
∂u
=
0 0 0
0
0
∂ξ
∂ξ
∂ξ
∂y
1 0 0 −C(1 − ν) 0
0
−Cν
∂v
0
0 1 0
−Cν
0
0
−C(1 − ν)
∂
x
0
0 0 1
0
−G −G
0
∂v
0
∂y
(4.41)
4.7 Fast Multipole Boundary Element Method for 2D Elastostatic Problems
We can derive a similar linear system with 15 equations for the 3D elasticity
case by following the same approach, which can be applied to recover all the
six stress (and strain) components on the boundary surface.
4.7 Fast Multipole Boundary Element Method
for 2D Elastostatic Problems
The fast multipole algorithms for solving general 2D elasticity problems by
using CBIE (4.19) and HBIE (4.23) are described in detail in this section. As
in the 2D potential case, complex notation is used. The kernels are represented
by complex functions from the classical 2D elasticity theory.
First, we note that the two integrals in CBIE (4.19) can be represented
in complex variables readily if we write the fundamental solution Ui j (x, y)
and Ti j (x, y) in the complex notation by using the results in 2D elasticity.
In 2D elasticity theory with complex variables, the displacement field U =
√
U1 + iU2 at a field point z(= y1 + i y2 , with i = −1) because of a point force
P = P1 + i P2 at the source point z0 (= x1 + i x2 ) can be written as (see, e.g.,
Refs. [86, 87]):
U1 (z) + iU2 (z) =
1
z0 − z
,
−κ P log(z0 − z) + log(z0 − z) + P
4π µ(1 + κ)
z0 − z
(4.42)
in which the overbar indicates the complex conjugate and κ = 3 − 4ν for the
plane-strain case.
We can obtain the fundamental solution Ui j exactly as given in Eq. (4.9)
by letting P = 1 and i (first in the x direction, then in the y direction, respectively), in Eq. (4.42). Using the preceding result, we can show that the first integral in CBIE (4.19) can be written in the following complex form by applying
Eq. (4.42) (with no body force) [73]:
1
u(z0 ) = Dt (z0 ) − Du (z0 ),
2
(4.43)
where u = u1 + iu2 is the complex representation of the displacement field and
boundary S is assumed to be smooth at the source point z0 . In the preceding
equation:
U1 j (x, y)t j (y)dS(y) + i
U2 j (x, y)t j (y)dS(y)
S
S
1
=
κ G(z0 , z)t(z) − (z0 − z) G (z0 , z) t(z)
2µ(1 + κ) S
+ κG(z0 , z)t(z) dS(z),
Dt (z0 ) ≡
(4.44)
95
96
Elastostatic Problems
representing the first integral with the U kernel in CBIE (4.19), and:
Du (z0 ) ≡
T1 j (x, y)u j (y)dS(y) + i
T2 j (x, y)u j (y)dS(y)
S
S
(
1
=−
κ G (z0 , z)n(z)u(z) − (z0 − z) G (z0 , z) n(z) u(z)
1+κ S
)
(4.45)
+G (z0 , z) n(z) u(z) + n(z)u(z) dS(z),
representing the second integral with the T kernel in CBIE (4.19), where t =
t1 + it2 and n = n1 + in2 are the complex traction and normal, respectively:
G(z0 , z) = −
1
log(z0 − z)
2π
(4.46)
is the Green’s function (in complex form) for 2D potential problems [see
Eq. (3.7)], and ( ) ≡ ∂( )/∂z0 .
To derive the complex form of HBIE (4.23), we first note that the real
variable traction ti on boundary S is given by:
ti = σi j n j = [λδi j uk ,k + µ(ui , j + u j ,i )] n j ,
(4.47)
in which σi j is the stress tensor and λ = 2µν/(1 − 2ν) for plane-strain problems. It is interesting to note that this relation can be written in complex form
as follows:
1
∂u
∂u ∂u
t(z) = 2µ
n ,
(4.48)
+
n+
κ − 1 ∂z ∂z
∂z
in which t, u, and n are the complex traction, displacement, and normal on
boundary S, respectively. In applying this formula, z and z must be considered
as two independent variables; that is, ∂z/∂z = ∂z/∂z = 0. It is straightforward
to verify that Eq. (4.48) is indeed equivalent to Eq. (4.47) by simply extracting
the real and imaginary parts of t(z) from Eq. (4.48) and comparing with the
results we obtain by expanding Eq. (4.47).
Applying the relation in Eq. (4.48), we can show that HBIE (4.23) can be
written in the following complex form (with no body force):
1
t(z0 ) = Ft (z0 ) − Fu (z0 ),
2
where:
1
Ft (z0 ) = 2µ
κ −1
*
+
∂ Dt (z0 )
∂ Dt (z0 ) ∂ Dt (z0 )
+
n(z0 )
n(z0 ) +
∂z0
∂z0
∂z0
represents the first integral with the K kernel in HBIE (4.23), and:
*
+
1
∂ Du (z0 )
∂ Du (z0 ) ∂ Du (z0 )
Fu (z0 ) = 2µ
+
n(z0 )
n(z0 ) +
κ −1
∂z0
∂z0
∂z0
(4.49)
(4.50)
(4.51)
4.7 Fast Multipole Boundary Element Method for 2D Elastostatic Problems
represents the second integral with the H kernel in HBIE (4.23). Applying
Eqs. (4.44) and (4.45), we obtain the following explicit results:
Ft (z0 ) ≡ [F1 (x) + i F2 (x)]t
≡
K1 j (x, y)t j (y)dS(y) + i
K2 j (x, y)t j (y)dS(y)
S
S
(
1
=
G (z0 , z)t(z) + G (z0 , z)t(z) n(z0 )
1+κ S
)
+ κG (z0 , z)t(z) − (z0 − z) G (z0 , z)t(z) n(z0 ) dS(z),
(4.52)
Fu (z0 ) ≡ [F1 (x) + i F2 (x)]u
≡
H1 j (x, y)u j (y)dS(y) + i
H2 j (x, y)u j (y)dS(y)
S
S
!
2µ
=−
G (z0 , z)n(z)u(z) + G (z0 , z)n(z)u(z) n(z0 )
1+κ S
(
+ G (z0 , z) n(z)u(z) + n(z)u(z)
)
− (z0 − z) G (z0 , z)n(z)u(z) n(z0 ))dS(z).
(4.53)
To show that complex variable CBIE (4.43) is equivalent to real variable CBIE
(4.19) and complex variable HBIE (4.49) is equivalent to real variable HBIE
(4.23), we can simply introduce the polar coordinate system (r, θ) with the
origin at z0 ; notice that:
z − z0 = r eiθ ,
G =
1 −iθ
1
=
e ,
2π (z − z0 )
2πr
G =
1 iθ
e ,
2πr
and so on,
(4.54)
and extract the real and imaginary parts of the results in the complex variable
BIEs.
In the following discussion, we first study the multipole expansions, local
expansions, and their translations related to Eqs. (4.44) and (4.45) in the fast
multipole BEM for CBIE (4.43). Then, we present the expansions related to
Eqs. (4.52) and (4.53) for HBIE (4.49). The derivations of these results are
similar and closely related to those for 2D potential problems discussed in the
previous chapter.
4.7.1 Multipole Expansion for the U Kernel Integral
Let zc be a multipole expansion point close to z (Figure 3.2) – that is,
|z − zc | |z0 − zc |; the multipole expansion for Dt (z0 ) in (4.44) with the U
97
98
Elastostatic Problems
kernel is given by [73]:
1
Dt (z0 ) =
κ
4π µ(1 + κ)
∞
∞
Ok (z0 − zc )Mk (zc ) + z0
k=0
Ok+1 (z0 − zc ) Mk (zc )
k=0
(4.55)
∞
+
Ok (z0 − zc )Nk (zc ) ,
k=0
where:
Mk (zc ) =
Ik (z − zc )t(z)dS(z),
for k ≥ 0,
(4.56)
Sc
N0 = κ
t(z)dS(z);
Sc
κ Ik (z − zc )t(z) − Ik−1 (z − zc )zt(z) dS(z),
Nk (zc ) =
(4.57)
for k ≥ 1,
Sc
are the two sets of moments about zc , with Sc being a subset of S that is
far away from the source point z0 (Figure 3.2). The two auxiliary functions
Ik (z) and Ok (z) were defined in Eqs. (3.12). Equation (4.55) is derived readily
by use of the expansion for G(z0 , z) given in Eq. (3.11).
4.7.2 Moment-to-Moment Translation
If the multipole expansion point zc is moved to a new location zc (Figure 3.2),
we have:
k
Mk (z ) =
c
Ik−l (zc − zc )Ml (zc ),
for k ≥ 0.
(4.58)
Ik−l (zc − zc )Nl (zc ),
for k ≥ 0.
(4.59)
l=0
Similarly,
k
Nk (zc ) =
l=0
These are the M2M translations for the moments when zc is moved to zc . Note
that these translation coefficients are symmetrical for the two sets of moments
(Ik−l and conjugate of Ik−l ) and coefficients Ik−l are exactly the same as used
in the 2-D potential case (see Eq. (3.23)).
4.7.3 Local Expansion and Moment-to-Local Translation
Let zL be a local expansion point close to the source point z0 (Figure 3.2); that
is, |z0 − zL| |zc − zL|. Expanding Dt (z0 ) in (4.55) about z0 = zL by using a
4.7 Fast Multipole Boundary Element Method for 2D Elastostatic Problems
Taylor series expansion, we have the following local expansion [73]:
Dt (z0 ) =
1
κ
4π µ(1 + κ)
∞
∞
Ll (zL)Il (z0 − zL) − z0
Ll (zL)Il−1 (z0 − zL)
l=0
l=1
∞
Kl (zL)Il (z0 − zL) ,
+
(4.60)
l=0
where the coefficients are given by the following M2L translations:
∞
Ll (zL) = (−1)l
Ol+k (zL − zc )Mk (zc ),
for l ≥ 0;
(4.61)
Ol+k (zL − zc )Nk (zc ),
for l ≥ 0.
(4.62)
k=0
∞
Kl (zL) = (−1)l
k=0
Note that these M2L translation coefficients are also symmetrical regarding
the translation coefficients [see Eq. (3.25)].
4.7.4 Local-to-Local Translation
If the local expansion point is moved from zL to zL (Figure 3.2), the new local
expansion coefficients are given by the following L2L translations [73]:
∞
Ll (zL ) =
Im−l (zL − zL)Lm (zL),
for l ≥ 0;
(4.63)
Im−l (zL − zL)Km (zL),
for l ≥ 0,
(4.64)
m=l
∞
Kl (zL ) =
m=l
which are also symmetrical regarding the translation coefficients [see
Eq. (3.30)].
4.7.5 Expansions for the T Kernel Integral
Through a procedure similar to that used for the U kernel integral in (4.44),
the multipole expansion of the T kernel integral Du (z0 ) in (4.45) can be written
as [73]:
Du (z0 ) =
1
κ
2π (1 + κ)
∞
+
k=1
∞
' k (zc ) + z0
Ok (z0 − zc ) M
k=1
'k (zc ) ,
Ok (z0 − zc ) N
∞
' k (zc )
Ok+1 (z0 − zc ) M
k=1
(4.65)
99
100
Elastostatic Problems
where the two sets of moments are:
' k (zc ) =
M
Ik−1 (z − zc )n(z)u(z)dS(z),
'1 =
N
'k (zc ) =
N
for k ≥ 1;
(4.66)
Sc
n(z)u(z) + n(z)u(z) dS(z);
Sc
(
Ik−1 (z − zc ) n(z)u(z) + n(z)u(z)
(4.67)
Sc
)
− Ik−2 (z − zc )zn(z)u(z) dS(z),
for k ≥ 2.
These moments are similar to those for the U kernel integral. It can be shown
that all the M2M, M2L, and L2L translations remain the same for the T kernel
'0 = N
'0 = 0. In fact, moments Mk and M
' k are comintegrals, except that M
'
bined, as well as moments Nk and Nk , so that only two sets of moments are
involved in the M2M and M2L translations.
The local expansion for Du (z0 ) is [73]:
Du (z0 ) =
1
κ
2π(1 + κ)
∞
∞
Ll (zL)Il (z0 − zL) − z0
l=0
Ll (zL)Il−1 (z0 − zL)
l=1
∞
Kl (zL)Il (z0 − zL) ,
+
(4.68)
l=0
where the local expansion coefficients Ll (zL) and Kl (zL) are given by
' k and N
'k , respectively.
Eqs. (4.61) and (4.62), with Mk and Nk replaced with M
4.7.6 Expansions for the Hypersingular Boundary Integral Equation
To derive the multipole expansions and local expansions for HBIE (4.49), we
can simply take the derivatives of the local expansions for the two integrals
in the CBIE – that is, the integrals in Eqs. (4.60) and (4.68), respectively –
and then invoke the constitutive relation in the complex form; that is, Eqs.
(4.50) and (4.51). The result of the local expansion for the first integral Ft (z0 ) in
Eq. (4.52) for the HBIE is:
∞
∞
1
Ft (z0 ) =
Ll+1 (zL)Il (z0 − zL) +
Ll+1 (zL)Il (z0 − zL) n(z0 )
2π(1 + κ)
l=0
∞
+ −z0
l=0
∞
Ll+1 (zL)Il−1 (z0 − zL) +
l=1
Kl+1 (zL)Il (z0 − zL) n(z0 ) ,
l=0
(4.69)
in which the expansion coefficients Ll (zL) and Kl (zL) are given by the same
M2L translations in (4.61) and (4.62), respectively. That is, the same sets of
moments Mk and Nk used for Dt (z0 ) are used for Ft (z0 ) directly.
4.8 Fast Multipole Boundary Element Method for 3D Elastostatic Problems
Similarly, it can be shown that the local expansion for the second integral
Fu (z0 ) in Eq. (4.53) for the HBIE is:
∞
∞
µ
Fu (z0 ) =
Ll+1 (zL)Il (z0 − zL) +
Ll+1 (zL)Il (z0 − zL) n(z0 )
π (1 + κ)
l=0
l=0
∞
∞
+ −z0
Ll+1 (zL)Il−1 (z0 − zL) +
Kl+1 (zL)Il (z0 − zL) n(z0 ) ,
l=0
l=1
(4.70)
in which Ll (zL) and Kl (zL) are given by Eqs. (4.61) and (4.62), with Mk
' k and Nk with N
'k . Again, the same sets of moments M
' k and N
'k
replaced by M
used for Du (z0 ) are used for Fu (z0 ) directly; thus, all of the M2M, M2L, and
L2L translations for the HBIE remain the same as those used for the CBIE.
The details of the fast multipole algorithms for solving 2D elasticity problems are similar to those for 2D potential problems, which are described in the
previous chapter. For example, if constant boundary elements (straight-line
segment with one node) are applied to discretize the 2D elasticity BIEs, all
of the moments can be evaluated analytically, as well as the integration of the
kernels in the near-field direct evaluations (Appendix A.2).
4.8 Fast Multipole Boundary Element Method
for 3D Elastostatic Problems
To discuss the fast multipole formulation for 3D elasticity problems, we first
note that the fundamental solution in Eq. (4.11) can be written in the following
form:
2
1
λ + µ ∂ x j − yj
Ui j (x, y) =
δi j −
.
(4.71)
8π µ
r
λ + 2µ ∂ xi
r
Start with the following expansion [see Eq. (3.46) used for 3-D potential problems]:
1
=
r (x, y)
∞
n
Sn,m (x − yc )Rn,m (y − yc ),
y − yc < x − yc ,
(4.72)
n=0 m=−n
where yc is an expansion point close to the field point y and the overbar indicates the complex conjugate. The functions Rn,m and Sn,m are solid harmonic
functions given in Eqs. (3.47) and (3.48), respectively. Note that the left-hand
side of Eq. (4.72) is a real function. Therefore, the complex conjugate can also
be placed on Rn,m in Eq. (4.72). Substituting the results in (4.72) into Eq. (4.71),
we arrive at:
Ui j (x, y) =
1
8π µ
∞
n
Fi j,n,m (x − yc )Rn,m (y − yc )
n=0 m=−n
+ Gi,n,m (x − yc )(y − yc ) j Rn,m (y − yc ) ,
(4.73)
101
102
Elastostatic Problems
where:
∂
λ + 3µ
λ+µ
Sn,m (x − yc ),
δi j Sn,m (x − yc ) −
(x − yc ) j
λ + 2µ
λ + 2µ
∂ xi
(4.74)
λ+µ ∂
Gi,n,m (x − yc ) ≡
Sn,m (x − yc ).
(4.75)
λ + 2µ ∂ xi
Fi j,n,m (x − yc ) ≡
Consider the first integral with the U kernel in CBIE (4.19) on a subdomain Sc
of S away from the source point x. Applying expression (4.73), with point yc
being close to subdomain Sc (elements within a leaf), we obtain the following
multipole expansion:
∞
n
1
Fi j,n,m (x − yc )Mj,n,m (yc )
Ui j (x, y)t j (y)dS(y) =
8π µ
Sc
n=0 m=−n
+ Gi,n,m (x − yc )Mn,m (yc ) ,
(4.76)
in which:
Rn,m (y − yc )t j (y)dS(y),
Mj,n,m (yc ) =
Sc
(y − yc ) j Rn,m (y − yc )t j (y)dS(y)
Mn,m (yc ) =
(4.77)
Sc
are the moments for given n and m. Evaluations of these four moments are
independent of the location of the source point x and thus need to be calculated only once on each element.
To obtain the multipole expansion for the T kernel integral in CBIE
(4.19), we note that:
Ti j (x, y) = E jklp nk (y)
∂
Uil (x, y).
∂ yp
(4.78)
From this relation and expansion in Eq. (4.73), we obtain the multipole expansion for the T kernel integral as follows:
∞
n
1
' j,n,m (yc )
Ti j (x, y)u j (y)dS(y) =
Fi j,n,m (x − yc ) M
8π µ
Sc
m=−n
n=0
in which:
' j,n,m (yc ) = E j pkl
M
' n,m (yc ) = E j pkl
M
' n,m (yc ) ,
+ Gi,n,m (x − yc ) M
(4.79)
∂
[Rn,m (y − yc )] nk (y)ul (y)dS(y),
∂
Sc yp
∂
[(y − yc ) j Rn,m (y − yc )] nk (y)ul (y)dS(y).
∂
Sc yp
(4.80)
Depending on the boundary conditions, only one in each of the pairs
' j,n,m ) and (Mn,m , M
' n,m ) are used in the moment calculations. There
(Mj,n,m , M
is a total of four moments that need to calculated on each boundary element.
4.8 Fast Multipole Boundary Element Method for 3D Elastostatic Problems
When the expansion point is moved from yc to yc , we have the following
M2M translations:
n
n
Mj,n,m (yc ) =
Rn ,m (yc − yc )Mj,n−n ,m−m (yc ),
n =0 m =−n
n
n
Mn,m (yc ) =
Rn ,m (yc − yc ) [Mn−n ,m−m (yc )
(4.81)
n =0 m =−n
+ (yc − yc ) j Mj,n−n ,m−m (yc )] ,
' j,n,m and M
' n,m .
which are also valid for M
The local expansion of the U kernel integral on Sc about the point x = x L
is given as follows:
Ui j (x, y)t j (y)dS(y) =
Sc
1
8π µ
∞
n
FiRj,n,m (x − x L)Lj,n,m (x L)
n=0 m=−n
R
(x
+ Gi,n,m
(4.82)
− x L)Ln,m (x L) ,
where the local expansion coefficients are given by the following M2L translations:
∞
Lj,n,m (x L) = (−1)
n
Sn+n ,m+m (x L − yc )Mj,n ,m (yc ),
n
n =0 m =−n
Ln,m (x L) = (−1)
∞
n
n =0
m =−n
Sn+n ,m+m (x L − yc )
n
(4.83)
× [Mn ,m (yc ) − (x L − yc ) j Mj,n ,m (yc )] ,
R
are obtained from Eqs. (4.74) and (4.75), respectively,
and FiRj,n,m and Gi,n,m
with Sn,m replaced with Rn,m in each case. The local expansion for the T kernel
integral is similar to that of Eq. (4.82), only with Mj,n ,m and Mn ,m replaced
' j,n ,m and M
' n ,m , respectively, in Eq. (4.83) when the local expansion
with M
coefficients for the T kernel integral are computed.
When the local expansion point is moved from x L to x L , we have the following L2L translations:
∞
n
Lj,n,m (x L ) =
Rn −n,m −m (x L − x L)Lj,n ,m (x L),
n =n m =−n
∞
Ln,m (x L ) =
n
(4.84)
Rn −n,m −m (x L − x L) [Ln ,m (x L) − (x L − x L) j Lj,n ,m (x L)].
n =n m =−n
103
104
Elastostatic Problems
We can readily obtain the fast multipole formulation for the HBIE by taking
the derivatives of the local expansions for the CBIE and invoking the constitutive equations, as we did in the 2D elasticity case.
As in the 2D cases, the fast multipole formulations for 3D elasticity problems closely resemble those for 3D potential problems. In fact, all of the expansions and translations (M2M, M2L, and L2L) for the 3D elasticity case are
similar to those for 3D potential cases, as we discussed in the previous chapter.
The only difference is that we have four moments in the multipole expansion
for 3D elasticity problems, whereas we have only one moment for 3D potential
problems. From this fact, we can readily obtain a fast multipole BEM program
for 3D elasticity problems by extending a fast multipole BEM program for 3D
potential problems.
It should be pointed out that the M2L translations are more expensive compared with other operations in the FMM, especially for 3D vector
problems. A new version of the FMM was introduced by Greengard and
Rokhlin in 1997 [65], which uses exponential expansions and replaces the M2L
translations with multipole-to-exponential (M2X), exponential-to-exponential
(X2X), and exponential-to-local (X2L) expansions. This new version is more
difficult to implement. However, it can speed up the solutions by about 20%–
40% for many 3D applications [61, 66].
4.9 Fast Multipole Boundary Element Method for Multidomain
Elasticity Problems
In this section, we discuss a BEM formulation for multidomain elasticity problems [74] that can be applied to model fiber-reinforced composite materials,
functionally graded materials, and other inclusion problems in elasticity. The
efficient preconditioner for this BEM formulation can be constructed that can
provide efficient solution strategies for the fast multipole BEM for solving such
multidomain elasticity problems.
Consider a 2D or 3D elastic domain V0 with boundary S0 and embedded with n elastic inclusions Vα with interface Sα , where α = 1, 2, . . . , n (Figure 4.2). In this discussion, we assume all the inclusions are completely
embedded inside the elastic matrix domain; that is, there is no intersection
of the interface Sα with the outer boundary S0 . This is a special case of
the general multidomain problems. We also assume that no body force is
present.
For the matrix domain V0 , we have the following CBIE from Eq. (4.19):
1
ui (x) =
2
[Ui j (x, y)t j (y) − Ti j (x, y)u j (y)]dS(y),
S
∀x ∈ S,
(4.85)
4.9 Fast Multipole Boundary Element Method for Multidomain Elasticity Problems
Vn
Sn
Vα
Sα
n
y
V2
r
S2
x
2
n
V0
V1
S1
1
S0
n
3
Figure 4.2. Matrix domain V0 and n inclusions.
where ui and ti are the displacement and traction, respectively; S = ∪nα=0 Sα is
the total boundary of domain V0 (assuming that S is smooth around x) and
Ui j (x, y) and Ti j (x, y) are the two kernel functions.
For each inclusion, the CBIE from Eq. (4.19) can be written as:
1 (α)
u (x) =
2 i
Sα
(α)
(α)
(α)
(α)
Ui j (x, y)t j (y) − Ti j (x, y)u j (y) dS(y),
(α)
∀x ∈ Sα , (4.86)
(α)
for α = 1, 2, . . . , n, in which ui and ti are the displacement and traction,
(α)
(α)
respectively, for inclusion α, and Ui j (x, y) and Ti j (x, y) are the two kernels using the shear modulus, Poisson’s ratio, and outward normal for inclusion α.
HBIE (4.23) can also be applied in the matrix as well as in the inclusion
domains. In fact, the dual BIE formulation (CHBIE, a linear combination of
the CBIE and HBIE) is preferred for modeling inclusion problems in which
thin shapes often exist and can present difficulties for the CBIE formulation
when it is applied alone.
Assume that the inclusions are perfectly bonded to the matrix; that is,
there are no gaps or cracks and no interphase regions. We have the following
interface conditions:
(α)
ui = ui ,
(α)
ti = −ti ,
(4.87)
for α = 1, 2, . . . , n, which state that the displacements are continuous and the
tractions are in equilibrium at the interfaces.
From the assumptions just mentioned, we can write the discretized form
of the multidomain BIEs by using either the CBIE or CHBIE for the matrix
105
106
Elastostatic Problems
domain and the inclusions as follows [74]:
A
A
A
··· A
S0
S
1
S
2
Matrix
.
..
Sn
S1
S2
Inclusions
..
.
Sn
A10
A20
.
.
.
An0
0
0
.
..
· · · A1n
· · · A2n
−B02
−B12
−B22
..
.
An2
..
.
· · · Ann
..
.
−Bn1
..
.
−Bn2
A1
0
··· 0
B1
0
0
f
A2
··· 0
0
B2
· · · −B0n
u0
· · · −B1n
u1
· · · −B2n
u
2
.
..
.
.
.
.
.
.
· · · −Bnn
un
t1
···
0
t2
···
0
..
.
..
.
..
..
.
..
.
..
.
..
0
···
Anf
0
0
···
01
02
0n
A11
A21
A12
A22
..
.
An1
f
0
−B01
−B11
−B21
00
0
..
.
.
f
f
.
..
.
Bnf
.
.
.
t
n
B00
B10
B
20
.
.
.
= Bn0 {t0 } ,
0
0
..
.
0
(4.88)
in which u0 and t0 are the displacement and traction vector on the outer
boundary S0 , ui and ti are the displacement and traction vector on the interface Si from the matrix domain, Ai j and Bi j are the coefficient submatrices
f
f
from the matrix domain, and Ai and Bi are the coefficient submatrices from
inclusion i. By rearranging the terms in Eq. (4.88), we can write an alternative
form of the BEM system of equations as [74]:
Matrix S0
A00
Inclusion S2
..
.
Matrix Sn
A10
0
A20
0
..
.
An0
Inclusion Sn
0
Matrix S1
Inclusion S1
Matrix S2
A01
−B01
A02
−B02
· · · A0n
A11
−B11
A12
−B12
· · · A1n
f
A1
A21
0
..
.
An1
0
f
B1
0
−B21
A22
0
..
.
−Bn1
f
A2
0
..
.
An2
0
0
−B22
··· 0
· · · A2n
f
B2
···
..
.
···
0
· · · An
..
.
−Bn2
0
..
.
Ann
f
u0
B00
B
u
−B1n
1
10
0
0 t1
−B2n u2
B20
= 0 {t0 } .
0 t2
.
.
..
.
.
.
.
.
u
Bn0
n
−Bnn
f
−B0n
Bn
tn
0
(4.89)
Both systems of equations in (4.88) and (4.89) can be applied with the fast multipole BEM to solve inclusion problems in elasticity. The multipole expansions
and related translations discussed in the previous two sections for 2D and 3D
elasticity BIEs can be applied readily for the BIEs from the matrix domain and
4.9 Fast Multipole Boundary Element Method for Multidomain Elasticity Problems
those from the inclusion domains. The only difficult part in the implementation
is the bookkeeping of the locations of the submatrices from different domains
in the systems of equations.
Preconditioning for the fast multipole BEM is even more crucial
for its convergence and efficiency in solving multidomain problems. Two
preconditioners can be devised based on the two forms of the BEM systems of
equations shown in Eqs. (4.88) and (4.89).
For Preconditioner A, a block diagonal preconditioner based on Eq. (4.88)
is used. For the matrix domain, a diagonal submatrix is formed on each leaf
by use of direct evaluations of the kernels on the elements within that leaf,
f
whereas for the inclusions, the submatrix Bi in Eq. (4.88) along the main diagonal is used for each inclusion.
For Preconditioner B, a block diagonal preconditioner based on Eq. (4.89)
is used. In this case, the following matrix from the matrix in Eq. (4.89) is used
as the preconditioner:
A00
0
0
0
M=
0
.
.
.
0
0
0
A11
f
0
−B11
f
0
0
0
0
··· 0
··· 0
0
−B22
··· 0
··· 0
0
0
A1
0
B1
0
0
A22
0
..
.
0
0
..
.
0
A2
..
.
0
B2
..
.
0
··· 0
.
..
. ..
· · · Ann
0
0
0
0
···
f
f
f
An
0
0
.
0
..
.
−Bnn
f
Bn
(4.90)
This preconditioner is equivalent to solving many inclusion problems as if
there were only one inclusion embedded in an infinite domain in each case.
For this preconditioner, larger diagonal matrices need to be processed for
each inclusion, which can be time-consuming if the number of elements on
each inclusion is large. However, this preconditioner is very effective for inclusion problems because the number of iterations for the GMRES solver can
be reduced significantly, as is shown in the numerical examples in the following section (also in Ref. [74]). A similar preconditioner is applied in the 3D
fast multipole BEM for modeling rigid inclusion problems by the 3D singledomain CBIE in Refs. [80, 81].
The systems in Eqs. (4.88) and (4.89) are right preconditioned with the
preceding two preconditioners, respectively, in solving elasticity inclusion
problems by using the fast multiple BEM. LU decompositions (LU stands for
lower triangular and upper triangular matrices) of the submatrices in these
preconditioners can be computed once and saved in memory in the subsequent
iterations to save the CPU time in solving such problems.
107
108
Elastostatic Problems
a
Figure 4.3. A thick cylinder with pressure loads.
O
b
V
pi
po
S
4.10 Numerical Examples
Several numerical examples are given in this section to demonstrate the accuracy and efficiency of the fast multipole BEM for solving 2D and 3D elasticity
problems. Most of the computations were done on a Pentium IV laptop PC
with a 2.4-GHz CPU and 1-GB RAM. In all of the cases, the material has
Young’s modulus E and Poisson’s ratio ν.
4.10.1 A Cylinder with Pressure Loads
We first consider a thick cylinder under pressure loads (in the plane-strain
case) as shown in Figure 4.3. The inner pressure is pi and the outer pressure
is po. In the case studied, b = 2a, pi = po = p, and Poisson’s ratio ν = 0.3.
We discretize the inner and outer boundaries with the same number of elements and run both the fast multipole BEM code and a conventional BEM
code that also uses constant elements and analytical integrations. The conventional BEM code uses both the direct solver (LAPACK) and the iterative
solver (GMRES) for solving the linear system. For the fast multipole BEM,
the numbers of terms for both multipole and local expansions were set to 20,
the maximum number of elements in a leaf to 20, and the tolerance for convergence of the solution to 10−6 . All the fast multipole BEM results converged in
about three iterations without using any preconditioner in this example.
Table 4.1 shows the results of radial displacement ur and hoop stress σθ
at the inner boundary obtained with both the fast multipole BEM and the
conventional BEM (with the direct solver) as the total number of elements
increases from 200 to 4800 (DOFs from 400 to 9600). As we can see, the results
for both the fast multipole BEM and the conventional BEM converge quickly
to the exact solution [88] for the mesh with 360 constant elements with a relative error of less than 3%. The results continue to improve with the increase
of the number of elements.
4.10 Numerical Examples
109
Table 4.1. Radial displacement and hoop stress at the inner boundary
σθ (× p)
ur (× pa/E)
DOFs
Conventional
BEM
Fast multipole
BEM
Conventional
BEM
Fast multipole
BEM
400
720
1440
2880
4800
9600
−0.52233
−0.52143
−0.52076
−0.52039
−0.52024
−0.52012
−0.52233
−0.52143
−0.52076
−0.52039
−0.52024
−0.52012
−1.00228
−1.00149
−1.00081
−1.00042
−1.00026
−1.00013
−1.00228
−1.00148
−1.00082
−1.00042
−1.00026
−1.00007
Exact Solution
−0.52000
−1.00000
The CPU times used for the two BEM approaches are plotted in Figure 4.4, which shows the significant advantage of the fast multipole BEM compared with the conventional BEM with either a direct or an iterative solver.
For example, for the model with 4800 elements (DOFs = 9600), the fast multipole BEM used only 3 s of the CPU time, whereas the conventional BEM used
1483 s with the direct solver and 38 s with the iterative solver. Beyond 10,000
DOFs, the conventional BEM (with double precision) encounters the 1-GB
physical memory barrier and cannot run efficiently without using the virtual
memory. It is also interesting to note from Figure 4.4 that the slopes of the
10,000.00
Conventional BEM with direct solver [~O(N 3)]
Conventional BEM with GMRES solver [~O(N 2)]
1,000.00
Fast multipole BEM [~O(N )]
Total CPU time (s)
100.00
10.00
1.00
0.10
0.01
100
1000
10,000
DOFs
Figure 4.4. CPU times used by the conventional BEM and fast multipole BEM.
100,000
110
Elastostatic Problems
y
A
a
L
B
p
Figure 4.5. A square plate with a circular hole
at the center and loaded with p.
x
three curves for the conventional BEM with direct solver, iterative solver, and
the fast multipole BEM are close to 3, 2, and 1 on the log–log scales, suggesting
O(N 3 ), O(N 2 ), and O(N) efficiencies of the three methods, respectively.
This example shows that the fast multipole BEM is very efficient compared with the conventional BEM. In addition, the fast multipole BEM results
are equally accurate as the conventional BEM results, and they are very stable
with the increase of the model size.
4.10.2 A Square Plate with a Circular Hole
In the second example, we further study the accuracy of the fast multipole
BEM by using a stress concentration problem – a square plate with a circular
hole at the center, as shown in Figure 4.5. The edge length of the square plate is
L, and the radius of the hole is a = 0.1L. The plate is loaded in the x direction
with a uniform load p and Poisson’s ratio ν = 0.3. The maximum (at point
A) and minimum (at point B) hoop stresses on the edge of the hole are sought
(Figure 4.5) using both the fast multipole BEM code and ANSYS. In the BEM
models, the number of boundary elements on the edge of the hole increases
whereas that on the outer edges of the plate is kept at 100, except for the last
BEM model, in which 200 elements are used on the outer edges of the plate.
The numbers of terms for both multipole and local expansions were set to
20, the maximum number of elements in a leaf to 100, and the tolerance for
convergence to 10−6 . All of the fast multipole BEM results converged in about
20 iterations. In the FEM models, Q4 elements are used to compare with the
BEM models (which use constant boundary elements).
Table 4.2 shows the comparison of the computed hoop stresses at points
A and B. For an infinitely large plate with a hole, the hoop stress at point A is
3p and that at point B is −p [88]. For our finite-sized plate with the hole, the
4.10 Numerical Examples
111
Table 4.2. Computed hoop stress σθ (× p) on the edge of the hole
Fast multipole BEM
FEM
DOFs
At point A
At point B
DOFs
At point A
At point B
560
920
1640
3080
7600
3.215
3.216
3.216
3.217
3.222
−1.176
−1.183
−1.185
−1.188
−1.190
1206
4522
9490
38,440
3.148
3.229
3.225
3.226
−1.101
−1.185
−1.187
−1.192
hoop stresses should be slightly higher than these values. The stress values for
both fast multipole BEM (with DOFs = 1640) and FEM (with DOFs = 4522)
converged quickly to around 3.22p at point A and −1.19p at point B. Further increases of the numbers of elements provided little improvement in the
results. This example demonstrates again that the results obtained when the
fast multipole BEM code is used are accurate and stable.
It should be pointed out that the element types used for both the BEM
and the FEM in this study are the simplest elements available. If higher-order
elements such as quadratic elements are used, a few hundred elements should
be sufficient for both the BEM and the FEM to achieve the same accuracy as
reported in this example.
4.10.3 Multiple Inclusion Problems
We next study multiple inclusion problems by using the dual BIE and the fast
multipole BEM [74]. The same square domain and BCs as in the previous
example are used (Figure 4.5) but with elliptical inclusions (long axis a and
short axis b). Two cases are considered here, one with multiple circular inclusions (long and unidirectional fibers) under the plane-strain condition and the
other with multiple cracklike inclusions under plane-stress condition. For the
circular inclusion case, the parameters used are a = b = 0.2, fiber volume fraction = 12.57%, E = 1, and ν = 0.25 for the matrix and E = 10 and ν = 0.25
for the inclusions. For the cracklike inclusion case, b = 0.2, a/b = 0.01, crack
density = b2 = 4%, E = 1 and ν = 0.25 for the matrix, and E = 0.00001 and
ν = 0.25 for the inclusions (cracks). In both cases, the inclusions are randomly
distributed in the material domains. Two BEM models for the two cases are
shown in Figure 4.6. For the outer boundary, 400 elements are used; on each
interface, 200 elements are used.
We evaluate the effective Young’s moduli of the materials containing the
circular inclusions and cracks in the x–y plane by using the fast multipole BEM
with the CHBIE and compare with the estimates by using homogenization
112
Elastostatic Problems
(a)
(b)
Figure 4.6. Elastic domains embedded with 400 elastic inclusions: (a) circular inclusions
(fibers) with Ei /E0 = 10, (b) cracklike inclusions with Ei /E0 = 0.00001 and a/b = 0.01.
theories. Table 4.3 shows the BEM results with different numbers of the inclusions in the models, and excellent results are obtained for both cases. With
the increase of the size of the models, the evaluated effective Young’s moduli
approach constant values, as expected.
Figure 4.7 is a plot of the CPU times used with the fast multipole BEM for
the two cases studied and with the two preconditioners discussed in the previous section on the multidomain BEM. Preconditioner A is based on the coefficients calculated on leaves, and preconditioner B is based on those on the
Table 4.3. Computed effective moduli for the materials with
circular and cracklike inclusions
Effective Moduli (× E0 )
No. of
inclusions
Total DOFs
Circular
inclusions (Ex , Ey )
Cracklike
inclusions (Ex )
2×2
4×4
6×6
8×8
10 × 10
12 × 12
14 × 14
16 × 16
18 × 18
20 × 20
4000
13,600
29,600
52,000
80,800
116,000
157,600
205,600
260,000
320,800
1.2678
1.2728
1.2596
1.2605
1.2649
1.2640
1.2635
1.2651
1.2642
1.2644
0.7631
0.8024
0.7808
0.7923
0.7891
0.7902
0.7886
0.7900
0.7897
0.7885
1.2491
0.7992
Analytical estimates [89]
4.10 Numerical Examples
113
100,000
Circular inclusion (Preconditioner A)
Circular inclusion (Preconditioner B)
10,000
Crack (Preconditioner A)
Total CPU time (s)
Crack (Preconditioner B)
1000
100
10
1
1000
10,000
100,000
DOFs
Figure 4.7. CPU times used for the multiple circular and cracklike inclusion models.
inclusions [74]. The computer used for these calculations is a desktop PC with
an Intel Pentium D 3.2-GHz processor and 2-GB memory size. For the circular inclusion case, the numbers of iterations using preconditioner A range from
141 to 550, whereas those using preconditioner B range from 11 to 16, with a
tolerance of 10−6 . For the cracklike inclusion case, the numbers of iterations
using preconditioner A range from 29 to 41, whereas those using preconditioner B range from 12 to 14. Significant advantages of using preconditioner
B are observed in both cases. It is also observed that the dual BIE (CHBIE)
formulation, which uses a linear combination of the CBIE and HBIE, provides much better conditioning for the cracklike inclusion problems, based on
the fact that much faster convergence was achieved for the cracklike problem
than for the circular inclusion problem.
4.10.4 Modeling of Functionally Graded Materials
We next show an example in modeling functionally graded materials by
using the fast multipole BEM for 2D elasticity inclusion problems. We model
functionally graded composites with long fibers that are distributed randomly
and with a decreasing density in one direction. The plane-strain model is used
to extract the moduli of the composites in the transverse directions. Two cases
are studies, one with the fibers of a circular shape and the other with the fibers
1,000,000
114
Elastostatic Problems
(a)
(b)
Figure 4.8. Functionally graded composites: (a) circular-shaped fibers; (b) star-shaped
fibers.
of a star shape (Figure 4.8). The volume fraction of the fibers is fixed at 12.57%,
and the material properties for the fibers and matrix are the same as in the previous example [Figure 4.6(a)].
Table 4.4 shows the computed effective Young’s moduli for the functionally graded composite models. The cell sizes increase with the increase of the
included fibers to keep the fiber volume fraction at 12.57%, as in the previous
example. It turns out that the effective moduli converge to the same value of
the analytical solution [89] that is based on a “uniform” (nongraded) distribution of the fibers as used in the previous example [Figure 4.6(a)]. This suggests
Table 4.4. Computed effective moduli for the functionally
graded composites
Effective Moduli Ex (× E0 )
No. of
inclusions
Total
DOFs
Circular-shaped
fibers
Star-shaped
fibers
4
16
36
64
100
144
196
256
324
400
4000
13,600
29,600
52,000
80,800
116,000
157,600
205,600
260,000
320,800
1.2752
1.2600
1.2674
1.2645
1.2639
1.2616
1.2621
1.2600
1.2625
1.2628
1.2254
1.2181
1.2227
1.2208
1.2227
1.2200
1.2216
1.2209
1.2224
1.2215
Analytical estimates [89]
1.2491
4.10 Numerical Examples
that the effective moduli of the composites are not affected by the shape and
the distribution of the fibers, as expected, if the volume fraction of the fibers
is the same. However, the graded distribution of the fibers may reduce the
stresses in the composites, and the star-shaped fibers may improve the interfacial properties of the composites.
4.10.5 Large-Scale Modeling of Fiber-Reinforced Composites
The 3D BEM was applied to model fiber-reinforced composite materials for
quite some time (see, e.g., Refs. [54, 90]). However, because of the limitations
in the conventional BEM, only models with a few fibers can be modeled and
analyzed with the BEM, even with parallel computing techniques. With the
advance of the fast multipole BEM, we can now analyze 3D BEM models
of composite materials with more than tens of thousands of fibers that are
modeled explicitly.
To demonstrate this, we next study a few 3D representative volume elements (RVEs) of fiber-reinforced composites by using the fast multipole BEM
for 3D problems. In these models, the fibers are regarded as rigid inclusions
and the matrix material is considered as an elastic medium. These models are
useful in cases in which the Young’s moduli of the fibers are much higher than
those of the matrix, as in the case of carbon nanotube (CNT) composites. The
RVE is loaded in the x direction to evaluate the effective modulus in that
direction. Elements are needed on only the boundaries and interfaces with
the BEM. More examples in modeling fiber-reinforced composites, especially
CNT composites, including those incorporating the molecular dynamics (MD)
and cohesive interface conditions, can be found in Refs. [80–82]. The following
large models were solved on a supercomputer at Kyoto University.
Figure 4.9 shows a smaller RVE of a short fiber-reinforced composite and
the stress contour plot on the interfaces between the fibers and matrix. A
boundary element mesh using constant triangular elements on the interfaces
is shown in the insert. Using the fast multipole BEM, we can readily study the
interface stresses in such models and extract the effective mechanical properties of the composites.
Figure 4.10 shows a larger RVE model with 5832 long fibers and
10,532,592 DOFs. The volume fraction of the fibers is 3.85%, and Poisson’s
ratio for the matrix is 0.3. Figure 4.11 shows the normalized effective Young’s
moduli (Eeff /Ematrix ) computed from the RVE models for the composite with
increasing numbers of the fibers (from 9 to 5832) and with uniform and random
distributions of the fibers, while keeping the same value of the volume fraction.
Theoretically, the moduli of the materials should be independent of the sizes
of the RVE models. However, when the RVE sizes are small (with only a few
fibers), there are significant changes in the estimated moduli as we increase
the model sizes, which suggests that the models are not yet representative
115
z
x
y
−300
−200
−100
50
0
0
z
100
−50
200
−50
0
sigmax:
y
x
300
50
0 1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16 17
∞
Figure 4.9. Stress contour plot (× σ ) for a RVE with 216 short fibers (insert shows
the mesh).
−500
200
100
0
0
z
−100
−200
−100
500
0
100
x
y
200
Figure 4.10. A RVE containing 5832 long fibers with the total DOFs = 10,532,592.
116
4.11 Summary
117
2.20
Effective Young’s modulus (Uniform case)
2.10
Effective Young’s moduli (E eff /E matrix)
Effective Young’s modulus (“Random” case)
2.00
1.90
1.80
1.70
1.60
1.50
1.40
1
10
100
1000
Number of fibers in the model (log scale)
Figure 4.11. Estimated effective Young’s moduli in the x direction for the composite
models.
of the composites. The estimated moduli approach constant with the increase
of the fibers and thus the sizes of the models. The increases in the values of
the moduli compared with those of the matrix range from 75.9% to 95.0% for
the uniform case and from 65.4% to 87.6% for the random case. However, the
increases in the random case are about 8% lower than those in the uniform
case. This suggests that even small misalignments and rotations of fibers can
offset the enhancement in the stiffness of composites.
The largest BEM model solved so far in modeling fiber-reinforced composites contains 16,000 fibers with a total of 28.8 million DOFs and was solved
on the supercomputer at Kyoto University [80]. More discussion and examples
of modeling the fiber-reinforced composites using the fast multipole BEM can
be found in Refs. [80–82].
4.11 Summary
In this chapter, the governing equations for elastostatic problems are
reviewed. The fundamental solutions, their properties, and the generalized
Green’s identity (Somigliana’s identity) are introduced. The BIE formulations are presented based on this identity and the fundamental solutions. The
10,000
118
Elastostatic Problems
fast multipole formulations for solving the BIEs are described in detail for
2D problems, and the results for 3D problems are presented. Fast multipole
BEMs for multidomain problems are also discussed. Numerical examples are
presented to demonstrate the accuracy and efficiencies of the fast multipole
BEM for solving large-scale 2D and 3D elasticity problems.
Problems
4.1. For an isotropic, linearly elastic body, derive the following equilibrium
equations in terms of the displacement field ui :
µ
µui, j j +
(4.91)
u j, ji + fi = 0.
1 − 2ν
4.2. Derive the generalized Green’s identity for elasticity problems
(Somigliana’s identity) in Eq. (4.17) by using both the Gauss theorem and
the virtual work theorem.
4.3. Derive the traction kernel Ti j in Eq. (4.10) from the displacement kernel
Ui j in Eq. (4.9) for 2D (plane-strain) problems.
4.4. Prove the results given in Eq. (4.32).
4.5. Verify that Eq. (4.42) does give the same fundamental solution given in
Eq. (4.9).
4.6. Prove the complex notation of the traction given in Eq. (4.48).
4.7. Write a conventional BEM code for solving 2D elasticity problems
using constant elements. Use the 2D potential code used in Chapter 2 (Appendix B.1) as the starting point and use the analytical integration results in Appendix A.2 for the 2D elasticity case.
4.8. Solve the cylinder model in Figure 4.3 by using a quarter-symmetry model
and compare the accuracy and efficiency of the results obtained with those
using the full model.
4.9. Write a fast multipole BEM code for solving 2D elasticity problems using
constant elements based on the 2D potential fast multipole BEM code
given in Appendix B.2. Study its accuracy and efficiency by using the cylinder example.
5
Stokes Flow Problems
Stokes flows are incompressible flows at low Reynolds’ number [91], which can
be found in many applications such as creeping flows in biological systems and
fluid–structure interactions in MEMSs. Stokes flow problems were formulated
with BIEs and solved by the BEM for decades with either direct or indirect
BIE formulations (see, e.g., Refs. [92, 93]).
For Stokes flow problems using the fast multipole BEM, there are several approaches reported in the literature. Greengard et al. [68] developed a
fast multipole formulation for directly solving the biharmonic equations in 2D
elasticity with the Stokes flow as a special case. Gomez and Power [37] studied
2D cavity flow governed by Stokes equations by using both direct and indirect
BIEs and the FMM in which they used Taylor series expansions of the kernels
in real variables directly. Mammoli and Ingber [40] applied the fast multipole
BEM to study Stokes flow around cylinders in a bounded 2D domain by using
direct and indirect BIEs with the kernels expanded by a Taylor series of the
real variables. In the context of modeling a MEMS, Ding and Ye [94] developed a fast BEM by using the precorrected fast Fourier transform (FFT) accelerated technique for computing drag forces with 3D MEMS models with slip
BCs. Frangi and co-workers [95–98] conducted extensive research by using the
direct BIE formulations and the fast multipole BEM for evaluating damping
forces of 3D MEMS structures. They applied a mixed-velocity–traction BIE in
modeling large-scale 3D MEMS problems under both no-slip and slip BCs. Liu
[99] also developed a fast multipole BEM for solving 2D Stokes flow problems
based on a dual BIE formulation.
In this chapter, the direct BIE formulations for solving Stokes flow problems are reviewed first. Then, the FMMs for both 2D and 3D Stokes flow problems are presented. Because of the similarities of the Stokes flow equations to
those for the elasticity problems, many of the results for Stokes flow problems
can be obtained directly from those for elasticity presented in the previous
chapter. Several numerical examples are presented, which clearly show the
119
120
Stokes Flow Problems
accuracy, efficiency, and potentials of the fast multipole BEM for analyzing
large-scale Stokes flow problems.
5.1 The Boundary-Value Problem
Consider the following boundary-value problem for a steady-state Stokes flow
in domain V with boundary S:
Equilibrium equations:
σi j, j = 0,
in V;
(5.1)
ui ,i = 0, in V;
(5.2)
Continuity equations:
Constitutive equations:
σi j = − pδi j + µ(ui , j +u j ,i ),
in V,
(5.3)
where σi j is the stress in the fluid, ui is the velocity, p is the pressure, and µ
is the coefficient of viscosity of the fluid. Substituting Eqs. (5.2) and (5.3) into
Eq. (5.1), we obtain the Stokes equation as follows:
− p,i +µui , j j = 0, in V.
(5.4)
Taking the derivative of this equation again and applying Eq. (5.2), we note
that the pressure p field satisfies the Laplace equation:
∇ 2 p = 0,
in V.
(5.5)
Two typical BCs for Stokes flow problems are:
ui = ui
on Su (velocity BCs),
(5.6)
ti = σi j n j = ti
on St (traction BCs),
(5.7)
where the overbar indicates the specified value of the field, ti is the traction, ni
are the components of the outward normal n, and Su ∪ St = S.
5.2 Fundamental Solution for Stokes Flow Problems
Let i jk (x, y), Ui j (x, y), and Pi (x, y) be the stress, velocity, and pressure fields,
respectively, in the fundamental solution for Stokes flow problems, with i indicating the direction of the unit concentrate force acting at the source point x.
We have the following equations:
i jk ,k (x, y) + δi j δ(x, y) = 0,
∀x, y ∈ R2 /R3 ,
(5.8)
Ui j , j (x, y) = 0,
∀x, y ∈ R2 /R3 ,
(5.9)
5.3 Boundary Integral Equation Formulations
121
in which the Dirac δ function δ(x, y) represents the body force corresponding
to the unit force. From Eq. (5.3), we have:
i jk = −Pi δ jk + µ(Ui j ,k +Uik , j ).
(5.10)
Substituting this result into Eq. (5.8) and applying Eq. (5.9), we have:
−Pi , j (x, y) + µUi j ,kk (x, y) + δi j δ(x, y) = 0,
∀x, y ∈ R2 /R3 .
(5.11)
Taking the derivative again with respect to y j , we obtain:
−∇ 2 Pi (x, y) +
∂
δ(x, y) = 0,
∂ yi
∀x, y ∈ R2 /R3 .
(5.12)
Comparing this equation with Eq. (2.4), we find that:
Pi (x, y) = −G,i (x, y) = −
∂G(x, y)
,
∂ yi
(5.13)
where G is the fundamental solution for potential problems.
For 2D Stokes flow problems, the pressure, velocity, and traction fields in
the fundamental solution are given by:
1
r,i ,
2πr
1
1
1
δi j log
+ r,i r, j − δi j ,
Ui j (x, y) =
4π µ
r
2
Pi (x, y) =
Ti j (x, y) = −
1
r,i r, j r,k nk (y).
πr
(5.14)
(5.15)
(5.16)
For 3D Stokes flow problems, the fundamental solution gives:
Pi (x, y) =
Ui j (x, y) =
1
r,i ,
4πr 2
(5.17)
1
(δi j + r,i r, j ) ,
8π µr
(5.18)
Ti j (x, y) = −
3
r,i r, j r,k nk (y).
4πr 2
(5.19)
It is noticed that the U and T kernels for Stokes flow problems also can be
obtained readily from the U and T kernels for elasticity problems, respectively,
by simply setting Poisson’s ratio ν = 1/2 in the results for elasticity problems.
Similar integral identities as those in Eqs. (4.13)–(4.16) are satisfied by the fundamental solutions for Stokes flow problems.
5.3 Boundary Integral Equation Formulations
Applying a generalized Green’s identity, similar to the one in Eq. (4.17), we obtain the following representation integral for the velocity within the domain V:
ui (x) = [Ui j (x, y)t j (y) − Ti j (x, y)u j (y)]dS(y), ∀x ∈ V.
(5.20)
S
122
Stokes Flow Problems
Let the source point x approach the boundary S; we obtain the CBIE for
Stokes flow problems (see, e.g., Refs. [92, 93]):
ci j (x)u j (x) = [Ui j (x, y)t j (y) − Ti j (x, y)u j (y)]dS(y), ∀x ∈ S,
(5.21)
S
where ci j = 1/2δi j if S is smooth around x, the integral with the U kernel is
a weakly singular integral, and the integral with the T kernel is a Cauchy
principal-value integral. Equation (5.21) is valid for both interior and exterior problems (assuming velocity and traction fields vanish at the infinity for
the latter). Equation (5.21) is the direct BIE formulation for Stokes flow problems in which the density functions have direct physical meanings; that is, they
represent the velocity and traction (ui and ti , respectively).
The pressure field can be represented by the following integral (see also
Refs. [92, 93]):
p(x) = [G, j (x, y)t j (y) − 2µF, j (x, y)u j (y)]dS(y), ∀x ∈ V,
(5.22)
S
in which F(x, y) is the same F kernel for potential problems; that is:
F(x, y) =
∂G(x, y)
.
∂n(y)
(5.23)
From Eq. (5.22), we can find the pressure field p(x) in domain V once the
velocity and traction fields are known on boundary S.
Taking the derivatives of Eq. (5.20) and applying Eq. (5.3), we have the
following results:
σi j (x)n j (x) = −p(x)ni (x) + ni (x) [G, j (x, y)t j (y) − 2µF, j (x, y)u j (y)] dS(y)
S
(5.24)
+ [Ki j (x, y)t j (y) − Hi j (x, y)u j (y)] dS(y), ∀x ∈ V,
S
with ni (x) being a vector at x. Noting Eq. (5.22) and letting x tend to S, we
obtain the following traction BIE (HBIE) from the preceding result:
c̃i j (x)t j (x) = [Ki j (x, y)t j (y) − Hi j (x, y)u j (y)] dS(y), ∀x ∈ S,
(5.25)
S
where c̃i j = 1/2δi j , assuming S is smooth around x. For 2D Stokes flow problems, the two new kernels are:
Ki j (x, y) =
Hi j (x, y) =
1
r,i r, j r,k nk (x),
πr
µ
[(δi j r,k + δ jk r,i − 8r,i r, j r,k ) r,l nl (y)
πr 2
+ ni r, j r,k + nk r,i r, j + δik n j ] nk (x),
(5.26)
(5.27)
5.3 Boundary Integral Equation Formulations
123
where ni (x) is the normal at the source point x. For 3D problems, the two new
kernels are:
3
r,i r, j r,k nk (x),
4πr 2
µ (
Hi j (x, y) =
[3(δi j r,k + δ jk r,i ) − 30r,i r, j r,k ] r,l nl (y)
4πr 3
)
+ 3(ni r, j r,k + nk r,i r, j ) + 2δik n j nk (x).
Ki j (x, y) =
(5.28)
(5.29)
In HBIE (5.25), the integral with the K kernel is a CPV integral, whereas the
one with the H kernel is a HFP integral. For exterior problems, it has been
assumed that the pressure field p(x) vanishes at infinity in the derivation of
HBIE (5.25).
We can obtain CBIE (5.21) and HBIE (5.25) with the four kernels Ui j , Ti j ,
Ki j , and Hi j from those for elasticity problems by simply setting Poisson’s
ratio to 1/2 in the corresponding elasticity BIEs. However, it is still beneficial
to derive these BIEs based on the field equations in order to better understand the BIEs for Stokes flow problems. In addition, it should be pointed out
that the relations between the elasticity BIEs and the Stokes flow BIEs do not
provide an easy path for solving Stokes flow problems by just using the fast
multipole BEM code for elasticity problems. A few results related to the elasticity BIEs become invalid when Poisson’s ratio ν is set to 1/2 directly (e.g., the
Lamé constant λ = 2µν/(1 − 2ν) → ∞ when ν → 1/2).
Some observations on CBIE (5.21) and HBIE (5.25) are in order:
1. For a Dirichlet problem in which velocity is prescribed on the entire
boundary S, CBIE (5.21) is reduced to:
Ui j (x, y)t j (y)dS(y) = bi (x), ∀x ∈ S,
(5.30)
S
where bi is a known vector from the velocity field; HBIE (5.25) is reduced
to:
1
Ki j (x, y)t j (y)dS(y) + di (x), ∀x ∈ S,
(5.31)
ti (x) =
2
S
where di is another known vector (assuming S is smooth). Equation (5.30),
a Helmholtz equation of the first kind, is often ill-conditioned and not suitable for iterative solvers, whereas Eq. (5.31), a Helmholtz equation of the
second kind, often yields a system of equations with better conditioning
[37, 40, 92, 93].
2. Any constant-pressure field p(x) = p0 , with ui = 0 and ti = − p0 ni , is a
solution of both Eq. (5.30) (for interior and exterior problems) and
Eq. (5.31) (for interior problems only). That is, ti = − p0 ni are eigenfunctions of both Eq. (5.30) and Eq. (5.31), although corresponding to different
124
Stokes Flow Problems
eigenvalues, and their solutions for the traction field may not be unique
[37, 40, 92, 93].
3. HBIE (5.25) has another “defect”; that is, an arbitrary constant can be
added to the velocity field on a closed contour without changing HBIE
(5.25) because:
Hi j (x, y)dS(y) = 0,
Sk
for any closed contour Sk [46]. This means that we have either nonunique
solutions of the velocity on the contour if traction is prescribed or inaccurate evaluation of this contour integral if velocity is given, when HBIE
(5.25) is applied alone. This deficiency with the HBIE and its remedies
have been discussed in the context of elasticity in Refs. [100, 101].
A remedy to the previously mentioned defects or difficulties is to use
CBIE (5.21) and HBIE (5.25) together in the form of a linear combination,
which was found to be very effective for 3D exterior Stokes flow problems
in Refs. [95–98] and for both 2D and 3D interior and exterior potential and
elasticity problems as in previous chapters. Other remedies include the socalled completed indirect BIE formulations [37, 40, 92, 93], which have been
shown to yield BEM equations with better conditioning for solving Stokes flow
problems.
In operator or matrix form, CBIE (5.21) and HBIE (5.25) can be written as:
1
1
u + Tu = Ut, − t + Kt = Hu,
2
2
respectively. Thus, a dual BIE formulation using a linear combination of
CBIE (5.21) and HBIE (5.25) can be written as:
1
1
u + Tu − Ut + β − t + Kt − Hu = 0,
(5.32)
2
2
where β is the coupling constant. A positive β (e.g., β = 1) was found to
work quite well for all the cases studied for 2D Stokes flow problems. More
discussion on the selections of β can be found in Refs. [50, 52, 57, 59, 85,
102] for other problems. As mentioned in the previous chapters, dual BIE
formulations are especially beneficial to the fast multipole BEM because they
can provide better conditioning for the BEM systems of equations and thus
can facilitate faster convergence when the iterative solvers are used with the
fast multipole BEM.
5.4 Fast Multipole Boundary Element Method for 2D Stokes
Flow Problems
The fast multipole algorithms for solving 2D potential and elasticity problems were described in detail in the previous two chapters. As a case similar
5.4 Fast Multipole Boundary Element Method for 2D Stokes Flow Problems
to 2D elasticity, the 2D Stokes flow case can be handled by using the same
algorithms as in 2D elasticity. The only task is to derive the required expansions and moments. For both CBIE (5.21) and HBIE (5.25), the results can be
extracted from those for the 2D elasticity case given in the previous chapter.
Therefore, only the results for Stokes flow problems without detailed derivations are listed.
In the previous chapter, it is shown that the two integrals in the CBIE
for 2D elasticity can be represented readily in complex variables if the fundamental solutions Ui j (x, y) and Ti j (x, y) are written in complex form by using
the results in 2D elasticity. By setting Poisson’s ratio to 1/2 in these results, we
obtain the corresponding expressions for 2D Stokes flow problems. For example, the first integral in CBIE (5.21) can be written in the following complex
form [cf. Eq. (4.44) for 2D elasticity]:
Dt (z0 ) ≡ [
1 (x)
+i
2 (x)]t
+i
=
1
4µ
≡
U1 j (x, y)t j (y)dS(y)
S
U2 j (x, y)t j (y)dS(y)
S
G(z0 , z)t(z) + G(z0 , z)t(z) − (z0 − z) G (z0 , z)t(z) dS(z),
S
(5.33)
√
where i = −1; the overbar indicates the complex conjugate; t = t1 + it2 is the
complex traction; z0 (= x1 + i x2 ) and z(= y1 + i y2 ) represent x and y, respectively; G(z0 , z) = −(1/2π) log(z0 − z) is the complex Green’s function for 2D
potential problems; and G (z0 , z) ≡ ∂G/∂z0 . The integral in Eq. (5.33) can be
used to evaluate readily the U kernel integral in CBIE (5.21).
Similarly, the complex representation for the second integral with the T
kernel in CBIE (5.21) can be written as follows [cf. Eq. (4.45) for 2D elasticity]:
Du (z0 ) ≡ [
1 (x)
+i
+i
=−
1
2
2 (x)]u
≡
T1 j (x, y)u j (y)dS(y)
S
T2 j (x, y)u j (y)dS(y)
S
(
G (z0 , z)n(z)u(z) − (z0 − z) G (z0 , z)n(z)u(z)
S
)
+ G (z0 , z) n(z)u(z) + n(z)u(z) dS(z),
(5.34)
in which u = u1 + iu2 and n = n1 + in2 are the complex velocity and normal,
respectively.
125
126
Stokes Flow Problems
The first integral with the K kernel in HBIE (5.25) can be written in the
following complex form [cf. Eq. (4.52) for 2D elasticity]:
Ft (z0 ) ≡ [F1 (x) + i F2 (x)]t ≡
+i
=
1
2
K1 j (x, y)t j (y)dS(y)
S
K2 j (x, y)t j (y)dS(y)
S
(
G (z0 , z)t(z) + G (z0 , z)t(z) n(z0 )
S
)
+ G (z0 , z)t(z) − (z0 − z) G (z0 , z)t(z) n(z0 ) dS(z).
(5.35)
Similarly, the second integral with the H kernel in HBIE (5.25) can be written
as follows [cf. Eq. (4.53) for 2D elasticity]:
Fu (z0 ) ≡ [F1 (x) + i F2 (x)]u ≡
+i
H1 j (x, y)u j (y)dS(y)
S
H2 j (x, y)u j (y)dS(y)
S
!
=−µ
(
G (z0 , z)n(z)u(z) + G (z0 , z)n(z)u(z) n(z0 )
S
+ G (z0 , z) n(z)u(z) + n(z)u(z)
)
"
− (z0 − z) G (z0 , z)n(z)u(z) n(z0 ) dS(z).
(5.36)
In the following subsections, the multipole expansions, local expansions, and
their translations related to Eqs. (5.33) and (5.34) in the fast multipole BEM
for CBIE (5.21) are presented. Then, we discuss those related to Eqs. (5.35)
and (5.36) for HBIE (5.25).
5.4.1 Multipole Expansion (Moments) for the U Kernel Integral
It can be shown that the multipole expansion for the integral Dt (z0 ) is as follows [cf. Eq. (4.55) for 2D elasticity]:
Dt (z0 ) =
1
8π µ
∞
∞
Ok (z0 − zc )Mk (zc ) + z0
k=0
Ok+1 (z0 − zc )Mk (zc )
k=0
∞
+
Ok (z0 − zc )Nk (zc ) ,
k=0
(5.37)
5.4 Fast Multipole Boundary Element Method for 2D Stokes Flow Problems
where zc is the expansion point close to the field point z (see Figure 3.2), and
the two sets of moments about zc are:
Mk (zc ) =
Ik (z − zc )t(z)dS(z), for k ≥ 0,
(5.38)
Sc
N0 =
t(z)dS(z);
Sc
(5.39)
Nk (zc ) =
Ik (z − zc )t(z) − Ik−1 (z − zc )zt(z) dS(z),
for k ≥ 1.
Sc
5.4.2 Moment-to-Moment Translation
If point zc is moved to a new location zc (see Figure 3.2), we have the following
M2M translations:
k
Mk (zc ) =
Ik−l (zc − zc )Ml (zc ),
for k ≥ 0,
(5.40)
Ik−l (zc − zc )Nl (zc ),
for k ≥ 0,
(5.41)
l=0
k
Nk (zc ) =
l=0
which are exactly the same as those used in the 2D elasticity case.
5.4.3 Local Expansion and Moment-to-Local Translation
We have the following local expansion [cf. Eq. (4.60) for 2D elasticity]:
Dt (z0 ) =
1
8π µ
∞
∞
Ll (zL)Il (z0 − zL) − z0
l=0
Ll (zL)Il−1 (z0 − zL)
l=1
∞
+
Kl (zL)Il (z0 − zL) ,
(5.42)
l=0
where zL is the local expansion point close to point z0 (see Figure 3.2), and the
coefficients are given by the following M2L translations:
∞
Ll (zL) = (−1)l
Ol+k (zL − zc )Mk (zc ),
for l ≥ 0,
(5.43)
Ol+k (zL − zc )Nk (zc ),
for l ≥ 0,
(5.44)
k=0
∞
Kl (zL) = (−1)l
k=0
which are the same as those used in the 2D elasticity case.
127
128
Stokes Flow Problems
5.4.4 Local-to-Local Translation
If the point for the local expansion is moved from zL to zL (see Figure 3.2), the
new local expansion coefficients are given by the following L2L translations:
∞
Ll (zL ) =
Im−l (zL − zL)Lm (zL),
for l ≥ 0,
(5.45)
Im−l (zL − zL)Km (zL),
for l ≥ 0,
(5.46)
m=l
∞
Kl (zL ) =
m=l
which are also the same as those used in the 2D elasticity case.
5.4.5 Expansions for the T Kernel Integral
The multipole expansion of (5.34) can be written as follows [cf. Eq. (4.65) for
2D elasticity]:
Du (z0 ) =
∞
1
4π
'k (zc ) + z0
Ok (z0 − zc ) M
k=1
∞
∞
'k (zc )
Ok+1 (z0 − zc ) M
k=1
'k (zc ) ,
Ok (z0 − zc ) N
+
(5.47)
k=1
where the two sets of moments are:
'k (zc ) =
M
Ik−1 (z − zc )n(z)u(z)dS(z),
for k ≥ 1;
(5.48)
Sc
'1 =
N
'k (zc ) =
N
n(z)u(z) + n(z)u(z) dS(z);
(5.49)
Sc
(
Ik−1 (z − zc ) n(z)u(z) + n(z)u(z)
Sc
)
− Ik−2 (z − zc )zn(z)u(z) dS(z),
for k ≥ 2.
The M2M, M2L, and L2L translations remain the same for the T kernel inte'0 = N
'0 = 0. In fact, the moments Mk and M
'k
grals, except for the fact that M
'k , so that only two sets of
will be combined, as well as moments Nk and N
moments are involved in the M2M and M2L translations.
The local expansion for Du (z0 ) is [cf. Eq. (4.68) for 2D elasticity]:
Du (z0 ) =
∞
∞
1
4π
Ll (zL)Il (z0 − zL) − z0
l=0
Ll (zL)Il−1 (z0 − zL)
l=1
∞
Kl (zL)Il (z0 − zL) ,
+
l=0
(5.50)
5.4 Fast Multipole Boundary Element Method for 2D Stokes Flow Problems
where the coefficients Ll (zL) and Kl (zL) are given by Eqs. (5.43) and (5.44)
'k and Nk with N
'k .
with Mk replaced with M
5.4.6 Expansions for the Hypersingular Boundary Integral Equation
To derive the multipole expansions and local expansions for HBIE (5.25),
we can simply apply the results for 2D elasticity problems and set Poisson’s
ratio to 1/2 to obtain the results for 2D Stokes flow problems. The result of the
local expansion for the first integral Ft (z0 ) in Eq. (5.35) for the HBIE is [cf.
Eq. (4.69) for 2D elasticity]:
∞
∞
1
Ft (z0 ) =
Ll+1 (zL)Il (z0 − zL) +
Ll+1 (zL)Il (z0 − zL) n(z0 )
4π
l=0
l=0
∞
∞
Ll+1 (zL)Il−1 (z0 − zL) +
+ −z0
Kl+1 (zL)Il (z0 − zL) n(z0 ) ,
l=0
l=1
(5.51)
in which the expansion coefficients Ll (zL) and Kl (zL) are given by the same
M2L translations in Eqs. (5.43) and (5.44), respectively. Therefore, the same
sets of moments Mk and Nk used for Dt (z0 ) are used for Ft (z0 ) directly.
The local expansion for the second integral Fu (z0 ) in Eq. (5.36) for the
HBIE is [cf. Eq. (4.70) for 2D elasticity]:
∞
∞
µ
Fu (z0 ) =
Ll+1 (zL)Il (z0 − zL) +
Ll+1 (zL)Il (z0 − zL) n(z0 )
2π
l=0
∞
+ −z0
l=0
∞
Ll+1 (zL)Il−1 (z0 − zL) +
l=1
Kl+1 (zL)Il (z0 − zL) n(z0 ) ,
l=0
(5.52)
in which Ll (zL) and Kl (zL) are given by Eqs. (5.43) and (5.44) with Mk replaced
'k and Nk with N
'k . Again, the same sets of moments M
'k and N
'k used
with M
for Du (z0 ) are used for Fu (z0 ), and all the M2M, M2L, and L2L translations
for the HBIE remain the same as those used for the CBIE.
The details of the fast multipole algorithms for solving 2D Stokes problems are similar to the ones for 2D potential and elasticity problems, which
have been described in detail in the previous two chapters. Preconditioners
for the fast multipole BEM are crucial for its convergence and computing efficiency. The block diagonal preconditioner is used in the study of the numerical
examples, which are formed on each leaf by direct evaluations of the kernels
on the elements within that leaf.
When constant elements (straight-line segment with one node) are used to
discretize the BIEs, all of the moments can be evaluated analytically, as well
129
130
Stokes Flow Problems
as the integrations of the kernels in the near-field direct evaluations for 2D
Stokes flow problems (Appendix A.3).
5.5 Fast Multipole Boundary Element Method for 3D Stokes
Flow Problems
The fast multipole formulation for 3D Stokes flow problems can be derived
readily from that for the 3D elasticity problems through a limiting process.
For convenience and completeness, the results are subsequently summarized.
First, we note that the fundamental solution in Eq. (5.18) for the 3D Stokes
flow case can be written in the following form:
2
1
∂ x j − yj
Ui j (x, y) =
δi j −
.
8π µ
r
∂ xi
r
(5.53)
Then, we start with the following expansion [same as Eq. (4.72)]:
1
=
r (x, y)
∞
n
Sn,m (x − yc )Rn,m (y − yc ),
y − yc < x − yc ,
(5.54)
n=0 m=−n
where yc is the expansion center close to the field point y and functions Rn,m
and Sn,m are solid harmonic functions given in Eqs. (3.47) and (3.48), respectively. Substituting (5.54) into (5.53), we have:
Ui j (x, y) =
1
8π µ
∞
n
Fi j,n,m (x − yc )Rn,m (y − yc )
n=0 m=−n
+ Gi,n,m (x − yc )(y − yc ) j Rn,m (y − yc ) ,
(5.55)
in which:
Fi j,n,m (x − yc ) = δi j Sn,m (x − yc ) − (x − yc ) j
Gi,n,m (x − yc ) =
∂
Sn,m (x − yc ),
∂ xi
∂
Sn,m (x − yc ).
∂ xi
(5.56)
(5.57)
Applying expression (5.55), with point yc being close to subdomain Sc , we
obtain the following multipole expansion for the U kernel integral in CBIE
(5.21):
Ui j (x, y)t j (y)dS(y) =
Sc
1
8π µ
∞
n
Fi j,n,m (x − yc )Mj,n,m (yc )
n=0 m=−n
+ Gi,n,m (x − yc )Mn,m (yc ) ,
(5.58)
5.5 Fast Multipole Boundary Element Method for 3D Stokes Flow Problems
in which:
Mj,n,m (yc ) =
Rn,m (y − yc )t j (y)dS(y),
Sc
(5.59)
Mn,m (yc ) =
(y − yc ) j Rn,m (y − yc )t j (y)dS(y)
Sc
are the moments for the given n and m. Note that these moments are similar
to those for 3D elasticity problems.
To derive the multipole expansion for the T kernel integral in CBIE (5.21),
we first note that the T kernel can be expressed as:
Ti j = i jk nk (y) = [−Pi δ jk + µ(Ui j ,k +Uik , j )] nk (y)
= [G,i δ jk + µ(Ui j ,k +Uik , j )] nk (y)
∂
∂
∂2
1
1
1
1
δi j
+ δik
+ (y − x) j
=
8π
∂ yk r
∂ yj r
∂ yk ∂ xi r
∂2
1
nk (y),
+ (y − x)k
∂ y j ∂ xi r
(5.60)
where Eqs. (5.13) and (5.53) have been applied. Using the results in Eqs. (5.54)
and (5.60), we obtain the multipole expansion for the T kernel integral in
CBIE (5.21) as follows:
Sc
1
Ti j (x, y)u j (y)dS(y) =
8π µ
∞
n
' j,n,m (yc )
Fi j,n,m (x − yc ) M
n=0 m=−n
'n,m (yc ) ,
+ Gi,n,m (x − yc ) M
(5.61)
in which:
' j,n,m (yc ) = µ
M
[nk (y)u j (y) + n j (y)uk (y)]
Sc
∂
Rn,m (y − yc )dS(y),
∂ yk
(5.62)
∂
'n,m (yc ) = µ
M
(y − yc ) j [nk (y)u j (y) + n j (y)uk (y)]
Rn,m (y − yc )dS(y).
∂ yk
Sc
We can also derive these moments from those for the 3D elasticity case by
letting the Poisson’s ratio tend to 1/2 in the corresponding elasticity results.
' j,n,m ) and
As in the elasticity case, only one in each of the pairs (Mj,n,m , M
'n,m ) is used in the moment calculations, depending on the BCs.
(Mn,m , M
Therefore, there are only four moments that need to be calculated on each
boundary element.
131
132
Stokes Flow Problems
When the expansion point is moved from yc to yc , we have the following
M2M translations:
n
n
Mj,n,m (yc ) =
Rn ,m (yc − yc )Mj,n−n ,m−m (yc ),
n =0 m =−n
n
n
n =0
m =−n
Mn,m (yc ) =
Rn ,m (yc − yc ) [Mn−n ,m−m (yc )
(5.63)
+ (yc − yc ) j Mj,n−n ,m−m (yc )] ,
' j,n,m and M
'n,m .
which also apply to M
The local expansion of the U kernel integral on Sc about the point x = x L
is given by:
Ui j (x, y)t j (y)dS(y) =
Sc
1
8π µ
∞
n
FiRj,n,m (x − x L)Lj,n,m (x L)
n=0 m=−n
R
(x − x L)Ln,m (x L) ,
+ Gi,n,m
(5.64)
where the local expansion coefficients are given by the following M2L translations:
∞
Lj,n,m (x L) = (−1)
n
Sn+n ,m+m (x L − yc )Mj,n ,m (yc ),
n
n =0 m =−n
∞
n
Ln,m (x L) = (−1)n
Sn+n ,m+m (x L − yc ) [Mn ,m (yc )
n =0
(5.65)
m =−n
− (x L − yc ) j Mj,n ,m (yc )] ,
R
and FiRj,n,m and Gi,n,m
are obtained from Eqs. (5.56) and (5.57), respectively,
with Sn,m replaced with Rn,m in each case. The local expansion for the T kernel
integral is similar to that of Eq. (5.64), only with Mj,n ,m and Mn ,m replaced
' j,n ,m and M
'n ,m , respectively, in Eq. (5.65) when the local expansion
with M
coefficients are computed for the T kernel integral.
When the local expansion point is moved from x L to x L , we have the following L2L translations:
∞
n
Lj,n,m (x L ) =
Rn −n,m −m (x L − x L)Lj,n ,m (x L),
n =n m =−n
∞
Ln,m (x L ) =
n
(5.66)
Rn −n,m −m (x L − x L) [Ln ,m (x L) − (x L − x L) j Lj,n ,m (x L)].
n =n m =−n
We can readily obtain the fast multipole formulation for the HBIE by taking
the derivatives of the local expansions for the CBIE and invoking the constitutive equations.
5.6 Numerical Examples
133
r
Ω
θ
Figure 5.1. A rotating cylinder in an infinite fluid.
n
V
S
a
As in the 2D cases, we can readily obtain the fast multipole expansions
for 3D Stokes flow problems by letting Poisson’s ratio ν tend to 1/2 in the corresponding results for 3D elasticity problems. All the M2M, M2L, and L2L
translations are identical to those for the 3D elasticity case. Based on this fact,
a fast multipole BEM program for 3D elasticity problems can be extended
readily to a fast multipole BEM program for 3D Stokes flow problems if the
direct BIE formulations are used for the Stokes flow problems.
5.6 Numerical Examples
Three examples are first presented in two dimensions to demonstrate the accuracy and the efficiency of the fast multipole BEM for Stokes flow problems. In
all the 2D examples, the computations are done on a Pentium IV laptop PC
with a 2.4-GHz CPU and 1-GB RAM. The numbers of terms in expansions
are set to 20, the maximum number of elements in a leaf to 100, and the coupling constant β = 1 for the dual BIE. Finally, two 3D models are presented to
further demonstrate the applications and potentials of the fast multipole BEM
for solving Stokes flow problems.
5.6.1 Flow That Is Due to a Rotating Cylinder
The flow in an infinite 2D medium that is due to a rotating circular cylinder
is considered first (Figure 5.1). The radius of the cylinder is a and the angular velocity is . A solution to this problem exists [103]; that is, in the polar
coordinate system, we have:
ur (r, θ ) = 0, uθ (r, θ ) = a 2 /r,
σrθ (r, θ ) = −2µa 3 /r 2 ,
(5.67)
which can be used to verify the BEM solutions. The velocity is specified on the
boundary by use of the preceding results, and the tractions are sought with the
BEM. For the fast multipole BEM solutions, the tolerance for convergence is
set to 10−6 .
Table 5.1 shows the results of the tractions at the boundary computed by
the fast multipole BEM with both the CBIE and CHBIE formulations (the
HBIE cannot provide solutions in this case due to defect (3) mentioned in
134
Stokes Flow Problems
Table 5.1. Traction t y at (a, 0) and numbers of iterations used
in the fast multipole BEM
t y (×µa)
Number of iterations
DOFs
CBIE
CHBIE
CBIE
CHBIE
80
160
320
640
1280
2560
5120
10,240
20,480
1.9999
2.0003
2.0054
2.0028
2.0011
2.0005
1.9997
1.9997
2.0007
1.9891
1.9936
1.9965
1.9981
1.9990
1.9995
1.9998
1.9999
1.9999
16
18
13
13
14
16
21
28
32
7
7
7
4
4
4
4
4
4
Exact solution
2.0000
Section 5.3). Although both BIE formulations give results of comparable accuracies, the CHBIE converges much faster than the CBIE, as indicated by the
number of iterations used, which are also listed in Table 5.1.
Figure 5.2 is a plot of the traction components on the boundary of the
cylinder with 40 elements and using CHBIE. Figure 5.3 shows the velocity
computed at points inside the fluid domain with the same mesh and the
2.5
Traction tx (BEM)
2.0
Traction ty (BEM)
Traction tx (Analytical)
1.5
Traction ty (Analytical)
1.0
Tractions
0.5
0.0
–0.5
–1.0
–1.5
–2.0
–2.5
0
30
60
90
120
150
180
210
Degrees
240
270
Figure 5.2. Computed tractions on boundary S (with 40 elements).
300
330
360
5.6 Numerical Examples
135
1.2
uθ (BEM)
1.0
uθ (Analytical)
Velocity(u)
0.8
0.6
0.4
0.2
0.0
1.0
1.5
2.0
2.5
3.0
3.5
4.0
4.5
Distance (r )
Figure 5.3. Computed velocity uθ at points inside the fluid domain V (with 40
elements).
CHBIE. Both results demonstrate that the fast multipole BEM results are
quite accurate with only 40 constant elements.
The CPU times used for the fast multipole BEM based on the CBIE
and CHBIE approaches are plotted in Figure 5.4, which shows the significant
advantage of the CHBIE formulation over the CBIE formulation. For example, for the model with 10,240 elements (DOFs = 20,480), the fast multipole
BEM with CHBIE used about 17 s of CPU time, whereas the BEM with the
CBIE used about 92 s, which is about four times slower. Higher condition
numbers are observed for the CBIE and very low condition numbers for the
CHBIE with a direct solver, which is consistent with the solution efficiency
with the iterative solver.
5.6.2 Shear Flow Between Two Parallel Plates
The flow between two parallel plates (Figure 5.5) is studied next using the
CBIE, HBIE, and CHBIE formulations. The top plate is moving with a constant speed v0 in the x direction and a no-slip condition is assumed between
the plates and fluid. The analytical solutions for this problem are:
ux (x, y) = v0 y/ h, u y = 0,
σx = σ y = 0, σxy = µv0 / h.
(5.68)
5.0
136
Stokes Flow Problems
10 2
CBIE
CHBIE
Total CPU time (s)
10
0
10 −1
10 −2
10
100
1000
10,000
100,000
DOFs
Figure 5.4. Total CPU time used for solving the rotating cylinder problem (log–log
scale).
The purpose of this example is to show the behaviors of the BEM solutions
as the ratio h/L approaches zero; that is, when the fluid domain becomes a
narrow channel. The narrow spaces between two fingers of a MEMS combdrive device closely resemble the configuration studied in this example with
small ratios of h/L.
Mixed boundary conditions are used so that all of the three BIE formulations – that is, CBIE, HBIE, and CHBIE – can be tested. For the lower boundary, zero velocities are specified, whereas for the upper boundary, velocities
y
v0
Figure 5.5. Shear flow between two parallel plates.
h
V
x
L
5.6 Numerical Examples
137
Table 5.2. Comparison of the three BIE formulations for the shear flow problem
Traction tx (× µv0 / h) at L/2, 0
Number of iterations
h/L
Number of elements
on edges L and h
CBIE
HBIE
CHBIE
CBIE
HBIE
CHBIE
0
10−1
10−2
10−3
10−4
10−5
10−6
100/100
100/20
100/10
100/5
100/3
100/2
100/1
−0.99980
−0.99998
−1.00000
−1.00000
−1.00000
−0.99998
−0.99979
−1.00135
−1.00264
−1.00027
−0.99985
−0.99931
−0.99943
−0.99322
−0.99961
−1.00185
−1.00021
−0.99988
−0.99935
−0.99514
−0.98546
15
25
73
142
185
227
298
17
21
68
67
65
49
40
16
21
69
67
94
70
54
Exact solutions
−1.00000
are given as ux = v0 and u y = 0. For the two vertical boundaries, tractions are
given as tx = 0, t y = µv0 / h at x = L and tx = 0, t y = −µv0 / h at x = 0. The tolerance for convergence in the fast multipole BEM is set to 10−6 .
Table 5.2 shows the dimension, discretization, and computed tractions at
the midpoint of the lower boundary and the numbers of iterations used in the
fast multipole BEM solutions with the three BIE formulations. It is observed
that as the ratio of h/L becomes smaller, more iterations are needed for the
CBIE formulation, whereas about the same numbers of iterations are needed
for the HBIE and the CHBIE formulations. These results indicate the poor
conditioning of the CBIE but also indicate the good and improved conditioning of the HBIE and CHBIE, respectively. Most interesting is the fact that
even at h/L = 10−6 , all three BIE formulations can still provide reasonably
good results of the tractions. The results from the HBIE and the CHBIE are
slightly less accurate than those from the CBIE at small h/L, which may be
caused by the extremely small elements on the two small vertical edges. Recall
that for 2D problems, the finite part of the hypersingular integral is proportional to 1/R, where R is the element length (see Appendix A.3). If R is very
small, as is tested in this case, 1/R can be very large and can cause numerical
errors in the BEM systems of equations. In fact, the BEM code fails when the
ratio h/L is smaller than 10−6 for this example because of the existence of the
hypersingular kernel H. This is different from the results reported in Chapter
3 and Ref. [57] for electrostatic MEMS problems, in which the ratio h/L of
a beam can reach 10−16 for the dual BIE formulation that does not have the
hypersingular kernel.
This example demonstrates that the dual BIE formulation can facilitate
fast convergence for the fast multipole BEM even when the domain under
consideration is extremely thin. This is consistent with the conclusions with
the dual BIE approach for a fast multipole BEM in the context of electrostatic
analysis of the MEMS models shown in Chapter 3 and Refs. [57, 59].
138
Stokes Flow Problems
y
h
v0
v0
2b
2a
x
L
Figure 5.6. Channel flow around a cylinder.
5.6.3 Flow Through a Channel with Many Cylinders
We next consider an interior Dirichlet problem; that is, Stokes flows through a
channel placed with one or multiple cylinders. The dimensions of the channel
are shown in Figure 5.6. At the inlet of the channel (x = 0), the flow has a
parabolic velocity profile:
ux (0, y) = 4v0 (1 − y/ h)y/ h,
u y (0, y) = 0,
(5.69)
where v0 is the maximum value of the velocity. At the outlet of the channel (x
= L), the same velocity profile is assumed (see Figure 5.6); that is, the flow is
assumed to have recovered from the disturbances by the cylinder(s) placed in
the middle section of the channel. On the upper and lower boundaries and all
cylinder boundaries, no-slip BCs are assumed. For this test, the tolerance for
convergence for the solver is set to 10−5 .
First, the case with one circular cylinder placed in the center of the channel is studied, with L = 2h and a = 0.1h. Figure 5.7 shows the velocity vector plot within the fluid obtained by use of the CHBIE. There are about 800
points distributed evenly inside the domain where the velocity is evaluated
with the representation integral after the tractions are obtained from the BEM
solutions.
Table 5.3 shows the total fluid force applied on the cylinder and evaluated
by integration of the obtained traction field on the boundary of the cylinder
(assuming a unit depth). There are 600 elements on the outer boundary and
the number of elements on the cylinder increases. Both the CBIE and the
CHBIE are used, and the results for the total force on the cylinder are very
stable with the CBIE, whereas those with the CHBIE increase slowly to reach
a stable value. The errors with the CHBIE may be due to the finite-part integrals in the HBIE on curved boundaries computed with constant elements that
5.6 Numerical Examples
139
Table 5.3. Force F computed on the cylinder with CBIE and CHBIE
Number of
elements on
cylinder
Total
DOFs
CBIE
CHBIE
CBIE
CHBIE
CBIE
CHBIE
320
640
1280
2560
5120
10,240
1840
2480
3760
6320
11,440
21,680
16.21
16.21
16.21
16.21
16.21
16.21
15.38
15.76
15.96
16.06
16.11
16.14
23
26
28
28
33
37
12
12
9
9
9
9
9.8
16.2
30.8
68.8
137.8
277.1
5.7
8.5
12.0
26.2
45.2
82.1
Force F (× µv0 )
No. of iterations
CPU time (s)
can introduce numerical errors. As shown in Table 5.3, the number of iterations with the CBIE increases as the model size increases, whereas the number
of iterations with the CHBIE is almost constant and only about one half to one
quarter of that for the CBIE.
Next, the models with multiple elliptic cylinders placed in the middle section of a channel with L = 3h are studied. These models are motivated by the
examples presented by Greengard et al. in Ref. [68], with different geometries,
BCs, and numbers of elements.
Figure 5.8(a) shows the velocity plot for a 5 × 5 array of elliptic cylinders
with a uniform distribution, and Figure 5.8(b) shows the velocity field with
a random distribution, both using CHBIE with 16,600 DOFs. For the uniform distribution, 59 iterations are used (381-s CPU time), whereas for the
random distribution, 82 iterations are used (491-s CPU time). It is observed
that when more cylinders are placed in the same space or when cylinders
are distributed randomly, the iteration numbers for the BEM solutions will
increase because of the intensified interactions between the cylinders, as discussed in Ref. [40]. Figure 5.8(c) shows a larger model with 13 × 13 elliptic
Figure 5.7. Vector plot of the velocity field for one circular cylinder with a = 0.1h and
L = 2h.
140
Stokes Flow Problems
(a)
(b)
(c)
Figure 5.8. Various BEM models of the channel with many elliptic cylinders (L = 3h):
(a) velocity plot for uniform distribution of 5 × 5 elliptic cylinders with a = 0.05h, b =
0.5a, DOFs = 16,600; (b) velocity plot for random distribution of 5 × 5 elliptic cylinders with a = 0.05h, b = 0.5a, DOFs = 16,600; (c) a larger model with 13 × 13 elliptic
cylinders and a = 0.02h, b = 0.5a, DOFs = 103,000.
cylinders packed evenly in the middle section of the channel. The model has
103,000 DOFs and both the CBIE and the CHBIE are applied. The number
of iterations increases dramatically for this large model. The CBIE used 248
iterations (9130-s CPU time), whereas the CHBIE used 168 iterations (6631-s
CPU time). Again, the advantage of the CHBIE formulation with the fast
multipole BEM is evident.
From the preceding 2D examples, we can conclude that the dual BIE
approach, using a linear combination of the CBIE and the HBIE, can significantly improve the conditioning of the BEM systems of equations and thus
facilitate faster convergence in the fast multipole BEM.
5.6 Numerical Examples
141
z
x
y
Figure 5.9. A translating sphere meshed with 10,800 constant triangular elements.
5.6.4 A Translating Sphere
We next study a 3D example by using a translating sphere, as shown in Figure
5.9. The sphere has radius R and moves with a constant velocity U0 in the
x direction in an infinite 3D fluid. The analytical solution of this Stokes flow
problem is available and can be used to validate the BEM solutions.
Table 5.4 shows the computed total drag force on the sphere with different BEM discretizations and using the 3D fast multipole BEM code for Stokes
Table 5.4. Computed drag force for the translating sphere
Drag force (× µRU0 )
Number of
elements
Total
DOFs
Stokes
BIE
Elasticity BIE
with v = 0.499
Number of
iterations
432
768
1200
2700
4800
7500
10,800
14,700
19,200
24,300
30,000
36,300
43,200
1296
2304
3600
8100
14,400
22,500
32,400
44,100
57,600
72,900
90,000
108,900
129,600
18.6585
18.7414
18.7801
18.8187
18.8319
18.8382
18.8422
18.8440
18.8452
18.8462
18.8468
18.8473
18.8479
18.6396
18.7226
18.7613
18.7999
18.8131
18.8194
18.8234
18.8252
18.8264
18.8274
18.8280
18.8285
18.8291
9
11
12
12
16
17
16
18
20
20
20
20
20
Exact value
18.8496
142
Stokes Flow Problems
10,000
Elasticity BIE with v = 0.499
Stokes BIE
CPU Time (s)
1000
100
10
100
1000
10,000
100,000
1,000,000
DOFs
Figure 5.10. CPU times used for solving the translating sphere problem.
flow problems. For comparison, the results obtained with the 3D elasticity
code with Poisson’s ratio ν = 0.499 (close to 1/2) are also listed in the table.
Both BIE results are very satisfactory compared with the analytical solution,
with the Stokes BIE solutions closer to the analytical solution, as expected.
The number of iterations is also listed, and fast convergence is observed for
this exterior domain Stokes flow problem. In the BEM solutions, the tolerance
for convergence is set to 10−4 , the number of terms in expansions to 15, and
the number of elements in a leaf to 100. A Pentium D 3.2-GHz PC with 2-GB
RAM is used for this study. The total CPU times used to run all the models
are plotted in Figure 5.10, which shows a computational efficiency very close
to O(N).
5.6.5 Large-Scale Modeling of Multiple Particles
For the last example, a 3D model is shown with multipole particles that move
through an infinite fluid, as shown in Figure 5.11. These particles are in the
shape of a typical red-blood cell (RBC) and are used here to study the drag
forces on these cells as they move in the fluid. The cells move with a constant
velocity U0 in the x direction. There are 40 cells in this model, and each cell is
discretized with 7500 constant triangular elements (Figure 5.12). The number
5.6 Numerical Examples
143
z
x
y
Figure 5.11. BEM model of 40 cells.
of the total DOFs for the model is 900,000, and the model is solved on the
2.4-GHz Pentium IV laptop with 1-GB RAM.
The computed drag forces (traction tx ) on the cells are shown in Figure
5.13. As expected, most of the values of traction are negative; that is, the forces
are in the opposite direction of the motion of the cells. The large forces occur
near the front and the end of the group of the cells. The CPU time used in
solving this large BEM model with 900,000 DOFs is 730 min with 49 iterations
for a tolerance of 10−4 and 15 expansion terms.
The results in this example are preliminary because the cells have been
considered to be rigid bodies and the motion to be constant. These results
can be regarded as a snapshot in one instance. To improve the BEM model,
deformation of the cells should be considered; for example, by applying the
Figure 5.12. BEM mesh on each cell
with 7500 constant triangular elements.
144
Stokes Flow Problems
z
x
t x: −0.26 −0.24 −0.22 −0.2 −0.18 −0.16 −0.14 −0.12 −0.1 −0.08 −0.06 −0.04 −0.02
y
0
Figure 5.13. Computed traction (drag force) on the cells in the flow direction.
elasticity BEM or other mechanics models [103–105] for the cells. Quasidynamic analysis of the cells also can be conducted [40] to predict the evolution of the cell configurations.
Other potential applications of the 2D and the 3D Stokes flow fast multipole BEMs discussed in this chapter include studies of damping forces in
MEMSs [95–98, 106] and Stokes flows interacting with deformable bodies
[103–105]. Indeed, combining the Stokes flow fast multipole BEM code with
the one for elasticity problems to study coupled fluid–structure interaction
problems in general is an interesting research topic for applications in analyzing biological systems as well as MEMS devices.
5.7 Summary
In this chapter, the governing equations for solving Stokes flow problems are
reviewed. The BIE formulations for 2D and 3D Stokes flow problems are presented, and the deficiencies of the direct CBIE and HBIE formulations are
discussed. The fast multipole formulations for solving the BIEs are discussed
for 2D problems, and the formulations for 3D problems are presented. Numerical examples are presented to demonstrate the accuracy and efficiencies of the
fast multipole BEM for solving large-scale 2D and 3D Stokes flow problems.
The advantages of the dual BIE (CHBIE) formulation for solving the Stokes
flow problems are demonstrated regarding the computational efficiencies.
Problems
It is observed that the Stokes flow case is very similar to the elasticity case
discussed in the previous chapter, regarding the fundamental solutions, singularities of the kernels, BIE formulations, fast multipole formulations, and solution procedures. Many of the results for Stokes flow problems can be obtained
readily from their corresponding elasticity equations.
Problems
5.1. Solve the Stokes equation and obtain the analytical solutions in Eq. (5.67)
for the rotating cylinder example.
5.2. Derive representation integral (5.22) for the pressure field p(x).
5.3. Derive the K and H kernels in Eqs. (5.28) and (5.29), respectively, for 3D
Stokes flow problems from the corresponding elasticity equations.
5.4. Verify expression (5.60) for the T kernel in three dimensions.
5.5. Verify multipole expansion (5.61) for the T kernel integral in the 3D
CBIE.
5.6. Write a 2D Stokes flow conventional BEM code using the CBIE and constant elements, based on the code for 2D potential problems in Appendix
B.1. Test your code on the 2D examples used in this chapter.
5.7. Write a 2D Stokes flow fast multipole BEM code using the CBIE and constant elements, based on the code for 2D potential problems in Appendix
B.2. Test your code on the 2D examples used in this chapter and study its
accuracy and efficiency.
145
6
Acoustic Wave Problems
Solving acoustic wave problems is one of the most important applications of
the BEM, which can be used to predict sound fields for noise control in automobiles, airplanes, and many other consumer products. Acoustic waves often
exist in an infinite medium outside a structure that is in vibration (a radiation
problem) or impinged on by an incident wave (a scattering problem). With the
BEM, only the boundary of the structure needs to be discretized. In addition,
the BCs at infinity can be taken into account analytically in the BIE formulations, and thus these conditions are satisfied exactly. The governing equation
for acoustic wave problems is the Helmholtz equation, which was solved using
the BIE and BEM for more than four decades (see, e.g., some of the early
work in Refs. [107–120]). Especially, the work by Burton and Miller in Ref.
[108] is regarded as classical work that provides a very elegant way to overcome the so-called fictitious frequency difficulties existing in the conventional
BIE for exterior acoustic wave problems. Burton and Miller’s BIE formulation has been used by many others in their research on the BEM for acoustic
problems (see, e.g., Refs. [50, 51, 121–125]).
The development of the fast multipole BEM for solving large-scale acoustic wave problems is perhaps the most important advance in the BEM that
has made the BEM unmatched by other methods in modeling acoustic wave
problems. The fast multipole method developed by Rokhlin and Greengard
[33–35] has been extended to solving the Helmholtz equation for quite some
time (see, e.g., Refs. [102, 126–137] and review [41]). Most of these works are
good for solving acoustic wave problems at either low or high frequencies.
For example, Greengard et al. [130] suggested a diagonal translation in the
FMM for the low-frequency range. Rokhlin [127] proposed a diagonal form
of the translation matrices for high-frequency ranges for the Helmholtz equation. Most recently, the same group also proposed integrated algorithms that
are valid for a wide range of frequencies [137]. Gumerov and Duraiswami’s
research volume [136] is the first book that is devoted entirely to the topic of
the FMM for solving Helmholtz equations in three dimensions.
146
6.1 Basic Equations in Acoustics
147
In this chapter, we first review the basic governing equations for acoustic wave problems and the fundamental solutions. Then, the BIE formulations
for acoustic wave problems are presented, followed by a discussion on the fast
multipole BEM for solving the acoustic BIEs in both two and three dimensions. Finally, several numerical examples are presented to demonstrate the
advantages of the fast multipole BEM in solving acoustic wave problems and
to discuss the remaining challenges.
6.1 Basic Equations in Acoustics
In 1D space, the acoustic wave equation can be written as:
∂ 2φ
1 ∂ 2φ
− 2 2 + Qδ(x, xQ) = 0,
2
∂x
c ∂t
(6.1)
in which φ = φ(x, t) is the perturbation acoustic pressure, x is the coordinate,
t is the time, c is the speed of sound in the medium (e.g., c = 343.6 m/s in air
at a temperature of 20◦ C), and Qδ(x, xQ) represents a possible point source
located at xQ. The preceding equation can be applied to describe the acoustic
wave in a 1D long duct that is due to a disturbance along the axis of the duct
(x direction).
We can verify that the solutions of Eq. (6.1) are of the following forms
when Q = 0:
φ(x, t) = f (x − ct),
φ(x, t) = g(x + ct).
(6.2)
Function f (x − ct) represents a right-traveling wave (waves moving along the
+x direction) and g(x + ct) is a left-traveling wave (waves moving along the
–x direction).
Similarly, in 2D or 3D spaces, the acoustic wave equation can be written
as:
∇ 2φ −
1 ∂ 2φ
+ Qδ(x, x Q) = 0,
c2 ∂t 2
∀x ∈ E,
(6.3)
where φ = φ(x, t) is the perturbation acoustic pressure at point x and time t,
c is the speed of sound, Qδ(x, x Q) is a typical point source located at x Q in
E (Figure 6.1), and ∇ 2 ( ) = ∂ 2 ( )/∂ xk ∂ xk = ( ),kk is the Laplace operator. The
acoustic domain E is considered to be isotropic and homogeneous and can be
an infinite domain exterior to a body V or a finite domain interior to a closed
surface.
' −iωt and the
For time harmonic waves, the point source intensity Q = Qe
solutions to the governing equation can be written as:
φ(x, t) = φ̃(x, ω)e−iωt ,
(6.4)
148
Acoustic Wave Problems
S
V
x
n(x)
r
n(y)
Figure 6.1. The acoustic medium E, body V, and boundary S.
y
E
xQ
in which φ̃(x, ω) is the (complex) acoustic pressure in the frequency domain,
√
ω is the circular frequency, and i = −1. Substituting Eq. (6.4) into Eq. (6.3),
we obtain:
∇ 2 φ̃ +
ω2
'
φ̃ + Qδ(x,
x Q) = 0,
c2
∀x ∈ E.
Let k = ω/c be the wavenumber and, for convenience, we drop the tildes in the
preceding equation. We obtain the following governing equation for acoustic
wave problems:
∇ 2 φ + k 2 φ + Qδ(x, x Q) = 0,
∀x ∈ E,
(6.5)
with φ(x, ω) being the complex acoustic pressure and Qδ(x, x Q) representing
the point source located at x Q (inside domain E). The preceding equation
is the well-known inhomogeneous Helmholtz equation. Note that the cyclic
frequency:
f =ω/2π
(with units of inverse seconds, or Hertz),
(6.6)
and the wavelength:
λ = c/ f = 2πc/ω = 2π/k
(with units of meters).
(6.7)
The BCs for the governing equation can be classified as follows:
Pressure is given:
φ = φ,
∀x ∈ S;
(6.8)
Velocity is given:
q≡
∂φ
= q = iωρvn ,
∂n
∀x ∈ S;
(6.9)
Impedance is given:
φ = Zvn ,
∀x ∈ S,
(6.10)
6.1 Basic Equations in Acoustics
149
x2
v0
x
r
Figure 6.2. A pulsating sphere in an infinite acoustic
domain E.
S
n
x1
a
E
x3
where ρ is the mass density (e.g., ρ = 1.29 kg/m3 for air at 0◦ C and 1-atm
pressure), vn is the normal velocity, Z is the specific acoustic impedance, and
the quantities with overbars indicate given values.
For the boundary-value problem for acoustic waves, we need to solve governing equation (6.5) at a given frequency or wavenumber and under the BCs
in (6.8)–(6.10). Once we have the solution φ(x,ω) in the frequency domain, we
can obtain the solution in the time domain from Eq. (6.4) for the time harmonic case.
There are two typical types of problems in acoustic wave analysis. One is
called a radiation problem, in which a structure is in vibration and causes disturbances in the acoustic field outside or inside the structure. In this case, the
velocity on the boundary S is specified in the acoustic analysis. Another type
of acoustic wave problem is called a scattering problem, in which the structure
stands still and an incoming disturbance (a plane incident wave or an incident
wave from a point source) interacts with the structure and waves are scattered
by the structure.
For exterior (infinite domain) acoustic wave problems, in addition to the
boundary conditions on S, the field at infinity must satisfy the following Sommerfeld radiation condition:
∂φ
lim R
− ikφ = 0,
(6.11)
R→∞
∂R
where R is the radius of a large sphere covering the structure and φ is the radiated wave in a radiation problem or the scattered wave in a scattering problem. Basically, the Sommerfeld condition says that any acoustic disturbances
caused by the structure (either radiated or scattered) should die out at infinity
based on the energy considerations.
As an example, let us consider a pulsating sphere in an infinite acoustic
medium (Figure 6.2). This example is often used as a test problem to verify the numerical solutions. The sphere has a radius a and is applied with a
uniform velocity v 0 in the radial direction (imagine a balloon expanding and
150
Acoustic Wave Problems
contracting uniformly in the radial directions and harmonically in time). This
is a radiation problem, and the boundary-value problem is given by:
∇ 2 φ + k2 φ = 0
∀x ∈ E,
∂φ
= −iωρv0 ,
∂n
∀x ∈ S.
(6.12)
To solve this problem, we note the spherical symmetry and use the spherical
coordinates; that is, φ(x, ω) = φ(r, ω), where r is the radial coordinate (see Figure 6.2).
We have in the spherical coordinate system:
2
∂
2 ∂
1 d2
∇ 2φ =
+
φ
=
(r φ) ;
∂r 2
r ∂r
r dr 2
therefore, the governing equation in (6.12) is reduced to:
d2
(r φ) + k (r φ) = 0.
dr 2
(6.13)
The solution of this ODE is of the form:
"
1!
φ(r, ω) =
A1 eikr + A2 e−ikr ,
r
where A1 and A2 are two constants. For the field caused by the pulsating
sphere, the wave should be an outgoing wave (traveling away from the sphere).
Thus, the second term representing an incoming wave (traveling toward the
sphere) should vanish (A2 = 0). We have:
φ(r, ω) =
1
A1 eikr .
r
To determine A1 , we apply the BC in Eq. (6.12) and find that:
A1 =
iωρv0 a 2 −ika
ρcv0 (ika) −ika
=
.
e
ae
ika − 1
ika − 1
Therefore, the solution to the pulsating-sphere problem is found to be:
φ(r, ω) =
ρcv0 (ika) a ik(r −a)
,
e
ika − 1 r
(6.14)
which represents the perturbation pressure field that is due to the pulsating
sphere. We notice that this is an outgoing wave and it vanishes at infinity (i.e.,
satisfies the Sommerfeld radiation condition).
6.2 Fundamental Solution for Acoustic Wave Problems
If we place a unit concentrated source (disturbance or “pulsating point”) at
point x in an acoustic medium occupying the full space, then the mathematical representation for the response (acoustic disturbance pressure) at another
point y is called the fundamental solution or the full-space Green’s function
6.2 Fundamental Solution for Acoustic Wave Problems
151
for acoustic problems. This fundamental solution, denoted as G(x, y, ω) in this
chapter, satisfies the following governing equation:
∇ 2 G(x, y, ω) + k 2 G(x, y, ω) + δ(x, y) = 0,
∀x, y ∈ R2 /R3 ,
(6.15)
in which the derivative is taken at field point y and the Dirac δ function represents the unit source at source point x. G(x, y, ω) should represent an outgoing
wave and have spherical (radial) symmetry. From the solution in Eq. (6.14) for
the pulsating sphere, we know that G(x, y, ω) should have the following form
for 3D problems:
G(x, y, ω) =
A ikr
e ,
r
(6.16)
where r is the distance between x and y and A is a constant. To determine
A, which represents the strength of the source, we integrate Eq. (6.15) over a
small spherical domain Eε (x) centered at x, with radius ε and boundary Sε (x)
to obtain:
2
2
∇ G + k G dE(y) = −
δ(x, y)dE(y) = −1.
(6.17)
Eε (x)
Eε (x)
Applying the Gauss theorem and expression (6.16), we have:
∂G
2
∇ GdE(y) =
dS(y) = 4π A(ikε − 1)eikε .
Eε (x)
Sε (x) ∂n
Similarly, using the spherical coordinates (r, θ, ϕ), we obtain:
ε
k 2 GdE(y) = k 2 A
Eε (x)
0
0
2π
0
π
1 ikr 2
e r sin ϕdϕdθ dr
r
= 4π A (1 − ikε)eikε − 1 .
Substituting the preceding two results into Eq. (6.17), we obtain A = 1/4π
and the following results for the fundamental solution for 3D acoustic wave
problems:
G(x, y, ω) =
1 ikr
e ,
4πr
(6.18)
F(x, y, ω) ≡
∂G(x, y, ω)
1
(ikr − 1)r, j n j (y)eikr .
=
∂n(y)
4πr 2
(6.19)
Note that when k = 0 – that is, when the problem becomes a static one –
the preceding two results are exactly the same as those for the 3D potential
problems discussed in Chapter 2. This is expected because Helmholtz equation
(6.5) becomes a Poisson equation if k = 0.
152
Acoustic Wave Problems
For 2D acoustic wave problems, we have the following results for the fundamental solution:
i (1)
G(x, y, ω) = H0 (kr ),
(6.20)
4
F(x, y, ω) ≡
ik (1)
∂G(x, y, ω)
= − H1 (kr )r,l nl (y),
∂n(y)
4
(6.21)
(1)
in which Hn ( ) denotes the Hankel function of the first kind [138].
6.3 Boundary Integral Equation Formulations
To derive the BIE corresponding to Helmholtz equation (6.5), we apply the second Green’s identity given in Eq. (1.24) (we use the 3D case as the example):
2
∂u
∂v
2
u∇ v − v∇ u dE =
−v
dS,
(6.22)
u
∂n
∂n
E
S∪SR
in which E is a domain bounded by the boundary S of the structure (see Figure
6.1) and a large sphere SR of radius R (with R → ∞). For interior problems, SR
does not exist. Let v(y) = φ(y), which satisfies Eq. (6.5), and u(y) = G(x, y, ω),
which satisfies Eq. (6.15). We have from identity (6.22):
∂G
∂φ
2
2
G∇ φ − φ∇ G dE =
−φ
dS.
G
∂n
∂n
E
S∪SR
Applying Eqs. (6.5), (6.15), and (1.25), we obtain:
φ(x) =
[G(x, y, ω)q(y) − F(x, y, ω)φ(y)] dS(y) + QG(x, x Q, ω),
∀x ∈ E,
S∪SR
(6.23)
in which q = ∂φ/∂n and the term QG(x, x Q, ω) is due to the point source at x Q
in the domain.
Now, consider the integral on SR as R → ∞ for an infinite domain. For
this purpose, we first note the following inequalities:
f (x)dx ≤ f (x) dx,
f (x) + g(x) ≤ f (x) + g(x) , and so on.
For radiation problems, φ is the radiated wave, and we evaluate:
lim
[G(x, y, ω)q(y) − F(x, y, ω)φ(y)] dS(y)
R→∞
SR
1 ∂φ
(ik R − 1)
ik R
|Gq − Fφ| dS ≤ lim
φ e dS
−
≤ lim
2
R→∞ S
R→∞ S
4π R ∂ R
4π R
R
R
1 ∂φ
1
|φ| dS
− ikφ +
≤ lim
R→∞ S
4π R ∂ R
4π R2
R
∂φ
− ikφ + lim |φ| = 0
(6.24)
= lim R
R→∞
R→∞
∂R
6.3 Boundary Integral Equation Formulations
153
by using the Sommerfeld radiation condition in Eq. (6.11) and noting the fact
that φ itself should vanish at the infinity.
For scattering problems, φ is the total wave that is the sum of the incident
wave φ I and the scattered wave φ S ; that is, φ = φ I + φ S . The scattered wave
φ S also satisfies the Sommerfeld condition. Thus, for scattering problems, we
have for the integral on SR as R → ∞:
[G(x, y, ω)q(y) − F(x, y, ω)φ(y)] dS(y)
SR
=
Gq I − Fφ I dS +
SR
Gq S − Fφ S dS,
SR
in which q I = ∂φ I /∂n and q S = ∂φ S /∂n. The first integral on the right-hand
side is equal to the incident wave φ I by considering φ I within the domain as
enclosed by SR , and the second integral vanishes as in the radiation problems.
Therefore, for the scattering problems, we have:
(6.25)
[G(x, y, ω)q(y) − F(x, y, ω)φ(y)] dS(y) = φ I (x).
SR
From the results in Eqs. (6.24) and (6.25), we obtain from Eq. (6.23) the following general representation integral:
φ(x) = [G(x, y, ω)q(y) − F(x, y, ω)φ(y)] dS(y)
S
+ φ I (x) + QG(x, x Q, ω),
∀x ∈ E,
(6.26)
where the incident wave φ I (x) does not present for radiation problems.
Equation (6.26) is the representation integral of the solution φ inside
domain E for Helmholtz equation (6.5) for both exterior and interior domain
problems. Once the values of both φ and q are known on S, Eq. (6.26) can be
applied to calculate φ everywhere in E, if needed.
Let the source point x approach the boundary S. We obtain the following
CBIE for acoustic wave problems:
c(x)φ(x) = [G(x, y, ω)q(y) − F(x, y, ω)φ(y)] dS(y)
S
+ φ I (x) + QG(x, x Q, ω),
∀x ∈ S,
(6.27)
where the constant c(x)= 1/2 if S is smooth around x. This CBIE can be used
to solve for the unknown φ and q on S. The integral with the G kernel is a
weakly singular integral, whereas the one with the F kernel is a strongly singular (CPV) integral, as in the potential case.
It is well known that this CBIE has a major defect for exterior domain
problems; that is, it has nonunique solutions at a set of fictitious eigenfrequencies associated with the resonate frequencies of the corresponding interior
problems [108]. This difficulty is referred to as the fictitious eigenfrequency
154
Acoustic Wave Problems
difficulty. A remedy to this problem is to use the normal derivative BIE in
conjunction with this CBIE. Taking the derivative of integral representation
(6.26) with respect to the normal at the point x and letting x approach S, we
obtain the following HBIE for acoustic wave problems:
c̃(x)q(x) = [K(x, y, ω)q(y) − H(x, y, ω)φ(y)] dS(y)
S
+ q I (x) + QK(x, x Q, ω),
∀x ∈ S,
(6.28)
where c̃(x)= 1/2 if S is smooth around x. For 3D problems, the two new kernels
are given by:
K(x, y, ω) ≡
H(x, y, ω) ≡
∂G(x, y, ω)
1
(ikr − 1)r, j n j (x)eikr ,
=−
∂n(x)
4πr 2
∂ F(x, y, ω)
1 (
(1 − ikr )n j (y)
=
∂n(x)
4πr 3
)
+ k 2 r 2 − 3(1 − ikr ) r, j r,l nl (y) n j (x)eikr ,
(6.29)
(6.30)
and for 2D problems, the two new kernels are:
K(x, y, ω) ≡
ik (1)
∂G(x, y, ω)
=
H (kr )r, j n j (x),
∂n(x)
4 1
H(x, y, ω) ≡
∂ F(x, y, ω)
ik (1)
=
H (kr )n j (x)n j (y)
∂n(x)
4r 1
−
ik 2 (1)
H (kr )r, j n j (x)r,l nl (y).
4 2
(6.31)
(6.32)
In HBIE (6.28), the integral with the K kernel is a strongly singular (CPV)
integral, whereas the one with the H kernel is a hypersingular (HFP) integral.
For exterior acoustic wave problems, a dual BIE (CHBIE or composite
BIE [50]) formulation using a linear combination of CBIE (6.27) and HBIE
(6.28) can be written as:
CBIE + β HBIE = 0,
(6.33)
where β is the coupling constant. This dual BIE formulation is called the
Burton–Miller formulation [108] for acoustic wave problems and was shown
by Burton and Miller to yield unique solutions at all frequencies, if β is a complex number (which, for example, can be chosen as β = i/k [112, 114, 122,
139]).
6.4 Weakly Singular Forms of the Boundary Integral Equations
CBIE (6.27) and HBIE (6.28) contain singular integrals that are difficult to
evaluate analytically on higher-order elements. Numerical integration can be
used to compute all the singular integrals with proper care, but it was found
6.4 Weakly Singular Forms of the Boundary Integral Equations
155
to be not very efficient computationally with higher-order elements. As in
all of the other problems using the BIE and BEM, the best approach in such
cases is to use the weakly singular forms of these BIEs, which are obtained
analytically and do not introduce any approximations. For dynamic problems,
however, there were no integral identities found with the dynamic kernels
directly. Therefore, there are extra steps in the development of the weakly
singular forms of the BIEs for acoustic wave and other dynamic problems
using the BIEs [50, 52, 124].
For CBIE (6.27), we first note that the free-term coefficient c(x) can be
written as (see notation used in Chapter 2):
c(x) = 1 + lim
F(x, y, ω)dS(y) = 1 + lim
F(x, y)dS(y)
ε→0
ε→0
Sε (x)
= γ − lim
ε→0
=γ−
Sε (x)
F(x, y)dS(y)
S−Sε (x)
F(x, y)dS(y),
∀x ∈ S (a CPV integral),
(6.34)
S
in which F(x, y) = F(x, y, 0) is the static F kernel for potential problems (an
overbar is added in this chapter to distinguish static kernels from the dynamic
ones), γ = 0 for a finite domain, and γ = 1 for an infinite domain. In deriving Eq. (6.34), the first identity in Eq. (2.7) for the potential (static) kernel is
applied. The fact that the dynamic kernel can be replaced with the static kernel
is due to the following results for small r (with the 3D case as the example):
1 ikr
e −1
4πr
1
1
1
2
3
ikr + (ikr ) + (ikr ) + · · · +
=
4πr
2!
3!
G(x, y, ω) − G(x, y) =
= a0 + a1r + a2r 2 + · · · +,
F(x, y, ω) − F(x, y) =
∂
a0 + a1 r + a2 r 2 + · · · +
∂n(y)
= O(r,n ) = O(r ),
as r → 0,
(6.35)
where a0 , a1 , a2 , . . . , are some constants. Substituting the expression in (6.34)
for c(x) into CBIE (6.27), we obtain the following weakly singular form of the
CBIE for acoustic wave problems:
γ φ(x) +
F(x, y, ω) − F(x, y) φ(y)dS(y) + F(x, y) [φ(y) − φ(x)] dS(y)
S
S
G(x, y, ω)q(y)dS(y) + φ I (x) + QG(x, x Q, ω),
=
∀x ∈ S,
(6.36)
S
in which all three integrals are now, at most, weakly singular and can be handled readily by numerical integration schemes.
156
Acoustic Wave Problems
Similarly, if we introduce the static kernel and a two-term subtraction and
apply the identities satisfied by the static kernels, we can show that HBIE
(6.28) can be written in the following weakly singular form [50, 51]:
γ q(x) +
H(x, y, ω) − H(x, y) φ(y)dS(y)
S
∂φ
H(x, y) φ(y) − φ(x) −
(x)(ξα − ξoα ) dS(y)
+
∂ ξα
S
∂φ
+ eα k
(x)
K(x, y)nk (y) + F(x, y)nk (x) dS(y)
∂ ξα
S
=
K(x, y, ω) + F(x, y) q(y) dS(y)
S
−
F(x, y) [q(y) − q(x)] dS(y) + q I (x) + QK(x, x Q, ω),
∀x ∈ S ,
S
(6.37)
in which ξα (α = 1 for two dimensions and α = 1, 2 for three dimensions) are
local coordinates in tangential directions at x ∈ S and eα k = ∂ ξα /∂ xk [51]. All
of the integrals in (6.37) are now, at most, weakly singular if φ has continuous
first derivatives, which we can verify by simply expanding the kernels as shown
in Eqs. (6.35) and (6.36).
6.5 Discretization of the Boundary Integral Equations
We can obtain the discretized equations of the CBIE, HBIE, or BurtonMiller’s BIE formulation, in either singular or weakly singular forms, by discretizing the boundary S using constant [102], linear, or quadratic [50] (see
Figure 2.6) or other higher-order elements [140]. As in potential and other
problems, the discretized BIEs can be written as:
a11 a12 . . . a1N
λ1
b1
b2
a
a
·
·
·
a
λ
21
22
2N
2
.
=
, or Aλ = b,
(6.38)
.
.
.
.
.
.
..
..
..
..
..
.
a N1 a N2 · · · a NN
λN
bN
where A is the system matrix; λ is the vector of unknown boundary variables
at the nodes; b is the known vector containing contributions from the possible
source term, the plane incident wave, or boundary conditions; and N is the
number of nodes on the boundary. In contrast to static problems, for acoustic
wave problems, this system of equations is in complex numbers; that is, all
of the coefficients and variables are complex numbers, and thus the memory
requirement is four times as large as its counterpart in potential problems.
6.6 Fast Multipole Boundary Element Method for 2D Acoustic Wave Problems
As a result of this, only relatively small models can be solved by use of the
conventional BEM approach with direct solvers.
6.6 Fast Multipole Boundary Element Method for 2D Acoustic
Wave Problems
We first discuss the fast multipole BEM formulation for 2D acoustic wave
problems (see, e.g., Ref. [41]). The 2D formulation is based on Graf’s equation [see Ref. [138], p. 363, Eq. (9.1.79)] for the kernel G. That is, the far-field
expansion for the G kernel can be represented as follows:
∞
G(x, y, ω) =
i (1)
i
On (x − yc )I−n (y − yc ),
H (kr ) =
4 0
4 n=−∞
y − yc < x − yc ,
(6.39)
where k is the wavenumber, yc is an expansion point close to y, and the two
auxiliary functions In and On are given by:
In (x) = (−i)n Jn (kr )einα ,
(6.40)
On (x) = i n Hn(1) (kr )einα .
(6.41)
In the preceding two expressions, x is a typical vector, Jn ( ) is the Bessel J
function, and (r, α) is the polar coordinate of x.
Using Eq. (6.39), we find that the far-field expansion for the F kernel is
given by:
∞
F(x, y, ω) =
∂G(x, y, ω)
∂ I−n (y − yc )
i
On (x − yc )
=
,
∂n(y)
4 n=−∞
∂n(y)
y − yc < x − yc ,
(6.42)
in which the derivative can be obtained by the formula:
∂ I−n (y − yc )
(−i)n k
=
[Jn+1 (kr )eiδ − Jn−1 (kr )e−iδ ]einα ,
∂n(y)
2
(6.43)
→
where δ is the angle between the vector −
r from yc to y and the outward normal
n(y).
Applying expansions in Eqs. (6.39) and (6.42), we can evaluate the G and
F integrals in CBIE (6.27) on Sc (a subset of S that is away from the source
point x) with the following multipole expansions:
∞
G(x,y, ω)q(y)dS(y) =
On (x − yc )Mn (yc ), y − yc < x − yc , (6.44)
Sc
n=−∞
∞
F(x,y, ω)φ(y)dS(y) =
Sc
n=−∞
'n (yc ),
On (x − yc ) M
y − yc < x − yc , (6.45)
157
158
Acoustic Wave Problems
'n are the multipole moments centered at yc and given by:
where Mn and M
i
Mn (yc ) =
I−n (y − yc )q(y)dS(y),
(6.46)
4 Sc
∂ I−n (y − yc )
i
'
φ(y)dS(y).
(6.47)
Mn (yc ) =
4 Sc
∂n(y)
When the multipole expansion center is moved from yc to yc , we have the
'n :
following M2M translation for both Mn and M
∞
Mn (yc ) =
In−m (yc − yc )Mm (yc ).
(6.48)
m=−∞
The local expansion for the G kernel integral in CBIE (6.27) is given as:
∞
G(x, y, ω)q(y)dS(y) =
Sc
Ln (x L)I−n (x − x L),
(6.49)
n=−∞
where x L is the local expansion point close to x (|x − x L| < yc − x L), and the
expansion coefficients are given by the following M2L translation:
∞
Ln (x L) =
(−1)m On−m (x L − yc )Mm (yc ).
(6.50)
m=−∞
This result, which is slightly different from that given in Ref. [41], is derived
with Graf’s equation [138].
Similarly, the local expansion for the F kernel integral in CBIE (6.27) is
given by:
∞
F(x, y, ω)φ(y)dS(y) =
Sc
Ln (x L)I−n (x − x L),
(6.51)
n=−∞
'n replacing Mn in M2L translation (6.50) for calculating the expansion
with M
coefficient.
The local expansion center in expansion (6.49) can be shifted from x L to
x L using the following L2L translation:
∞
Ln (x L ) =
Im (x L − x L)Ln−m (x L).
(6.52)
m=−∞
For HBIE (6.28), the local expansion of the K kernel integral can be written
as:
∞
K(x, y, ω)q(y)dS(y) =
Sc
Ln (x L)
n=−∞
∂ I−n (x − x L)
,
∂n(x)
(6.53)
6.7 Fast Multipole Boundary Element Method for 3D Acoustic Wave Problems
with the same local expansion coefficient Ln (x L) as that given by Eq. (6.50).
Similarly, the local expansion for the H kernel integral is given by:
∞
H(x, y, ω)φ(y)dS(y) =
Sc
Ln (x L)
n=−∞
∂ I−n (x − x L)
,
∂n(x)
(6.54)
'n replacing Mn in Eq. (6.50) for evaluating Ln (x L). Therefore, the same
with M
moments, M2M, M2L, and L2L translations as used for the G and F integrals
in the CBIE are used for the K and H integrals in the HBIE, respectively.
The fast multipole algorithms and implementations for 2D acoustic wave
problems are similar to those for 2D potential problems, as given in Chapter 3.
For example, the same tree structure and code for a 2D potential program can
be applied to a 2D acoustic program. The only difficult part is to select a proper
p, the number of expansion terms in the multipole and local expansions. For
low-frequency problems, a value of p less than or equal to 10 is found to be sufficient, and for higher-frequency problems, larger values of p will be needed,
and this will consume more CPU time because of the nature of the expansions
for the kernels.
6.7 Fast Multipole Boundary Element Method for 3D Acoustic
Wave Problems
The FMM for solving Burton–Miller’s BIE (6.33) is discussed in this section
for the 3D case [102]. We first note that the fundamental solution G(x, y, ω)
for the Helmholtz equation in three dimensions can be expanded as (see, e.g.,
Refs. [63, 128]):
ik
G(x,y, ω) =
4π
∞
n
(2n + 1)
Onm (k, x − yc ) Ī m
n (k, y − yc ),
m=−n
n=0
y − yc < x − yc ,
(6.55)
where k is the wavenumber, yc is an expansion point near y, and the outer
function Onm is defined by:
x
m
(1)
m
On (k, x) = hn (k |x|) Yn
,
(6.56)
|x|
the inner function Inm given by:
Inm (k, x)
=
jn (k |x|) Ynm
x
,
|x|
(6.57)
(1)
m
and Ī m
n is the complex conjugate of In . In the preceding equations, hn is
the nth-order spherical Hankel function of the first kind, jn is the nth-order
159
160
Acoustic Wave Problems
spherical Bessel function of the first kind, and Ynm are the spherical harmonics
given by:
(n − m)! m
Ynm (x) =
P (cos θ)eimφ , for n = 0, 1, 2, . . . , m = −n, . . . , n,
(n + m)! n
(6.58)
with (ρ, θ, φ) being the coordinates of x here in a spherical coordinate system (i.e., x1 = ρ sin θ cos φ, x2 = ρ sin θ sin φ, x3 = ρ cos θ ), and Pnm is the associated Legendre function defined in Eq. (3.49). These spherical harmonics are
orthogonal to each other over the unit sphere and thus can form the basis
for expanding other functions [136]. Note that slightly different definitions of
the spherical harmonics exist in the literature [136, 137], and care needs to be
taken to make sure that the fast multipole formulations are consistent with
these different notations.
Similarly, the kernel F(x, y, ω) for 3D acoustic wave problems can be
expanded as:
F(x,y, ω) =
ik
4π
∞
n
(2n + 1)
∂ Ī m
n (k, y − yc )
,
∂n(y)
y − yc < x − yc . (6.59)
Om
n (k, x − yc )
m=−n
n=0
Applying expansions in Eqs. (6.55) and (6.59), we can evaluate the G and F
integrals in CBIE (6.27) on Sc (a subset of S that is away from the source point
x) with the following multipole expansions:
∞
n
ik
G(x,y, ω)q(y)dS(y) =
(2n + 1)
Om
n (k, x − yc )Mn,m (k, yc ),
4π
Sc
m=−n
n=0
y − yc < x − yc , (6.60)
F(x,y, ω)φ(y)dS(y) =
Sc
ik
4π
∞
n
(2n + 1)
m=−n
n=0
'
Om
n (k, x − yc ) Mn,m (k, yc ),
y − yc < x − yc ,
(6.61)
'n,m are the multipole moments centered at yc and given by:
where Mn,m and M
Mn,m (k, yc ) =
(6.62)
Ī m
n (k, y − yc )q(y)dS(y),
'n,m (k, yc ) =
M
Sc
Sc
∂ Ī m
n (k, y − yc )
φ(y)dS(y).
∂n(y)
(6.63)
When the multipole expansion center is moved from yc to yc , we have the
following M2M translation:
∞
Mn,m (k, yc ) =
n
n+n
(2n + 1)
m =−n
n =0
(−1)m Wn,n ,m,m ,l
l=|n−n |
n +n−l: even
× Il−m−m (k, yc − yc )Mn ,−m (k, yc ),
(6.64)
6.7 Fast Multipole Boundary Element Method for 3D Acoustic Wave Problems
where Wn,n,m,m,l is calculated with the following formula:
+*
*
+
n n l
n n l
n −n+l
Wn,n ,m,m ,l = (2l + 1)i
,
(6.65)
0 0 0
m m −m − m
*
+
•••
and
denotes the Wigner 3j symbol [141].
•••
The local expansion for the G kernel integral in CBIE (6.27) is given as
follows:
∞
n
ik
G(x,y, ω)q(y)dS(y) =
(2n + 1)
Ln,m (k, x L) Ī m
n (k, x − x L),
4π
Sc
m=−n
n=0
(6.66)
where the local expansion coefficients are given by the following M2L translation:
∞
Ln,m (k, x L) =
n
n+n
m =−n
l=|n−n |
n+n −l: even
(2n + 1)
n =0
'l−m−m (k, x L − yc )
Wn ,n,m ,m,l O
(6.67)
× Mn ,m (k, yc ),
'm
for |x − x L| < yc − x L, in which x L is the local expansion center and O
n is
defined by:
x
m
'nm (k, x) = h(1)
|x|)Y
(k
O
.
(6.68)
n
n
|x|
The local expansion center can be shifted from x L to x L by the following L2L
translation:
∞
Ln,m (k, x L ) = (−1)m
n =0
n
n+n
m =−n
l=|n−n |
n+n −l: even
(2n + 1)
Wn ,n,m ,−m,l
× Ilm−m (k, x L − x L)Ln ,m (k, x L).
(6.69)
The local expansion for the F kernel integral in CBIE (6.27) is similar to that
of Eq. (6.66):
∞
n
ik
F(x,y, ω)φ(y)dS(y) =
(2n + 1)
Ln,m (k, x L) Ī m
n (k, x − x L),
4π
Sc
m=−n
n=0
(6.70)
'
with Mn,m replacing Mn,m in M2L translation (6.67).
For HBIE (6.28), we can obtain the local expansions for the K and H
integrals by taking the normal derivatives of the local expansions for the G
and F integrals, respectively. We have:
∞
n
ik
∂ Ī m (k, x − x L)
K(x,y, ω)q(y)dS(y) =
(2n + 1)
Ln,m (k, x L) n
,
4π
∂n(x)
Sc
m=−n
n=0
(6.71)
161
162
Acoustic Wave Problems
with Mn,m in M2L translation (6.67), and similarly for the H kernel integral:
∞
n
∂ Ī m
n (k, x − x L)
,
∂n(x)
Sc
m=−n
n=0
(6.72)
'
with Mn,m replacing Mn,m in M2L translation (6.67). Again, the same moments,
M2M, M2L, and L2L translations, as used for the G and F integrals in the
CBIE are used for the K and H integrals in the HBIE, respectively.
To determine p, the order of the multipole and local expansions, the following empirical formula (see, e.g., Ref. [41]) can be applied:
H(x,y, ω)φ(y)dS(y) =
ik
4π
(2n + 1)
Ln,m (k, x L)
p = k D + c0 log(k D + π ),
(6.73)
where D is the diameter of the cell on which the expansions are calculated and
c0 is a number that depends on the precision of the arithmetic. Formulas like
(6.73) can be applied to adaptively determine the values of p at different tree
levels in the fast multipole algorithms.
The fast multipole formulations just discussed for solving 3D acoustic
wave problems or Helmholtz equations in general are good for low frequencies because of the O( p5 ) nature of the formulation. To perform the M2M,
M2L, and L2L translations, O( p5 ) computations are required because there
are three summations in all of these translations and two indices in the coefficients, as shown in Eqs. (6.64), (6.67), and (6.69). Although the number of
operations can be reduced to O( p4 ) by use of various recursive relations, the
computing time can still increase quickly with the increase of the value of
p. In addition, the use of the Wigner 3j symbol in Eq. (6.65), which is timeconsuming to calculate each time and consumes more memory if its values
are stored, further reduces the computational efficiency. As mentioned in the
2D case and also shown in Eq. (6.73), at higher frequencies, more terms are
required in the expansions to represent the increased variations in the field,
leading to a larger p and a slower performance of any fast multipole BEM
code based on the formulations discussed previously. In fact, the FMM gives
O(N 2 ) computing complexity using these original formulations [41]. Adaptive
fast multipole algorithms [60, 61] are used to accelerate the solutions of the fast
multipole BEM for 3D acoustic wave problems based on these formulations
[102]. Large acoustic BEM models with total DOFs (in complex variables) of
up to 200,000 are solved at lower frequencies on a laptop with only 512-MB
RAM [102].
For higher-frequency problems, the diagonal form proposed by Rokhlin
[127] can be used to accelerate the computations of all the translations. Unfortunately, this diagonal form breaks down at lower frequencies, where the original formulations will need to be applied [41]. The wideband FMM proposed
by Cheng et al. [137] may be considered; it provides a seamless framework for
combining the low- and high-frequency formulations. Conversely, an O( p3 )
6.8 Numerical Examples
163
P
135
126.25
117.5
108.75
100
91.25
82.5
73.75
65
Figure 6.3. Scattering from a single cylinder with 1000 elements.
formulation was developed by Gumerov and Duraiswami [132, 136] that is
adequate for both low- and high-frequency applications. This O( p3 ) formulation does not use the Wigner 3j symbol, which also can reduce the memory
usage.
Based on the adaptive fast multipole algorithms reported in Ref. [102]
and the Gumerov and Duraiswami’s O( p3 ) formulations presented in Ref.
R
[136], a very robust acoustic software, FastBEM Acoustics
, was developed
that has been applied successfully in solving large-scale acoustic BEM models with DOFs above 2 million on desktop PCs with 32-bit operating systems.
Several 3D numerical examples presented in the following section are solved
R
with the FastBEM Acoustics
(V.1.2.0) software.
6.8 Numerical Examples
Several examples of 2D and 3D acoustic wave problems are presented in this
section. Constant elements are used in all cases; that is, one-node line elements
for 2D models and one-node triangular elements for 3D problems. The 2D
computer code is based on the formulations presented in Section 6.6 and the
same fast multipole algorithms for 2D potential problems discussed in Chapter
R
3. The 3D code, named FastBEM Acoustics
, is based on an improved adaptive fast multipole algorithm of that in Ref. [102] and the O( p3 ) formulations
in Ref. [136].
6.8.1 Scattering from Cylinders in a 2D Medium
First, we consider a 2D scattering problem with a single rigid cylinder with the
incident wave coming from the right. The cylinder has a radius a = 1 and is
discretized with 1000 elements. A relative error of 0.01% is achieved for ka =
164
Acoustic Wave Problems
100
130
125
120
115
110
105
100
95
90
85
80
75
70
y
50
0
−50
−50
0
50
100
x
Figure 6.4. Scattering from multiple cylinders with 195,000 elements.
1 with 16 expansion terms and a tolerance of 10−8 . Figure 6.3 is the contour
plot of the magnitude of the scattered-pressure field outside the cylinder in a
square-field region.
We next consider a case with multiple scatterers in which an array of
15 × 10 cylinders is modeled with 195,000 elements. Again, the incident wave
is from the right. Figure 6.4 shows the computed scattered-pressure field with
10,000 field points inside the domain and at ka = 5.4. The model was solved in
R
about 3.5 h for a tolerance of 10−8 on an Intel
Core2 Duo desktop PC. In this
case, about 2 h of the total CPU time was spent on solving the BEM system
of equations and another 1.5 h on calculating the pressure at the 10,000 field
points inside the domain, which also can be accelerated by the fast multipole
algorithms.
6.8.2 Radiation from a Pulsating Sphere
A pulsating sphere with radius a = 1 m is used next to verify the 3D fast multipole BEM code. The analytical solution for this problem was discussed in Section 6.1. We consider the case with changing frequencies (frequency sweep) for
the nondimensional wavenumber ka varying from 0.1 to 10. The total number
of elements used is 1200. The computed pressures at (5a, 0, 0) are plotted in
Figure 6.5, which shows that the conventional BEM with the CBIE fails to
6.8 Numerical Examples
165
2500
Analytical solution
2250
Conventional BEM (CBIE)
Conventional BEM (CHBIE)
2000
Adaptive FMBEM (CHBIE)
1750
1500
|P|
1250
1000
750
500
250
0
0
1
2
3
4
5
6
7
8
9
ka
Figure 6.5. Frequency-sweep plot for the pulsating-sphere model.
predict the surface-pressure field at the fictitious eigenfrequencies (ka = π ,
2π, . . . , for this case). The results obtained with the conventional BEM with
the Burton–Miller (CHBIE) formulation agree well with the analytical solution at all wavenumbers. The adaptive fast multipole BEM with the CHBIE
also yields results very close to those of the conventional BEM with the
CHBIE, suggesting that the truncation errors introduced in multipole expansions are under control for ka ranging from 0.1 to 10. In this example, the
maximum number of elements in a leaf is set to 100, the number of multipole
and local expansion terms to 10, and the tolerance for GMRES to 10−3 .
6.8.3 Scattering from Multiple Scatterers
A multiscatterer model (Figure 6.6) containing 1000 randomly distributed
capsulelike rigid scatterers in a 2 m × 2 m × 2 m domain is studied next. Each
scatterer is meshed with 200 elements, with a total of 200,000 elements for the
entire model. The incident wave is e−ikx with k = 1. Sample field points are
taken at an annular field surface with inner and outer radii equal to 5 m and
10 m, respectively. The computed sound-pressure distribution is shown in
Figure 6.7 for this discretization. The total CPU time used to solve this large
R
model is 56 min on a HP laptop with an Intel
1.6-GHz Centrino CPU and
512-MB RAM.
10
11
166
Acoustic Wave Problems
Figure 6.6. A BEM model of 1000 capsulelike
scatterers with a total of 200,000 elements.
z
x
y
6.8.4 Performance Study of the 3D Fast Multipole Boundary
Element Method Code
Next, we use a radiating sphere to test the accuracy and efficiency of the 3D
acoustic fast multipole BEM code. The numbers of elements used range from
588 to 1,503,792. The nondimensional wavenumbers are ka = 2 and 20, with
corresponding initial numbers of expansion terms p = 6 and 10, respectively.
R
R
All the BEM models were solved on a Dell
PC with Intel
Core2 Duo CPU
at 2.2 GHz and 2-GB RAM. The tolerance for convergence is set at 10−4 .
Figure 6.8 shows the relative errors in the computed sound pressure and
power (integration of the pressure and velocity on the surface). As seen from
z
y
x
P:
0.9985
0.999
0.9995
1
1.0005
1.001
1.0015
1.002
Figure 6.7. Computed sound pressure on the multiple scatterers and field surface.
6.8 Numerical Examples
167
1.40%
Error in Computed Pressure pmax
1.20%
Error in Computed Power
Relative Errors
1.00%
0.80%
0.60%
0.40%
0.20%
0.00%
–0.20%
100
1000
10,000
100,000
1,000,000
DOFs
Figure 6.8. Relative errors of the fast multipole BEM solutions for a pulsating sphere
at ka = 2.
the plot, the accuracy of the fast multipole BEM is quite satisfactory considering the tolerance (10−4 ) used and the sizes of the BEM models. The errors
decrease quickly and stay around 0.2% for models with more than 100,000
DOFs at ka = 2, indicating the numerical stability of the used fast multipole
algorithms.
Figure 6.9 shows the CPU time used by the fast multipole BEM code compared with that of a conventional BEM code. The CPU time for the fast multipole BEM code increases almost linearly with the increase of the DOFs, and
the largest BEM model with 1.5 million DOFs was solved within 65 min at ka =
2 (note that this is a system of equations with complex variables, which is
equivalent to a system of about 3 million DOFs in real variables). The conventional BEM, however, can only solve models with up to 10,800 DOFs on
the same PC, and the CPU time used increases almost as a cubic function of
the DOFs. The efficiencies of the fast multipole BEM compared with those of
the conventional BEM are most evident from this example.
6.8.5 An Engine-Block Model
We next study the radiation of acoustic waves from an engine block. The
engine block has an overall dimension of 0.31 m × 0.27 m × 0.36 m in the
10,000,000
168
Acoustic Wave Problems
100,000
Conventional BEM (ka = 2)
Fast BEM (ka = 2)
Fast BEM (ka = 20)
CPU Time (s)
10,000
1000
100
10
1
100
1000
10,000
100,000
1,000,000
10,000,000
DOFs
Figure 6.9. Total CPU time used to solve the pulsating-sphere model.
x, y, and z directions, respectively, and is discretized with 51,766 triangular
elements, as shown in Figure 6.10. Velocity BCs are applied on the surfaces
of the engine block, and the sound-pressure field on a semispherical field
surface is sought at wavenumber ka = 3.6. Figure 6.11 shows the computed
y
z
x
Figure 6.10. An engine-block model discretized with 51,766 boundary elements.
6.8 Numerical Examples
Figure 6.11. Computed sound-pressure
distribution for the engine-block model.
sound-pressure distribution on this field surface. The model was solved in
R
R
9 min on a Dell
PC with Intel
Core2 Duo CPU and with the tolerance set
−4
at 10 .
6.8.6 A Submarine Model
A submarine model is studied next to predict the noise that is due to the vibration of the propeller. This is an interesting example of using the fast multipole
BEM in solving large-scale underwater acoustic problems, which has been a
challenging task for other domain-based methods. The Skipjack submarine is
modeled, which has a length of 76.8 m. A total of 250,220 elements are used,
with a typical element size equal to 0.14 m. Velocity BCs are applied to the
propeller, and the model is solved at a nondimensional wavenumber ka = 38.4
(frequency f = 123.3 Hz). The computed sound-pressure level on the surface
of the submarine is shown in Figure 6.12, and the radiated wave on a cylindrical field surface is shown in Figure 6.13. The model was solved in 54 min on
R
R
a Dell
PC with Intel
Core2 Duo CPU and with the tolerance set at 10−4 .
Scattering problems, in which the submarine is motionless and incident waves
impinge on the model from different directions, were also solved with the same
BEM model.
169
170
Acoustic Wave Problems
y
x
z
Figure 6.12. Computed sound-pressure level on the submarine model with 250,220
elements.
6.8.7 An Airbus A320 Model
In this example, prediction of the jet noise from an airplane is attempted by
using the fast multipole BEM code. A model of Airbus A320 is used, which
has a length of 123 ft. There are 541,152 elements for this model with a typical
element size equal to 0.2 ft. The plot of the BEM mesh on one of the engines is
shown in Figure 6.14. The acoustic pressure on the surface of the airplane that
is due to the vibrations of the two jet engines was computed at ka = 12.3 and is
R
shown in Figure 6.15. The model was solved in 131 min on a Dell
PC with a
−4
tolerance of 10 . Prediction of jet noise is still a very challenging problem for
the fast multipole BEM because of the nature of the high frequencies involved.
Large BEM models with considerably more elements need to be used, and the
models need to be solved on PC clusters or supercomputers.
6.8.8 A Human-Head Model
A human-head model is now presented for acoustic analysis. Such models
using the BEM can be used to study the impact of noise on human hearing and
to help design better audio devices. The head model is discretized using 87,340
6.8 Numerical Examples
171
y
x
z
Figure 6.13. Radiated sound pressure on the field surface.
elements, and the sound pressure on the surface of the model for a plane incident wave coming in the –x direction and at 11 kHz (ka = 50) is computed,
R
as shown in Figure 6.16. The model was solved in 10 min on a Dell
PC with
a tolerance of 10−4 . It is interesting to note that both ears on the illuminated
Figure 6.14. Plot of BEM mesh near one
engine of the Airbus A320 model (with
a total of 541,152 elements).
172
Acoustic Wave Problems
Figure 6.15. Sound-pressure distribution on the Airbus A320 model.
side (left ear) and the shadow side (right ear) register higher values of sound
pressure, in addition to the area between the two lips, indicating the unique
acoustic effects of the geometries near these areas. The same phenomenon is
observed in models at other frequencies or with the sound from other directions.
6.8.9 Analysis of Sound Barriers – A Half-Space Acoustic
Wave Problem
Many of the acoustic problems are present in a half-space, such as airport or
other traffic noise control problems. With the BEM, these half-space acoustic
wave problems also can be modeled readily. Formulations of the adaptive fast
multipole BEM for 3D half-space acoustic wave problems can be found in
Ref. [142].
z
y
x
Figure 6.16. BEM mesh and sound-pressure plots for a human-head model (87,340
elements).
6.8 Numerical Examples
173
z
y
x
20
z
10
0
0
0
50
100
x
y
50
−50
150
50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94
dB:
Figure 6.17. Noise level (in decibels) on buildings without a barrier.
Figures 6.17 and 6.18 show the computed sound-pressure levels (in decibels) for the BEM models of three buildings near a highway without and with a
sound barrier, respectively, using the fast multipole BEM for half-space acoustic wave problems [142]. The dimensions (length × width × height) of the
three buildings are 30 × 10 × 20, 20 × 12 × 15, and 9.5 × 9 × 8 (in meters),
respectively. The barrier has a height of 6 m and a length of 255.94 m. One
point source load with a frequency of 20 Hz is located 13 m away from the
middle point of the barrier and 1 m above the ground. The BEM model contains 56,465 triangular elements. In the case with no sound barrier, the surface
z
y
x
20
z
10
0
0
0
50
100
x
dB:
45
50
55
60
65
70 75
80
85
150
90
95 100 105
Figure 6.18. Noise level (in decibels) on buildings with a barrier.
y
50
−50
174
Acoustic Wave Problems
of the largest building closest to the source has the maximum sound level of
94 dB, as shown in Figure 6.17. After the barrier is inserted into the model,
the maximum sound level on the surfaces of the buildings is reduced to 90 dB,
as shown in Figure 6.18. The effect of the sound barriers in reducing the noise
level is evident from this BEM simulation.
All of the preceding examples clearly demonstrate the accuracy, efficiency, and huge potentials of the fast multipole BEM for solving large-scale
acoustic wave problems in both two and three dimensions. To extend the
applications, the fast multipole BEM codes can be combined with other methods to solve more complicated problems, such as acoustic waves interacting
with elastic structures [143, 144] and multidomain acoustic wave problems
[145]. Conversely, the fast multipole BEM also has been applied successfully in solving various large-scale elastic wave or elastodynamic problems,
and extensive research results on this important topic can be found in
Refs. [41, 63].
6.9 Summary
The basic governing equations for acoustic wave problems are reviewed in
this chapter. The main equation to be solved in acoustic wave problems is
the Helmholtz equation, which reduces to the Laplace equation for potential
problems if the wavenumber is zero. Thus, the acoustic wave problems are
closely related to the potential problems we studied in Chapters 2 and 3. The
fundamental solution for the Helmholtz equation is derived for 3D cases using
the solution of a pulsating sphere. BIE formulations are presented with the
emphasis on the Burton–Miller BIE formulation, which can provide unique
solutions for all wavenumbers for exterior acoustic wave problems. Weakly
singular forms of the CBIE and HBIE are introduced by using the static kernels for potential problems and using the integral identities satisfied by these
static kernels. Formulations in the fast multipole BEM for solving Helmholtz
equations in both two and three dimensions are presented. Several numerical
examples are provided to demonstrate the accuracy and efficiency of the fast
multipole BEM for solving large-scale acoustic wave problems in both two and
three dimensions, including half-space problems.
Problems
6.1. Verify that the two functions given in Eq. (6.2) satisfy the 1D wave equation in Eq. (6.1).
6.2. Verify that the fundamental solution G(x, y, ω) given in Eq. (6.18)
for three dimensions satisfies the Sommerfeld radiation condition in
Eq. (6.11).
Problems
6.3. Derive the kernels K and H in Eqs. (6.29) and (6.30) for the 3D HBIE.
∂r
6.4. Prove Eq. (6.36); that is, show that r,n = ∂n(y)
= O(r ) as r → 0.
6.5. Show that all the integrals in Eq. (6.38) are weakly singular; that is, all of
the integrands have O(1/r ) or less singularity in 3D cases.
6.6. Because the constant solution or rigid-body solution approach does not
apply to the Helmholtz equation, discuss how we can determine the diagonal coefficients in the matrix associated with the F kernel for acoustic
wave problems.
6.7. Write a 2D acoustic conventional BEM code using the CBIE and constant
elements, based on the code for 2D potential problems in Appendix B.1.
Test your code on a “pulsating-cylinder” problem.
6.8. Write a 2D acoustic fast multipole BEM code using the CBIE and constant elements, based on the code for 2D potential problems in Appendix
B.2. Test your code on the “pulsating-cylinder” problem and study its
accuracy and efficiency.
175
APPENDIX A
Analytical Integration of the Kernels
A.1 2D Potential Boundary Integral Equations
For 2D potential problems, we have the following four kernels for the CBIE
and HBIE:
1
1
G(x, y) =
log
,
(A.1)
2π
r
F(x, y) =
∂G(x, y)
1
=−
r,k nk (y),
∂n(y)
2πr
(A.2)
K(x, y) =
∂G(x, y)
1
=
r,k nk (x),
∂n(x)
2πr
(A.3)
H(x, y) =
1
∂ 2 G(x, y)
=
[nk (x)nk (y) − 2r,k nk (x)r,l nl (y)] . (A.4)
∂n(x)∂n(y)
2πr 2
The integrations of the four kernels on a line segment S shown in Figure
A.1 (from point 1 to point 2) can be evaluated analytically as follows (note
that on S, r = d/ cos θ, dS = r dθ/ cos θ ):
1
G(x, y)dS =
(A.5)
[−(θ2 − θ1 )d + 2R − T2 log r2 + T1 log r1 ] ,
2π
S
1
F(x, y)dS = − (θ2 − θ1 ),
(A.6)
2π
S
1
r2
K(x, y)dS =
(A.7)
(θ2 − θ1 )nk (y) + log
tk (y) nk (x),
2π
r1
S
1
T1
1
1
T2
H(x, y)dS =
−
(y)
+
d
−
(y)
nk (x),
−
n
t
k
k
2π
r2 2 r1 2
r2 2 r1 2
S
(A.8)
in which 2R(= T2 − T1 ) is the total length of the line element and tk is the
component of the tangential vector t (Figure A.1). These results can be used
to evaluate directly the coefficients of the CBIE and HBIE for 2D potential
177
178
Appendix A: Analytical Integration of the Kernels
2
t
r2
T2
n(y)
y
∆S
r
r1
θ2
2
x
1
T1
θ
θ1
d
n(x)
1
Figure A.1. Analytical integration on an arbitrary line segment.
problems using constant elements. If the source point x is on the element of
integration (at the midpoint), we have:
θ2 − θ1 = π, d = 0, r1 = r2 = R, T1 = −T2 = −R,
and the four integrals have the following values:
R
G(x, y)dS = (1 − log R) ,
π
S
1
F(x, y)dS = − ,
2
S
1
K(x, y)dS = ,
2
S
1
H(x, y)dS = −
.
πR
S
(A.9)
(A.10)
(A.11)
(A.12)
Note that in the preceding results, the second (F) and third (K) integrals are
equal to the CPV integrals plus the jump terms, and the last (H) integral is a
HFP integral.
A.2 2D Elastostatic Boundary Integral Equations
For 2D elasticity, we have the following four kernels for the CBIE and
HBIE:
1
1
1
Ui j (x, y) =
(3 − 4ν)δi j log
+ r,i r, j − δi j ,
(A.13)
8π µ(1 − ν)
r
2
Appendix A: Analytical Integration of the Kernels
179
1
∂r
Ti j (x, y) = −
[(1 − 2ν)δi j + 2r,i r, j ] − (1 − 2ν) (r,i n j − r, j ni ) ,
4π (1 − ν)r ∂n
(A.14)
1
Ki j (x, y) =
[(1 − 2ν)(δi j r,k + δ jk r,i −δik r, j ) + 2r,i r, j r,k ] nk (x),
4π (1 − ν)r
(A.15)
µ
∂r
Hi j (x, y) =
2 [(1 − 2ν)δik r, j + ν(δi j r,k + δ jk r,i ) − 4r,i r, j r,k ]
2π (1 − ν)r 2
∂n
+ 2ν(ni r, j r,k +nk r,i r, j ) − (1 − 4ν)δik n j
+ (1 − 2ν) (2n j r,i r,k +δi j nk + δ jk ni ) nk (x).
(A.16)
To evaluate the integrals of these kernels over the straight-line segment S (a
constant element) shown in Figure A.1, we use the local coordinate system n–t
at y on S. In this local coordinate system, we have:
1
(n−t)
(n−t)
Ui j (x, y)dS =
− Rδi j ,
(3 − 4ν)I0 δi j + Ii j
(A.17)
8π
µ(1
−
ν)
S
(n−t)
S
Ti j
(x, y)dS = −
#
$
1
(n−t)
(n−t)
δ1 j + j δ1i
(1 − 2ν) 0 δi j − i
4π(1 − ν)
(n−t)
+ 2i j
S
S
(A.18)
(n−t)
(x, y)dS = Ci jk nk (x),
(A.19)
(n−t)
(x, y)dS = Di jk nk (x),
(A.20)
Ki j
,
Hi j
where:
(n−t)
+ 211
(n−t)
+ 212
4π(1 − ν)C111 = (1 − 2ν)1
4π(1 − ν)C112 = (1 − 2ν)2
(n−t)
4π(1 − ν)C121 = −(1 − 2ν)2
(n−t)
4π(1 − ν)C122 = (1 − 2ν)1
(n−t)
4π(1 − ν)C222 = (1 − 2ν)2
,
(n−t)
,
(n−t)
+ 212
(n−t)
+ 222
(n−t)
4π (1 − ν)C212 = −(1 − 2ν)1
(n−t)
,
(n−t)
+ 222
(n−t)
+ 2222 ,
C211 = C112 , C221 = C122 ;
,
(A.21)
,
180
Appendix A: Analytical Integration of the Kernels
2π(1 − ν)
D111 = −12 − 2d2 14 ,
µ
2π(1 − ν)
D112 = −d02 + 2d3 04 ,
µ
2π(1 − ν)
D122 = −12 + 2d2 14 ,
µ
(A.22)
2π(1 − ν)
D222 = 3d02 − 2d3 04 ,
µ
D211 = D121 = D112 , D212 = D221 = D122 .
In the preceding expressions:
I0 = −d(θ2 − θ1 ) + 2R − T2 log r2 + T1 log r1 ,
(n−t)
= d(θ2 − θ1 ),
(n−t)
= I21
(n−t)
= T2 − T1 − d(θ2 − θ1 );
I11
I12
I22
(n−t)
(A.23)
= d log(r2 /r1 ),
0 = θ2 − θ1 ,
(n−t)
= θ2 − θ1 ,
(n−t)
= log(r2 /r1 ),
(n−t)
= (θ2 − θ1 )/2 + d12 /2,
(n−t)
= 21
(n−t)
= (θ2 − θ1 )/2 − d12 /2,
(n−t)
= log(r2 /r1 ) + d2 02 /2;
1
2
11
12
22
222
(n−t)
(A.24)
= 22 /2,
02 = 1/r22 − 1/r12 ,
04 = 1/r24 − 1/r14 ,
12 = T2 /r22 − T1 /r12 ,
14 = T2 /r24 − T1 /r14 ,
22 = T22 /r22 − T12 /r12 ;
(A.25)
Appendix A: Analytical Integration of the Kernels
181
in which all the parameters are as defined in Figure A.1. Once the integrals of
the kernels are determined in the local n–t system, they need to be transformed
to the global x–y system.
When the source point x is on the element of integration, we have:
θ2 − θ1 = π, d = 0, r1 = r2 = R, T1 = −T2 = −R,
and the four integrals have the following results:
R
(n−t)
U11 (x, y)dS =
[2(3 − 4ν)(1 − log R) − 1] ,
8π
µ(1
− ν)
S
(n−t)
(n−t)
U12 (x, y)dS =
U21 (x, y)dS = 0,
(A.26)
S
S
(n−t)
S
U22
(n−t)
S
S
S
Ti j
(x, y)dS =
R
[2(3 − 4ν)(1 − log R) + 1] ,
8π µ(1 − ν)
1
(x, y)dS = − δi j ,
2
1
δi j ,
2
(n−t)
(x, y)dS =
(n−t)
(x, y)dS = −
Ki j
Hi j
µ
δi j .
π(1 − ν)R
(A.27)
(A.28)
(A.29)
Similar to the potential case, the second (T) and third (K) integrals are equal
to the CPV integrals plus the jump terms, and the last (H) integral is a HFP
integral.
A.3 2D Stokes Flow Boundary Integral Equations
For 2D Stokes flow problems, we have the following four kernels for the CBIE
and the HBIE:
1
1
1
Ui j (x, y) =
δi j log
+ r,i r, j − δi j ,
(A.30)
4π µ
r
2
Ti j (x, y) = −
1
r,i r, j r,k nk (y),
πr
1
r,i r, j r,k nk (x),
πr
µ
Hi j (x, y) =
[(δi j r,k + δ jk r,i − 8r,i r, j r,k ) r,l nl (y)
πr 2
Ki j (x, y) =
+ ni r, j r,k + nk r,i r, j + δik n j ] nk (x).
(A.31)
(A.32)
(A.33)
The integrals of these kernels over the straight-line segment S shown in
Figure A.1 can be obtained from the results for 2D elasticity problems by
182
Appendix A: Analytical Integration of the Kernels
setting Poisson’s ratio ν = 12 . In the local coordinate system, we obtain (see
results in the previous section):
(n−t)
S
Ui j
S
S
1
(n−t)
− Rδi j ,
I0 δi j + Ii j
4π µ
(A.34)
1 (n−t)
(x, y)dS = − i j ,
π
(A.35)
(n−t)
(x, y)dS = Ci jk nk (x),
(A.36)
(n−t)
(x, y)dS = Di jk nk (x),
(A.37)
(n−t)
S
(x, y)dS =
Ti j
Ki j
Hi j
where:
(n−t)
,
(n−t)
,
(n−t)
,
2πC111 = 211
2πC112 = 212
2πC122 = 222
(A.38)
(n−t)
2πC222 = 2222 ,
C121 = C211 = C112 , C212 = C221 = C122 ,
π
D111 = −12 − 2d2 14 ,
µ
π
D112 = −d02 + 2d3 04 ,
µ
π
D122 = −12 + 2d2 14 ,
µ
(A.39)
π
D222 = 3d02 − 2d3 04 ,
µ
D211 = D121 = D112 ,
D212 = D221 = D122 ,
and all the parameters I, , and are as defined earlier for elasticity kernels in Eqs. (A.23)–(A.25). Once the integrals of the kernels are determined in the local n–t system, they need to be transformed to the global x–y
system.
When the source point x is on the element of integration, we have the
following results for the four integrals:
Appendix A: Analytical Integration of the Kernels
R
[2(1 − log R) − 1] ,
4πµ
S
(n−t)
(n−t)
U12 (x, y)dS =
U21 (x, y)dS = 0,
(n−t)
U11
(x, y)dS =
S
S
U22
(n−t)
S
S
S
(A.40)
S
(n−t)
183
Ti j
(x, y)dS =
R
[2(1 − log R) + 1] ,
4πµ
1
(x, y)dS = − δi j ,
2
1
δi j ,
2
(n−t)
(x, y)dS =
(n−t)
(x, y)dS = −
Ki j
Hi j
2µ
δi j .
πR
(A.41)
(A.42)
(A.43)
Similar to the potential and elasticity cases, the second (T) and third (K) integrals are equal to the CPV integrals plus the jump terms, whereas the last (H)
integral is a HFP integral.
APPENDIX B
Sample Computer Programs
B.1 A Fortran Code of the Conventional Boundary Element Method
for 2D Potential Problems
The following is a list of the source code written in Fortran for the program
discussed in Section 2.11 for 2D potential problems using the conventional
BEM. The direct solver dgesv from LAPACK can be downloaded from the
website www.netlib.org.
c---------------------------------------------------------------------------c Program:
2D_Potential - A boundary element method (BEM) code in Fortran
c
for analyzing general 2D potential problems (governed by
c
Laplace equation) using constant elements.
c
c Developer:
Dr. Yijun Liu at the University of Cincinnati, Cincinnati, OH.
c
c Version:
V.1.20.
c Released:
October 1, 2008.
c
c Copyright(c)2004--2008
By University of Cincinnati.
c
This code is intended for educational use only. No part of
c
the code can be used for any commercial applications/
c
distributions without prior written permission of the
c
original developer.
c
c---------------------------------------------------------------------------implicit real*8(a--h,o--z)
character*80 Prob_Title
allocatable :: a(:,:),u(:),x(:,:),y(:,:),node(:,:),bc(:,:),
&
184
dnorm(:,:),xfield(:,:),f(:),atu(:),itemp(:)
Appendix B: Sample Computer Programs
185
open (5, file=’input.dat’,
status=’old’)
open (6, file=’output.dat’,
status=’unknown’)
open (7, file=’phi_boundary.plt’,
status=’unknown’)
open (8, file=’xy.plt’,
status=’unknown’)
open (9, file=’phi_domain.plt’,
status=’unknown’
call CPU_Time(time0)
c Read in initial data
read(5,1) Prob_Title
read(5,*) n, nfield
1
format(A80)
write(6,1) Prob_Title
write(*,1) Prob_Title
write(6,*) ’ Total number of elements =’, n
write(*,*) ’ Total number of elements =’, n
write(6,*)
write(*,*)
c Allocate the arrays
allocate (a(n,n),u(n),x(2,n),y(2,n),node(2,n),bc(2,n),dnorm(2,n),
&
xfield(2,nfield),f(nfield),atu(n),itemp(n))
c Input and prepare the BEM model
call prep_model(n,x,y,bc,dnorm,node,xfield,nfield)
c Compute the right-hand-side vector b
call bvector(u,x,y,bc,node,dnorm,n)
c Computer the coefficient matrix A
call coefficient(a,n,x,y,bc,node,dnorm)
c Solve the system of equations Ax = b
c Use LAPACK direct solver (double precision, available at www.netlib.org)
write(6,*) ’
LAPACK direct solver is called ... ...’
186
Appendix B: Sample Computer Programs
write(*,*) ’
LAPACK direct solver is called ... ...’
call dgesv(n,1,a,n,itemp,u,n,info)
write(6,*) ’
LAPACK solver info =
’, info
write(*,*) ’
LAPACK solver info =
’, info
c Output the boundary solution
write(6,*)
write(6,*) ’ Boundary Solution:’
do i=1,n
write(6,*) i, u(i)
write(7,*) i, u(i)
enddo
c Evaluate the potential field inside the domain and output the results
call domain_field(nfield,xfield,f,n,x,y,bc,node,dnorm,u)
c Estimate the total CPU time
call CPU_Time(time)
write(*,*)
write(*,*) ’ Total CPU time used =’, time-time0, ’(sec)’
write(6,*)
write(6,*) ’ Total CPU time used =’, time-time0, ’(sec)’
stop
end
c---------------------------------------------------------------------------c Definition of the Variables:
c
c n
= total number of (middle) nodes (elements)
c x(2,n)
= coordinates of the nodes
c y(2,n)
= coordinates of the end points defining the elements
c node(2,n)
= element connectivity
c bc(2,n)
= bc(1,i) contains BC type, bc(2,i) BC value, for
element i
c dnorm(2,n)
= normal of the elements
c a(n,n)
= matrix A
c u(n)
= first stores b vector; then solution vector of Ax = b
c nfield
= total number of the field points inside the domain
c xfield(2,nfield) = coordinates of the field points inside the domain
Appendix B: Sample Computer Programs
c f(nfield)
= values of potential at field points inside the domain
c atu(n)
= temp array for the solver
c itemp(n)
= temp array for the solver
187
c
c---------------------------------------------------------------------------subroutine prep_model(n,x,y,bc,dnorm,node,xfield,nfield)
implicit real*8(a--h,o--z)
dimension x(2,*),y(2,*),bc(2,*),xfield(2,*),dnorm(2,*),node(2,*)
c Input the mesh data
read(5,*)
do i=1,n
read(5,*) itemp, y(1,i), y(2,i)
enddo
read(5,*)
do i=1,n
read(5,*) itemp, node(1,i), node(2,i), bc(1,i), bc(2,i)
enddo
c Input the field points inside the domain
if (nfield .gt. 0) then
read(5,*)
do i=1,nfield
read(5,*) itemp, xfield(1,i), xfield(2,i)
enddo
endif
c Compute mid-nodes and normals of the elements
do i=1,n
x(1,i) = (y(1,node(1,i)) + y(1,node(2,i)))*0.5d0
x(2,i) = (y(2,node(1,i)) + y(2,node(2,i)))*0.5d0
h1 =
y(2,node(2,i)) − y(2,node(1,i))
h2 = −y(1,node(2,i)) + y(1,node(1,i))
el = sqrt(h1**2 + h2**2)
dnorm(1,i) = h1/el
dnorm(2,i) = h2/el
enddo
188
Appendix B: Sample Computer Programs
c Output nodal coordinates for plotting/checking
do i = 1,n
write(8,*) x(1,i), x(2,i)
enddo
return
end
c---------------------------------------------------------------------------subroutine bvector(u,x,y,bc,node,dnorm,n)
implicit real*8(a--h,o--z)
dimension u(*),x(2,*),y(2,*),bc(2,*),node(2,*),dnorm(2,*)
data pi/3.141592653589793D0/
pi2 = pi*2
do i=1,n
u(i) = 0.d0
enddo
do j=1,n
! Loop on field points (Column)
= sqrt((y(1,node(2,j)) − y(1,node(1,j)))**2 +
al
(y(2,node(2,j)) − y(2,node(1,j)))**2)
do i=1,n
!
! Loop on source points (Row)
c Compute parameters used in the formulas for the two intergals
x11 = y(1,node(1,j)) − x(1,i)
x21 = y(2,node(1,j)) − x(2,i)
x12 = y(1,node(2,j)) − x(1,i)
x22 = y(2,node(2,j)) − x(2,i)
r1 =
sqrt(x11**2 + x21**2)
r2 =
sqrt(x12**2 + x22**2)
d
=
x11*dnorm(1,j) + x21*dnorm(2,j)
Element length
Appendix B: Sample Computer Programs
189
t1 = −x11*dnorm(2,j) + x21*dnorm(1,j)
t2 = −x12*dnorm(2,j) + x22*dnorm(1,j)
ds = abs(d)
theta1 = datan2(t1,ds)
theta2 = datan2(t2,ds)
dtheta = theta2 − theta1
aa = (−dtheta*ds + al + t1*log(r1) − t2*log(r2))/pi2
if(d .lt. 0.d0) dtheta = −dtheta
bb = −dtheta/pi2
if(i .eq. j) bb = 0.5
if(bc(1,j).eq.1.) u(i) = u(i) − bb*bc(2,j)
! Potential is given
if(bc(1,j).eq.2.) u(i) = u(i) + aa*bc(2,j)
! Derivative is given
enddo
enddo
return
end
c---------------------------------------------------------------------------subroutine coefficient(a,n,x,y,bc,node,dnorm)
implicit real*8(a--h,o--z)
dimension a(n,n),x(2,*),y(2,*),bc(2,*),node(2,*),dnorm(2,*)
data pi/3.141592653589793D0/
pi2 = pi*2
do j=1,n
do i=1,n
a(i,j) = 0.d0
enddo
enddo
do j=1,n
al
! Loop on field points (Column)
= sqrt((y(1,node(2,j)) − y(1,node(1,j)))**2 +
(y(2,node(2,j)) − y(2,node(1,j)))**2)
! Element length
190
Appendix B: Sample Computer Programs
do i=1,n
! Loop on source points (Row)
x11 = y(1,node(1,j)) − x(1,i)
x21 = y(2,node(1,j)) − x(2,i)
x12 = y(1,node(2,j)) − x(1,i)
x22 = y(2,node(2,j)) − x(2,i)
r1 =
sqrt(x11**2 + x21**2)
r2 =
sqrt(x12**2 + x22**2)
d
=
x11*dnorm(1,j) + x21*dnorm(2,j)
t1 = −x11*dnorm(2,j) + x21*dnorm(1,j)
t2 = −x12*dnorm(2,j) + x22*dnorm(1,j)
ds = abs(d)
theta1 = datan2(t1,ds)
theta2 = datan2(t2,ds)
dtheta = theta2 − theta1
aa = (−dtheta*ds + al + t1*log(r1) − t2*log(r2))/pi2
if(d .lt. 0.d0) dtheta = −dtheta
bb = −dtheta/pi2
if(i.ne.j)
then
if(bc(1,j).eq.1.) a(i,j) = a(i,j) − aa
if(bc(1,j).eq.2.) a(i,j) = a(i,j) + bb
endif
if(i.eq.j)
then
if(bc(1,j).eq.1.) a(i,j) = a(i,j) − aa
if(bc(1,j).eq.2.) a(i,j) = a(i,j) + 0.5d0
endif
enddo
enddo
return
end
c---------------------------------------------------------------------------subroutine domain_field(nfield,xfield,f,n,x,y,bc,node,dnorm,u)
implicit real*8(a--h,o--z)
Appendix B: Sample Computer Programs
191
dimension xfield(2,*), f(*), x(2,*),y(2,*),bc(2,*),node(2,*),
&
dnorm(2,*),u(*)
data
pi/3.141592653589793D0/
pi2 = pi*2.d0
do i=1,nfield
f(i) = 0.d0
enddo
do j=1,n
! Loop over all elements
if(bc(1,j).eq.1) then
f0
= bc(2,j)
df0 = u(j)
else if(bc(1,j).eq.2) then
f0
= u(j)
df0 = bc(2,j)
endif
al
= sqrt((y(1,node(2,j)) − y(1,node(1,j)))**2 +
(y(2,node(2,j)) − y(2,node(1,j)))**2)
do i=1,nfield
! Element length
! Loop over all field points inside the domain
x11 = y(1,node(1,j)) − xfield(1,i)
x21 = y(2,node(1,j)) − xfield(2,i)
x12 = y(1,node(2,j)) − xfield(1,i)
x22 = y(2,node(2,j)) − xfield(2,i)
r1 =
sqrt(x11**2 + x21**2)
r2 =
sqrt(x12**2 + x22**2)
d
=
x11*dnorm(1,j) + x21*dnorm(2,j)
t1 = −x11*dnorm(2,j) + x21*dnorm(1,j)
t2 = −x12*dnorm(2,j) + x22*dnorm(1,j)
ds = abs(d)
theta1 = datan2(t1,ds)
theta2 = datan2(t2,ds)
dtheta = theta2 − theta1
aa = (−dtheta*ds + al + t1*log(r1) − t2*log(r2))/pi2
192
Appendix B: Sample Computer Programs
if(d .lt. 0.d0) dtheta = −dtheta
bb = −dtheta/pi2
f(i) = f(i) + aa*df0 − bb*f0
enddo
enddo
c Output results
do i=1,nfield
write(9,20) xfield(1,i), f(i)
enddo
20
format(1x, 4E18.8)
return
end
c----------------------------------------------------------------------------
B.2 A Fortran Code of the Fast Multipole Boundary Element
Method for 2D Potential Problems
The following is a list of the source code written in Fortran for the program
discussed in Section 3.3 for 2D potential problems using the fast multipole
BEM. The GMRES iterative solver dgmres from the SLATEC package can
be downloaded from the website www.netlib.org.
c---------------------------------------------------------------------------c Program:
2D_Potential_FMM - A fast multipole boundary element
c
Method (BEM) code for analyzing large-scale, general 2D
c
potential problems (governed by Laplace equation)
c
using constant elements.
c
c Developers: Dr. Naoshi Nishimura at Kyoto University, Japan;
c
Dr. Yijun Liu at the University of Cincinnati, Cincinnati, OH.
c
c Version:
V.1.20.
c Released:
October 1, 2008.
c
c Copyright(c)2004-2008 By Kyoto University and University of Cincinnati.
Appendix B: Sample Computer Programs
193
c
This code is intended for educational use only. No part of
c
the code can be used for any commercial applications/
c
distributions without prior written permissions of the
c
original developers.
c
c---------------------------------------------------------------------------implicit real*8(a--h,o--z)
integer, allocatable
:: ia(:)
complex*16, allocatable :: am(:)
character*80 Prob_Title
call CPU_Time(time0)
open (4, file=’input.fmm’,
status=’old’)
open (5, file=’input.dat’,
status=’old’)
open (3, file=’output.dat’,
status=’unknown’)
open (7, file=’phi_boundary.plt’, status=’unknown’)
open (8, file=’xy.plt’,
status=’unknown’)
open (9, file=’phi_domain.plt’,
status=’unknown’)
c Input the parameters
read(4,*)
maxl, levmx, nexp, ntylr, tolerance
read(4,*)
maxia, ncellmx, nleafmx, mxl, nwksz
read(5,’(a80)’)
Prob_Title
read(5,*)
n, nfield
write(3,’(a80)’) Prob_Title
write(*,’(a80)’) Prob_Title
c Estimate the maximum numbers of the cells and leaves,
c and size of the preconditioning matrix, etc.
if(ncellmx.le.0) ncellmx = max(4*n/maxl,100)
if(nleafmx.le.0) nleafmx = max(ncellmx/2,100)
if(nwksz.le.0)
nwksz
= maxl*maxl*nleafmx
ligw
= 20
lrgw
= 1+n*(mxl+6)+mxl*(mxl+3)
iwksz = n+3*nleafmx+1
allocate (ia(maxia))
194
Appendix B: Sample Computer Programs
c Load the addresses (pointers) associated with the locations of the
c variables to be stored in the large array "am"
call lpointer(lp, ln, maxia, ia, n, nexp, ntylr, ncellmx,
&
levmx, ligw, lrgw, nwksz, iwksz, nfield,
&
l_n,
l_x,
l_y,
l_node,
&
l_bc,
l_a,
l_b,
l_xmax,
&
l_xmin,
l_ymax,
l_ymin,
l_ielem, l_itree,
&
l_level,
l_loct,
l_numt,
l_ifath, l_lowlev,
&
l_maxl,
l_levmx,
l_nexp,
l_ntylr, l_tolerance,
&
l_ncellmx, l_nleafmx, l_mxl,
l_u,
l_ax,
&
l_sb,
l_lrgw,
l_igwk,
&
l_rgwk,
l_nwksz,
l_iwksz, l_rwork, l_iwork,
&
l_xfield,
l_nfield,
l_f)
l_sx,
l_ligw,
l_dnorm,
c Estimate the memory usage
maxa = lp
write(3,100) maxa*16/1.D6
write(*,100) maxa*16/1.D6
100
format(’
Memory size of the large block am
c Allocate the large block ’am’
allocate (am(maxa))
c Assign the parameters to the array am()
call assigni(n,
am(l_n
))
call assigni(maxl,
am(l_maxl
))
call assigni(levmx,
am(l_levmx ))
call assigni(nexp,
am(l_nexp
call assigni(ntylr,
am(l_ntylr ))
))
call assignd(tolerance, am(l_tolerance))
call assigni(ncellmx,
am(l_ncellmx))
call assigni(nleafmx,
am(l_nleafmx))
call assigni(mxl,
am(l_mxl
))
call assigni(ligw,
am(l_ligw
))
call assigni(lrgw,
am(l_lrgw
))
call assigni(nwksz,
am(l_nwksz ))
call assigni(iwksz,
am(l_iwksz ))
call assigni(nfield,
am(l_nfield))
=’, f12.1,’ Mb’/)
Appendix B: Sample Computer Programs
195
c Call the FMM BEM main program
maxia,
am,
ia,
&
call fmmmain(maxa,
am(l_n),
am(l_x),
am(l_y),
am(l_node),
&
am(l_dnorm),
am(l_bc),
am(l_a),
am(l_b),
&
am(l_xmax),
am(l_xmin),
am(l_ymax),
am(l_ymin),
&
am(l_ielem),
am(l_itree),
am(l_level),
am(l_loct),
&
am(l_numt),
am(l_ifath),
am(l_lowlev), am(l_maxl),
&
am(l_levmx),
am(l_nexp),
am(l_ntylr),
&
am(l_ncellmx), am(l_nleafmx), am(l_mxl),
&
am(l_ax),
am(l_nfield),
am(l_xfield), am(l_f),
&
am(l_sb),
am(l_sx),
am(l_igwk),
am(l_rgwk),
&
am(l_ligw),
am(l_lrgw),
am(l_nwksz),
am(l_iwksz),
&
am(l_rwork),
am(l_iwork))
am(l_tolerance),
am(l_u),
c Estimate the total CPU time
call CPU_Time(time)
write(3,*)
write(*,*)
write(3,*) ’ Total CPU time used =’, time-time0, ’(sec)’
write(*,*) ’ Total CPU time used =’, time-time0, ’(sec)’
stop
end
c---------------------------------------------------------------------------c Definition of Variables:
c
c maxa
= maximum size of the array am
c maxia
= maximum number of variables allowed
c am
= a large array storing the variables for the SLATEC GMRES solver
c ia
= an array storing the locations of the variables in the array am
c
c n
= number of elements (= number of nodes)
c x
= coordinates of the nodes
c y
= coordinates of the end points of the elements
c node
= element connectivity
c dnorm
= normal at each node
c bc
= BC type and value
c
c a
= multipole expansion moments
196
Appendix B: Sample Computer Programs
= local expansion coefficients
c b
c xmax,xmin = maximum and minimum x coordinate
c ymax,ymin = maximum and minimum y coordinate
c ielem
c
= ielem(i) gives the original element number for i-th element in
the quad-tree structure
c itree
c
= itree(c) gives the cell location of c-th cell within each
tree level
c loct
c
= elements included in the c-th cell are listed starting at
the loct(c)-th place in the array ielem
c numt
= numt(c) gives the number of elements included in the c-th cell
c ifath
= ifath(c) gives the number of the parent cell of the c-th cell
c level
= level l cells start at the level(l)-th cell in the tree
c lowlev
= number of the tree levels
c
c maxl
= maximum number of elements allowed in a leaf
c levmx
= maximum number of levels allowed in the tree structure
c nexp
= number of terms in multipole expansion
c ntylr
= number of terms in local expansion
c tolerance = GMRES solution convergence tolerance
c ncellmx
= maximum number of cells allowed in the tree
c nleafmx
= maximum number of leaves allowed in the tree
c mxl
= maximum dimension of Krylov subspace (used in GMRES)
c
c u
= first stores b vector; then solution vector of system Ax = b
c ax
= resulting vector of multiplication Ax
c nfield
= number of the field points inside the domain
c xfield
= coordinates of the field points inside the domain
c f
= values of the potential at the field points inside the domain
c
c The following variables and arrays are used in the SLATEC GMRES solver:
c
sb,sx,igwk,rgwk,ligw,lrgw,nwksz,iwksz,rwork,iwork
c
c---------------------------------------------------------------------------subroutine lpointer(lp, ln, maxia, ia, n, nexp, ntylr, ncellmx,
&
levmx, ligw, lrgw, nwksz, iwksz, nfield,
&
l_n,
l_x,
l_y,
l_node,
&
l_bc,
l_a,
l_b,
l_xmax,
&
l_xmin,
l_ymax,
l_ymin,
l_ielem, l_itree,
&
l_level,
l_loct,
l_numt,
l_ifath, l_lowlev,
&
l_maxl,
l_levmx,
l_nexp,
l_ntylr, l_tolerance,
&
l_ncellmx, l_nleafmx, l_mxl,
l_u,
l_ax,
&
l_sb,
l_lrgw,
l_igwk,
l_sx,
l_ligw,
l_dnorm,
Appendix B: Sample Computer Programs
197
&
l_rgwk,
l_nwksz,
l_iwksz, l_rwork, l_iwork,
&
l_xfield,
l_nfield,
l_f)
dimension ia(maxia)
lp
= 1
l_n
= l_address( 1,maxia,ia,lp,4,1)
l_x
= l_address( 2,maxia,ia,lp,8,n*2)
l_y
= l_address( 3,maxia,ia,lp,8,n*2)
l_node
= l_address( 4,maxia,ia,lp,4,n*2)
l_dnorm
= l_address( 5,maxia,ia,lp,8,n*2)
l_bc
= l_address( 6,maxia,ia,lp,8,n*2)
l_a
= l_address( 7,maxia,ia,lp,16,(nexp+1)*ncellmx)
l_b
= l_address( 8,maxia,ia,lp,16,(ntylr+1)*ncellmx)
l_xmax
= l_address( 9,maxia,ia,lp,8,1)
l_xmin
= l_address(10,maxia,ia,lp,8,1)
l_ymax
= l_address(11,maxia,ia,lp,8,1)
l_ymin
= l_address(12,maxia,ia,lp,8,1)
l_ielem
= l_address(13,maxia,ia,lp,4,n)
l_itree
= l_address(14,maxia,ia,lp,4,ncellmx)
l_level
= l_address(15,maxia,ia,lp,4,levmx+1)
l_loct
= l_address(16,maxia,ia,lp,4,ncellmx)
l_numt
= l_address(17,maxia,ia,lp,4,ncellmx)
l_ifath
= l_address(18,maxia,ia,lp,4,ncellmx)
l_lowlev
= l_address(19,maxia,ia,lp,4,1)
l_maxl
= l_address(20,maxia,ia,lp,4,1)
l_levmx
= l_address(21,maxia,ia,lp,4,1)
l_nexp
= l_address(22,maxia,ia,lp,4,1)
l_ntylr
= l_address(23,maxia,ia,lp,4,1)
l_tolerance = l_address(24,maxia,ia,lp,8,1)
l_ncellmx
= l_address(25,maxia,ia,lp,4,1)
l_nleafmx
= l_address(26,maxia,ia,lp,4,1)
l_mxl
= l_address(27,maxia,ia,lp,4,1)
l_u
= l_address(28,maxia,ia,lp,8,n)
l_ax
= l_address(29,maxia,ia,lp,8,n)
l_sb
= l_address(30,maxia,ia,lp,8,n)
l_sx
= l_address(31,maxia,ia,lp,8,n)
l_ligw
= l_address(32,maxia,ia,lp,4,1)
l_lrgw
= l_address(33,maxia,ia,lp,4,1)
l_igwk
= l_address(34,maxia,ia,lp,4,ligw)
l_rgwk
= l_address(35,maxia,ia,lp,8,lrgw)
198
Appendix B: Sample Computer Programs
l_nwksz
= l_address(36,maxia,ia,lp,4,1)
l_iwksz
= l_address(37,maxia,ia,lp,4,1)
l_rwork
= l_address(38,maxia,ia,lp,8,nwksz)
l_iwork
= l_address(39,maxia,ia,lp,4,iwksz)
l_xfield
= l_address(40,maxia,ia,lp,8,nfield*2)
l_nfield
= l_address(41,maxia,ia,lp,4,1)
l_f
= l_address(42,maxia,ia,lp,8,nfield)
return
end
c---------------------------------------------------------------------------integer function l_address(ln,maxia,ia,lp,ibyte,length)
dimension ia(maxia)
l_address = lp
ia(ln)
iu
= lp
= 16
inc = (ibyte*length−1)/iu+1
lp
= lp+inc
if(ln .gt. maxia) then
write(*,*)’!Specified # of variables maxia’,maxia,’is too small’
stop
endif
return
end
c---------------------------------------------------------------------------subroutine assigni(i,ii)
integer i,ii
ii = i
return
end
subroutine assignd(d,dd)
Appendix B: Sample Computer Programs
199
real*8 d,dd
dd = d
return
end
c---------------------------------------------------------------------------subroutine fmmmain(maxa, maxia, am, ia, n,x,y,node,dnorm,bc,
&
a,b, xmax,xmin,ymax,ymin,ielem,itree,level,loct,numt,
&
ifath,lowlev,maxl,levmx,nexp,ntylr,tolerance,ncellmx,
&
nleafmx,mxl,u,ax,nfield,xfield,f,sb,sx,igwk,rgwk,
&
ligw,lrgw,nwksz,iwksz,rwork,iwork)
implicit real*8(a--h,o--z)
complex*16 am(maxa), a,b
dimension
ia(maxia),ja(1),a(0:nexp,ncellmx),b(0:ntylr,ncellmx),
&
x(2,n),y(2,n),node(2,n),dnorm(2,n),bc(2,n),
&
ielem(n),itree(ncellmx),level(0:levmx),loct(ncellmx),
&
numt(ncellmx),ifath(ncellmx), u(n),ax(n),sb(n),sx(n),
&
igwk(ligw),rgwk(lrgw),rwork(nwksz),iwork(iwksz),
&
xfield(2,nfield),f(nfield)
external
matvec, msolve
c Input parameters and prepare the BEM model
call prep_model(n,x,y,node,bc,dnorm,xfield,nfield,maxl,levmx,
&
nexp,ntylr,tolerance,xmin,xmax,ymin,ymax)
c Generate the quad-tree structure for the elements
call tree(n,x,xmax,xmin,ymax,ymin,ielem,itree,level,loct,numt,
&
ifath,lowlev,maxl,levmx,ncellmx,nleafmx,nwksz,iwork)
c Compute the right-hand-side vector b with the FMM
call fmmbvector(n,x,y,node,dnorm,bc,u,ax,a,b,xmax,xmin,ymax,ymin,
&
ielem,itree,level,loct,numt,ifath,
&
nexp,ntylr,ncellmx,lowlev,maxl,rwork,iwork)
c Solve the BEM system of equations Ax=b with the fast multipole BEM
c Prepare parameters for calling the iterative solver GMRES
c (SLATEC GMRES solver is used, which is available at www.netlib.org.
200
Appendix B: Sample Computer Programs
c See the documentation for the SLATEC GMRES solver for more information
c about the following related parameters)
nelt
= 1
isym
= 0
itol
= 0
tol
= tolerance
iunit
= 3
igwk(1) = mxl
igwk(2) = mxl
igwk(3) = 0
igwk(4) = 1
igwk(5) = 10
do i=1,n
ax(i) = 0.d0
enddo
write(*,*) ’Call Equation Solver GMRES ...’
call dgmres(n,u,ax, nelt,ia,ja,am,isym, matvec,msolve,itol,tol,
&
itmax,iter,er,ierr,iunit,sb,sx,rgwk,lrgw,igwk,ligw,
&
rwork,iwork)
write(3,*) ’ Error indicator from GMRES:’, ierr
write(*,*) ’ Error indicator from GMRES:’, ierr
c Output the boundary solution
do i=1,n
u(ielem(i)) = ax(i)
enddo
write(3,*) ’ Fast Multipole BEM Solution:’
do i=1,n
write(3,*) i, u(i)
write(7,*) i, u(i)
enddo
c Evaluate the field inside the domain and output the results
call domain_field(nfield,xfield,f,n,x,y,bc,node,dnorm,u)
return
end
c----------------------------------------------------------------------------
Appendix B: Sample Computer Programs
201
subroutine prep_model(n,x,y,node,bc,dnorm,xfield,nfield,maxl,
&
levmx,nexp,ntylr,tolerance,
&
xmin,xmax,ymin,ymax)
implicit real*8(a--h,o--z)
dimension x(2,*),y(2,*),node(2,*),bc(2,*),dnorm(2,*),xfield(2,*)
write(*,2) n, maxl, levmx, nexp, tolerance
write(3,2) n, maxl, levmx, nexp, tolerance
2
format(’
Total number of elements
=’, I12
&
/’
Max. number of elements in a leaf
=’, I12
&
/’
Max. number of tree levels
=’, I12
&
/’
Number of terms used in expansions =’, I12
&
/’
Tolerance for convergence
=’, D12.3)
write(*,*)
write(3,*)
c Input the mesh data
read(5,*)
do i=1,n
read(5,*) itemp, y(1,i), y(2,i)
enddo
read(5,*)
do i=1,n
read(5,*) itemp, node(1,i), node(2,i), bc(1,i), bc(2,i)
enddo
c Input the field points inside the domain
if (nfield .gt. 0)
then
read(5,*)
do i=1,nfield
read(5,*) itemp, xfield(1,i), xfield(2,i)
enddo
endif
c Compute mid-nodes and normals of the elements
202
Appendix B: Sample Computer Programs
do i=1,n
x(1,i) = (y(1,node(1,i)) + y(1,node(2,i)))*0.5
x(2,i) = (y(2,node(1,i)) + y(2,node(2,i)))*0.5
h1 =
y(2,node(2,i)) − y(2,node(1,i))
h2 = -y(1,node(2,i)) + y(1,node(1,i))
el = sqrt(h1**2 + h2**2)
dnorm(1,i) = h1/el
dnorm(2,i) = h2/el
enddo
c Determine the square bounding the problem domain (Largest cell used in FMM)
xmin=x(1,1)
xmax=x(1,1)
ymin=x(2,1)
ymax=x(2,1)
do 10 i=2,n
if(x(1,i).le.xmin) then
xmin=x(1,i)
elseif(x(1,i).ge.xmax) then
xmax=x(1,i)
endif
if(x(2,i).le.ymin) then
ymin=x(2,i)
elseif(x(2,i).ge.ymax) then
ymax=x(2,i)
endif
10
continue
scale = 1.05d0
! Make the square slightly larger
xyd
= max(xmax−xmin,ymax−ymin)/2.d0
xyd
= xyd*scale
cx
= (xmin+xmax)/2.d0
cy
= (ymin+ymax)/2.d0
xmin
= cx−xyd
xmax
= cx+xyd
ymin
= cy−xyd
ymax
= cy+xyd
c Output nodal coordinates for plotting
do i = 1,n
Appendix B: Sample Computer Programs
203
write(8,*) x(1,i), x(2,i)
enddo
return
end
c---------------------------------------------------------------------------subroutine tree(n,x,xmax,xmin,ymax,ymin,ielem,itree,level,loct,
&
numt,ifath,lowlev,maxl,levmx,ncellmx,nleafmx,
&
nwksz,iwork)
implicit real*8(a--h,o--z)
complex*16 a,b
dimension x(2,*),ielem(*),itree(*),level(0:*),loct(*),numt(*),
&
ifath(*), iwork(*), nwk(4)
do i=1,n
ielem(i) = i
! Store the original element numbers in ielem
enddo
c For the level 0 cell (largest cell)
itree(1) = 0
level(0) = 1
level(1) = 2
loct(1)
= 1
ifath(1) = 1
numt(1)
= n
ndivx
= 1
lowlev
= 1
nleaf
= 0
nswa
= 0
c For cells on level 1 to the lowest level (leaves)
do 10 lev=1,levmx
levp
= lev−1
levn
= lev+1
level(levn) = level(lev)
if(level(lev).eq.level(levp)) goto 900
ndivxp = ndivx
ndivx
= 2*ndivxp
204
Appendix B: Sample Computer Programs
dxp
= (xmax−xmin)/ndivxp
dyp
= (ymax−ymin)/ndivxp
! Parent cell size
do 11 inp=level(levp),level(lev)−1
itrp = itree(inp)
if(numt(inp).gt.maxl .or.
&
(lev.le.2 .and. numt(inp).ne.0) ) then
itrpx = mod(itrp,ndivxp)
itrpy = itrp/ndivxp
xsep
= xmin+(itrpx + 0.5d0)*dxp
ysep
= ymin+(itrpy + 0.5d0)*dyp
call bisec(x,ielem(loct(inp)),numt(inp),ysep,nsepy, 2)
call bisec(x,ielem(loct(inp)),nsepy−1,
xsep,nsepx1,1)
call bisec(x,ielem(loct(inp)+nsepy−1),
&
numt(inp)-nsepy+1,xsep,nsepx2,1)
nwk(1) = nsepx1−1
nwk(2) = nsepy−nsepx1
nwk(3) = nsepx2−1
nwk(4) = numt(inp)−nsepy−nsepx2+2
locc
= loct(inp)
do 12 icldy=0,1
do 12 icldx=0,1
icld = icldy*2+icldx+1
if(nwk(icld).gt.0) then
nrel = level(levn)
if(nrel.gt.ncellmx) then
write(*,*) " ncellmx error"
stop
endif
itree(nrel) = ((itrpy*2+icldy)*ndivxp + itrpx)*2
+icldx
&
loct(nrel)
= locc
numt(nrel)
= nwk(icld)
ifath(nrel) = inp
lowlev=lev
c Leaves:
if((lev.ne.1) .and.
&
(numt(nrel).le.maxl .or. lev.eq.levmx)) then
nleaf = nleaf+1
if(nleaf.gt.nleafmx)
then
Appendix B: Sample Computer Programs
205
write(*,*) " nleafmx error"
stop
endif
nleaf3
= nleaf*3 − 1
iwork(nleaf3)
= nrel
! Store cell
number (icell)
iwork(nleaf3+1) = nswa + 1
! Location of
pre-cond’er
iwork(nleaf3+2) = 1
! Initial value of switch isw
= nswa + numt(nrel)**2
nswa
if(nswa.gt.nwksz) then
write(*,*) " nwksz error"
stop
endif
endif
level(levn) = nrel + 1
locc
= locc + nwk(icld)
endif
12
continue
endif
11
10
900
continue
continue
iwork(1) = nleaf
! Store number of leaves in iwork(1)
write(3,*) ’ Number of tree levels
=’, lowlev
write(*,*) ’ Number of tree levels
=’, lowlev
write(3,*) ’ Number of leaves
=’, nleaf
write(*,*) ’ Number of leaves
=’, nleaf
write(3,*) ’ Number of cells
=’, nrel
write(*,*) ’ Number of cells
=’, nrel
write(3,*)
write(*,*)
return
end
c---------------------------------------------------------------------------subroutine bisec(x,ielem,n,xsep,nsep,ic)
implicit
real*8(a--h,o--z)
206
Appendix B: Sample Computer Programs
dimension x(2,*),ielem(*)
nsep = 1
if(n.le.0) return
do ifr=1,n
if(x(ic,ielem(ifr)).le.xsep)
then
if(ifr.ne.nsep) then
istore
= ielem(nsep)
ielem(nsep) = ielem(ifr)
ielem(ifr)
= istore
endif
nsep = nsep + 1
endif
enddo
return
end
c---------------------------------------------------------------------------subroutine fmmbvector(n,x,y,node,dnorm,bc,u,ax,a,b,xmax,xmin,
&
ymax,ymin,ielem,itree,level,loct,numt,ifath,
&
nexp,ntylr,ncellmx,lowlev,maxl,rwork,iwork)
implicit real*8(a--h,o--z)
complex*16 a,b
dimension a(0:nexp,ncellmx),b(0:ntylr,ncellmx),
&
x(2,*),y(2,*),node(2,*),dnorm(2,*),bc(2,*),u(*),ax(*),
&
ielem(*),itree(*),level(0:*),loct(*),numt(*),ifath(*),
&
rwork(*),iwork(*)
c Switch the BC type
do i=1,n
if(bc(1,i) .eq. 1.) then
bc(1,i) = 2.d0
else
bc(1,i) = 1.d0
endif
enddo
Appendix B: Sample Computer Programs
207
do i=1,n
u(i)
= bc(2,ielem(i))
ax(i) = 0.d0
enddo
c Apply the FMM to conpute the right-hand side vector b
call upward(u,n,y,node,dnorm,bc,a,xmax,xmin,ymax,ymin,ielem,
&
itree,level,loct,numt,ifath,nexp,ncellmx,lowlev,maxl)
call dwnwrd(u,ax,n,x,y,node,dnorm,bc,a,b,xmax,xmin,ymax,ymin,
&
ielem,itree,level,loct,numt,ifath,nexp,ntylr,ncellmx,
&
lowlev,maxl,rwork,iwork)
c Store b vector in u and switch the BC type back
do i=1,n
u(i) = − ax(i)
if(bc(1,i) .eq. 1.) then
bc(1,i) = 2.d0
else
bc(1,i) = 1.d0
endif
enddo
return
end
c---------------------------------------------------------------------------subroutine matvec(n,u,ax,nelt,ia,ja,am,isym)
implicit
real*8(a--h,o--z)
complex*16 am, a, b
dimension u(*),ax(*),ia(*),ja(*),am(*)
c Retrieve the pointers
l_n
= ia(1)
l_x
= ia(2)
l_y
= ia(3)
l_node
= ia(4)
208
Appendix B: Sample Computer Programs
l_dnorm
= ia(5)
l_bc
= ia(6)
l_a
= ia(7)
l_b
= ia(8)
l_xmax
= ia(9)
l_xmin
= ia(10)
l_ymax
= ia(11)
l_ymin
= ia(12)
l_ielem
= ia(13)
l_itree
= ia(14)
l_level
= ia(15)
l_loct
= ia(16)
l_numt
= ia(17)
l_ifath
= ia(18)
l_lowlev
= ia(19)
l_maxl
= ia(20)
l_levmx
= ia(21)
l_nexp
= ia(22)
l_ntylr
= ia(23)
l_tolerance = ia(24)
l_ncellmx
= ia(25)
l_nleafmx
= ia(26)
l_mxl
= ia(27)
l_u
= ia(28)
l_ax
= ia(29)
l_sb
= ia(30)
l_sx
= ia(31)
l_ligw
= ia(32)
l_lrgw
= ia(33)
l_igwk
= ia(34)
l_rgwk
= ia(35)
l_nwksz
= ia(36)
l_iwksz
= ia(37)
l_rwork
= ia(38)
l_iwork
= ia(39)
c Evaluate matrix-vector multiplication Ax using the fast multipole BEM
am(l_y),
am(l_node),
&
call upward(u,
am(l_dnorm), am(l_bc),
am(l_n),
am(l_a),
am(l_xmax),
&
am(l_xmin),
am(l_ymin),
am(l_ielem),
&
am(l_itree), am(l_level), am(l_loct),
&
am(l_ifath), am(l_nexp),
&
am(l_maxl))
am(l_ymax),
am(l_numt),
am(l_ncellmx), am(l_lowlev),
Appendix B: Sample Computer Programs
call dwnwrd(u,ax,
209
am(l_n),
am(l_x),
am(l_y),
&
am(l_node),
am(l_dnorm),
am(l_bc),
am(l_a),
&
am(l_b),
am(l_xmax),
am(l_xmin),
am(l_ymax),
&
am(l_ymin),
am(l_ielem),
am(l_itree),
am(l_level),
&
am(l_loct),
am(l_numt),
am(l_ifath),
am(l_nexp),
&
am(l_ntylr), am(l_ncellmx), am(l_lowlev), am(l_maxl),
&
am(l_rwork), am(l_iwork))
return
end
c---------------------------------------------------------------------------subroutine msolve(n,r,z,nelt,ia,ja,am,isym,rwork,iwork)
implicit real*8(a--h,o--z)
complex*16 am(*)
dimension
r(*),z(*),ia(*),ja(1),rwork(*),iwork(*)
c Load the pointers
l_loct = ia(16)
l_numt = ia(17)
c Compute the preconditioning matrix
call msolveinv(r,z,rwork,iwork, am(l_loct), am(l_numt))
return
end
c---------------------------------------------------------------------------subroutine msolveinv(r,z,rwork,iwork,loct,numt)
implicit real*8(a--h,o--z)
dimension
r(*),z(*),iwork(*),rwork(*),loct(*),numt(*)
nleaf = iwork(1)
do l = 1,nleaf
l3
= l*3−1
inod = iwork(l3)
210
Appendix B: Sample Computer Programs
indr = iwork(l3+1)
indx = loct(inod)
indi = indx+3*nleaf+1
nr
= numt(inod)
call dcopy(nr,r(indx),1,z(indx),1)
call dluax(rwork(indr),nr,nr,z(indx),iwork(l3+2),
&
iwork(indi),icon)
if(icon.ne.0) then
write(*,*) " dluax error, icon =", icon
stop
endif
iwork(l3+2) = 2
enddo
return
end
c---------------------------------------------------------------------------c
This subroutine solves linear system of equations Ax=b by LU
decomposition.
c
c
a
.... given regular coefficient matrix.
c
k
.... given adjustable dimension for array a.
c
n
.... given order of matrix a.
c
b
.... given constant vector.
c
isw .... given control information:
c
if 1, solve equations entirely.
c
c
c
c
c
if 2, solve equations with last LU-decomposed entries.
ip
.... auxiliary 1 dimensioned array, size is n.
transposition vector which represents
row-exchanging by partial pivoting.
icon .... resultant condition code.
c
c
c
Slave subroutines used (available at www.netlib.org):
dgetrf, dgetrs
c
c---------------------------------------------------------------------------subroutine dluax(a,k,n,b,isw,ip,icon)
implicit real*8 (a--h,o--z)
dimension a(k,n),b(n),ip(n)
data ione/1/
Appendix B: Sample Computer Programs
211
icon = 30000
if(isw.eq.1) go to 1000
if(isw.eq.2) go to 1100
go to 8000
1000
call dgetrf(n,n,a,k,ip,icon)
isw = 2
1100
call dgetrs(’n’,n,ione,a,k,ip,b,n,icon)
8000
continue
return
end
c---------------------------------------------------------------------------subroutine upward(u,n,y,node,dnorm,bc,a,xmax,xmin,ymax,ymin,ielem,
&
itree,level,loct,numt,ifath,nexp,ncellmx,lowlev,maxl)
implicit real*8(a--h,o--z)
complex*16 a,b, z0,zi
dimension a(0:nexp,ncellmx),
&
y(2,*),node(2,*),dnorm(2,*),bc(2,*),u(*),
&
ielem(*),itree(*),level(0:*),loct(*),numt(*),ifath(*)
do i=1,level(lowlev+1)−1
do k=0,nexp
a(k,i) = (0.d0,0.d0)
! Clear multipole moments
enddo
enddo
do 10 lev=lowlev,2,−1
! Loop from leaf to level 2 cells (Upward)
ndivx = 2**lev
dx
= (xmax−xmin)/ndivx
dy
= (ymax−ymin)/ndivx
! Determine cell size
do 20 icell=level(lev),level(lev+1)−1
itr
! Loop for level l cells
= itree(icell)
itrx = mod(itr,ndivx)
itry = itr/ndivx
cx
= xmin+(itrx + 0.5d0)*dx
cy
= ymin+(itry + 0.5d0)*dy
! Position of the cell
! Center of the cell
212
Appendix B: Sample Computer Programs
c Multipole expansion
if(numt(icell).le.maxl .or. lev.eq.lowlev) then
! Compute moment
call moment(a(0,icell),y,node,ielem(loct(icell)),
&
numt(icell),nexp,cx,cy,u(loct(icell)),
&
bc,dnorm)
endif
c M2M translation
if(lev.ne.2) then
! Do M2M translation to form moments
cxp = xmin+(int(itrx/2)*2 + 1)*dx
cyp = ymin+(int(itry/2)*2 + 1)*dy
z0
= cmplx(cx−cxp, cy−cyp)
io
= ifath(icell)
! Center of parent cell
! (z_c − z_c’)
! Cell no. of parent cell
zi = (1.d0,0.d0)
do k=0,nexp
do m=k,nexp
a(m,io) = a(m,io) + zi*a(m−k,icell)
! Use M2M
enddo
zi = zi*z0/(k+1)
enddo
endif
20
10
continue
continue
return
end
c---------------------------------------------------------------------------subroutine moment(a,y,node,ielem,num,nexp,cx,cy,u,bc,dnorm)
implicit real*8(a--h,o--y)
implicit complex*16(z)
complex*16 a(0:*)
dimension
y(2,*),node(2,*),ielem(*),u(*), bc(2,*),dnorm(2,*)
Appendix B: Sample Computer Programs
do i=1,num
213
! Over elements in the leaf
nelm = ielem(i)
! Element number
n1 = node(1,nelm)
! Two ends of the element
n2 = node(2,nelm)
z1 = cmplx(y(1,n1)−cx, y(2,n1)−cy)
z2 = cmplx(y(1,n2)−cx, y(2,n2)−cy)
zwbar = conjg(z2 − z1)
zwbar = zwbar/abs(zwbar)
zp1
= z1*zwbar
zp2
= z2*zwbar
! omega bar
znorm = cmplx(dnorm(1,nelm),dnorm(2,nelm)) ! complex normal n
if(bc(1,nelm) .eq. 1.d0) then
! Assign values to phi and q
phi = 0.D0
q
= u(i)
else if(bc(1,nelm) .eq. 2.d0) then
phi = u(i)
q
= 0.D0
endif
c Compute moments:
a(0) = a(0) − (zp2−zp1)*q
! G kernel
do k=1,nexp
a(k) = a(k) + (zp2-zp1)*znorm*phi
zp1
= zp1*z1/(k+1)
zp2
= zp2*z2/(k+1)
a(k) = a(k) − (zp2-zp1)*q
! F kernel
! G kernel
enddo
enddo
return
end
c---------------------------------------------------------------------------subroutine dwnwrd(u,ax,n,x,y,node,dnorm,bc,a,b,xmax,xmin,
&
ymax,ymin,ielem,itree,level,loct,numt,ifath,
&
nexp,ntylr,ncellmx,lowlev,maxl,rwork,iwork)
implicit real*8(a--h,o--z)
complex*16 a,b, z0,zi,zo,zp
214
Appendix B: Sample Computer Programs
dimension a(0:nexp,ncellmx),b(0:ntylr,ncellmx),x(2,*),y(2,*),
&
node(2,*),dnorm(2,*),bc(2,*),u(*),ax(*),ielem(*),
&
itree(*),level(0:*),loct(*),numt(*),ifath(*),
&
rwork(*),iwork(*)
data pi/3.141592653589793D0/
pi2 = pi*2.d0
do i=1,level(lowlev+1)−1
do k=0,ntylr
b(k,i) = (0.d0,0.d0)
enddo
enddo
do i=1,n
ax(i) = 0.d0
enddo
leaf = 0
indr = 1
indi = 1
do 110 lev=2,lowlev
! Downward from level 2 cells to leaf cells
ndivx = 2**lev
dx
= (xmax−xmin)/ndivx
dy
= (ymax−ymin)/ndivx
do 120 icell=level(lev),level(lev+1)−1 ! Loop for level l cells
itr
= itree(icell)
itrx
= mod(itr,ndivx)
itry
= itr/ndivx
cx
= xmin+(itrx + 0.5d0)*dx
cy
= ymin+(itry + 0.5d0)*dy
! Position of the cell
! Center of the cell
itrxp = itrx/2
itryp = itry/2
c From the parent cell (use L2L)
if(lev.ne.2) then
cxp = xmin+(itrxp*2+1)*dx
cyp = ymin+(itryp*2+1)*dy
z0
= cmplx(cx−cxp, cy−cyp)
io
= ifath(icell)
zi
= (1.d0,0.d0)
do k=0,ntylr
do m=0,ntylr−k
! Center of the parent cell
! Cell no. of the parent cell
Appendix B: Sample Computer Programs
215
b(m,icell) = b(m,icell) + zi*b(k+m,io) ! L2L translation
enddo
zi = zi*z0/(k+1)
enddo
endif
do 130 jcell=level(lev),level(lev+1)−1
jtr
= itree(jcell)
jtrx
= mod(jtr,ndivx)
jtry
= jtr/ndivx
jtrxp = jtrx/2
jtryp = jtry/2
c The parents must be neighbours
if(iabs(itrxp−jtrxp).gt.1 .or. iabs(itryp−jtryp).gt.1)
&
goto 130
c For non-neighbours (cells in interaction list) (use M2L)
if(iabs(itrx−jtrx).gt.1 .or. iabs(itry−jtry).gt.1) then
ccx = xmin + (jtrx + 0.5d0)*dx
ccy = ymin + (jtry + 0.5d0)*dy
z0
! Center of the j cell
= cmplx(cx−ccx, cy−ccy)
b(0,icell) = b(0,icell) − log(z0)*a(0,jcell)
zo = 1.
do m=1,nexp+ntylr
= zo/z0
zo
kmin = max(0,m−nexp)
kmax = min(m,ntylr)
sgn
= (−1.0)**kmin
do k=kmin,kmax
b(k,icell) = b(k,icell) + sgn*zo*a(m−k,jcell) ! M2L
sgn = −sgn
enddo
zo = zo*m
enddo
c Contribution from neighbouring leaves (use direct)
elseif(numt(jcell).le.maxl .or.
&
numt(icell).le.maxl .or. lev.eq.lowlev) then
if(icell.eq.jcell) then
216
Appendix B: Sample Computer Programs
leaf
= leaf+1
leaf3 = leaf*3−1
if(iwork(leaf3).ne.icell) then
write(3,*)
leaf,iwork(1),iwork(leaf3),icell,’check’
write(*,*) " icell error"
stop
endif
indr = iwork(leaf3+1)
indi = iwork(leaf3+2)
endif
call direct(ielem(loct(icell)),ielem(loct(jcell)),
&
node,x,y,numt(icell),numt(jcell),dnorm,
&
ax(loct(icell)),u(loct(jcell)),icell,jcell,
&
rwork(indr),indi,bc)
! Direct integration
endif
130
continue
c Compute Ax if reach a leaf (Evaluate local expansion at each
c collocation point)
if(numt(icell).le.maxl .or. lev.eq.lowlev) then
fact = 1.d0
do itylr=1,ntylr
fact = fact/itylr
b(itylr,icell) = b(itylr,icell)*fact
enddo
do in=1,numt(icell)
inax = loct(icell) + in−1
indx = ielem(inax)
! Element number in the tree
! Original element number
zp
= b(ntylr,icell)
z0
= cmplx(x(1,indx)−cx, x(2,indx)−cy)
do itylr=ntylr−1,0,−1
zp = zp*z0 + b(itylr,icell)
! Local expansion
enddo
zp = zp/pi2
ax(inax) = ax(inax) + dreal(zp) ! Array Ax
enddo
endif
120
continue
110
continue
Appendix B: Sample Computer Programs
217
return
end
c---------------------------------------------------------------------------subroutine direct(inod,jnod,node,x,y,ni,nj,dnorm,ax,u,icell,jcell,
&
amat,isw,bc)
implicit real*8(a--h,o--z)
dimension inod(*),jnod(*),node(2,*),x(2,*),y(2,*),
&
dnorm(2,*),ax(*),u(*),amat(ni,*), bc(2,*)
data
pi/3.141592653589793D0/
pi2 = pi*2.d0
do j = 1, nj
jind = jnod(j)
al = sqrt((y(1,node(1,jind))− y(1,node(2,jind)))**2 +
(y(2,node(1,jind)) − y(2,node(2,jind)))**2) ! Element length
do i = 1, ni
iind = inod(i)
x11 = y(1,node(1,jind)) − x(1,iind)
x21 = y(2,node(1,jind)) − x(2,iind)
x12 = y(1,node(2,jind)) − x(1,iind)
x22 = y(2,node(2,jind)) − x(2,iind)
r1 =
sqrt(x11**2 + x21**2)
r2 =
sqrt(x12**2 + x22**2)
d
=
x11*dnorm(1,jind) + x21*dnorm(2,jind)
t1 = −x11*dnorm(2,jind) + x21*dnorm(1,jind)
t2 = −x12*dnorm(2,jind) + x22*dnorm(1,jind)
ds = abs(d)
dtheta = datan2(ds*al,ds**2+t1*t2)
aa = (−dtheta*ds + al + t1*log(r1) − t2*log(r2))/pi2
if(d .lt. 0.d0) dtheta = −dtheta
218
Appendix B: Sample Computer Programs
bb = −dtheta/pi2
if(iind .eq. jind) bb = 0.5d0
if(bc(1,jind) .eq. 1.) then
ax(i) = ax(i) − aa*u(j)
if(icell.eq.jcell .and. isw.eq.1) then
amat(i,j) = − aa
! Store coefficients in
! first iteration
endif
else if(bc(1,jind) .eq. 2.) then
ax(i) = ax(i) + bb*u(j)
if(icell.eq.jcell .and. isw.eq.1) then
amat(i,j) =
bb
! Store coefficients in
! first iteration
endif
endif
enddo
enddo
return
end
c---------------------------------------------------------------------------subroutine domain_field(nfield,xfield,f,n,x,y,bc,node,dnorm,u)
implicit real*8(a--h,o--z)
dimension xfield(2,*), f(*), x(2,*),y(2,*),bc(2,*),node(2,*),
&
dnorm(2,*),u(*)
data
pi/3.141592653589793D0/
pi2 = pi*2.d0
do i=1,nfield
f(i) = 0.d0
enddo
do j=1,n
! Loop over all elements
if(bc(1,j).eq.1) then
f0
= bc(2,j)
df0 = u(j)
Appendix B: Sample Computer Programs
219
else if(bc(1,j).eq.2) then
= u(j)
f0
df0 = bc(2,j)
endif
= sqrt((y(1,node(2,j)) − y(1,node(1,j)))**2 +
al
(y(2,node(2,j)) − y(2,node(1,j)))**2)
do i=1,nfield
! Element length
! Loop over all field points inside the domain
x11 = y(1,node(1,j)) − xfield(1,i)
x21 = y(2,node(1,j)) − xfield(2,i)
x12 = y(1,node(2,j)) − xfield(1,i)
x22 = y(2,node(2,j)) − xfield(2,i)
r1 =
sqrt(x11**2 + x21**2)
r2 =
sqrt(x12**2 + x22**2)
d
=
x11*dnorm(1,j) + x21*dnorm(2,j)
t1 = −x11*dnorm(2,j) + x21*dnorm(1,j)
t2 = −x12*dnorm(2,j) + x22*dnorm(1,j)
ds = abs(d)
theta1 = datan2(t1,ds)
theta2 = datan2(t2,ds)
dtheta = theta2 − theta1
aa = (−dtheta*ds + al + t1*log(r1) − t2*log(r2))/pi2
if(d .lt. 0.d0) dtheta = −dtheta
bb = −dtheta/pi2
f(i) = f(i) + aa*df0 − bb*f0
enddo
enddo
c Output results
do i=1,nfield
write(9,20) xfield(1,i), f(i)
enddo
20
format(1x, 4E18.8)
return
end
c----------------------------------------------------------------------------
220
Appendix B: Sample Computer Programs
B.3 Sample Input File and Parameter File
The following is a sample input file that can be used to run both the conventional BEM and the fast multipole BEM programs for 2D potential problems
listed in the previous two sections. The model is for a square domain with
dimensions of 1×1 and discretized with 20 constant line elements (five elements on each edge). A zero-potential BC is applied on the left edge and a
potential of 100 is applied on the right edge. The upper and lower edges are
applied with flux-free (q = 0) BCs. There are also 11 field points inside the
domain where the potential will be evaluated after the solution on the boundary is obtained.
c---------------------------------------------------------c A Sample Input File (input.dat):
c------------------------------------------------A Square Plate with Linear Temperature
20
11
!
30-MAR-04
No. of Elements,
No. of Field Points
# Nodes (Node No., x-coordinate, y-coordinate):
1
0
0
2
0.2
0
3
0.4
0
4
0.6
0
5
0.8
0
6
1
0
7
1
0.2
8
1
0.4
9
1
0.6
10
1
0.8
11
1
1
12
0.8
1
13
0.6
1
14
0.4
1
15
0.2
1
16
0
1
17
0
0.8
18
0
0.6
19
0
0.4
20
0
0.2
# Elements and Boundary Conditions (Element No., Local Node 1, Local Node 2,
BC Type, BC Value):
1
1
2
2
0
2
2
3
2
0
Appendix B: Sample Computer Programs
221
3
3
4
2
0
4
4
5
2
0
5
5
6
2
0
6
6
7
1
100
7
7
8
1
100
8
8
9
1
100
9
9
10
1
100
10
10
11
1
100
11
11
12
2
0
12
12
13
2
0
13
13
14
2
0
14
14
15
2
0
15
15
16
2
0
16
16
17
1
0
17
17
18
1
0
18
18
19
1
0
19
19
20
1
0
20
20
1
1
0
# Field Points Inside Domain (Field Point No., x-coordinate, y-coordinate):
1
0.01
0.5
2
0.1
0.5
3
0.2
0.5
4
0.3
0.5
5
0.4
0.5
6
0.5
0.5
7
0.6
0.5
8
0.7
0.5
9
0.8
0.5
10
0.9
0.5
11
0.99
0.5
# End of File
c----------------------------------------------------------
The following is the parameter file used only for the fast multipole BEM
program for 2D potential problems. All the parameters are explained briefly
in the file, which is used for the FMM and the iterative solver GMRES.
In general, the values of these parameters in this file need not be changed
when one is using the fast multipole BEM code, unless one wishes to use
a different tolerance for convergence or number of terms in the multipole
expansions.
222
Appendix B: Sample Computer Programs
c---------------------------------------------------------c A Sample Parameter File (input.fmm, for 2D_Potential_FMM Program only):
c---------------------------------------------------------20
10
15
15
1.0E-8
50 50000 50000
50
90000000
! maxl
levmx
nexp
ntylr
! maxia ncellmx nleafmx mxl
tolerance
nwksz
Definitions of the above parameters:
maxl:
maximum number of elements in a leaf
levmx:
maximum number of tree levels
nexp:
order of the fast multipole expansions (p)
ntylr:
order of the local expansions (= p, in general)
tolerance:
tolerance for convergence used in the iterative solver
maxia:
maximum number of parameters
ncellmx:
maximum number of cells allowed in the tree
nleafmx:
maximum number of leaves allowed in the tree
mxl:
maximum dimension of Krylov subspace used in the iterative solver
nwksz:
size of the space used to store coefficients in preconditioner
(use default in the code, if value = 0)
c----------------------------------------------------------
References
[1] M. A. Jaswon, “Integral equation methods in potential theory. I,” Proc.
R. Soc. London A 275, 23–32 (1963).
[2] G. T. Symm, “Integral equation methods in potential theory. II,” Proc.
R. Soc. London A 275, 33–46 (1963).
[3] M. A. Jaswon and A. R. Ponter, “An integral equation solution of the
torsion problem,” Proc. R. Soc. London A 273, 237–246 (1963).
[4] F. J. Rizzo, “An integral equation approach to boundary value problems
of classical elastostatics,” Q. Appl. Math. 25, 83–95 (1967).
[5] F. J. Rizzo and D. J. Shippy, “A formulation and solution procedure for
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
the general non-homogeneous elastic inclusion problem,” Int. J. Solids
Structures 4, 1161–1179 (1968).
T. A. Cruse and F. J. Rizzo, “A direct formulation and numerical solution of the general transient elastodynamic problem – I,” J. Math. Anal.
Appl. 22, 244–259 (1968).
T. A. Cruse, “A direct formulation and numerical solution of the general
transient elastodynamic problem – II,” J. Math. Anal. Appl. 22, 341–355
(1968).
T. A. Cruse, “Numerical solutions in three dimensional elastostatics,”
Int. J. Solids Structures 5, 1259–1274 (1969).
F. J. Rizzo and D. J. Shippy, “A method for stress determination in plane
anisotropic elastic bodies,” J. Composite Mater. 4, 36–61 (1970).
F. J. Rizzo and D. J. Shippy, “A method of solution for certain problems
of transient heat conduction,” AIAA J. 8, 2004–2009 (1970).
F. J. Rizzo and D. J. Shippy, “An application of the correspondence principle of linear viscoelasticity theory,” SIAM J. Appl. Math. 21, 321–330
(1971).
T. A. Cruse and W. V. Buren, “Three-dimensional elastic stress analysis
of a fracture specimen with an edge crack,” Int. J. Fracture Mech. 7, 1–16
(1971).
T. A. Cruse and J. L. Swedlow, “Formulation of boundary integral equations for three-dimensional elasto-plastic flow,” Int. J. Solids Structures
7, 1673–1683 (1971).
T. A. Cruse, “Application of the boundary-integral equation method
to three-dimensional stress analysis,” Computers Structures 3, 509–527
(1973).
223
224
References
[15] T. A. Cruse, “An improved boundary-integral equation method for
[16]
[17]
[18]
[19]
[20]
[21]
[22]
[23]
[24]
[25]
[26]
[27]
[28]
[29]
[30]
[31]
[32]
[33]
[34]
[35]
three-dimensional elastic stress analysis,” Computers Structures 4, 741–
754 (1974).
T. A. Cruse and F. J. Rizzo, eds., Boundary-Integral Equation Method:
Computational Applications in Applied Mechanics (AMD-ASME, New
York 1975), Vol. 11.
J. C. Lachat and J. O. Watson, “Effective numerical treatment of boundary integral equations: A formulation for three-dimensional elastostatics,” Int. J. Numer. Methods Eng. 10, 991–1005 (1976).
F. J. Rizzo and D. J. Shippy, “An advanced boundary integral equation
method for three-dimensional thermoelasticity,” Int. J. Numer. Methods
Eng. 11, 1753–1768 (1977).
M. Stippes and F. J. Rizzo, “A note on the body force integral of classical
elastostatics,” Z. Angew. Math. Phys. 28, 339–341 (1977).
R. B. Wilson and T. A. Cruse, “Efficient implementation of anisotropic
three-dimensional boundary-integral equation stress analysis,” Int. J.
Numer. Methods Eng. 12, 1383–1397 (1978).
P. K. Banerjee and R. Butterfield, “Boundary element methods in
geomechanics,” in G. Gudehus, ed., Finite Elements in Geomechanics
(Wiley, London, 1976), Chap. 16, pp. 529–570.
P. K. Banerjee et al., eds., Developments in Boundary Element Methods
(Elsevier Applied Science, London, 1979–1991), Vols. I–VII.
C. A. Brebbia, The Boundary Element Method for Engineers (Pentech
Press, London, 1978).
P. K. Banerjee, The Boundary Element Methods in Engineering, 2nd ed.
(McGraw-Hill, New York, 1994).
S. Mukherjee, Boundary Element Methods in Creep and Fracture
(Applied Science Publishers, New York, 1982).
T. A. Cruse, Boundary Element Analysis in Computational Fracture
Mechanics (Kluwer Academic, Dordrecht, The Netherlands, 1988).
C. A. Brebbia and J. Dominguez, Boundary Elements – An Introductory
Course (McGraw-Hill, New York, 1989).
J. H. Kane, Boundary Element Analysis in Engineering Continuum
Mechanics (Prentice-Hall, Englewood Cliffs, NJ, 1994).
M. Bonnet, Boundary Integral Equation Methods for Solids and Fluids
(Wiley, Chichester, UK, 1995).
L. C. Wrobel, The Boundary Element Method – Vol. 1, Applications in
Thermo-Fluids and Acoustics (Wiley, Chichester, UK, 2002).
M. H. Aliabadi, The Boundary Element Method – Vol. 2, Applications in
Solids and Structures (Wiley, Chichester, UK, 2002).
S. Mukherjee and Y. X. Mukherjee, Boundary Methods: Elements, Contours, and Nodes (CRC, Boca Raton, FL, 2005).
V. Rokhlin, “Rapid solution of integral equations of classical potential
theory,” J. Comput. Phys. 60, 187–207 (1985).
L. F. Greengard and V. Rokhlin, “A fast algorithm for particle simulations,” J. Comput. Phys. 73, 325–348 (1987).
L. F. Greengard, The Rapid Evaluation of Potential Fields in Particle Systems (MIT Press, Cambridge, MA, 1988).
References
[36] A. P. Peirce and J. A. L. Napier, “A spectral multipole method for effi-
[37]
[38]
[39]
[40]
[41]
[42]
[43]
[44]
[45]
[46]
[47]
[48]
[49]
[50]
[51]
[52]
cient solution of large-scale boundary element models in elastostatics,”
Int. J. Numer. Methods Eng. 38, 4009–4034 (1995).
J. E. Gomez and H. Power, “A multipole direct and indirect BEM for 2D
cavity flow at low Reynolds number,” Eng. Anal. Boundary Elements 19,
17–31 (1997).
Y. Fu, K. J. Klimkowski, G. J. Rodin, E. Berger, J. C. Browne, J. K.
Singer, R. A. V. D. Geijn, and K. S. Vemaganti, “A fast solution method
for three-dimensional many-particle problems of linear elasticity,” Int. J.
Numer. Methods Eng. 42, 1215–1229 (1998).
N. Nishimura, K. Yoshida, and S. Kobayashi, “A fast multipole boundary
integral equation method for crack problems in 3D,” Eng. Anal. Boundary Elements 23, 97–105 (1999).
A. A. Mammoli and M. S. Ingber, “Stokes flow around cylinders in a
bounded two-dimensional domain using multipole-accelerated boundary
element methods,” Int. J. Numer. Methods Eng. 44, 897–917 (1999).
N. Nishimura, “Fast multipole accelerated boundary integral equation
methods,” Appl. Mech. Rev. 55, 299–324 (2002).
A. H. Zemanian, Distribution Theory and Transform Analysis – An
Introduction to Generalized Functions, with Applications (Dover, New
York, 1987).
Y. C. Fung, A First Course in Continuum Mechanics, 3rd ed. (PrenticeHall, Englewood Cliffs, NJ, 1994).
J. Hadamard, Lectures on Cauchy’s Problem in Linear Partial Differential Equations (Yale University Press, New Haven, CT, 1923).
P. A. Martin and F. J. Rizzo, “Hypersingular integrals: How smooth must
the density be?” Int. J. Numer. Methods Eng. 39, 687–704 (1996).
Y. J. Liu and T. J. Rudolphi, “Some identities for fundamental solutions and their applications to weakly-singular boundary element formulations,” Eng. Anal. Boundary Elements 8, 301–311 (1991).
Y. J. Liu and T. J. Rudolphi, “New identities for fundamental solutions
and their applications to non-singular boundary element formulations,”
Comput. Mech. 24, 286–292 (1999).
Y. J. Liu, “On the simple-solution method and non-singular nature of
the BIE/BEM – A review and some new results,” Eng. Anal. Boundary
Elements 24, 787–793 (2000).
G. Krishnasamy, F. J. Rizzo, and Y. J. Liu, “Boundary integral equations
for thin bodies,” Int. J. Numer. Methods Eng. 37, 107–121 (1994).
Y. J. Liu and F. J. Rizzo, “A weakly-singular form of the hypersingular boundary integral equation applied to 3-D acoustic wave problems,”
Comput. Methods Appl. Mech. Eng. 96, 271–287 (1992).
Y. J. Liu and S. H. Chen, “A new form of the hypersingular boundary integral equation for 3-D acoustics and its implementation with C◦
boundary elements,” Comput. Methods Appl. Mech. Eng. 173, 3–4, 375–
386 (1999).
Y. J. Liu and F. J. Rizzo, “Hypersingular boundary integral equations for
radiation and scattering of elastic waves in three dimensions,” Comput.
Methods Appl. Mech. Eng. 107, 131–144 (1993).
225
226
References
[53] Y. J. Liu, D. M. Zhang, and F. J. Rizzo, “Nearly singular and hypersin-
[54]
[55]
[56]
[57]
[58]
[59]
[60]
[61]
[62]
[63]
[64]
[65]
[66]
[67]
[68]
[69]
gular integrals in the boundary element method,” in: C. A. Brebbia and
J. J. Rencis, eds., Boundary Elements XV (Computational Mechanics
Publications, Worcester, MA, 1993), pp. 453–468.
X. L. Chen and Y. J. Liu, “An advanced 3-D boundary element method
for characterizations of composite materials,” Eng. Anal. Boundary Elements 29, 513–523 (2005).
P. W. Partridge, C. A. Brebbia, and L. C. Wrobel, The Dual Reciprocity Boundary Element Method (Computational Mechanics Publications, Southampton, UK, 1992).
O. D. Kellogg, Foundations of Potential Theory (Dover, New York,
1953).
Y. J. Liu, “Dual BIE approaches for modeling electrostatic MEMS problems with thin beams and accelerated by the fast multipole method,”
Eng. Anal. Boundary Elements 30, 940–948 (2006).
W. H. Hayt and J. A. Buck, Engineering Electromagnetics (McGraw-Hill,
London, 2001).
Y. J. Liu and L. Shen, “A dual BIE approach for large-scale modeling
of 3-D electrostatic problems with the fast multipole boundary element
method,” Int. J. Numer. Methods Eng. 71, 837–855 (2007).
H. Cheng, L. Greengard, and V. Rokhlin, “A fast adaptive multipole
algorithm in three dimensions,” J. Comput. Phys. 155, 468–498 (1999).
L. Shen and Y. J. Liu, “An adaptive fast multipole boundary element
method for three-dimensional potential problems,” Comput. Mech. 39,
681–691 (2007).
Y. J. Liu and N. Nishimura, “The fast multipole boundary element
method for potential problems: A tutorial,” Eng. Anal. Boundary Elements 30, 371–381 (2006).
K. Yoshida, “Applications of fast multipole method to boundary integral
equation method,” Ph.D. dissertation, Department of Global Environment Engineering, Kyoto University (2001).
W. H. Beyer, CRC Standard Mathematical Tables and Formulae, 29th ed.
(CRC, Boca Raton, FL, 1991).
L. Greengard and V. Rokhlin, “A new version of the fast multipole
method for the Laplace equation in three dimensions,” Acta Numerica
6, 229–269 (1997).
K. Yoshida, N. Nishimura, and S. Kobayashi, “Application of new fast
multipole boundary integral equation method to crack problems in 3D,”
Eng. Anal. Boundary Elements 25, 239–247 (2001).
X. L. Chen and H. Zhang, “An integrated imaging and BEM for fast
simulation of freeform objects,” Computer-Aided Design and Applications 5(1–4), 371–380 (2008).
L. F. Greengard, M. C. Kropinski, and A. Mayo, “Integral equation
methods for Stokes flow and isotropic elasticity in the plane,” J. Comput. Phys. 125, 403–414 (1996).
L. F. Greengard and J. Helsing, “On the numerical evaluation of elastostatic fields in locally isotropic two-dimensional composites,” J. Mech.
Phys. Solids 46, 1441–1462 (1998).
References
[70] J. D. Richardson, L. J. Gray, T. Kaplan, and J. A. Napier, “Regularized
[71]
[72]
[73]
[74]
[75]
[76]
[77]
[78]
[79]
[80]
[81]
[82]
[83]
spectral multipole BEM for plane elasticity,” Eng. Anal. Boundary Elements 25, 297–311 (2001).
T. Fukui, “Research on the boundary element method – Development
and applications of fast and accurate computations,” Ph.D. dissertation
(in Japanese), Department of Global Environment Engineering, Kyoto
University (1998).
T. Fukui, T. Mochida, and K. Inoue, “Crack extension analysis in system of growing cracks by fast multipole boundary element method (in
Japanese),” in Proceedings of the Seventh BEM Technology Conference
(JASCOME, Tokyo, 1997), pp. 25–30.
Y. J. Liu, “A new fast multipole boundary element method for solving
large-scale two-dimensional elastostatic problems,” Int. J. Numer. Methods Eng. 65, 863–881 (2005).
Y. J. Liu, “A fast multipole boundary element method for 2-D multidomain elastostatic problems based on a dual BIE formulation,” Comput. Mech. 42, 761–773 (2008).
P. Wang and Z. Yao, “Fast multipole DBEM analysis of fatigue crack
growth,” Comput. Mech. 38, 223–233 (2006).
Y. Yamada and K. Hayami, “A multipole boundary element method
for two dimensional elastostatics,” Report METR 95–07, Department
of Mathematical Engineering and Information Physics, University of
Tokyo (1995).
V. Popov and H. Power, “An O(N) Taylor series multipole boundary
element method for three-dimensional elasticity problems,” Eng. Anal.
Boundary Elements 25, 7–18 (2001).
K. Yoshida, N. Nishimura, and S. Kobayashi, “Application of fast multipole Galerkin boundary integral equation method to crack problems in
3D,” Int. J. Numer. Methods Eng. 50, 525–547 (2001).
Y.-S. Lai and G. J. Rodin, “Fast boundary element method for threedimensional solids containing many cracks,” Eng. Anal. Boundary Elements 27, 845–852 (2003).
Y. J. Liu, N. Nishimura, and Y. Otani, “Large-scale modeling
of carbon-nanotube composites by the boundary element method
based on a rigid-inclusion model,” Comput. Mater. Sci. 34, 173–187
(2005).
Y. J. Liu, N. Nishimura, Y. Otani, T. Takahashi, X. L. Chen, and H.
Munakata, “A fast boundary element method for the analysis of fiberreinforced composites based on a rigid-inclusion model,” J. Appl. Mech.
72, 115–128 (2005).
Y. J. Liu, N. Nishimura, D. Qian, N. Adachi, Y. Otani, and V.
Mokashi, “A boundary element method for the analysis of CNT/polymer
composites with a cohesive interface model based on molecular dynamics,” Eng. Anal. Boundary Elements 32, 299–308 (2008).
V. Sladek and J. Sladek, eds., Singular Integrals in Boundary Element
Methods, Advances in Boundary Element Series, C. A. Brebbia and
M. H. Aliabadi, series eds. (Computational Mechanics Publications,
Boston, 1998).
227
228
References
[84] S. Mukherjee, “Finite parts of singular and hypersingular integrals with
[85]
[86]
[87]
[88]
[89]
[90]
[91]
[92]
[93]
[94]
[95]
[96]
[97]
[98]
[99]
[100]
[101]
irregular boundary source points,” Eng. Anal. Boundary Elements 24,
767–776 (2000).
Y. J. Liu and F. J. Rizzo, “Scattering of elastic waves from thin shapes
in three dimensions using the composite boundary integral equation formulation,” J. Acoust. Soc. Am. 102, 926–932 (1997).
N. I. Muskhelishvili, Some Basic Problems of Mathematical Theory of
Elasticity (Noordhoff, Groningen, The Netherlands, 1958).
I. S. Sokolnikoff, Mathematical Theory of Elasticity, 2nd ed. (McGrawHill, New York, 1956).
S. P. Timoshenko and J. N. Goodier, Theory of Elasticity, 3rd ed.
(McGraw-Hill, New York, 1987).
D. Gross and T. Seelig, Fracture Mechanics with an Introduction to
Micromechanics (Springer, Dordrecht, The Netherlands, 2006).
M. S. Ingber and T. D. Papathanasiou, “A parallel-supercomputing
investigation of the stiffness of aligned, short-fiber-reinforced composites using the boundary element method,” Int. J. Numer. Methods Eng.
40, 3477–3491 (1997).
I. G. Currie, Fundamental Mechanics of Fluids (McGraw-Hill, New
York, 1974).
C. Pozrikidis, Boundary Integral and Singularity Methods for Linearized
Viscous Flow (Cambridge University Press, New York, 1992).
H. Power and L. C. Wrobel, Boundary Integral Methods in Fluid
Mechanics (Computational Mechanics Publications, Southampton, UK,
1995).
J. Ding and W. Ye, “A fast integral approach for drag force calculation due to oscillatory slip stokes flows,” Int. J. Numer. Methods Eng.
60, 1535–1567 (2004).
A. Frangi, “A fast multipole implementation of the qualocation mixedvelocity-traction approach for exterior Stokes flows,” Eng. Anal. Boundary Elements 29, 1039–1046 (2005).
A. Frangi and A. D. Gioia, “Multipole BEM for the evaluation of damping forces on MEMS,” Comput. Mech. 37, 24–31 (2005).
A. Frangi and J. Tausch, “A qualocation enhanced approach for Stokes
flow problems with rigid-body boundary conditions,” Eng. Anal. Boundary Elements 29, 886–893 (2005).
A. Frangi, G. Spinola, and B. Vigna, “On the evaluation of damping in
MEMS in the slip–flow regime,” Int. J. Numer. Methods Eng. 68, 1031–
1051 (2006).
Y. J. Liu, “A new fast multipole boundary element method for solving
2-D Stokes flow problems based on a dual BIE formulation,” Eng. Anal.
Boundary Elements 32, 139–151 (2008).
A. Frangi and G. Novati, “Symmetric BE method in two-dimensional
elasticity: Evaluation of double integrals for curved elements,” Comput.
Mech. 19, 58–68 (1996).
J. J. Perez-Gavilan and M. H. Aliabadi, “Symmetric Galerkin BEM for
multi-connected bodies,” Commun. Numer. Methods Eng. 17, 761–770
(2001).
References
[102] L. Shen and Y. J. Liu, “An adaptive fast multipole boundary ele-
[103]
[104]
[105]
[106]
[107]
[108]
[109]
[110]
[111]
[112]
[113]
[114]
[115]
[116]
[117]
[118]
ment method for three-dimensional acoustic wave problems based
on the Burton–Miller formulation,” Comput. Mech. 40, 461–472
(2007).
C. Pozrikidis, Fluid Dynamics – Theory, Computation and Numerical
Simulation (Kluwer Academic, Boston, 2001).
H. Power, “The interaction of a deformable bubble with a rigid wall
at small Reynolds number: A general approach via integral equations,”
Eng. Anal. Boundary Elements 19, 291–297 (1997).
G. Zhu, A. A. Mammoli, and H. Power, “A 3-D indirect boundary element method for bounded creeping flow of drops,” Eng. Anal. Boundary
Elements 30, 856–868 (2006).
S. Mukherjee, S. Telukunta, and Y. X. Mukherjee, “BEM modeling of
damping forces on MEMS with thin plates,” Eng. Anal. Boundary Elements 29, 1000–1007 (2005).
H. A. Schenck, “Improved integral formulation for acoustic radiation
problems,” J. Acoust. Soc. Am. 44, 41–58 (1968).
A. J. Burton and G. F. Miller, “The application of integral equation
methods to the numerical solution of some exterior boundary-value
problems,” Proc. R. Soc. London Ser. A 323, 201–210 (1971).
F. Ursell, “On the exterior problems of acoustics,” Proc. Cambridge
Philos. Soc. 74, 117–125 (1973).
R. E. Kleinman and G. F. Roach, “Boundary integral equations for
the three-dimensional Helmholtz equation,” SIAM Rev. 16, 214–236
(1974).
D. S. Jones, “Integral equations for the exterior acoustic problem,”
Q. J. Mech. Appl. Math. 27, 129–142 (1974).
W. L. Meyer, W. A. Bell, B. T. Zinn, and M. P. Stallybrass, “Boundary integral solutions of three-dimensional acoustic radiation problems,”
J. Sound Vib. 59, 245–262 (1978).
A. F. Seybert, B. Soenarko, F. J. Rizzo, and D. J. Shippy, “An
advanced computational method for radiation and scattering of acoustic waves in three dimensions,” J. Acoust. Soc. Am. 77, 362–368
(1985).
R. Kress, “Minimizing the condition number of boundary integral operators in acoustic and electromagnetic scattering,” Q. J. Mech. Appl. Math.
38, 323–341 (1985).
A. F. Seybert and T. K. Rengarajan, “The use of CHIEF to obtain unique
solutions for acoustic radiation using boundary integral equations,”
J. Acoust. Soc. Am. 81, 1299–1306 (1987).
K. A. Cunefare and G. Koopmann, “A boundary element method for
acoustic radiation valid for all wavenumbers,” J. Acoust. Soc. Am. 85,
39–48 (1989).
G. C. Everstine and F. M. Henderson, “Coupled finite element/boundary
element approach for fluid structure interaction,” J. Acoust. Soc. Am. 87,
1938–1947 (1990).
R. Martinez, “The thin-shape breakdown (TSB) of the Helmholtz integral equation,” J. Acoust. Soc. Am. 90, 2728–2738 (1991).
229
230
References
[119] K. A. Cunefare and G. H. Koopmann, “A boundary element approach to
[120]
[121]
[122]
[123]
[124]
[125]
[126]
[127]
[128]
[129]
[130]
[131]
[132]
[133]
[134]
[135]
optimization of active noise control sources on three-dimensional structures,” J. Vib. Acoust. 113, 387–394 (1991).
R. D. Ciskowski and C. A. Brebbia, Boundary Element Methods in
Acoustics (Kluwer Academic, New York, 1991).
G. Krishnasamy, T. J. Rudolphi, L. W. Schmerr, and F. J. Rizzo, “Hypersingular boundary integral equations: Some applications in acoustic and
elastic wave scattering,” J. Appl. Mech. 57, 404–414 (1990).
S. Amini, “On the choice of the coupling parameter in boundary integral
formulations of the exterior acoustic problem,” Appl. Anal. 35, 75–92
(1990).
T. W. Wu, A. F. Seybert, and G. C. Wan, “On the numerical implementation of a Cauchy principal value integral to insure a unique solution
for acoustic radiation and scattering,” J. Acoust. Soc. Am. 90, 554–560
(1991).
Y. J. Liu, “Development and applications of hypersingular boundary
integral equations for 3-D acoustics and elastodynamics,” Ph.D. dissertation, Department of Theoretical and Applied Mechanics, University of
Illinois at Urbana-Champaign (1992).
S.-A. Yang, “Acoustic scattering by a hard and soft body across a wide
frequency range by the Helmholtz integral equation method,” J. Acoust.
Soc. Am. 102, 2511–2520 (1997).
V. Rokhlin, “Rapid solution of integral equations of scattering theory in
two dimensions,” J. Comput. Phys. 86, 414–439 (1990).
V. Rokhlin, “Diagonal forms of translation operators for the Helmholtz
equation in three dimensions,” Appl. Comput. Harmon. Anal. 1, 82–93
(1993).
M. Epton and B. Dembart, “Multipole translation theory for the threedimensional Laplace and Helmholtz equations,” SIAM J. Sci. Comput.
16, 865–897 (1995).
S. Koc and W. C. Chew, “Calculation of acoustical scattering from a cluster of scatterers,” J. Acoust. Soc. Am. 103, 721–734 (1998).
L. Greengard, J. Huang, V. Rokhlin, and S. Wandzura, “Accelerating
fast multipole methods for the Helmholtz equation at low frequencies,”
IEEE Comput. Sci. Eng. 5(3), 32–38 (1998).
M. A. Tournour and N. Atalla, “Efficient evaluation of the acoustic radiation using multipole expansion,” Int. J. Numer. Methods Eng. 46, 825–
837 (1999).
N. A. Gumerov and R. Duraiswami, “Recursions for the computation
of multipole translation and rotation coefficients for the 3-D Helmholtz
equation,” SIAM J. Sci. Comput. 25, 1344–1381 (2003).
E. Darve and P. Havé, “Efficient fast multipole method for lowfrequency scattering,” J. Comput. Phys. 197, 341–363 (2004).
M. Fischer, U. Gauger, and L. Gaul, “A multipole Galerkin boundary
element method for acoustics,” Eng. Anal. Boundary Elements 28, 155–
162 (2004).
J. T. Chen and K. H. Chen, “Applications of the dual integral formulation in conjunction with fast multipole method in large-scale problems
References
[136]
[137]
[138]
[139]
[140]
[141]
[142]
[143]
[144]
[145]
for 2D exterior acoustics,” Eng. Anal. Boundary Elements 28, 685–709
(2004).
N. A. Gumerov and R. Duraiswami, Fast Multipole Methods for the
Helmholtz Equation in Three Dimensions (Elsevier, Amsterdam, 2004).
H. Cheng, W. Y. Crutchfield, Z. Gimbutas, L. F. Greengard, J. F.
Ethridge, J. Huang, V. Rokhlin, N. Yarvin, and J. Zhao, “A wideband
fast multipole method for the Helmholtz equation in three dimensions,”
J. Comput. Phys. 216, 300–325 (2006).
M. Abramowitz and I. A. Stegun, Handbook of Mathematical Functions
with Formulas, Graphs, and Mathematical Tables, 10th ed. (United States
Department of Commerce, U.S. Government Printing Office, Washington, DC, 1972).
S. Marburg and T. W. Wu, “Treating the phenomenon of irregular frequencies,” in S. Marburg and B. Nolte, eds., Computational Acoustics of
Noise Propagation in Fluids (Springer, Berlin, 2008), pp. 411–434.
Y. J. Liu and F. J. Rizzo, “Application of Overhauser C(1) continuous
boundary elements to ‘hypersingular’ BIE for 3-D acoustic wave problems,” in C. A. Brebbia and G. S. Gipson, eds., Boundary Elements XIII
(Computation Mechanics Publications, Tulsa, OK, 1991), pp. 957–966.
A. Messiah, “Clebsch–Gordan (C-G) Coefficients and ‘3j Symbols,’” in
Quantum Mechanics, Appendix C.I. (North-Holland Amsterdam, The
Netherlands, 1962), pp. 1054–1060.
M. Bapat, L. Shen, and Y. J. Liu, “An adaptive fast multipole boundary
element method for 3-D half-space acoustic wave problems,” Eng. Anal.
Boundary Elements, in press (2009).
S. H. Chen and Y. J. Liu, “A unified boundary element method for the
analysis of sound and shell-like structure interactions. I. Formulation and
verification,” J. Acoust. Soc. Am. 103, 1247–1254 (1999).
S. H. Chen, Y. J. Liu, and X. Y. Dou, “A unified boundary element
method for the analysis of sound and shell-like structure interactions.
II. Efficient solution techniques,” J. Acoust. Soc. Am. 108, 2738–2745
(2000).
T. W. Wu, ed., Boundary Element Acoustics: Fundamentals and Computer Codes (WIT Press, Southampton, UK, 2000).
231
Index
acoustic pressure, 147
acoustic wave equation, 147
analytical integration
2D elastostatic kernels, 179
2D potential kernels, 177
2D Stokes flow kernels, 182
associated Legendre function, 71
boundary element method (BEM), 1
boundary elements
constant, 24, 30
linear, 26, 31
quadratic, 29, 32
boundary integral equation (BIE), 1
boundary node method, 1
boundary stress calculation, 94
Burton–Miller formulation, 154
Cauchy principal value (CPV), 14
cells
adjacent, 61
child, 59
far, 61
leaf, 59
parent, 59
well-separated, 61
complex notation, 50, 95
G kernel, 50
traction, 96
U kernel, 95
continuity equation, 120
conventional BIE (CBIE)
acoustics, 153
elastostatics, 89
potential problem, 21
Stokes flow, 122
Dirac δ function, 6
sifting properties, 12
direct BIE formulation, 19, 85, 122
discretization, 24
domain integrals, 35
double-layer potential, 37
downward pass, 61
dual BIE formulation, 40, 91, 124, 154
Einstein’s summation convention, 10
equilibrium equations, 86, 120
error estimate, 53, 55
expansion of kernels
2D acoustics, 157
2D elasticity, 98
2D potential, 51
2D Stokes flow, 126
3D acoustics, 159
3D elasticity, 101
3D potential, 71
3D Stokes flow, 130
exterior acoustic problem, 149
fast multipole BEM, 47
fast multipole method (FMM), 3
fictitious eigenfrequency difficulty, 154
finite difference method, 1
finite element method (FEM), 1
Fourier transform, 12
Fredholm equation, 9
frequency
circular, 148
cyclic, 148
fundamental solution, 12
acoustics, 151, 152, 154
beam bending, 6, 13
elastostatics, 87, 90
potential problem, 18, 22
Stokes flow, 121, 122, 123
Gauss theorem, 11
Green’s function, 6
Green’s identity, 15
first, 12
second, 7, 12, 19, 152
Hadamard finite part (HFP), 15
233
234
Index
Helmholtz equation, 148
hypersingular BIE (HBIE)
acoustics, 154
elastostatics, 90
potential problem, 22
Stokes flow, 122
indicial notation, 10
indirect BIE formulation, 37
infinite domain problem, 23, 152
integral equation, 9
first kind, 37
second kind, 37
integral identities
elastostatics, 88
potential problem, 18
interaction list, 61
Jacobian, 28, 32
Kelvin’s solution, 87
kernel function, 9
Kronecker δ, 10
L2L translation
2D acoustics, 158
2D elastostatics, 99
2D potential, 56
2D Stokes flow, 128
3D acoustics, 161
3D elastostatics, 103
3D potential, 73
3D Stokes flow, 132
Laplace equation, 17
limit to the boundary, 20
local expansion
2D acoustics, 158
2D elastostatics, 99
2D potential, 54
2D Stokes flow, 127
3D acoustics, 161
3D elastostatics, 103
3D potential, 72
3D Stokes flow, 132
M2L translation
2D acoustics, 158
2D elastostatics, 99
2D potential, 54
2D Stokes flow, 127
3D acoustics, 161
3D elastostatics, 103
3D potential, 72
3D Stokes flow, 132
M2M translation
2D acoustics, 158
2D elastostatics, 98
2D potential, 54
2D Stokes flow, 127
3D acoustics, 160
3D elastostatics, 103
3D potential, 72
3D Stokes flow, 132
mass density, 149
mesh-free method, 1
moment
2D acoustics, 158
2D elastostatics, 98
2D potential, 52
2D Stokes flow, 127
3D acoustics, 160
3D elastostatics, 102
3D potential, 72
3D Stokes flow, 131
multidomain problems, 34
elasticity, 104
multipole expansion
2D acoustics, 157
2D elastostatics, 97
2D potential, 52
2D Stokes flow, 126
3D acoustics, 160
3D elastostatics, 102
3D potential, 72
3D Stokes flow, 130
normal velocity, 149
O(N) complexity, 65
oct tree, 71
outgoing wave, 150
p3 complexity, 162
p5 complexity, 162
particular solution, 36
permutation symbol, 11
point force, 89
point source, 21
acoustics, 147
Poisson equation, 17
preconditioning, 64
multidomain elasticity problems, 107
programming
for conventional BEM, 38
for fast multipole BEM, 66
pulsating-sphere problem, 149
quad tree, 59
radiation problem, 149
representation integral
acoustics, 153
elastostatics, 89
potential problem, 19
Stokes flow, 121
rigid-body motion, 92
Index
scattering problem, 149
shape function
linear, 27, 31
quadratic, 29, 33
single-layer potential, 37
singular integral, 13
hypersingular, 14, 22, 90, 123, 154
improper, 14
strongly, 14, 20, 22, 89, 90, 122, 123, 153, 154
weakly, 14, 20, 89, 122, 153
solid harmonic functions, 71, 101, 130
Somigliana’s identity, 88
Sommerfeld radiation condition, 149
source code
2D potential conventional BEM, 184
2D potential fast multipole BEM, 192
speed of sound, 147
235
spherical harmonics, 160
strain–displacement relation, 86
stress–strain relation, 86
time harmonic wave, 147
upward pass, 59
wavelength, 148
wavenumber, 148
weakly singular form
CBIE for acoustics, 155
CBIE for elastostatics, 91
CBIE for potential problem, 23
HBIE for acoustics, 156
HBIE for elastostatics, 91
HBIE for potential problem, 24