Larissa Simões Novelino Aplicação de Técnicas de ‘Fast ... · Novelino, Larissa Simões;...
Transcript of Larissa Simões Novelino Aplicação de Técnicas de ‘Fast ... · Novelino, Larissa Simões;...
Larissa Simões Novelino
Aplicação de Técnicas de ‘Fast Multipole’ nos Métodos de Elementos de Contorno
Dissertação de Mestrado
Dissertação apresentada como requisito parcial para obtenção do grau de Mestre pelo Programa de Pós-Graduação em Engenharia Civil do Departamento de Engenharia Civil da PUC-Rio.
Orientador: Prof. Ney Augusto Dumont
Rio de Janeiro Julho de 2015
Larissa Simões Novelino
Aplicação de Técnicas de ‘Fast Multipole’ nos Métodos de Elementos de Contorno
Dissertação apresentada como requisito parcial para obtenção do grau de Mestre pelo Programa de Pós-Graduação em Engenharia Civil do Departamento de Engenharia Civil do Centro Técnico Científico da PUC-Rio. Aprovada pela Comissão Examinadora abaixo assinada.
Prof. Ney Augusto Dumont Orientador
Departamento de Engenharia Civil – PUC-Rio
Prof. Raul Rosas e Silva Departamento de Engenharia Civil – PUC-Rio
Prof. Paulo Sollero UNICAMP
Prof. José Eugenio Leal Coordenador Setorial do Centro Técnico Científico - PUC-Rio
Rio de Janeiro, 31 de julho de 2015
Todos os direitos reservados. É proibida a reprodução total ou parcial do trabalho sem autorização da universidade, do autor e do orientador.
Larissa Simões Novelino
Graduada em Engenharia Civil pela Universidade Federal do Pará em 2013.
Ficha Catalográfica
Novelino, Larissa Simões
Aplicação de Técnicas de 'Fast Multipole' nos Métodos de Elementos de Contorno / Larissa Simões Novelino; orientador: Ney Augusto Dumont. – 2015.
92 f. il. (color.); 30 cm
Dissertação (mestrado) – Pontifícia Universidade Católica do Rio de Janeiro, Departamento de Engenharia Civil, 2015.
Inclui bibliografia
1. Engenharia civil – Teses. 2. Método fast multipole. 3. Elementos de contorno. 4. Métodos variacionais. I. Dumont, Ney Augusto. II. Pontifícia Universidade Católica do Rio de Janeiro. Departamento de Engenharia Civil. III. Título.
CDD: 624
Agradecimentos
A minha mãe, por todo o suporte e incentivo ao longo deste mestrado.
Ao Prof. Ney, meu orientador, por todo o conhecimento e apoio transmitidos ao longo desse mestrado.
Ao Hélvio, pela amizade, ajuda e discursões que foram fundamentais a este trabalho.
A Graciele e Patrick, pelas horas de estudo, pelos cafés, pelos brigadeiros e principalmente pela amizade.
Aos amigos Carlos, Wellington, Elvis e Daniel por todas as horas de estudo e conversas.
Aos meus amigos de Belém, Maria Cecilia, Larissa, Debora, Wylk, Gustavo e Philipe, que sempre estavam disponíveis para me ajudar e sempre arranjavam tempo nas minhas breves idas em Belém.
Ao CNPq e à PUC-Rio, pelos auxílios concedidos, sem os quais este trabalho não poderia ter sido realizado.
A todos os professores do curso de Engenharia Civil da PUC-Rio que de alguma forma contribuíram para minha formação.
A todos os professores do curso de Engenharia Civil da UFPA, em especial aos professores Sandoval, Ronaldson e Remo.
Resumo
Novelino, Larissa Simões; Dumont, Ney Augusto. Aplicação de Técnicas de 'Fast Multipole' nos Métodos de Elementos de Contorno. Rio de Janeiro, 2015. 92p. Dissertação de Mestrado - Departamento de Engenharia Civil, Pontifícia Universidade Católica do Rio de Janeiro.
Este trabalho visa à implementação de um programa de elementos de
contorno para problemas com milhões de graus de liberdade. Isto é obtido com a
implementação do Método ‘Fast Multipole’ (FMM), que pode reduzir o número
de operações, para a solução de um problema com N graus de liberdade, de
O(N²) para O(NlogN) ou O(N). O uso de memória também é reduzido, por não
haver o armazenamento de matrizes de grandes dimensões como no caso de
outros métodos numéricos. A implementação proposta é baseada em um
desenvolvimento consistente do convencional, Método de colocação dos
elementos de contorno (BEM) – com conceitos provenientes do Hibrido BEM –
para problemas de potencial e elasticidade de larga escala em 2D e 3D. A
formulação é especialmente vantajosa para problemas de topologia complicada
ou que requerem soluções fundamentais complicadas. A implementação
apresentada, usa um esquema para expansões de soluções fundamentais
genéricas em torno de níveis hierárquicos de polos campo e fonte, tornando o
FMM diretamente aplicável para diferentes soluções fundamentais. A árvore
hierárquica dos polos é construída a partir de um conceito topológico de
superelementos dentro de superelementos. A formulação é inicialmente acessada
e validada em termos de um problema de potencial 2D. Como resolvedores
iterativos não são necessários neste estágio inicial de simulação numérica, pode-
se acessar a eficiência relativa à implementação do FMM.
Palavras-chave Método Fast Multipole; elementos de contorno; métodos variacionais.
Abstract
Novelino, Larissa Simões; Dumont, Ney Augusto (Advisor). Application of Fast Multipole Techniques in the Boundary Element Methods. Rio de Janeiro, 2015. 92p. MSc. Dissertation – Departamento de Engenharia Civil, Pontifícia Universidade Católica do Rio de Janeiro.
This work aims to present an implementation of a boundary element solver
for problems with millions of degrees of freedom. This is achieved through a
Fast Multipole Method (FMM) implementation, which can lower the number of
operations for solving a problem, with N degrees of freedom, from O(N²) to
O(NlogN) or O(N). The memory usage is also very small, as there is no need to
store large matrixes such as required by other numerical methods. The proposed
implementations are based on a consistent development of the conventional,
collocation boundary element method (BEM) - with concepts taken from the
variationally-based hybrid BEM - for large-scale 2D and 3D problems of
potential and elasticity. The formulation is especially advantageous for problems
of complicated topology or requiring complicated fundamental solutions. The
FMM implementation presented in this work uses a scheme for expansions of a
generic fundamental solution about hierarchical levels of source and field poles.
This makes the FMM directly applicable to different kinds of fundamental
solutions. The hierarchical tree of poles is built upon a topological concept of
superelements inside superelements. The formulation is initially assessed and
validated in terms of a simple 2D potential problem. Since iterative solvers are
not required in this first step of numerical simulations, an isolated efficiency
assessment of the implemented fast multipole technique is possible.
Keywords Fast Multipole Method; boundary elements; variational methods.
Sumário
1 Introdução 13
Objetivos 14 1.1.
Estrutura 14 1.2.
2 Método dos elementos de contorno (BEM) 16
Formulação consistente do método convencional dos elementos 2.1.
de contorno para elasticidade 16
2.1.1. CBEM aplicado a um problema de potencial 19
3 Método Fast Multipole (FMM) 21
FMM para problemas de potencial 2D 23 3.1.
3.1.1. Expansão da solução fundamental *u para um polo próximo ao
ponto campo 23
3.1.2. Expansão da solução fundamental *u para um polo próximo ao
ponto fonte 25
3.1.3. Aplicação FMM no CBEM 27
3.1.4. Algoritmo 30
4 Método ‘fast multipole’ para uma solução fundamental genérica
(GFMM) 36
Definições básicas 36 4.1.
Expansão da solução fundamental 37 4.2.
Expansões sucessivas 39 4.3.
Aplicação do GFMM no BEM para um problema de potencial 39 4.4.
4.4.1. Desenvolvimento 40
4.4.2. Integração no GFMBEM 43
4.4.3. Tabelas de Integração 44
5 Implementação computacional do GFMBEM 47
Implementação computacional 47 5.1.
5.1.1. Refinamento hierárquico da malha 48
5.1.2. Algoritmo unificado para as expansões do GFMBEM 51
Execução do algoritmo 57 5.2.
6 Exemplos Numéricos para Problema de Potencial 59
Exemplo unidimensional 59 6.1.
Exemplos bidimensionais 62 6.2.
6.2.1. Resultados para elementos constantes 63
6.2.2. Resultados para elementos curvos 66
7 Conclusões e sugestões 68
Conclusões 68 7.1.
Sugestões para trabalhos futuros 69 7.2.
8 Referências Bibliográficas 70
9 Apêndice 1 72
A Unified algorithm for hierarchical mesh refinement 72 9.1.
9.1.1. Input data 74
9.1.2. Output data 74
9.1.3. Initial definitions 75
9.1.4. Execution of the algorithm 75
10 Apêndice 2 78
A unified algorithm for pole expansions 78 10.1.
Unified algorithm for the generation of refined boundary 10.2.
meshes – use of a hierarchical concept 78
10.2.1. Input data 78
10.2.2. Output data 79
10.2.3. Algorithm for the first level ( )1k = 79
10.2.4. Algorithm for the next levels ( )1k > 80
10.2.5. Procedures referred to in the algorithm 82
10.2.6. Preliminary procedures for the GFMM 91
Lista de figuras
Figura 1 - Ilustração gráfica das interações entre pontos campo e pontos
fonte pelo (a) CBEM e (b) fast multipole BEM. 21
Figura 2 - Esquema genérico da expansão do ponto campo Z em torno de
um polo cZ próximo a este e distante do ponto fonte 0z , considerando um
plano complexo. 24
Figura 3 - Esquema genérico da expansão do ponto fonte 0Z em torno de
um polo LZ próximo a este e distante do ponto campo Z . 25
Figura 4 - Esquema genérico de sucessivas expansões em torno dos pontos
campo e fonte para novos polos de expansão (Adaptado de Liu, 2009). 26
Figura 5 - Esquema das expansões. Na legenda, encontram-se a referencia
as equações empregadas para cada expansão. 29
Figura 6 - Discretização do contorno S com o uso de elementos constantes
(LIU, 2009). 30
Figura 7 - Estrutura hierárquica de células. O quadrado pequeno no canto
inferior direito apresenta o esquema de numeração das células filhas,
independente do nível destas. (Adaptado de Liu, 2009). 32
Figura 8 - Estrutura hierárquica das células apresentadas na Figura 7. Os
quadrados na cor cinza estão representando as folhas. (Liu, 2009) 32
Figura 9 – Upward pass: Multipole expansions e translações M2M. Os
quadrados representam o centro de cada folha e os triângulos e as cruzes
representam o centro das células mães no nível 3 e 2, respectivamente.
(Adaptado de Liu, 2009). 34
Figura 10 - Esquema das translações M2L e L2L. A célula na cor cinza
representa a folha a qual o nó fonte 29 pertence. (Liu, 2009) 35
Figura 11 - Esquema genérico da expansão do ponto campo z em torno do
polo nkcz e da expansão do ponto fonte 0Z em torno de um polo nlL
Z
próximo a este e distante do ponto campo Z . 37
Figura 12 - Esquema das expansões. Cada linha representa uma parcela da
expansão. O esquema a direita representa as expansões considerando
expansões do ponto fonte e o da direita não às considera. 42
Figura 13 - Elemento isoparamétrico cúbico e o polo de expansão 0cz
(Peixoto, 2014). 46
Figura 14 - Esquema do refinamento hierárquico de uma malha de
elementos lineares. (a) Estrutura fornecida, ou seja, equivale à malha no
menor nível de refinamento ( )1 .k = (b) Estrutura no segundo nível de
refinamento ( )2k = . 49
Figura 15 - Esquema de Refinamento, considerando 3nv= , resultando em
um total de 4 níveis de refinamento. 50
Figura 16 - (a) Macroelemento 1 e seus filhos. A numeração apresentada se
refere aos elementos. (b) Estrutura hierárquica do macroelemento 1. 51
Figura 17 - Esquema dos elementos adjacentes ao microelemento 8. Os
elementos pontilhados compõem a estrutura hierárquica do microelemento 8
e os na cor cinza são os elementos adjacentes em cada nível de refinamento. 52
Figura 18 - Esquema das expansões dos pontos campo de acordo com a
ordem dos elementos, para 1childk = . Os círculos em vermelho representam os
polos (a) os círculos representam os nós e os traços delimitam a geometria
do elemento. (b), (c) e (d) Os nós externos dos elementos estão
representados por círculos e os internos por losangos. 54
Figura 19 - Esquema de expansão dos polos de acordo com a variável childk .
Os losangos representam os nós geométricos dos elementos e os círculos os
graus de liberdade dos elementos constates (Peixoto, et al., 2015). 54
Figura 20 - Esquema das expansões campo-fonte para um contorno
discretizado em elementos constantes considerando expansões (a) em torno
do ponto campo e fonte (b) apenas em torno do ponto campo. Os losangos
representam os nós geométricos, os círculos em azul os graus de liberdade e
os em vermelho os polos de expansão; 56
Figura 21 - Erro do algoritmo desenvolvido para o caso sem expansão em
torno do ponto fonte (esquerda) e com expansão em torno deste (direita). 60
Figura 22 – Tempo de execução do algoritmo sem expansão do ponto fonte
(esquerda) e com expansão do ponto fonte (direita) 61
Figura 23 - Esquema das expansões dos pontos campo. 61
Figura 24 - Esquerda: erro do algoritmo calculado segundo a Equação (1.4)
para um contorno quadrado. Direita: tempo de execução do algoritmo para o
contorno quadrado, utilizando 2cn = (Peixoto, et al., 2015). 63
Figura 25 - Erro por coeficientes do vetor Gt . Cada linha do gráfico
representa um ponto fonte. 64
Figura 26 - Erro por elemento fonte considerando apenas o nó do
microelemento 1 como ponto campo. 65
Figura 27 - Domínio quadrilateral distorcido para um estudo com elementos
quadráticos e resultados de precisão para diferentes números de filhos por
polo de expansão e termos de expansão (Peixoto, et al., 2015). 67
Figure 28 - Scheme of three different elements that are split each into two
sub-elements. 72
13
1 Introdução
O Método dos Elementos de Contorno (BEM) é conhecido pela sua
facilidade no que diz respeito a modelagem, porém este tem suas restrições para
problemas de larga escala, sendo limitado a problemas com alguns milhares graus
de liberdade (Liu, 2009). Esta limitação decorre do fato das matrizes do método
serem, embora menores quando comparadas com as geradas pelos métodos de
domínio, assimétricas e cheias, o que resulta em operações custosas
computacionalmente. Diante disto, tem-se métodos que aproximam estas matrizes
no intuito de reduzir o esforço computacional e consumo de memória. Dentre
estes, tem-se o método ‘fast multipole’ FMM, no qual as soluções fundamentais
do problema são aproximadas através de uma soma finita de funções separáveis.
Outro método comumente empregado é o ‘Adaptative Cross-Aproximation’
(ACA), no qual as matrizes do BEM são aproximadas sem que haja uma explicita
expansão das soluções fundamentais (Kurtz, et al., 2003), o que garante uma
maior generalidade do algoritmo quando comparado ao FMM tal como
apresentado por Liu (2009).
O FMM, desenvolvido por Greengard e Rokhlin (1987), foi eleito um dos
10 melhores algoritmos do século XX (Dongarra e Sullivan, 2000). Embora tenha
sido inicialmente desenvolvido para problemas de simulação de partícula
envolvendo campos gravitacionais e coulombicos, este se provou eficiente para
solução de equações de integral de contorno (Nishimura, 2002). O FMM
combinado a um método iterativo, como o GMRES, pode acelerar o tempo
necessário para a solução de um problema com N graus de liberdade da ordem
de 2( )O N para ( )logO N N – ou até mesmo ( )O N (Liu, 2009) – necessitando
armazenar uma pequena fração de memória do que seria necessário para outro
método numérico.
Liu (2009) apresenta uma cuidadosa descrição do FMM aplicado uma série
de problemas do método dos elementos de contorno (BEM). Uma breve ideia do
14
método é dada por Liu et al (2011), uma análise abrangente é dada por Nishimura
(2002) e um tutorial é apresentado por Liu e Nishimura (2006).
O principal objetivo deste trabalho é a aplicação do FMM a problemas com
elementos curvos, em um contexto praticamente independente da solução
fundamental, conforme a formulação generalizada proposta por Dumont e Peixoto
(2014).
1.1.Objetivos
O presente trabalho dá prosseguimento à tese de mestrado desenvolvida por
Peixoto (2014), fazendo parte de um projeto que tem como objetivo principal a
implementação de um programa que possa simular problemas com milhões de
graus de liberdade em um computador pessoal. No intuito de atingir este objetivo
combina-se o método dos elementos de contorno com uma técnica genérica de
multipolos proposta por Dumont e Peixoto (2014) utilizando-se de elementos
lineares, quadráticos e cúbicos na discretização do contorno.
1.2.Estrutura
Este trabalho é dividido em 7 capítulos e 2 apêndices . O Capítulo 2
apresenta duas formulações do BEM: o método convencional consistente dos
elementos de contorno (CCBEM) e o método expedito dos elementos de contorno
(EBEM).
O Capítulo 3 apresenta o método ‘fast multipole’ (FMM), com as suas
considerações teóricas e a sua aplicação no BEM para um problema 2D de
potencial. E por fim apresenta-se o resumo de um pseudo-algoritmo típico
baseado no desenvolvimento apresentado por Liu (2009).
O Capítulo 4 apresenta uma formulação genérica do método ‘fast multipole’
(GFMM), tal como proposta por Dumont e Peixoto (2014).
O Capítulo 5 apresenta uma implementação do GFMM no método dos
elementos de contorno (GFMBEM) que utiliza uma estratégia de discretização
hierárquica e distâncias topológicas, caracterizadas pela adjacência entre
elementos.
15
O Capítulo 6 apresenta exemplos numéricos para validação do algoritmo
proposto.
O Capítulo 7 apresenta as conclusões obtidas neste trabalho e sugestões para
trabalhos futuros.
O Apêndice 1 apresenta o algoritmo para um refinamento hierárquico e o
Apêndice 2 apresenta os algoritmos da implementação exposta no Capítulo 5.
16
2 Método dos elementos de contorno (BEM)
Neste capítulo será apresentada a formulação do método convencional
consistente dos elementos de contorno (CCBEM) (Dumont, 2010), e do método
expedito dos elementos de contorno (EBEM) (Dumont e Aguilar, 2012).
2.1.Formulação consistente do método convencional dos e lementos de contorno (CCBEM) para elasticidade
O método consistente dos elementos de contorno se diferencia do método
convencional de colocação dos elementos de contorno (CBEM) por realizar uma
adequada consideração das constantes de corpo rígido, além de apresentar uma
nova proposição vantajosa para a integração da matriz G . O desenvolvimento
apresentado a seguir está baseado em Dumont (2010) e Oliveira (2004).
Partindo da forma forte do princípio da energia potencial total estacionária,
tem-se a equação
( ) ( ), d d 0ji j i i ji j i ib u t uδ σ δ σ η δΩ Γ
Π = − + Ω + − Γ =∫ ∫ (2.1)
para um corpo linear elástico submetido a forças ib no domínio Ω e forças it no
contorno σΓ , onde jiσ é o tensor de tensões. O campo de tensões satisfaz o
equilíbrio no domínio e no contorno, além de os deslocamentos iu serem
prescritos em uΓ , ou seja
, 0 em (a)
em (b)
em (c)
ij j i
ij j i
i i u
b
t
u u
σ
σ
σ η
+ = Ω
= Γ
= Γ
(2.2)
onde jη representa as componentes do vetor unitário normal ao contorno segundo
as direções dos eixos das coordenadas, representadas por j . Também foi suposto
17
que o tensor de tensões jiσ é simétrico ( )ji ijσ σ= e satisfaz a relação
constitutiva
,ij ijkl k lc uσ = (2.3)
Formulando o problema para um campo de soluções fundamentais *iuδ , em
termos de resíduos ponderados, obtemos uma equação menos restritiva que a
Equação (2.1)
( ) ( )* *, d d 0ji j i i ji j i ib u t uσ δ σ η δ
Ω Γ− + Ω + − Γ =∫ ∫ (2.4)
Integrando-se duas vezes por partes a Equação (2.4), aplicando o teorema de
Green duas vezes e através da relação constitutiva apresentada na Equação (2.3),
da qual se obtém * * *, , , ,ji i j k l jikl i j k l klu u c u uσ δ δ δσ= = , chega-se à expressão
( ) ( )* * *,d d d dji j i ji j i i i i iu u b u t uδσ η δσ δ δ
Γ Ω Ω ΓΓ − Ω = Ω + Γ∫ ∫ ∫ ∫ (2.5)
As soluções fundamentais em termos de tensões (*δσ ) e deslocamentos
*( )uδ podem ser escritas em termos de parâmetros arbitrários de forças virtuais
*mp como
* * *ij ijm mpδσ σ δ= (2.6)
( )* * *ri im is sm mu u u c pδ δ= + (2.7)
onde *isu corresponde aos rn deslocamentos de corpo rígido, com 1.. rs n= , smC
são constantes arbitrárias de corpo rígido e o índice m representa os pontos de
aplicação da carga e a direção de *mpδ .
A função *ijmσ apresentada na Equação (2.6) pode ser normalizada de
modo que, para um certo domínio 0Ω que contenha *mpδ ,
0 0
* *, djim j jim j imσ σ η δ
Ω ΓΩ = = −∫ ∫ (2.8)
onde imδ é o delta de Kronecker e 0Γ é o contorno de 0Ω . Utilizando a Equação
(2.8), o segundo integrando da Equação (2.5) pode ser escrito na forma
( )* *, dji j i m mu u pδσ δ
ΩΩ = −∫ (2.9)
18
Aplicando as Equações (2.6), (2.7) e a igualdade apresentada na Equação
(2.9) à Equação (2.5), tem-se
( )* * * r rm i im jim j i i im sm i is i isu b u d u d t u d C t u d b u dδ σ η δ
Ω Γ Γ Γ Ω= Ω − Γ + Γ + Γ + Ω∫ ∫ ∫ ∫ ∫ (2.10)
A Equação (2.10) é idêntica à identidade de Somigliana, exceto pelos
termos multiplicados por smC . Tais termos são nulos para o caso de forças
equilibradas. No entanto, quando há aproximação isso não é verdade, e os
resultados apresentam erros proporcionais à smC (Dumont, 2010).
Usando aproximações nos contornos uΓ e σΓ , podemos escrever
onde i in n in imu u d u δ= = (2.11)
i il lt t t= (2.12)
onde nd é o vetor de deslocamentos nodais, lt são atributos das forças de
superfície ligados ao vetor normal à superfície (iη ), inu e i lt são as funções de
interpolação de nd e lt , respectivamente, com suporte local.
Em geral, é utilizada uma formulação isoparamétrica, em que a geometria
do contorno é descrita pelas mesmas funções inu que descrevem os
deslocamentos. Além disso, usam-se também as mesmas funções polinomiais para
i lt e inu .
Aplicando na identidade Somiliana, tem-se
( ) ( )
( )* *jim j in mn n il im l i im sm
rsm il is l i is
u d d t u d t b u d C
C t u d t b u d
σ η δΓ Γ Ω
Γ Ω
Γ + = Γ + Ω +
+ Γ + Ω
∫ ∫ ∫
∫ ∫ (2.13)
que é a mesma expressão obtida no CBEM, exceto pelos termos de deslocamentos
de corpo rígido e que pode ser escrita de forma matricial como
εHd = Gt +b + (2.14)
onde
*jim j in mnu dσ η δ
Γ= Γ +∫H (2.15)
*il imt u dδ
Γ= Γ∫G (2.16)
*i imb u dδ
Ω= Ω∫b (2.17)
( )r rsm il l is i isC t t u d b u dε
Γ Ω= Γ + Ω∫ ∫ (2.18)
19
O termo ε corresponde aos resíduos devidos à magnitude dos
deslocamentos de corpo rígido e à aproximação da solução fundamental. Este
termo é uma das diferenças entre o método consistente dos elementos de contorno
e a sua forma inconsistente apresentada em Brebbia (1978) e Trevelyan (1994).
Para integração da matriz G , propõe-se que as funções de forma usuais i lt
apresentadas na Equação (2.12) sejam substituídas por
( )em il l
il
t Jt
J← (2.19)
onde ( )em lJ é o valor do Jacobiano no ponto caracterizado pelo subscrito le J é
o Jacobiano.
Esta substituição proposta por Dumont (2010) permite que o Jacobiano
proveniente da transformação de coordenadas da integração (d d )J ξΓ = , seja
cancelado com o apresentado no denominador da Equação (2.19). Esta
modificação faz com que a integração da matriz G se torne mais simples.
A partir da aplicação das condições contorno e troca das colunas das
matrizes G e H, o sistema de equações apresentado na Equação (2.14), pode ser
escrito na forma
=Ax y (2.20)
onde A é uma matriz corresponde a matriz de coeficientes, x é o vetor de
incógnitas a serem calculadas, e o vetor y é o resultado da multiplicação dos
coeficientes pelas suas respectivas condições de contorno.
2.1.1. CBEM aplicado a um problema de potencial
A solução fundamental normalizada (fonte unitária) para um problema de
potencial bidimensional em meio isotrópico homogêneo é expressa, a menos de
uma constante, como
( )ln
2
r
ku
π∗ − ∆
= (2.21)
onde r∆ é a distância entre o ponto campo e fonte, e k é uma propriedade que
depende do problema. No caso de um problema de propagação de calor, k é a
condutividade térmica.
20
O fluxo nas direções x e y é dado pelas equações
* *2 2
,2 2
x yx y
q qr rπ π
∆ ∆= =∆ ∆
(2.22)
Retomando a equação (2.14), tem-se que H é a matriz de transformação
cinemática e G é uma matriz que transforma fluxo em potencial, sendo esta, em
geral, retangular. Para elementos constantes, por exemplo, esta se apresenta na
forma quadrada. d e t são os vetores correspondentes ao potencial e ao fluxo no
contorno, respectivamente.
Para um problema de potencial, as matrizes G e H, da equação (2.14), são
calculadas na forma
*
*
dml m l
mj im i j mj
G u t
H q u dη δΓ
Γ
= Γ
= − Γ +
∫
∫ (2.23)
onde *mu e *
imq são as solução fundamentais de problemas de potencial mostradas
anteriormente nas Equações (2.21) e (2.22), respectivamente. O índice m se refere
ao ponto fonte, l e j referem-se ao ponto campo e i refere-se às direções x e y .
2.2.Método expedito dos elementos de contorno (EBEM)
O método expedito dos elementos de contorno (Dumont e Aguilar, 2012)
combina o método híbrido dos elementos de contorno (Dumont, 1987) com a
formulação consistente do CBEM no intuito de obter uma formulação mais
eficiente. Este método conta basicamente com as equações
T *
* *
H p = p
U p = d (2.24)
para condições de contorno mistas em termos de deslocamentos nodais d e forças
equivalentes p , onde H é a mesma matriz apresentada na equação (2.15) e *U é a
matriz da solução fundamental em termos de deslocamentos nodais. Uma vez que
o vetor de forças internas *p for resolvido a partir da Equação (2.24), podem ser
avaliados destocamentos e tensões em pontos internos diretamente, sem a
necessidade de se aplicar a identidade de Somigliana, como no caso do CBEM.
21
3 Método Fast Multipole (FMM)
Nesse capítulo, apresenta-se o Método Fast Multipole (FMM), como
proposto por Greengard e Rokhlin (1987). O algoritmo foi eleito um dos 10
melhores do século XX (Dongarra e Sullivan, 2000).
No CBEM, os coeficientes das matrizes H e G são avaliados diretamente
pelas Equações (2.23). Estas equações são dependentes da distância entre os
pontos campo e fonte. Desta forma, a integração sobre o elemento campo terá de
ser avaliada novamente para cada ponto fonte (Erro! Autoreferência de
indicador não válida.(a)).
Montar estas matrizes, para um problema com N graus de liberdade
envolve 2( )O N operações e outras 3( )O N operações para resolver o sistema de
equações (2.20) utilizando métodos diretos, como eliminação de Gauss, e 2( )O N
no caso do emprego de métodos iterativos, além do uso de memória, que é
proporcional a 2( )O N (Liu, 2009).
A ideia principal do FMM é utilizar um resolvedor iterativo para solucionar
o sistema apresentado na Equação (2.20) e usar o FMM para acelerar o cálculo da
multiplicação Ax em cada iteração, sem que a matriz A seja formada
inteiramente (Liu, 2011).
10z
20z
30z
40z
1z
2z
3z
4z
10z
20z
30z
40z
1z
2z
3z
4z
(a) (b)
Figura 1 - Ilustração gráfica das interações entre pontos campo e pontos fonte pelo (a)
CBEM e (b) fast multipole BEM.
22
O motivo fundamental para a redução das operações pelo emprego do FMM
se dá pela possibilidade de separar na solução fundamental as variáveis relativas
ao ponto fonte daquelas relativas ao ponto campo com a introdução de polos
intermediários a estes pontos, conforme mostrado na Erro! Autoreferência de
indicador não válida.(b), o que é possível graças à expansão em série (Liu, 2009)
( ) ( ) ( )0* * *0 0, , ,Z Z
c i cii
u Z Z u Z Z u Z Z=∑ (3.1)
onde ( )0*0 ,Z
ciu Z Z é independente de Z (ponto campo) e ( )* ,Zi cu Z Z é
independente de 0Z (ponto fonte). Com a introdução deste polo intermediário, a
integração sobre os elementos campo será realizada apenas uma vez, já que esta
integração não mais irá depender da posição do ponto fonte.
A expansão da solução fundamental leva à introdução de erros numéricos,
que são controlados pelo número de termos utilizados na expansão e pela
distância entre os pontos campo e fonte e os polos de expansão.
Com a introdução destes polos intermediários utiliza-se de uma estratégia
para agrupar vários pontos campo a um polo próximo, de maneira que as iterações
entre estes e um ponto fonte distante será avaliada apenas uma vez (Erro!
Autoreferência de indicador não válida.(b)). O resultado obtido a partir desta
interação corresponde a uma parcela de uma das linhas do vetor obtido pela
multiplicação Ax . Esta estratégia resulta em uma economia de memória e
processamento.
Na Erro! Autoreferência de indicador não válida., pode-se notar a
eficiência do FMM em relação ao BEM no que diz respeito às interações entre
pontos campo e fonte. As linhas representam as avaliações necessárias, os nós iZ
se referem aos pontos campo e os nós 0Z i aos pontos fonte, considerados
suficientemente distantes pra que o método fast multipole possa ser usado.
A seguir é apresentada a formulação do FMM para aplicação a problemas de
potencial baseada em Liu (2009).
23
3.1.FMM para problemas de potencial 2D
Por conveniência, será empregada a notação complexa, de maneira que as
coordenadas cartesianas ( ),x y serão expressas como x iy+ , e as soluções
fundamentais para um problema de potencial serão expressas da seguinte maneira:
( )*0 0
1, ln
2u z z z z
kπ= − − (3.2)
( ) ( ) ( ) ( )* *0 0*
0, ,
,u z z u z z
q z z zn z
η∂ ∂
= =∂ ∂
(3.3)
onde *u é a solução fundamental de um problema de potencial, *q representa o
fluxo, η é o vetor normal a superfície do corpo e z e 0z representam os pontos
campo e fonte, respectivamente.
Em coordenadas cartesianas estas soluções fundamentais são expressas por
( ) ( )* *0, Re , ,u x y u z z = (3.4)
( ) ( ) ( ) ( )* *0 0* *
0 1 2, ,
, Re , Re Imu z z u z z
q x y q z z n nz z
∂ ∂ = = − ∂ ∂
(3.5)
3.1.1. Expansão da solução fundamental *u para um polo próximo ao ponto campo
Com a introdução de um ponto intermediário cz entre o ponto campo z e o
ponto fonte 0z , conforme esquema apresentado na Figura 2, a Equação (3.2) pode
ser escrita como
24
( )*0 0 0
0
1 1, ln ln ln 1
2 2c
cc
z zu z z z z z z
z zπ π −= − − = − − + − −
(3.6)
O segundo termo logarítmico é expandido em série de Taylor:
( )1
ln 1 , para 1j
j j
αα α∞
=− = − <∑ (3.7)
Assim,
( )* 10 0 0
01
1 1, ln ln
2 2
jc
ccj
z zu z z z z z z j
z zπ π
∞−
=
− = − − = − − − −
∑ (3.8)
A partir desta expansão, as variáveis relativas ao ponto campo e ao ponto
fonte se tornam independentes uma das outras. Esta é a chave para a vantagem do
método Fast Multipole (Liu, 2009).
Através da notação apresentada por Liu e Nishimura (2006), a Equação
(3.8) pode ser escrita na forma:
( ) ( ) ( )*0 0
0
1,
2 j c j cj
u z z O z z I z zπ
∞
== − −∑ (3.9)
onde as funções auxiliares ( )jI z e ( )jO z são definidas como
( )
( ) ( ) ( ) ( )0
, para 0!
1 !, para 1 e ln
j
j
j j
ZI Z j
j
jO Z j O Z Z
Z
= ≥
−= ≥ = −
(3.10)
Γ
0z
cz
z Ponto campo
Ponto fonte
Polo próximo ao ponto campo
Figura 2 - Esquema genérico da expansão do ponto campo em torno de um polo
próximo a este e distante do ponto fonte , considerando um plano complexo.
25
3.1.2. Expansão da solução fundamental *u para um polo próximo ao ponto fonte
Introduzindo-se um ponto intermediário Lz próximo ao ponto fonte (Figura
3), de maneira que 0 L L cz z z z− −≪ , obtém-se:
( ) ( ) ( )
( ) ( ) ( )
*0 0
0
00
1,
2
1
2
j c j cj
j L c L j cj
u z z O z z I z z
O z z z z I z z
π
π
∞
=
∞
=
= − −
= − + − −
∑
∑ (3.11)
A função jO é expandida em série de Taylor:
[ ] ( ) ( ) ( )1 2 1 2 2 10
1 , para l
j j l ll
O z z O z I z z z∞
+=
+ = − <∑ (3.12)
Assim,
( ) ( ) ( ) ( ) ( )*0 0
0 0
1, 1
2l
j l L c l L j cj l
u z z O z z I z z I z zπ
∞ ∞
+= =
= − − − −
∑ ∑ (3.13)
Considerando n termos de expansão, a Equação (3.13) pode ser truncada e
expressa na forma:
( ) ( ) ( ) ( ) ( )*0 0
0 0
1, 1
2
n nl
j l L c l L j cj l
u z z O z z I z z I z zπ +
= =
= − − − −
∑ ∑ (3.14)
Γ
0z Lz
cz
z Ponto campo
Ponto fonte
Polo próximo ao ponto fonte
Figura 3 - Esquema genérico da expansão do ponto fonte em torno de um polo
próximo a este e distante do ponto campo .
26
3.1.3. Expansões sucessivas
Verifica-se na Equação (3.5) que sucessivas expansões para novos polos
envolverão apenas as funções auxiliares ( )I z . Considerando uma expansão do
ponto z em torno de um novo ponto 'cz , tem-se:
( ) ( ) ( )'j c j c c cI z z I z z z z − = − + − (3.15)
Aplicando na Equação (3.15) à formula binomial,
( ) ( ) ( ) ( ) ( )1 2 1 2 1 20 0
l l
l l m m m l mm m
I z z I z I z I z I z− −= =
+ = =∑ ∑ (3.16)
tem-se:
( ) ( ) ( ) ( ) ( )' '0
j
j c j c c c j m c c m cm
I z z I z z z z I z z I z z−=
− = − + − = − − ∑ (3.17)
Sucessivas expansões em torno do ponto fonte podem ser obtidas
expandindo ( )0l LI z z− em torno de um novo polo 'Lz e aplicando a fórmula
binomial apresentada na Equação (3.16), obtendo-se:
( ) ( ) ( ) ( ) ( )0 0 ' ' 0 ' '0
l
l L l L L L m L l m L Lm
I z z I z z z z I z z I z z−=
− = − + − = − − ∑ (3.18)
É importante notar que as expansões para polos intermediários apresentadas
nas equações (3.17) e (3.18) são exatas, portanto não incluem erros.
Γ
0z
Lz
'Lz
'czcz
z Ponto campo
Ponto fonte
Figura 4 - Esquema genérico de sucessivas expansões em torno dos pontos campo e
fonte para novos polos de expansão (Adaptado de Liu, 2009).
27
3.1.4. Aplicação FMM no CBEM
Retomando a Equação (2.14), e por simplicidade as forças de domínio b não
serão consideradas,
Hd = Gt (3.19)
Com a expansão da solução fundamental *u do lado direito da equação
(3.19), conforme apresentado na Equação (3.14), resulta em:
( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( )
*
00 0
, d
1 1 d
2
o
n nl
j l L c l L j cj l
u z z q z z
O z z I z z I z z q z zπ
Γ
+= =Γ
Γ =
− − − − Γ
⌠⌡
∫
∑ ∑ (3.20)
Verifica-se que apenas os termos sublinhados são dependentes de z ,
portanto os demais termos podem ser retirados da integral, tal que:
( ) ( ) ( ) ( ) ( ) ( ) ( )*0
0 0
1, d 1
2
n nl
o j l L c l L j cj l
u z z q z z O z z I z z M zπ +Γ
= =
Γ = − − −
∑ ∑∫ (3.21)
onde ( )j cM z é o momento em torno ponto cz e dado pela expressão:
( ) ( ) ( ) ( )d , 0,1,2...j c j cM z I z z q z z jΓ
= − Γ =∫ (3.22)
O termo ( )j cM z é completamente independente de 0z , ou seja, pode ser
calculado independentemente do ponto fonte, desde que este esteja distante o
suficiente de z , de maneira que a integral só precise ser avaliada uma vez para
cada ponto campo, o que não é possível no método convencional dos elementos
de contorno. Para elemento constate, a Equação (3.22) pode ser integrada
analiticamente.
A expansão apresentada na Equação (3.22) recebe, na literatura, o nome de
‘Multipole Expansion’. Esta é referente à expansão do ponto campo para o polo
mais próximo a este.
Sucessivas expansões em torno do ponto campo são possíveis. Estas são
associadas à expansão da variável ( )j cI z z− em torno de outro polo 'cz ,
conforme foi mostrado anteriormente, resultando na expressão:
28
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( )
' '
'0
'0
d
d
j c j c
j
j p c c p cp
j
j p c c p cp
M z I z z q z z
I z z I z z q z z
I z z M z
Γ
−=Γ
−=
= − Γ
= − − Γ
= −
⌠⌡
∫
∑
∑
(3.23)
onde ( )p cM z é o momento dado pela Equação (3.22). Esta equação pode ser
aplicada de maneira recursiva para expansões entre polos campo, onde estas
expansões foram denominadas na literatura de ‘Moment-to-Moment (M2M)
Translation’.
A Equação (3.21) é comumente apresentada na forma
( ) ( ) ( ) ( ) ( )*0
0
1, d
2
n
o l L l Ll
u z z q z z L z I z zπΓ
=Γ = −∑∫ (3.24)
onde ( )l LL z representa a translação das expansões de um polo campo para um
polo fonte. Na literatura esta é denominada ‘moment-to-local translation’ (M2L),
e definida como
( ) ( ) ( ) ( )0
1n
ll L j l L c j c
j
L z O z z M z+=
= − −∑ (3.25)
Para sucessivas expansões em torno do ponto fonte, expande-se a variável
( )0l LI z z− da Equação (3.24) em torno de um polo Lz ′ próximo ao ponto fonte,
conforme foi mostrado anteriormente na Equação (3.18), resultando na expressão:
( ) ( ) ( ) ( ) ( )*' 0 '
0
1, d
2
n
o l L l Ll
u z z q z z L z I z zπΓ
=Γ = −∑∫ (3.26)
onde
( ) ( ) ( )'
n
l L l m L L m Lm l
L z I z z L z′ −=
= −∑ (3.27)
Esta translação é chamada de ‘local-to-local translation’ (L2L) e pode ser aplicada
recursivamente para sucessivas expansões em torno do ponto fonte.
A expansão da solução fundamental em termos de fluxo pode ser
facilmente obtida pela expansão da solução fundamental em termos de potencial
apresentada na Equação (3.14):
29
( ) ( ) ( )
( ) ( ) ( ) ( )
**
0 11 0
11
2
oo
n nl
j l L c l L j cj l
u z zq z z z
z
O z z I z z I z z
η
π + −= =
∂ −− =
∂
= − − − −
∑ ∑ (3.28)
Substituindo a solução fundamental na integral do lado esquerdo da Equação
(3.19), tem-se
( ) ( ) ( )
( ) ( ) ( ) ( )
*
01 0
d
1 1
2
o
n nl
j l L c l L j cj l
q z z d z z
O z z I z z M zπ
Γ
+= =
− Γ =
− − −
∫
∑ ∑ (3.29)
onde ( )j cM z é a ‘multipole expansion’ da matriz H, expresso por:
( ) ( ) ( ) ( ) ( )1 dj c j cM z z I z z d z zη −Γ= − Γ∫ (3.30)
Todas as translações apresentadas anteriormente para o cálculo da matriz G
são válidas para a matriz H.
Na Figura 5 estão esquematizadas todas as expansões citadas anteriormente. Os
nós iz representam os nós dos elementos onde se deseja avaliar a resposta
(deslocamento, temperatura) causada por pontos fonte 0 jz , distante o suficiente.
kLz e kc
z representam os polos relacionados aos pontos fonte e campo,
respectivamente.
6z5z
4z
3z
2z
1z
cz
Lz
2cz
1cz
1Lz
2Lz
10z
20z
30z
40z
50z
60z
Multipole expansion
Moment-to-Moment translations (M2M)
Moment-to-Local translation (M2L)
Local-to-Local translation (L2L)
Figura 5 - Esquema das expansões. Na legenda, encontram-se a referencia as equações
empregadas para cada expansão.
30
3.1.5. Algoritmo
A seguir será apresentado um resumo do algoritmo para um problema de
potencial empregando o FMBEM proposto por Nishimura e Liu (2006), e melhor
desenvolvido em Liu (2009). Recomenda-se a leitura de Beatson e Greengard
(1997), onde são explicados cuidadosamente alguns conceitos importantes à
técnica ‘fast multipole’ que são empregados na implementação do método.
O algoritmo proposto inicia com a discretização do contorno.
Posteriormente, cria-se uma estrutura hierárquica que será utilizada como
parâmetro para os polos de expansão, bem como para determinar a distância entre
os elementos. Em seguida, calcula-se o vetor y do lado direito da Equação (2.20)
pelo FMBEM, que se resume a dois procedimentos denominados por Liu (2009)
de upward pass e downward pass. Em seguida, dá-se inicio ao cálculo do vetor
equivalente à multiplicação Ax , apresentada na Equação (2.20). Os coeficientes
do vetor de incógnitas serão provenientes da iteração anterior. No caso de ser a
primeira iteração estes virão de uma matriz de pré-condicionamento.
Os subtópicos apresentados a seguir irão descrever os passos do algoritmo
proposto por Liu (2009).
3.1.5.1. Discretização do contorno
O primeiro passo do algoritmo é a discretização do contorno, que se dá da
mesma forma que para o CBEM. Para o exemplo a seguir o contorno foi
discretizado com elementos constantes, conforme o contorno apresentado na
Figura 6.
Figura 6 - Discretização do contorno com o uso de elementos constantes (LIU, 2009).
31
3.1.5.2. Geração da estrutura de árvore
A geração de uma estrutura hierárquica como a que será descrita a seguir é
de extrema importância para o FMM, uma vez que irá ser responsável pela
determinação do critério de distância entre os pontos fonte e campo, distância esta
que está diretamente ligada ao erro.
Para a criação desta estrutura, deve-se considerar um quadrado de
dimensões suficientes para englobar o contorno em estudo. Este quadrado inicial
representa o nível zero, no qual existe apenas uma célula, e pela subdivisão deste
surgirão os demais níveis e células.
Estas subdivisões ocorrem sempre dividindo os quadrados maiores em
quatro novos, e só se encerram quando o número de elementos por célula for
menor ou igual ao pré-estabelecido. Para o exemplo apresentado foi considerado
que as células devem ser subdivididas até que cada uma contenha apenas um
elemento.
Por definição, um elemento pertence à célula que contem o seu centro, no
caso do elemento constante será a célula que contem o nó. As células que não
apresentam células filhas são chamadas de folhas, enquanto que as células que não
contém elementos são chamadas de células vazias. Na Figura 7 está apresentada a
estrutura hierárquica de células englobando todos os elementos utilizados na
discretização do contorno. As células cinza representam as folhas e as brancas
representam as células vazias. A estrutura hierárquica proveniente destas divisões
está esquematizada na Figura 8.
32
Figura 8 - Estrutura hierárquica das células apresentadas na Figura 7. Os quadrados na
cor cinza estão representando as folhas. (Liu, 2009)
Figura 7 - Estrutura hierárquica de células. O quadrado pequeno no canto inferior direito
apresenta o esquema de numeração das células filhas, independente do nível destas.
(Adaptado de Liu, 2009).
33
3.1.5.3. Upward pass
Neste passo, serão calculados todos os momentos relativos às expansões do
ponto campo. As expansões se iniciam com as ‘multipole expansions’, que são
realizadas a partir dos nós de cada elemento para o centro da sua folha. As
‘multipole expansions’ estão representadas na Figura 9 pelas setas de cor
vermelha, e são calculadas pela Equação (3.22).
Em seguida são efetuadas as translações M2M, calculadas pela Equação
(3.23). Estas translações são realizadas do centro da célula filha para o centro da
célula mãe e estão representadas na Figura 9 pelas setas em azul. As translações
M2M são realizadas recursivamente até que se alcance o nível máximo das
expansões, em geral, 2≥ℓ , visto que que nos níveis menores que 2 todas as
células são adjacentes. Desta forma, podem-se adotar valores máximos superiores,
mas não inferiores a 2.
34
3.1.5.4. Downward pass
De acordo com a proximidade entre uma célula fonte, célula portadora do
ponto fonte, e as demais células (células campo), são determinadas como as
iterações entre elas serão realizadas e em que nível elas irão ocorrer. Os elementos
campo pertencentes às células adjacentes terão a sua contribuição avaliada pelo
CBEM, enquanto os pertencentes às demais células serão avaliados com a técnica
de fast multipole.
Uma célula campo será considerada adjacente se esta compartilha ao menos
um vértice com a folha fonte. No caso de duas folhas em níveis diferentes, se a
célula mãe de uma delas compartilhar um vértice com a outra célula, estas folhas
são ditas adjacentes. Por definição, uma célula é sempre adjacente a ela mesma.
Neste passo, os momentos serão transladados do centro da célula mãe para o
polo no centro da célula fonte de mesmo nível não adjacente, para que
posteriormente, estes sejam entregues aos pontos fonte.
Figura 9 – Upward pass: Multipole expansions e translações M2M. Os quadrados
representam o centro de cada folha e os triângulos e as cruzes representam o centro
das células mães no nível 3 e 2, respectivamente. (Adaptado de Liu, 2009).
35
Primeiramente, serão realizadas as translações M2L, dos polos campo no
nível máximo de expansão, no exemplo estudado 2=ℓ , para o polo da célula
fonte de mesmo nível (Figura 10). Posteriormente, procura-se por elementos não
adjacentes no nível seguinte ( )1l + e realizam-se as translações destes para o
centro da célula fonte de mesmo nível, e assim sucessivamente, até que todas as
células não adjacentes tenham os seus momentos transladados.
Ao término das translações M2L, se iniciam as translações L2L, que irão
transladar os momentos do centro da célula mãe para o da célula filha, até que se
alcance o centro da folha, onde será realizada a ultima translação L2L do centro
da folha para o nó do elemento e serão somadas as contribuições das células
calculadas pelo CBEM.
Figura 10 - Esquema das translações M2L e L2L. A célula na cor cinza representa a
folha a qual o nó fonte 29 pertence. (Liu, 2009)
3.1.5.5. Resolvedor iterativo de sistemas
Os procedimentos descritos anteriormente estão integrados a um resolvedor
iterativo de sistemas de equações, responsável por fornecer o vetor com as
incógnitas x do sistema =Ax y . Ao termino de cada iteração, o vetor x é
atualizado e os passos descritos anteriormente são executados novamente a partir
do upward pass. Na primeira iteração, o vetor x é proveniente de uma matriz pre-
condicionadora.
36
4 Método ‘fast multipole’ para uma solução fundamental genérica (GFMM)
Neste capítulo será apresentada uma formulação genérica do FMM 2D,
introduzida por Dumont e Peixoto (2014). Esta se difere da apresentada no
capítulo 3 por ser aplicável diretamente para qualquer solução fundamental, ao
contrário da formulação apresentada na literatura, que necessita do
desenvolvimento de uma técnica de expansão para cada tipo de solução
fundamental.
4.1.Definições básicas
0z z− = diferença entre o ponto fonte 0z e o ponto campo z ;
cz = ponto a partir do qual se desenvolve a expansão da solução
fundamental em torno do ponto campo. Também são introduzidas expansões em
torno de polos mais distantes kcz , 1,2,... ck n= (onde, por definição 0 cc
z z≡ ,
sendo este o polo mais próximo ao ponto campo).
Lz = ponto a partir do qual se desenvolve a expansão em torno do ponto
fonte. Também são introduzidas expansões em torno de polos mais distantes lLz ,
1,2,... Ll n= (onde, por definição 0 LLz z≡ , sendo este o polo mais próximo ao
ponto fonte).
( )0f z z− representa uma solução fundamental genérica.
37
4.2.Expansão da solução fundamental
Seja uma solução fundamental ( )0f z z− definida em termos de números
complexos em um espaço 2D. A expansão em torno de um ponto n kcz próximo a
um ponto campo z e distante de um ponto fonte 0z (Figura 11) é dada por
( ) ( ) ( ) ( )( ) ( ) 1
0
1
!n n nk k k
n q nqo oc c c
i
f z z z z D f z z O z zq
+
=− = − − + −∑ (4.1)
onde ( ) ( )( ) ( )0n nk ko oc c
D f z z f z z− = − e ( ) ( )( )( ) ( )( )( )
nknk
nk
qoq c
o qc
oc
f z zD f z z
z z
∂ −− =
∂ −
A partir da notação introduzida por Dumont e Peixoto (2014), a Equação (4.1)
pode ser escrita na forma:
( ) ( ) ( ) ( )1 1
1n n nk k k
n n
o q q q oc c cq
f z z fac P z z Q z z O z z+ +
=− = − − + −∑ (4.2)
onde
1 1 1 1 ...0! 1! 2! 3!
fac =
(4.3)
( ) [ ]2 3 ...1P Z Z Z Z= (4.4)
( ) ( ) ( ) ( ) ( )2 3
2 3...
f Z f Z f ZQ Z f Z
Z Z Z
∂ ∂ ∂=
∂ ∂ ∂ (4.5)
Γ
nlLz
z
Ponto fonte
Polo próximo ao ponto fonte
nkcz
0z
Polo próximo ao ponto campo Ponto campo
Figura 11 - Esquema genérico da expansão do ponto campo em torno do polo e
da expansão do ponto fonte em torno de um polo próximo a este e distante do
ponto campo .
38
Na Equação (4.2), verifica-se que as variáveis relativas aos pontos campo e
fonte tornaram-se independentes, o que será de grande valor ao aplicar o FMM ao
BEM, conforme será visto adiante. Vale notar que o erro proveniente desta
expansão está associado à distância entre o ponto campo z e o polo de expansão.
A solução fundamental ( )0f z z− pode ser expandida em torno de um
ponto Lz próximo ao ponto fonte 0z e distante do ponto campo z (Figura 11).
Esta expansão envolverá apenas a parcela ( )nki ocQ z z− , uma vez que é a única
parcela em função do ponto fonte. A expansão desta parcela resulta em
( ) ( ) ( )( )( ) ( ) ( )( ) ( ) 1
0
1
!
n nk k
nl n nl nlk
qq o oc c
n j nq jo oL L Lc
j
Q z z D f z z
z z D f z z O z zj
++
=
− = −
= − − + −∑ (4.6)
que pode ser escrita na forma:
( ) ( ) ( ) ( )1 1
11
n nl n nl nlk k
n n
q o q q o q j oL L Lc cj
Q z z fac P z z Q z z O z z+ +
+ −=
− = − − + −∑ (4.7)
Substituindo a expansão apresentada anteriormente na Equação (4.2),
obtém-se:
( ) ( ) ( ) ( )
( ) ( )
1 1
11 1
1 1
n n
o q q c j j L o q j c Lq j
n nc L o
f z z fac P z z fac P z z Q z z
O z z O z z
+ +
+ −= =
+ +
− = − − −
+ − + −
∑ ∑ (4.8)
Vale notar que o erro proveniente desta expansão está associado à distância
entre o ponto campo z e o ponto fonte 0z com os seus respectivos polos de
expansão, o que ressalta a importância dos polos estarem próximos aos pontos que
são expandidos para ele.
É de extrema importância notar que o vetor ( )Q Z é o único que depende da
solução fundamental ( )of z z− , sendo facilmente obtido através de derivação,
conforme apresentado na Equação (4.5), mostrando o poder desta formulação no
que diz respeito a sua generalização para diversos problemas.
39
4.3.Expansões sucessivas
Sucessivas expansões em torno dos pontos fonte e campo envolvem apenas
a expansão do vetor ( )P Z , uma expansão exata. Para expansão do ponto campo
z em torno de um novo ponto kcz , tem-se:
( ) ( ) ( )1 1, 1 11
k k k k
q
q j q j j q jc c c cj
P z z C P z z P z z− −+ − + −=
− = − −∑ (4.9)
onde ( )1k kc cP z z− − é avaliado com relação à distância entre dois polos de níveis
consecutivos. ( )1kcP z z −− é avaliado recursivamente pela Equação (4.9) até que
1 0kc cz z− = , ou seja, que este seja equivalente à expansão entre o ponto campo e
seu polo mais próximo. qjC é uma matriz de constantes.
1, , 1
1 se 1 ou 1qj
q j q j
p jC
C C− −
= == + (4.10)
A expansão sucessiva em torno do ponto fonte se escreve como
( ) ( ) ( )1 1, 1 11
k k k k
q
q o j q j j o q jL L L Lj
P z z C P z z P z z− −+ − + −=
− = − −∑ (4.11)
onde ( )1k kL LP z z −− é avaliado com relação à distância entre dois polos de níveis
consecutivos. ( )1kcP z z −− é avaliado recursivamente pela Equação (4.11) até que
1 0kL Lz z− = , ou seja, que este seja equivalente a expansão entre o ponto fonte e
seu polo mais próximo. qjC é a matriz de constantes definida na Equação (4.10).
4.4.Aplicação do GFMM no BEM para um problema de potenc ial
Nesta seção será aplicado o GFMM ao BEM para um problema de potencial
2D. Ao longo dos desenvolvimentos serão explicadas as vantagens da aplicação
das expansões apresentadas anteriormente neste capítulo.
40
4.4.1. Desenvolvimento
Para um problema de potencial a matriz G do CBEM é calculada, em
coordenadas complexas, na forma:
( ) ( ) ( )* dml m o lG u z z t z zΓ
= − Γ∫ (4.12)
onde ( )*0mu z z− representa a solução fundamental em termos de potencial, ( )lt z
é função de interpolação do fluxo e ( )zΓ é o contorno sobre o qual será realizada
a integração. O subscrito m refere-se ao nó no qual está o ponto fonte e l faz
referência ao ponto campo onde será avaliado o efeito de uma fonte unitária no nó
m .
Substituindo nesta equação a solução fundamental com as expansões em
torno do ponto campo (4.2),
( ) ( ) ( ) ( )1
1
dnk nk
n
ml l q q q oc cq
G t z fac P z z Q z z z+
=Γ
= − − Γ⌠⌡
∑ (4.13)
onde
( ) ( ) 2 3
1 1 1 2ln
2qQ z zz z zπ
= − − ⋯ (4.14)
A partir da Equação (4.13), observa-se que apenas os termos sublinhados
são dependentes do ponto campo z , ou seja, estes são os únicos termos a serem
integrados sobre o elemento. Por tanto, os demais podem ser retirados da integral,
resultando em:
( ) 1
1nk
n
qlml q q ocq
G fac Q z z G+
== −∑ (4.15)
com
( ) ( ) ( )dnkql q lcG P z z t z z
Γ= − Γ⌠⌡
(4.16)
onde o índice q faz referência ao índice do somatório apresentado na Equação
(4.13). Esta integração está desenvolvida na seção 4.4.2.
A Equação (4.15) mostra uma das grandes vantagens da aplicação do FMM
ao BEM. A separação das variáveis relativas aos pontos campo e fonte permite
que as integrais sejam avaliadas apenas uma vez para cada ponto campo,
41
independentemente do ponto fonte, desde que estes estejam suficientemente
distantes uns dos outros. O critério de distância será abordado posteriormente.
Caso sejam consideradas expansões em torno do ponto fonte, a Equação
(4.15) passa a se apresentar como
( ) ( ) 1 1
11 1
nl n nlk
n n
qlml i j j o q jL Lcq j
G fac fac P z z Q z z G+ +
+ −= =
= − −
∑ ∑ (4.17)
onde nkcz e nlL
z se referem aos polos campo e fonte, respectivamente, mais altos
da expansão. Esta equação é obtida pela expansão do vetor ( )Q z com relação ao
ponto fonte, conforme foi apresentado na Equação (4.7).
Para aplicação do FMM no cálculo da matriz H é necessário a expandir a
solução fundamental em termos de fluxo. A expressão, em coordenadas
complexas, para o cálculo da matriz H, para um problema de potencial,
( ) ( ) ( ) ( )* dmf m o fH q z z z u z zηΓ
= − Γ∫ (4.18)
onde ( )*m oq z z− representa a solução fundamental em termos de fluxo, ( )fu z é
função de interpolação do potencial e ( )zΓ é o contorno sobre o qual será
realizada a integração. O subscrito m refere-se ao nó no qual está o ponto fonte e
f ao ponto campo.
A expansão da solução fundamental em termos de fluxo pode ser facilmente
obtida pela forma truncada da expansão da solução fundamental em termos de
potencial apresentada na Equação (4.2):
( ) ( ) ( )
( ) ( )
**
2
1 1 02
n nk k
oo
n
q q qc ci
u z zq z z z
z
fac P z z Q z z
η
+
− −=
∂ −− =
∂
= − −∑ (4.19)
Substituindo a Equação (4.19) na (4.18), obtém-se:
( ) ( ) ( ) ( ) ( )2
1 1 02
dn nk k
n
mf q q q fc cq
H fac P z z Q z z z u z zη+
− −=Γ
= − − Γ⌠⌡∑ (4.20)
Uma vez que apenas os termos sublinhados são dependentes de z , devendo
ser integrados ao longo do elemento, os demais termos podem ser retirados da
integral, resultando em
42
( ) 2
1 02
nk
n
qfmf q q cq
H fac Q z z H+
−=
= − ⋅∑ (4.21)
com
( ) ( ) ( ) ( )1 dnkqf q fcH P z z z u z zη−
Γ= − Γ⌠⌡
(4.22)
onde o índice q faz referência ao índice do somatório apresentado na Equação
(4.21). Esta integração está desenvolvida na seção 4.4.2.
A partir da Equação (4.21) nota-se que, assim como para o cálculo da matriz
G, a separação das variáveis relativas aos pontos campo e fonte permite que as
integrais sejam avaliadas uma vez para cada ponto campo, independentemente do
ponto fonte, desde que estes estejam suficientemente distantes daqueles.
Caso sejam consideradas expansões relacionadas ao ponto fonte, a Equação
(4.21) passa a se apresentar como
( ) ( )2 1
1 12 1
nl n nlk
n n
qfmf q j j o q jL Lcq j
H fac fac P z z Q z z H+ +
− + −= =
= − −∑ ∑ (4.23)
Na Figura 12 são apresentados dois esquemas. O primeiro com expansões
em torno do ponto fonte e o segundo sem estas expansões.
Figura 12 - Esquema das expansões. Cada linha representa uma parcela da expansão.
O esquema a direita representa as expansões considerando expansões do ponto fonte
e o da direita não às considera.
6z5z
4z
3z
2z
1znlL
z11L
z
( )Vetor (Expansão entre o ponto fonte e o seu polo mais próximo)P Z
, Parcelas H G
( )Q Z
( )Vetor (Sucessivas expansões do ponto campo)P Z
( )Vetor (Sucessivas expansões do ponto fonte)P Z
nkcz
4z5z6z
60z
11
cz
12
cz
1z
2z
3znkcz
11
cz
12
cz2
1Lz
40z
50z
30z
20z
10z
10z
20z
30z
40z
50z
60z
43
4.4.2. Integração no GFMBEM
Como visto anteriormente, apenas as parcelas G e H serão integradas ao
longo do contorno. Por conveniência, equações (4.16) e (4.22) serão reescritas a
seguir:
( ) ( ) ( ) ( ) ( ) ( ) ( )1
d ,
d
seg
seg
ql q c l
qf q c f
G P z z t z z
H P z z z u z zη
Γ
−Γ
= − Γ
= − Γ
∫
∫ (4.24)
Nestas equações z representa a geometria do segmento a ser integrado, expressa
em coordenadas complexas na forma:
( ) onde 1 ... k kz N z k teξ= = (4.25)
onde kN representa as funções de forma do nó k , kZ representa as coordenadas
complexas do nó k e os índices repetidos têm o significado de somatório.
Na parcela relativa à matriz H, ( )fu z surge da interpolação dos potencias
( )u z ao longo do contorno: ( ) ( )f fu z u z d= , tendo esta equação suporte local e
fd representa os valores nodais do potencial. Em uma representação
isoparamétrica, os valores de potencial serão representado pelas mesmas funções
que definem a geometria.
O vetor unitário normal ao contorno é representado, em coordenadas
complexas,
( ) ( )( ) ( )d1 d 1
d dl l l lN z N zz
zJ J J
ξ ξη
ξ ξ′
= = =
(4.26)
onde lN ′ representa a derivada da função de forma do nó l e J é o Jacobiano que
será cancelado com proveniente da mudança para a variável paramétrica, tal que
d dJ ξΓ = .
Para integração da parcela G , as funções de forma usuais lt , apresentadas
na Equação (4.16), serão substituídas por ( )em l lt J J , conforme a Equação
(2.19).
44
No contexto do GFMBEM, esta substituição se prova valiosa, uma vez que
o integrando apresentado na Equação (4.24) passa a ser inteiramente polinomial,
independentemente da ordem do elemento, o que não seria possível ao se lidar
com elementos cúbicos e quadráticos.
Com as considerações expostas acima, a parcela G e H passa a se
apresentar na forma:
( )( ) ( ) dql q k k c l lG P N z z N J
ξξ ξ ξ= −∫ (4.27)
( )( ) ( ) ( )110
dqf q k k c l l fH P N z z N z Nξ ξ ξ ξ− ′= −∫ (4.28)
estas integrações são inteiramente polinomiais e independentes da solução
fundamental, podendo inclusive ser previamente calculadas analiticamente,
característica essa que será explorada no tópico a seguir. Nas equações acima, os
índices repetidos têm significado de somatório.
4.4.3. Tabelas de Integração
Conforme foi visto anteriormente, as integrações necessárias para o cálculo
das matrizes G e H se tornam independentes dos pontos fonte, podendo ser
calculadas apenas uma vez para cada ponto campo. Além disto, as integrações
passam a ser polinomiais, uma vez que envolvem basicamente os vetores ( )P ξ e
( )N ξ .
Uma vez que as integrações são polinomiais, estas passam a apresentar
soluções analíticas, não necessitando do emprego de integrações numéricas, como
no caso do CBEM. A partir disto, Dumont e Peixoto (2014) propuseram a
utilização de tabelas de integrações, as quais fornecem o resultado das parcelas
G e H apresentadas nas Equações (4.16) e (4.22). Uma vez que o vetor ( )P z é
completamente independente da solução fundamental, estas tabelas podem ser
utilizadas independentemente da natureza do problema estudado.
Foram desenvolvidas tabelas de integração para elementos lineares,
quadráticos e cúbicos integrados no intervalo [ ]0,1 . As funções de forma de cada
um destes elementos definidas no intervalo [ ]0,1 , são
45
[ ]2 2 2
3 2 3 2 3 2 3 2
2 3 1, 4 4 , 2
9 11 27 45 27 9 9 99 1, 9 , 18 ,
2 2
1 ,
2 2 2
2 2 2
l
q
c
N
N
N
ξ ξ ξ ξ ξ ξ
ξ ξ ξ ξ ξ ξ ξ ξ ξ ξ
ξ
ξ ξ
ξ
− + − + −
− + − + − + − + − − +
= −
=
=
(4.29)
onde os índices l, q e c significam linear, quadrático e cúbico, respectivamente,
e suas derivadas são:
[ ][ ]
2 2 2 2
4 3, 8 4, 4 1
27 11 81 81 9 2718 , 45 9, 36 , 9 1
2 2
1, 1
2 2 2 2
l
q
c
N
N
N
ξ ξ ξ
ξ ξ ξ ξ ξ ξ ξ ξ
− − + −
− + − − + −
′ = −
′ =
′ = + − −
+
(4.30)
A partir das Equações (4.27) e (4.28), pode-se notar que os termos a serem
integrados são polinômios da diferença entre as coordenadas nodais para o polo
mais próximo ( 0cz ). Portanto são introduzidas as variáveis j∆ ,
0 , com 1... 1j j cz z j oe∆ = − = + (4.31)
onde o índice j faz referencia ao nó do elemento e oe refere-se à ordem do
elemento, podendo ser igual a 1, 2 ou 3 para elemento linear, cúbico ou
quadrático, respectivamente. Na Figura 13 está apresentado um esquema para
facilitar a compreensão do uso da variável j∆ , exemplificado para o caso de um
elemento cúbico.
Os únicos dados de entrada necessários para obter o resultado da integração
são as variáveis i∆ . As tabelas de integração irão fornecer na forma de um vetor o
resultado da integração das parcelas G e H , sendo que no caso da primeira
ainda será necessário multiplicar este vetor por ( )em lJ .
46
Figura 13 - Elemento isoparamétrico cúbico e o polo de expansão (Peixoto, 2014).
0cz
03 3 cz z∆ = −
02 2 cz z∆ = −
01 1 cz z∆ = −
04 4 cz z∆ = − 4z
3z
2z
1z
47
5 Implementação computacional do GFMBEM
Nesse capítulo será apresentado o algoritmo desenvolvido empregando o
GFMBEM. Esta implementação tem por objetivo desenvolver um algoritmo para
um problema com milhões de graus de liberdade, mas está ainda em um estágio
inicial, tendo neste momento o seu foco no estudo do GFMM.
Neste estágio, o GFMM não foi integrado a um resolvedor iterativo,
portanto ao invés de se buscar a solução do sistema de equações representado pela
Equação (2.20), deseja-se calcular os vetores Hd e Gt da Equação (2.14) para
valores conhecidos de d e t.
O presente desenvolvimento é baseado em distâncias topológicas entre os
elementos de contorno, ao invés de distâncias geométricas (como apresentado na
literatura). E foi desenvolvido para elementos lineares, quadráticos e cúbicos,
particularizado para elementos constantes.
O algoritmo proposto, embora apresentado para um problema de potencial,
pode ser modificado para outros problemas. As modificações necessárias se
resumem à modificação do vetor de derivadas ( )Q Z , que é a única parcela
dependente da solução fundamental, além do procedimento que calcula os
elementos adjacentes pelo CBEM.
5.1.Implementação computacional
Nesta seção serão apresentados todos os procedimentos envolvidos na
implementação desenvolvida. O algoritmo pode ser dividido em três etapas. A
primeira delas envolve cálculos preliminares relacionados à técnica ‘fast
multipole’, a segunda está relacionada à discretização da malha e a terceira
envolve uma série de procedimentos que são chamados recursivamente. Como
dado de saída do algoritmo são obtidos os vetores Hd e Gt .
48
A etapa relacionada aos cálculos preliminares do GFMM envolve
basicamente o cálculo do vetor fac definido na Equação (4.3), da matriz de
constantes C definida na Equação (4.10) e o pré-cálculo do vetor das derivadas
da solução fundamental ( )Q Z definido na Equação (4.5). Estes são calculados
inicialmente por dependerem apenas do número de termos de expansão da série e
da solução fundamental.
A segunda etapa envolve o refinamento da malha, feito no presente
algoritmo numa discretização hierárquica, como apresentado na seção 5.1.1.
A terceira etapa será apresentada na seção 5.1.2, pelo algoritmo unificado
para as expansões do GFMM. As expansões serão realizadas utilizando um
conceito de elementos pais e filhos, provenientes dos refinamentos. Este conceito
pode ser associado ao conceito de células mães e filhas apresentado na Seção
3.1.5.
5.1.1. Refinamento hierárquico da malha
O algoritmo deste procedimento está apresentado no Apêndice 1, e aqui será
discutida a sua ideia geral. Este procedimento consiste em discretizar um contorno
em nv níveis de refinamento, além do inicial. A cada nível de refinamento (k ),
cada elemento é subdividido em dois novos.
Como dado de entrada deste procedimento, deve-se determinar a geometria
da estrutura a partir de uma malha inicial, a qual deve ser fornecida em termos do
menor número de macroelementos possível. Para facilitar o entendimento, como
exemplo será utilizado um quadrado. Cada lado do quadrado representa um
macroelemento, nomenclatura que será empregada para se referir aos elementos
no nível de menor refinamento ( 1k = ). Uma vez determinada a geometria da
estrutura, esta será refinada com a subdivisão de cada macroelemento em dois
novos. A cada subdivisão são armazenadas as coordenadas nodais e uma nova
matriz de incidência cinemática.
Na Figura 14(a) está representada a geometria determinada inicialmente,
definida por quatro macroelementos lineares, bem como a numeração dos
elementos e dos nós, enquanto na Figura 14(b) está representado o mesmo
contorno em um nível imediatamente acima de refinamento ( 2k = ), juntamente
49
com a numeração dos novos nós e dos elementos filhos. É válido notar que os
elementos obedecem a uma numeração por nível, enquanto os nós apresentam
uma numeração global, independente do nível.
Na Equação (5.1) está exemplificado o esquema de armazenamento das
matrizes de incidência e das coordenadas, respectivamente. No caso das matrizes
de incidência, estas são armazenadas em um vetor (inc), onde cada elemento deste
é uma matriz de incidência no nível de refinamento ( k ).
1 1
2 2
3 3
4 4
5 5
6 6
7
8
1 5
5 2
1 2 2 6
2 3 6 3
3 4 3 7
4 1 7 4
4 8
8 1
nó nó
nó nó
nó nó
nó nó
nó nó
nó nó
nó nó
nó
x y
x y
x y
x yinc Xgl Ygl
x y
x y
x y
x
= = =
7
8nóy
(5.1)
As coordenadas são armazenadas nos vetores Xgl e Ygl apresentados na
Equação (5.1). A cada refinamento estes vetores são expandidos com a criação de
novos nós.
As divisões dos elementos são sempre realizadas levando em conta a ordem
dos elementos (linear, quadrática ou cúbica) na qual o contorno foi discretizada
inicialmente. Portanto, a forma da estrutura é sempre mantida.
Um conceito importante que será utilizado ao longo deste trabalho é o de
microelemento, denominação adotada para elementos no maior nível de
Figura 14 - Esquema do refinamento hierárquico de uma malha de elementos lineares.
(a) Estrutura fornecida, ou seja, equivale à malha no menor nível de refinamento
(b) Estrutura no segundo nível de refinamento .
50
refinamento ( 1k nv= + ). Será visto que este conceito pode ser associado ao
mesmo conceito de folha empregado na literatura.
O número de elementos em cada nível de refinamento será armazenado em
um vetor denominado nek. Cada coeficiente deste vetor representa um nível de
refinamento:
[ ] [ ] 11 2knek k nek −= ⋅ (5.2)
De maneira similar, o número de nós por nível é armazenado no vetor nglk , dado
por:
[ ] [ ] 11 2knglk k oe nek −= ⋅ ⋅ (5.3)
onde k é o nível de refinamento e oe é a ordem dos elementos utilizados para
discretizar o contorno.
Na Figura 15 está representado o mesmo contorno da Figura 14(a), em
vários níveis de refinamento. Cada cor representa um determinado nível de
refinamento, conforme legenda apresentada. Este esquema será utilizado como
referência para exemplificar os conceitos e desenvolvimentos apresentados a
seguir.
1 2 3 4
Niveis de Refinamento
k k k k= = = =
11
1
1
2
2
2
3
3
65 73 8
4
32
29
31
30
28
20 19 1822 212324
4
25
26
27
16
15
13
14
7
8
4 2
4
3
5
6
7
8
17
9
11
10
14
12
13
15
16
9101112
56
Figura 15 - Esquema de Refinamento, considerando , resultando em um total de
níveis de refinamento.
51
5.1.2. Algoritmo unificado para as expansões do GFMBEM
Este algoritmo se refere a um grupo de procedimentos que são executados
recursivamente dentro de um loop dos macroelementos (elementos no nível de
menor refinamento).
No Apêndice 2, está apresentado o algoritmo deste grupo de procedimentos,
sendo aqui discutida a sua ideia geral.
• Estrutura de adjacências
Uma vez que o contorno foi refinado, conforme descrito anteriormente, cria-
se uma estrutura hierárquica, uma espécie de árvore genealógica, dos
macroelementos campo com os seus filhos. Esta árvore pode ser comparada à
estrutura hierárquica apresentada na Figura 8. O procedimento responsável por
esta estrutura hierárquica também é responsável por executar todos os demais
procedimentos. Na Figura 16 está apresentada a estrutura hierárquica proveniente
do macroelemento 1 do contorno apresentado na Figura 15.
Juntamente com a estrutura hierárquica citada anteriormente, também é
criada uma lista de adjacências de cada elemento por nível de refinamento. Por
definição, todo elemento é adjacente a ele mesmo, de maneira que, para o caso
bidimensional, cada elemento apresenta três elementos adjacentes.
No intuito de exemplificar a criação das listas de adjacências, tomou-se
como exemplo o microelemento 8. Na Figura 17, o mesmo contorno apresentado
na Figura 14(a) é apresentado com quatro níveis de refinamento. Os elementos
pertencentes à estrutura hierárquica deste elemento aparecem hachurados com
(a) (b)
1k =
2k =
3k =
4k =
1k =
2k =
3k =
4k =
1
1
1
1
2
2 3
2 3
4
654 7 8
11 2
21
1 2 3 5
3 4
4 76 8
Figura 16 - (a) Macroelemento 1 e seus filhos. A numeração apresentada se refere aos
elementos. (b) Estrutura hierárquica do macroelemento 1.
52
pontos e os elementos adjacentes a cada elemento membro da desta estrutura
hierárquica aparecem na cor cinza.
Na Equação (5.4) está apresentado o vetor com a estrutura hierárquica do
elemento microelemento 8 (elsplit ) e a matriz de adjacências (elAdj) que
contém os elementos adjacentes em cada nível hierárquico, respectivamente.
1 1 2 4
2 1 2 3
4 3 4 5
8 7 8 9
elsplit elAdj
= =
(5.4)
Como mencionado no Capítulo 3, no FMM a interação entre pontos fonte e
campo se dá pela interação entre grupo de elementos. No caso do presente
trabalho, estas interações são realizadas a partir do conceito de elementos pais, em
contrapartida ao conceito de células usado na literatura, e o conceito de distância
1 2 3 4
Niveis de Refinamento
k k k k= = = =
1
1
1
1
2
2
2
3
3
65 73 8
4
32
29
31
30
28
20 19 1822 212324
4
25
26
27
16
15
13
14
7
8
4 2
4
3
5
6
7
8
17
9
11
10
14
12
13
15
16
9101112
56
Figura 17 - Esquema dos elementos adjacentes ao microelemento 8. Os elementos
pontilhados compõem a estrutura hierárquica do microelemento 8 e os na cor cinza são
os elementos adjacentes em cada nível de refinamento.
53
está diretamente associado à adjacência entre os elementos, utilizando-se da
topologia da estrutura, ao invés de calcular as distâncias de fato.
• Avaliação dos elementos adjacentes pelo CBEM
Uma vez criada a estrutura hierárquica apresentada anteriormente, e
exemplificada na Equação (5.4), para um dado microelemento, verifica-se quais
elementos fonte são próximos a este, devendo ter a sua contribuição avaliada pelo
CBEM.
A proximidade entre os elementos campo e fonte é definida pela variável
BEMk . Esta variável define em qual nível deve-se procurar por adjacências, sendo
a interação entre o elemento campo realizada com os filhos destes elementos
adjacentes.
Tomando novamente o microelemento 8 como exemplo, retornando à
Figura 17, e adotando BEMk nv= , tem-se que os elementos 3, 4 e 5 são
adjacentes, logo os seu elementos filhos 5, 6, 7, 8, 9 e 10, terão sua contribuição
avaliada com relação ao elemento 8 em termos de uma integração convencional.
É importante ressaltar que a estrutura criada é sempre em relação ao
elemento campo, e os elementos para os quais se verifica a adjacência são os
elementos fonte.
• Expansões do GFMBEM
No algoritmo desenvolvido, as expansões entre os elementos campo e fonte
com os seus respectivos polos serão sempre realizadas entre os elementos pais
com os seus filhos.
No caso dos elementos campo as expansões partem sempre do elemento
filho para o pai. A diferença de nível entre estes deve ser pré-determinada, e
definida pela variável childk . Na Figura 19, as expansões estão representadas para
diferentes valores desta variável, considerando um contorno discretizado em
elementos constantes. Desta forma, verifica-se que o número de filhos por
elemento, no contexto das expansões, será dado por:
2 childkcn = (5.5)
54
Independentemente da ordem do elemento empregado na discretização do
contorno, os polos sempre estarão localizados no centro dos elementos pais. Na
Figura 18 estão esquematizadas as expansões entre os pontos campo e os seus
polos mais próximos (representadas pelas linhas sólidas em vermelho) e as
expansões entre os polos campo (representadas pelas linhas tracejadas em preto),
considerando 1ch ildk = .
1
1
2
1 2 3 4
3 4 1
1 2
1
2
1 2 3 4 5 6 7 8
1
1
2
1 2 3 4
1k =
2k =
3k =
1k =
2k =
3k =
4k =
Figura 19 - Esquema de expansão dos polos de acordo com a variável . Os
losangos representam os nós geométricos dos elementos e os círculos os graus
de liberdade dos elementos constates (Peixoto, et al., 2015).
(a) Elemento constante
1k =
2k =
3k =
1k =
2k =
3k =
1k =
2k =
3k =(b) Elemento linear
1k =
2k =
3k =
(c) Elemento quadrático (d) Elemento cúbico
11
1 2 43
2
11
1 2 3 4
2
11
1 2 3 4
2
11
1 2 3 4
2
Figura 18 - Esquema das expansões dos pontos campo de acordo com a ordem dos
elementos, para . Os círculos em vermelho representam os polos (a) os círculos
representam os nós e os traços delimitam a geometria do elemento. (b), (c) e (d) Os nós
externos dos elementos estão representados por círculos e os internos por losangos.
55
No contexto do GFMBEM, quando se fala em expansões dos pontos campo,
refere-se ao cálculo dos vetores ( )P Z . A primeira expansão a ser realizada é
aquela entre o ponto campo (nó do elemento) e o polo mais próximo 0cz , na qual
se realiza a integração sobre os elementos, ou seja, esta equivale ao cálculo das
parcelas G e H apresentadas nas Equações (4.27) e (4.28). Esta expansão pode
ser comparada às expansões denominadas na literatura de ‘multipole expansion’.
As demais expansões que ocorrem entre polos campo são calculadas pela
Equação (4.9). Uma vez que estas nada mais são do que sucessivas expansões do
ponto campo, estas expansões podem ser comparadas as translações ‘moment-to-
moment’ (M2M). As expansões dos pontos campo se encerram quando a expansão
atinge o nível expk (nível pré-definido como o nível do polo de expansão mais
elevada).
O algoritmo desenvolvido permite que se decida se haverá ou não expansões
em torno do ponto fonte. No caso de não haver, as expansões são realizadas entre
o polo campo e os nós dos microelementos que atendem ao critério de distância,
sendo a expansão correspondente ao cálculo do vetor ( )Q Z , conforme definido
na Equação (4.5), e representado na Figura 20(b) pelas setas pretas tracejadas.
No caso de haver expansões em torno dos pontos fonte, o vetor ( )Q Z será
avaliado em relação aos polos dos elementos fonte e campo de mesmo nível que
atendem ao critério de distância e, posteriormente, são avaliadas as expansões
entre o polo fonte e os nós dos seus microelementos filhos, sendo esta expansão
representada pelo vetor ( )P Z , definido na Equação (4.4). Na Figura 20(a) a seta
preta pontilhada representa a expansão campo-fonte, referente ao vetor ( )Q Z e as
setas em verde representam as expansões entre os polos fonte e os pontos campo,
referente ao vetor ( )P Z .
Neste algoritmo, sucessivas expansões em torno do ponto fonte não fariam
sentido, uma vez que estas incluiriam operações desnecessárias à estratégia
adotada. Desta forma, as expansões do ponto fonte são realizadas sempre do polo
do elemento pai que recebe as expansões dos elementos campo distantes para os
nós dos microelementos.
56
O critério de distância das expansões é definido por um conceito topológico
relativo à adjacência dos elementos. Desta forma, antes de se discutir este critério,
alguns conceitos relacionados à adjacência entre elementos devem ser
estabelecidos no intuito de facilitar a compreensão do desenvolvimento
apresentado ao longo deste capítulo:
• Elementos Adjacentes imediatos: elementos que são adjacentes no mesmo
nível de refinamento em que eles se encontram.
• Elementos adjacentes em um nível inferior: são elementos que não são
adjacentes no nível em que eles se encontram, mas são adjacentes em um
nível superior, ou seja, os seus elementos pais são adjacentes.
Tomando novamente o microelemento 8 como exemplo, verifica-se que os
microelementos 7 e 9 são imediatamente adjacentes, uma vez que estes estão no
mesmo nível do 8. Mas os elementos 3 e 5 no nível 3 são adjacentes ao seu pai
(elemento 4 no nível 3), portanto, adjacentes ao microelemento 8 no nível
imediatamente inferior.
No caso de haver expansões em torno dos elementos fonte, as expansões
entre os elementos campo e fonte são sempre realizadas entre os polos de
elementos pertencentes a um mesmo nível k , que não são adjacentes imediatos,
mas que apresentam adjacência no nível ch ildk k− . Esta expansão é representada
pelo cálculo do vetor ( )Q Z segundo a Equação (4.5). Posteriormente, ocorrerão
as expansões dos polos fonte de mais alto nível para os nós dos microelementos
filhos do elemento ao qual o polo pertence e calculadas pelo vetor ( )P Z .
(b) (a)
Figura 20 - Esquema das expansões campo-fonte para um contorno discretizado em
elementos constantes considerando expansões (a) em torno do ponto campo e fonte (b)
apenas em torno do ponto campo. Os losangos representam os nós geométricos, os
círculos em azul os graus de liberdade e os em vermelho os polos de expansão;
1k=
2k=
3k =
4k =
1
1 221
1 2 3 5
3 4
4 76 8
1k=
2k=
3k =
4k =
1
1 221
1 2 3 5
3 4
4 76 8
57
No caso de não serem realizadas expansões em torno do ponto fonte, a
expansão será realizada diretamente para os nós dos microelementos filhos do
elemento que atendeu ao critério de distância para expansão. A parcela relativa à
expansão campo-fonte é calculada diretamente a partir do vetor ( )Q Z , conforme
definido na Equação (4.5).
Por exemplo, retomando a Figura 17, considerando um polo campo
pertencente ao elemento 4 no nível 3k = , este tem como adjacentes em um nível
superior ch ildk k− , considerando 1ch ildk = , os elementos 1, 2 e 3 no nível 2k = .
A partir destes elementos adjacentes no nível 2ch ildk k− = , buscam-se os filhos
que não apresentam adjacência imediata com o elemento 4 no nível 3k = . Desta
forma, têm-se como elementos não adjacentes imediatos os elementos 1, 2 e 6,
sendo a expansão realizada a partir do polo do elemento 4 para os nós de cada um
destes.
5.2.Execução do algoritmo
Nesta seção será apresentada a sequência de execução do algoritmo. Para
maiores informações, recomenda-se a leitura dos Apêndices 1 e 2;
1. Refinamento hierárquico da malha e criação das matrizes de incidência por
nível de refinamento, bem como a expansão dos vetores de coordenadas
(Equações (5.1));
2. Criação do vetor com a estrutura hierárquica (elsplit ) e a matriz de
adjacências (elAdj), partindo do macroelemento até o microelemento
( 1)k nv= + ;
3. Avaliação direta da contribuição dos elementos adjacentes no nível BEMk ;
4. Expansão do ponto campo para o polo do elemento pai no nível
1 childnv k+ − (Cálculo das parcelas e );
5. Verifica-se se todos os irmãos do elemento campo já foram expandidos para o
polo do elemento pai. Caso ainda não tenham sido, retorna-se para o
procedimento gerador de adjacências (passo 2), onde a matriz elAdj e o vetor
elsplit serão atualizadas para este novo elemento, e os passos 3, 4 e 5 serão
executados. Caso contrário o algoritmo segue para o passo 6;
58
6. Expansão entre os pontos fonte e campo no nível do polo atual da expansão,
correspondente ao cálculo do vetor ( )Q Z conforme a Equação (4.5);
7. Expansão entre o polo fonte e os pontos fontes dos microelementos filhos,
correspondente ao cálculo do vetor ( )P Z , conforme Equação (4.4);
8. Cálculo das contribuições para os vetores Hd e Gt . Se ainda houver
elementos que atendam o critério de distância para expansão, executam-se
novamente os procedimentos 6, 7 e 8. Caso contrário, o algoritmo segue para
o passo 9;
9. Caso tenha sido alcançado o nível máximo de expansão expk , buscam-se os
elementos fonte que ainda não foram avaliados e executam-se os
procedimentos 6, 7 e 8 para cada um destes, retornando para o passo 2 e
executando os passos seguintes para o próximo elemento campo. Caso
contrário, segue-se para o passo 10;
10. Expansão do polo campo para o polo do elemento pai. (Cálculo do vetor
( )P Z conforme a Equação (4.9) para expansões sucessivas);
11. Verifica-se se todos os elementos irmão ao elemento que foi expandido no
passo 10 já foram expandidos para o polo do elemento pai. Caso ainda não
tenham sido, retorna-se para o passo 2, onde o vetor elsplit e a matriz eladj
serão atualizados para o elemento irmão à este. Caso contrário, retorna-se
para os procedimento 6 e executam-se os passos seguintes;
O algoritmo encerra quando todas as interações entre pontos campo e fonte
tiverem sido avaliadas, e fornece como resultado os vetores Hd e Gt .
A sequência de execução descrita acima, leva em consideração a realização
de expansões em torno dos pontos fonte, no caso destas não serem realizadas, o
passo 7 deixa de existir e no passo 6, ao invés da expansão ser realizada para o
polo fonte, esta será realizada diretamente para os nós dos microelementos fonte.
6 Exemplos Numéricos para Problema de Potencial
Neste capítulo, serão apresentados exemplos numéricos para comparação da
eficiência do GFMBEM em relação ao CBEM, bem como da sua precisão. Os
resultados apresentados foram obtidos com o algoritmo desenvolvido para
problemas de potencial. Serão apresentados resultado para um contorno 1D, uma
vez que este se resume a integral sobre uma reta, apresentado, portanto, solução
analítica o que é uma grande vantagem para um estudo inicial da formulação.
Também serão apresentados exemplos de problemas 2D. Para o estudo do
problema 1D, utilizou-se um algoritmo particularizado desenvolvido em
linguagem Maple® e para os exemplos 2D utilizou-se o algoritmo desenvolvido
em linguagem C++, ambos executados em um computador desktop.
6.1.Exemplo unidimensional
A integral 0
ln dsx x x−∫ℓ
será avaliada ao longo de uma reta no intervalo
0 x≤ ≤ ℓ com o uso da técnica de ‘fast multipole’. O resultado analítico desta
integral é,
0
ln d ( ) ln( ) ln( )s s s s sx x x x x x x− = − − + −∫ℓ
ℓ ℓ ℓ (6.1)
onde sx representa a posição do ponto fonte. Esta integral equivale ao coeficiente
do vetor Gt avaliado no ponto fonte de posição , para um vetor t unitário.
A reta estudada representa um contorno discretizado inicialmente em apenas
um macroelemento, que será subdividido sucessivamente até um total de 4096
graus de liberdade, conforme indicado no eixo horizontal dos gráficos
apresentados na Figura 21 e Figura 22. Na Figura 21, são apresentados os erros do
algoritmo para diferentes níveis de refinamento e na Figura 22, tem-se o tempo de
execução do algoritmo. Em ambas as figuras o gráfico apresentado à esquerda
representa os resultados obtidos sem expansões em torno do ponto fonte e no da
sx
60
direita estas expansões foram realizadas. Verificou-se a influencia do número de
termos n utilizados para expandir a série, bem como a influencia do número de
elementos ligados a cada polo cn . O erro foi calculado pela norma,
Analitico
Analiticoε
−=
Gt (6.2)
onde Analitico é o vetor de resultados obtidos pela integração analítica dos
trechos. Cada coeficiente deste foi calculado segundo a Equação (6.1) para cada
ponto fonte.
A partir das Figura 21 e Figura 22 observa-se que o aumento do número de
termos da expansão proporciona uma melhora relativamente grande na precisão
do algoritmo, custando pouco em termos de eficiência no tempo de execução.
Verifica-se também que o aumento do número de filhos por elemento
influencia positivamente na precisão, isto se justifica pelo fato de que quanto
maior o número de filhos, maior é o número de elementos adjacentes – sendo
estes avaliados pelo CBEM.
Comparando os resultados com e sem expansão do ponto fonte, verifica-se
que a eficiência do algoritmo é reduzida com o acréscimo destas expansões, além
de afetar negativamente a precisão do mesmo. Desta forma, verificou-se que para
a estratégia de implementação adotada não há vantagem em realizar expansões em
Figura 21 - Erro do algoritmo desenvolvido para o caso sem expansão em torno do
ponto fonte (esquerda) e com expansão em torno deste (direita).
2 4 8c c cn n n= = = 5 7 9 11n n n n= = = =
61
torno do ponto fonte. Por esta razão, todos os demais exemplos apresentados ao
longo deste capítulo envolverão apenas expansões em torno do ponto campo.
Figura 22 – Tempo de execução do algoritmo sem expansão do ponto fonte (esquerda) e
com expansão do ponto fonte (direita)
Observou-se que ao se estudar o problema no qual não há expansão dos
pontos fontes os gráficos com valores de n pares sempre sobrepunhas os gráficos
com valores impares para n . Esta sobreposição decorre devido ao cancelamento
das linhas pares dos vetores ( )1P Z e ( )2P Z quando estes são somados no polo
do elemento pai.
Na Figura 23, estão esquematizadas as expansões dois elementos irmãos
para o seu pai, onde 1 2Z Z Z= − = e os vetores ( )1P Z e ( )2P Z , conforme
definido na Equação (4.4), são, respectivamente,
( ) [ ] ( ) [ ]2 3 2 31 1 2 2... e ...1 1P Z P ZZ Z Z Z Z Z= = − − (6.3)
No polo do elemento pai, os vetores ( )1 1P Z e ( )2 2P Z serão somados
resultando em,
Figura 23 - Esquema das expansões dos pontos campo.
5n =2cn =4cn =8cn =
analytical
2cn =5n =5n =
5n =7n =9n =11n =
analytical
2cn =4cn =8cn =
62
( ) ( ) 2 4 61 1 2 1 2 0 2 0 2 0 2 0 ...P Z P Z Z Z Z + =
(6.4)
Pela Equação (6.4) verifica-se que todos os coeficientes de índice par serão
anulados, desta forma não faz sentido utilizar números de termos pares, pois o
ultimo elemento destes sempre será zero. Isto decorre da simetria entre elementos
irmãos, de maneira que ele ocorrerá para todos os pares de elementos irmãos.
Entretanto, para o caso em que há expansão em torno do ponto fonte, esta
superposição não é mais observada, uma vez que para os vetores ( )P Z desta
expansão não são somados, não havendo o anulamento das linhas pares, e
consequentemente a inclusão de um termo influencia positivamente na precisão da
formulação.
6.2.Exemplos bidimensionais
Nos exemplos a seguir serão estudados problemas de potencial
bidimensionais. O estudo consiste na avaliação da Equação (3.19) pelo FMBEM
no intuito de validar o algoritmo proposto.
Resultados para o CBEM também serão apresentados para efeito de
comparação. As integrações necessárias ao CBEM foram realizadas
numericamente, adotando-se 10 pontos de integração.
Os erros apresentados nos gráficos a seguir foram calculados pela norma
Euclidiana,
ε−
=Hd Gt
Gt (6.5)
e o tempo de execução se refere ao tempo necessário para o cálculo dos vetores
Gt e Hd . Estes equivalem à multiplicação das matrizes G e H pelos vetores com
os valores nodais de fluxo t e potencial d , respectivamente.
Uma vez que o presente trabalho tem como objetivo o estudo do FMM de
maneira isolada, ou seja, sem o emprego de resolvedores, as incógnitas foram
calculadas pela solução analítica do problema.
63
6.2.1. Resultados para elementos constantes
O problema estudado refere-se a um quadrado dimensão 10x10, construído
com 4 macroelementos constantes, submetido a um potencial constante.
No lado esquerdo da Figura 24 está plotado o erro, segundo a norma
Euclidiana apresentada na Equação (6.5), para o cálculo dos vetores Gt e Hd
pelo CBEM e FMBEM para diferentes níveis de refinamento. No caso do
FMBEM, este é apresentado considerando diferentes combinações de cn e n . A
precisão tende aumentar com cn , devido ao maior número de elementos
adjacentes. Enquanto n tem uma influencia significativa nesta.
Figura 24 - Esquerda: erro do algoritmo calculado segundo a Equação (1.4) para um
contorno quadrado. Direita: tempo de execução do algoritmo para o contorno quadrado,
utilizando 2cn = (Peixoto, et al., 2015).
A Figura 24(direita) apresenta o tempo necessário para execução do
algoritmo para os mesmo exemplos utilizados para avaliação do erro. Porém,
nesta está representado o tempo de execução apenas para 2cn = , uma vez que
ocorreu sobreposição de boa parte das linhas, dificultando a visualização do
gráfico. Deste modo, observa-se que esta variável não influencia
significativamente no tempo de execução do algoritmo.
Com relação ao emprego de diferentes números de termos de expansão,
verifica-se que o tempo de execução do algoritmo não aumenta significativamente
com o acréscimo de termos. E com relação ao aumento do numero de graus de
64
liberdade, verificou-se, novamente, que o FMBEM se torna cada vez mais
vantajoso em relação ao BEM.
Ainda na Figura 24(direita), verifica-se através dos gráficos das funções
logN N e 2N , onde N representa o numero de graus de liberdade do problema,
que o tempo de execução do algoritmo para o CBEM é proporcional à 2N ,
enquanto o do FMBEM à logN N .
No intuito de melhor compreender a variação do erro, comparou-se os
coeficientes do vetor Gt calculado pelo FMBEM para 9n = e 2cn = com os
coeficientes calculados pelo CBEM. O erro foi calculado pela Equação (6.5).
Figura 25 - Erro por coeficientes do vetor Gt . Cada linha do gráfico representa um ponto
fonte.
Na Figura 25, observa-se que a maior concentração de erro ocorre no 8° e 9°
microelementos de cada lado do quadrado. Para o estudo do porque estes
elementos acumulavam um erro superior aos demais, fixou-se um ponto campo e
estudou-se o erro relativo a cada ponto fonte em relação a este.
Na Figura 26, está apresentado o erro para os resultados obtidos em relação
a cada ponto fonte, considerando apenas o microelemento 1 como ponto campo.
Pode-se perceber que a interação que acumula a maior parte do erro, é a com o
microelemento 56. Ao fixar o microelemento 2 como elemento campo, verifica-se
que o erro em relação ao elemento 56 diminui. O erro está diretamente associado a
distância entre o ponto campo com o polo campo para o qual este esta sendo
10 20 30 40 50 600
1
2
3
4
5
6
7x 10
-9
Source Points
Err
or
65
expandido e distância entre o ponto campo com o ponto fonte. O erro é
proporcional à:
( ) ( )1
0nk
n
cz z z z
+− − (6.6)
onde z é a coordenada do ponto campo,kcz é a coordenada do polo campo de
maior nível, polo do qual é realizada a expansão para o ponto fonte e 0z é a
coordenada do ponto campo.
Figura 26 - Erro por elemento fonte considerando apenas o nó do microelemento 1 como
ponto campo.
Desta maneira, verifica-se que apesar do elemento fonte 56 estar distante do
elemento 1, em comparação ao elemento fonte 57, por exemplo, este vai
apresentar um erro inferior em comparação aquele, uma vez que o elemento fonte
56 recebe interage com um polo de nível superior. Este estudo isolado foi
realizado para os demais elementos campo, pelo qual foi verificado que a maior
concentração de erro sempre acontece no 8° e 9° microelementos, justificando o
resultado apresentado Figura 25.
10 20 30 40 50 600
0.5
1
1.5
x 10-6
Source Points
Err
or
66
6.2.2. Resultados para elementos curvos
O quadrilátero deformado apresentado à direita da Figura 27 foi construído
a partir de 8 macroelementos quadráticos, que serão subdivididos sucessivamente,
sempre mantendo a geometria inicial, até um total de 8192 elementos quadráticos,
correspondente a 16384 graus de liberdade para a análise de um problema de
potencial. Este domínio irregular é submetido a um campo de potencial 2 2x y− ,
para o qual foram calculados os potenciais nodais d e gradientes normais t para
se realizar a analise da Equação (3.19) pelo FMBEM. As características
polinomiais do potencial aplicado, juntamente com a geometria irregular do
contorno fazem do problema um desafio para a simulação numérica.
No lado esquerdo da Figura 27, apresenta-se os resultados do estudo de
convergência do FMBEM combinando diferentes valores para 2, 4, 8cn = e n ,
além da comparação com os resultados obtidos pelo CBEM. Verifica-se que o
padrão de convergência é o mesmo do exemplo anterior, embora não seja
igualmente regular. Além disso, embora os erros relativos à discretização e à
expansão sejam pequenos desde o início, existe um limite que indica que não
adianta refinar a malha, visto que a partir deste ponto o erro é praticamente
constante. O tempo de execução necessário foi muito maior do que o para o caso
apresentado anteriormente, no qual a discretização foi feita em elementos
constantes, entretanto a convergência alcançada foi maior. Em comparação ao
CBEM, o tempo de execução do FMBEM se mostrou consideravelmente inferior.
‘
21 3
45
6
7
8
9
1011
1213
14
16
15
4− 22− 0 4 6 8 10 122−
0
2
4
6
8
10
12
6−
67
Figura 27 - Domínio quadrilateral distorcido para um estudo com elementos quadráticos
e resultados de precisão para diferentes números de filhos por polo de expansão e
termos de expansão (Peixoto, et al., 2015).
68
7 Conclusões e sugestões
7.1.Conclusões
No capítulo 5 foi apresentada uma nova estratégia para implementação do
FMM. Esta se diferencia da apresentada na literatura por empregar o FMM para
uma solução genérica, tal como proposto por Dumont e Peixoto (2014) e
apresentado no Capítulo 4. Desta forma, embora o algoritmo tenha sido
desenvolvido para um problema de potencial, este pode ser adaptado para
problemas com características vetoriais, como um de elasticidade. Outra
contribuição é a substituição das funções de forma usuais pelas apresentadas na
equação (2.19), conforme proposto por Dumont (2010), o que faz com que as
integrações se tornem inteiramente polinomiais, até mesmo para elementos de alta
ordem, o que permite que estas sejam integradas analiticamente.
O algoritmo desenvolvido também se diferencia dos apresentados na
literatura (Bapat e Liu, 2010) por utilizar distâncias topológicas, ao invés de
distâncias geométricas. Isto é feito através do algoritmo desenvolvido por Dumont
(2012) que toma proveito da discretização da malha para gerar a estrutura
hierárquica de adjacências. Conforme apresentado no Capítulo 5, a distância entre
os elementos é avaliada pela adjacência entre estes em um dado nível.
A partir dos resultados apresentados no Capítulo 6, observou-se que o
número de filhos associados a um polo influencia positivamente na redução do
erro, pelo fato de que quanto maior o número de elementos associados a um polo
maior será a quantidade de elementos adjacentes, logo haverá uma maior
quantidade de elementos avaliados por integração direta.
Com relação ao número de termos da expansão, verificou-se que o
acréscimo destes influencia significativamente na redução do erro, sem que haja
uma redução significativa na eficiência do algoritmo.
69
A implementação proposta se mostrou vantajosa em termos de eficiência
computacional quando comparada ao CBEM, conforme foi visto nos resultados
apresentados no Capítulo 6.
7.2.Sugestões para trabalhos futuros
Os seguintes tópicos podem ser abordados, em complementação a presente
dissertação:
• Implementação da técnica fast multipole ao Método Expedito dos
elementos de contorno (EBEM) no intuito de acelerar o processo
computacional.
• Desenvolvimento da estratégia apresentada do GFMBEM para o
caso 3D.
• Desenvolver uma técnica unificada para a determinação da distância
entre elementos que leve em consideração o critério topológico
desenvolvido no presente trabalho com uma estrutura hierárquica
que permita a avaliação de geometrias bastante irregulares.
8 Referências Bibliográficas
Bapat, M.S. e Liu, Y.J. 2010. A new adaptive algorithm for the fast multipole
boundary element method. CMES. 2010, Vol. 58, pp. 161-183.
Beatson, R. e Greengard, L. 1997. A short course on fast multiple methods.
Wavelets, multilevel methods and elliptic PDEs 1. 1997, pp. 1-37.
Brebbia, C. A. 1978. The boundary element method for engineers. Londres :
Pentech Press, 1978.
Dongarra, J. e Sullivan, F,. 2000. The top ten algorithms of the century.
Computing in Science and Engineering. 2000, Vol. 2, pp. 22-23.
Dumont. 2012. Unified algorithm for the generation of refined 2D surface
meshes. Comunicação interna. 2012.
Dumont, N. A. e Aguilar, C. A. 2012. The best of two worlds: The expedite
boundary element method. Engineering Structures. 2012, Vol. 43, pp. 235-244.
Dumont, N. A. e Peixoto, H. F. C. 2014. Application of the Hybrid Boundary
Element Method to Large-scale Problems Using a Fast Multipole Technique. 14th
Pan-American Congress of Applied Mechanics. 2014.
Dumont, N. A. 1987. The hybrid boundary element method. Southampton :
Computational Mechanics Publications, Springer-Verlag. 1987, pp. 125-138.
Dumont, N.A. e Aguilar, C.A. 2011. Three-dimensional implementation of the
expedite boundary element method. Procs. IABEM2011 -Symposium of the
International Association for Boundary Element Methods. 2011, pp. 113-118.
Dumont, N.A. 2010. The boundary element method revisited. Boundary Elements
and Other Mesh Reduction Methods XXXII, ed C. A. Brebbia.
Southampton:WITPress. 2010, pp. 277-238.
Greengard, L. e Rokhlin, V. 1987. A fast algorithm for particle simulations.
Journal of Computational Physics. 1987, Vol. 73, pp. 325-348.
Greengard, L. 1994. Fast Algorithms for Classical Physics. Science. Agosto de
1994, Vol. 265.
71
Kurz, S., Rain, O. e Rjasanow, S. 2009. Application of the adaptive cross
approximation technique for the coupled BE-FE solution of symmetric
electromagnetic problems. Computational mechanics 32.4-6, 2009, pp. 423-429.
Liu, Y. 2009. Fast multipole boundary element method, theory and applications
in engineering. New York : Cambridge University Press, 2009.
Liu, Y.J. e Nishimura, N. 2006. The fast multipole boundary element method for
potential problems: A tutorial. Engineering Analysis with Boundary Elements.
2006, Vol. 30, pp. 371–381.
Liu, Y.J., et al. 2011. Recent Advances and Emerging Applications of the
Boundary Element Method. Applied Mechanics Reviews. 2011, Vol. 64, Issue 3,
030802 (38 pp).
Nishimura, N. 2002. Fast multipole accelerated boundary integral equation
methods. Applied Mechanics Reviews, 55. 2002, pp. 299–324.
Oliveira, M.F.F.D. 2004. Métodos de Elementos de Contorno Convencional,
Híbridos e Simplificados. Dissertação de Mestrado - Departamento de
Engenharia Civil, Pontifícia Universidade Católica do Rio de Janeiro. 2004.
Peixoto, H.F.C. 2014. Um Estudo do Método Fast Multipole Aplicado a
Problemas de Elementos de Contorno. Dissertação de Mestrado - Departamento
de Engenharia Civil, Pontifícia Universidade Católica do Rio de Janeiro. 2014.
Peixoto, H.F.C., Novelino, L.S. e Dumont, N.A. 2015. Basics of a fast-multipole
unified technique for the analysis of several classes of continuum mechanics
problems with the boundary element. 2015.
Trevelyan, J. 1994. Boundary element for engineers: theory and applications.
Southampton : Computational Mechanics Publications, 1994.
9 Apêndice 1
Neste apêndice será apresentado o algoritmo unificado para o refinamento
hierárquico de um contorno bidimensional discretizado em elementos lineares,
quadráticos e cúbicos (Dumont, 2012). Um algoritmo correspondente a este para
problemas tridimensionais pode ser obtido em Dumont e Aguilar (2011).
9.1.A Unified algorithm for hierarchical mesh refinemen t
The following unified algorithm refines a given mesh of either linear,
quadratic or cubic elements, which are characterized as of type _ [ ]e ete T t o= ,
where
[ ]_ 2 3 4eT t = (8.1)
in terms of the element number oe. This is the most basic information to be input.
Then, te is the number of nodes of the element to be split in the mesh refinement.
In Equation (8.1), the entries correspond to linear, quadratic or cubic elements,
although it can be easily generalized to higher-order elements. As implemented,
only one element type can appear in a given mesh.
Figure 28 shows the schemes of the three different elements considered in
the present algorithm, as taken out of a general mesh corresponding to a given
level of refinement.
In the subdivision procedure the elements are split each into two sub-
elements. The nodes of each parent element are locally numbered 1 te… . There are
Figure 28 - Scheme of three different elements that are split each into two sub-
elements.
73
oe new generated nodes numbered sequentially according to the array
_ [ ]new newT T T oe= , where
[ ] [ ] [ ]_ 3 4 5 5 6 7newT T = (8.2)
The coordinates of the new nodes are given by _ [ ]new newC T C oe= , where
[ ] [ ] [ ]_ 0 1 2 1 2 2 3 0 2 3newT C = − − (8.3)
in natural curvilinear coordinate ξ , as represented in Figure 28, which spans the
interval [ 1,1]− .
The interpolation functions of the reference elements are given as
_ [ ]N T N oe= , where
[ ]2
2
2 2 2
1 1 ( 1) ( 1) (1 )(9_ 1,2,3 , , ,1 , ,
2 2 2 2 16
9(3 1)( 9(3 1)(1 (1 )(9, ,
16 1
1),
1) ) 1)
6 16
T Nξ ξ ξ ξ ξ ξ ξ ξξ
ξ ξ ξ ξ ξ ξ
−
−
− + − + − = −
− + − +
−
(8.4)
As outlined in the following, the procedure consists in subdividing each
element (the parent element) of a basic mesh-refinement level, thus creating new
nodes. An amount of _ [ ]new newN T N oe= nodes,
[ ]_ 1 1 2newT N = (8.5)
is generated in the splitting procedure. These nodes are numbered as
_ __ [ ]parent new parent newNumb T Numb oe= , where
[ ] [ ] [ ]_1 2
_ 1 2 3 1 1 1 22 3parent newT Numb
=
(8.6)
in the parent element, with each column referring to one of the generated
elements, as obtained from Figure 1. In the generated elements, these nodes are
referred to in terms of _ __ [ ]child new child newNumb T Numb oe= , where
[ ] [ ] [ ]_2 1
_ 1 2 3 2 1 2 24 3child newT Numb
=
(8.7)
On the other hand, _ [ ]old o ldN T N oe= (pre-existing) nodes of the parent
element, where
[ ]_ 1 2 2oldT N = (8.8)
74
are inherited by the new elements. These nodes are numbered as
_ __ [ ]parent old parent oldNumb T Numb oe= , where
[ ] [ ]_1 2 1 3
_ 1 2 3 1 22 3 2 4parent oldT Numb
=
(8.9)
in the parent element, with each column referring to one of the generated
elements, as obtained from Figure 1. In the generated elements, these nodes are
referred to in terms of _ __ [ ]child old child oldNumb T Numb oe= , where
[ ] [ ]_1 1 1 2
_ 1 2 3 1 23 3 3 4child oldT Numb
=
(8.10)
9.1.1. Input data
• oe: either 1, 2 or 3, which defines the element type ( te=2, 3 or 4).
• nee: Initial number of elements of the initial level.
• nne: Number of nodes of the initial level.
• nv: Number of additional levels of mesh refinement (for example, 1nv=
indicates that the structure will be refined once).
• Tables [ ]Xgl and [ ]Ygl with nne node coordinate entries[ ],x y , which
are the initial nodes of the mesh structure to be refined. This table is
successively expanded, as new nodes are added during the mesh refinement.
• Table [ ][ ]inc k , where 1k = refers to the initial, first level local-to-global
nodal incidence of the input mesh and the second entry are nee arrays, each
one with te global node numbers of the elements. Arrays [ ][ ]inc k for
2... 1k nv= + , will be generated as a result of the mesh refinement.
9.1.2. Output data
As already indicated, the output data are a generalization of the input data,
which now refer to 1nv+ levels of refinement:
• [ ]1... 1nek k nv= + Number of elements at each one of the 1nv+ levels.
• [ ]1... 1nglk k nv= + Number of nodes at each one of the 1nv+ levels.
75
• Tables [ ]Xgl and [ ]Ygl with [ ]1nglk nv+ node coordinate entries,
which correspond to the input values plus the coordinates of the generated nodes.
• A table [ ][ ]1... 1inc k nv= + with 1nv+ levels of arrays of local-to-global
node incidences. The second entry are with [ ]nek k , 1... 1k nv= + , arrays,
each one with te global node numbers of the elements.
The algorithm generates 1nv+ levels of mesh refinement, including the
initial one, which is referred to as level 1. The number of elements on any level is
two times the number of elements of the preceding level. And the number of
nodes is not known in advance.
9.1.3. Initial definitions
• Initial number of elements (on level 0nv= ): [1]nek nee=
• Initial number of nodes (on level 0nv= ): [1]nglk nne=
• Element type te, according to Eq. (8.1)
• Array n e wT with the local numbering of the new nodes, according to
Eq.(8.2)
• Array newC of natural coordinates ξ of the new nodes, according to
Eq.(8.3)
• Shape functions ( )N ξ , according to Eq.(8.4)
• o ldN according to Eq. (8.8)
• newN according to Eq. (8.5)
9.1.4. Execution of the algorithm
1. Loop for the refinement levels, counting 1k from to nv
• Define the number of elements of the next level: [ 1] 2 [ ]nek k nek k+ = ×
• Initialize the counter of the number of nodes of the next level: [ 1] [ ]nglk k nglk k+ = (start counting the total number of nodes for level
1k + )
1.1 Loop for the elements to be split into 2 elements, counting
1 [ ]i from to nek k
76
Evaluate the coordinates of the generated new nodes
[1] [ ]new new newT T N… , which are all internal.
1.1.1 Loop for the new nodes, counting 1new ei from to o
[ ] [ ]1 1 1 nglk k nglk k+ = + + (add 1 to the total number of nodes)
[ ] [ ]1new newgn i nglk k= + (temporary array with the global
numbering, to be used in loop 1.1.2.2)
[ ]
[ ]
[ [ 1]] ( [ ]). [ [ ][ , ]]
[ [ 1]] ( [ ]). [ [ ][ , ]]
e
e
t
new newj
t
new newj
Xgl nglk k N j C i Xgl Inc k i j
Ygl nglk k N j C i Ygl Inc k i j
+ =
+ =
∑
∑
End of loop 1.1.1 with variable newi .
1.1.2 Loop to assign the incidences of the generated elements,
counting 1 2ie from to
Generate the nodal incidence table for the already existing
nodes:
1.1.2.1 Loop for the old nodes, counting 1old oldi from to N
_ _[ 1][2 2 , [ , ]] [ ][ , [ , ]]child old old parent old oldInc k i ie Numb i ie Inc k i Numb i ie+ − + =
End of loop 1.1.2.1 with variable o ldi .
Generate the nodal incidence table for the new nodes:
1.1.2.2 Loop for the old nodes, counting 1newi from to oe
_ _[ 1][2 2 , [ , ]] [ [ , ]]child new new new parent new oldInc k i ie Numb i ie gn Numb i ie+ − + =
End of loop 1.1.2.2 with variable newi .
End of loop 1.1.2 with variable ie for the generated elements.
End of loop 1.1 with variable i for the elements split into two new ones.
77
End of loop 1 with variable k for the mesh refinement level.
10 Apêndice 2
Neste apêndice apresenta-se o algoritmo unificado para as expansões do
GFMBEM, estes são executados após o refinamento da malha segundo o
algoritmo, desenvolvido por Dumont (2012), apresentado no apêndice anterior.
Esta implementação foi realizada a partir do algoritmo desenvolvido por Dumont
(2012) em linguagem Maple® o qual é responsável pela criação da estrutura de
adjacências descrita no Capítulo 5, e aplicada à técnica de ‘fast multipole’ pela
autora. O algoritmo foi desenvolvido em linguagem C++ e está disponível para
consulta.
A unified algorithm for pole expansions 10.1.
The following procedures are executed inside the macroelements loop,
counting [ ] 1 1ie from to nek k= and all the others procedures are called inside it.
The combinations of the following main procedures with the refinement
procedure presents in the former appendix, output the vectors Gt and Hd .
10.2.Unified algorithm for the generation of refined bou ndary meshes – use of a hierarchical concept
The following algorithm describes the construction of the element adjacency
structure for general 2D or 3D problems. This concept shall replace the concept of
node adjacencies, as applied up to here.
10.2.1. Input data
The input are the results from the mesh generation algorithms for a 2D and
the number of partitions nv, which is the number of element subdivisions, which
is always equal to 2 or 4, for 2D or 3D problems.
79
10.2.2. Output data
• [ ][ ][ ]_el adj k ie ia which is the element adjacency
• [ ][ ]_n adj k ie number of adjacent elements
where k is the refinement level (equal to 1, in the initializing algorithm), ie is
the reference element and ia is one of the adjacent elements. By definition in
the following algorithm, an element is adjacent to itself.
10.2.3. Algorithm for the first level ( )1k =
Initialize the counter of adjacent elements: 0count=
Store the global numbering of the reference element: [ ]1elsplit ie=
1 Loop for the possible adjacent elements, counting [ ] 1 1ia from to nel
Set the initial condition for breaking the search for an adjacent element:
breakCond false=
1.1 Loop for the nodes of the reference element, counting
1 ni from to te while breakC ond false=
1.1.1 Loop for the nodes of the adjacency candidate element,
counting 1 nai from to te while breakCond false=
[ ][ ] [ ][ ] 1 , 1 ,n naif inc ie i inc ia i then= (adjacency found)
[ ][ ]1
1
count count
elAdj count ia
= +=
breakCond true= (exit loops and na ni i )
end if
End of loop 1.1.1 ( nai )
End of loop 1.1 ( ni )
(This is the return point from the above if loop in the case of adjacency
found)
End of loop 1 ( ia )
80
[ ][ ]1 adjn ie count= (Total number of adjacent elements to element ie )
The algorithm just described produces a global adjacency structure. The
following algorithm describes the construction of the element adjacency structure
for the subsequent levels ( 1k > ). However, they refer to the np partitioned
elements derived from a parent element, starting from the first, coarsest mesh, and
in the frame of successive mesh refinement.
10.2.4. Algorithm for the next levels ( )1k >
This routine evaluates the element adjacencies on a given refinement level
once the adjacencies of the parent element are known.
10.2.4.1. Input data
• latest evaluated level k
• parente element globally numbered ie
• corresponding adjacencies [ ][ ]elAdj k
• number [ ][ ]adjn k of adjacent elements of the parent element ie (on levelk )
10.2.4.2. Output data
The procedure consists in splitting the given parent element ie of level k
into np elements, also generating the necessary adjacency information. For
1..eipr np= , evaluate
• Global numbering of the split elements ( )1iep ie np iepr= − + , stored in
[ ]1elsplit k +
• Number of adjacent elements [ ]1adjn k +
• Adjacency structure [ ][ ]1elAdj k+ , which is a set with [ ]1adjn k + elements.
10.2.4.3. Execution of the algorithm
1. Loop for the np split elements, counting 1 iepr from to np
81
Evaluate the global numbering of the split element: ( )1iep ie np iepr= − +
Store the global numbering of the split element: [ ]1elsplit k iep+ =
Initialize the counter of adjacent elements: 0count=
1.1. Loop for the adjacent elements on level k , counting
[ ] 1 adjia from to n k
1.1.1. Loop for the split elements (level 1k + ) originated from the
adjacent elements on level k, counting 1 iapr from to np
Evaluate the global numbering of the adjacent split element
[ ][ ]( )1iap elAdj k ia np iapr= − +
Set the initial condition for breaking the search for an adjacent element:
breakCond false=
1.1.1.1. Loop for the nodes of the reference split element, counting
1 ni from to te while breakC ond false=
1.1.1.1.1 Loop for the nodes of the adjacency candidate
element, counting 1 nai from to te while breakCond false=
[ ][ ] [ ][ ] 1 , 1 ,n naif inc k iep i inc k iap i then+ = + (adjacency found)
[ ][ ]1
1
count count
elAdj count ik ap+= +
=
breakCond true= (exit loops and na ni i )
end if
End of loop 1.1.1.1.1. ( nai )
End of loop 1.1.1.1. ( ni )
(This is the return point from the above if loop in the case of adjacency found)
End of loop 1.1.1. (iapr )
End of loop 1.1. (ia )
[ ] 1 adjn k count+ = (Total number of adjacent elements to element iepr )
Test if the most refined mesh has been attained
82
i ( 1) ( 1) f k nv then+ = + the limit level has been attained
• Evaluate the contribution of the adjacent elements through CBEM
(Procedure 1)
• Evaluation of the first expansion and the vectors G and H for the
element’s nodes through Procedure 2.
• Test if all brothers of the current microelement were expanded to
the father pole, if some expansions are still to be made the test is
closed, returning to the current, where a structure of adjacencies of
the brother element will be constructed and subsequently go
through all given former procedures. In case all child elements
have already been expanded then Procedure 3 is executed, which is
responsible for managing the expansions related to GFMM, having
as a result the relative contributions of vectors Gt and Hd .
else
The current procedure is called recursively, giving as parameters
the level 1k k= + and the element ie iep= .
end if
End of loop 1 ( iepr )
10.2.5. Procedures referred to in the algorithm
10.2.5.1. input for the procedures referred to in the algorit hm
• n : number of series terms.
• B E Mk : level from which elements are considered adjacent and are
evaluated through the CBEM.
• childk : difference of levels between parent and child elements.
• expk : determine the last level of field expansions.
• Initial definitions: Define vector fac through Preliminary Procedure 1
Define matrix C through Preliminary Procedure 2
Define vector ( )Q Z through Preliminary Procedure 3
83
10.2.5.2. Procedures
Procedure 1: This procedure evaluates the adjacent elements contribution
through the CBEM, using numerical integration and the proposed substitution of
( )at l l lt t J J← .
1. Loop for the adjacent elements to the field element ( )iepr , counting
[ ] 1 BEMia from to nAdj k
Adjacent element at level B E Mk : [ ][ ]_ BEMia parent elAdj k ia=
1.1. Loop for the child adjacent element, counting childn ( )1 1 BEMnv kfrom to np + −
Adjacent element at level B E Mk :
( ) ( )1_ _ 1 BEMnv kchildia child ia parent np n+ −= − +
Execute the CBEM algorithm.
End of loop 1.1. ( )childn
End of loop 1. ( )ia
Procedure 2: In this step the first expansion of the field element is
calculated, this being in reference to the expansion from the node of the child
element to the node of the parent element at the level 1 ch ildnv k+ − . At this
moment the parts G and H of the contributions to the vectors G
and H
will be
calculated. These parts will be temporarily saved in the line 1nv+ of the matrixes
Pmatrixg and Pmatrixh, respectively.
Parent element: [ ]1 childparent elsplit nv k= + −
Evaluate the coordinates of the parent’s pole: ( )0 0.5 pole polecz x y I= + where:
[ ][ ] [ ][ ][ ][ ] [ ][ ]
1 ,1 1 , 1
1 ,1 1 , 1
pole child child
pole child child
x Xgl inc nv k parent Xgl inc nv k parent oe
y Ygl inc nv k parent Ygl inc nv k parent oe
= + − + + − +
= + − + + − +
84
Generate the vector ∆ with the distances between the each node of the field
element and the pole 0cz :
[ ] [ ] 0
1 1
c
for jl from to oe do
jl z jl z
end do
+∆ = −
where [ ] [ ][ ] [ ][ ]1 , 1 ,z jl Xgl inc nv iepr jl Ygl inc nv iepr jl I = + + +
1. Loop for the nodes of the field element ( )iepr , counting
1 1jl from to oe+
Local numbering of the field node: ( )1jk iepr oe jl= − +
( ) 1 for i to n do+
[ ] [ ]( )
1, 1,
0
PMatrixg nv i PMatrixg nv i
IntegTableG Jac tvector jk iepr
+ = + +
⋅ ⋅ +
[ ] [ ][ ][ ]( )
1, 1,
1 ,
PMatrixh nv i PMatrixh nv i
IntegTableH dvector inc nv iepr jl
+ = + +
⋅ +
where 0Jac in the nodal value of the jacobian that will be
evaluated through Procedure 4 and IntegTableG and
IntegTableH are the results of the integration (4.27) and (4.28) ,
respectively, provided by the integration tables.
( ) end do loop i
End of loop 1. ( )jl
Procedure 3: This procedure oversees the expansions between field points,
besides being responsible for expansions between field and source poles.
The first step is to evaluate witch source element is adjacent to the field
element on the current expansion level (k ), this evaluation is done through the list
of adjacent elements on the level ( ch ildk k− ).
Define the child element that will have its pole expanded: [ ]child elsplit k=
85
1. Loop of the adjacent elements on level ch ildk k− , counting
[ ] 1 adj childia from to n k k−
Adjacent parente element [ ][ ]parent childia elAdj k k ia= −
1.1. Loop of child elements of the adjacent element on the level
,childk k− counting 1 child cn from to doη
child of the adjacent element: ( )1child parent c childia ia nη= − +
Start of the adjacency test between the child element ( )childia and the
field element.
Set the initial condition for breaking the search for an adjacent element:
breakCond false=
1.1.1. Loop of the adjacent elements on level k , counting
[ ] 1 verif adjn from to n k while breakCond false=
Test if immediate adjacency occurs between the elements
child adj verifif ia el n thenk = stop the search defining:
breakcond true=
end if
End loop 1.1.1. ( verifn )
In case elements are adjacent on level ch ildk k− , but not on level k
if breakCond false then=
childsource ia=
Evaluate vector ( )Q Z regarding elements on level k and the
contributions to vectors Gt and Hd . (Procedure 3.2)
end if
End of loop 1.1. ( )childn
End of loop 1. ( )ia
The second step involves the evaluation of the expansions between the
current field pole and the pole of the parent element on level ch ildk k− , if there
are expansions to be made.
Test if there still are poles to be expanded,
86
exp childif k k k then− ≥ Procedure 3.1 is called, where the parent element
will be: [ ]childparent elsplit k k= −
Next, a test is done to see if the brother of the child element has already
been expanded to the parent element.
2
c
childif even number then
η
=
all the child elements have already
been expanded to the father element
The current procedure is called again, giving ch i ldk k k= − , which is
the level of the current pole.
enf if
( ) child expelse if k k k then− < it means that all the expansions between field
poles were taken care.
Since this corresponds to the last expansion pole, all non-adjacent elements
on level ch ildk k− are looked for, meaning all source elements for which the
contributions where not evaluated.
2. Loop for the source elements on level ch ildk k− candidates for non-
adjacency, counting [ ]_ 1 childel source from to nek k k−
Set the initial condition for breaking the search for a non-adjacent
element: breakCond false=
2.1. Loop for the adjacent elements at level ch ildk k− , counting
[ ] 1 verif adj childN from to n k k while breakCond false− =
_ child verifif el source elAdj k k N then = − _el source is an
adjacent element
breakCond true=
end if
End of loop 2.1. ( )verifN
if breakCond false then= the elements are not adjacent
2.2. Loop for the source child elements, counting
1 childn from to Nchild do
87
Source element non-adjacent at level k :
( )_ 1 childsource el source Nchild n= − +
Evaluate vector ( )Q Z relative to elements on level k and then
the contributions to the vectors Gt and Hd . (Procedure 3.2)
End of loop 2.2. ( )childn
end if
End of loop 2. ( )_el source
Reinitialize Matrixes PMatrixg and PMatrixh.
end if
Procedure 3.1: This procedure is responsible for the expansion between field
poles.
Calculation of the vector ( )P Z of dimension( )1n + , relative to the
expansion of poles of consecutives levels. Z being the distance between the child
element pole of level k and the parent of level ch ildk k− .
Evaluate the coordinates of the parent element: ( )0.5 parent parent parentz x y I= +
where:
[ ][ ] [ ][ ][ ][ ] [ ][ ]
,1 , 1
,1 , 1
parent child child
parent child child
x Xgl inc k k parent Xgl inc k k parent oe
y Ygl inc k k parent Ygl inc k k parent oe
= − + − +
= − + − +
Evaluate the coordinates of the child element: ( )0.5 child child childz x y I= +
where:
[ ][ ] [ ][ ][ ][ ] [ ][ ]
,1 , 1
,1 , 1
child
child
x Xgl inc k child Xgl inc k child oe
y Ygl inc k child Ygl inc k child oe
= + +
= + +
Evaluate vector ( )P Z , where child parentZ z z= −
88
[ ][ ]
( )[ ] ( )
1 1
2
3 1
1
Pvector
Pvector Z
for i from to n do
Pvector i Pvector i Z
end do
=
=
+
= −
( ) 1 for i to n do+
[ ] [ ] [ ] [ ] [ ]1
, , , 1 , 1i
childj
PMatrixg k i PMatrixg k i C j i j PMatrixg k k j Pvector i j=
= + + − + + −∑
[ ] [ ] [ ] [ ] [ ]1
, , , 1 , 1i
childj
PMatrixh k i PMatrixh k i C j i j PMatrixh k k j Pvector i j=
= + + − + + −∑
( ) end do loop i
Reinitialize the line k kchild+ of matrixes PMatrixg and PMatrixh.
Procedure 3.2: This procedure can happen in two different ways, depending
if the source expansions will or not be considered.
a) Procedure 3.2 without source expansion: This procedure is responsible
for the evaluation of ( )Q Z vector, as it was defined in Equation (4.5),
and for the evaluation of the contributions for the vectors Gt and Hd .
In this procedure, variable Z is substituted in vector Q(Z) which was pre-
calculated, being Z the difference of coordinates between the field pole ( nkcz )
and the source element’s node (0z ) at level 1nv+
Evaluation of the field pole coordinatesnkcz :
[ ][ ] [ ][ ][ ][ ] [ ][ ] ( ),1 , 1
0.5 ,1 , 1
nkf
f fcf
x Xgl inc k child Xgl inc k child oez x y I
y Ygl inc k child Ygl inc k child oe
= + + → = + = + +
1. Loop for the source microelements, counting ( )1 1 nv kchildn from to np + −
Source element at level 1nv+
( )1_ ( 1) nv kchildsource child source np n+ −= − +
1.1. Loop for the source element’s nodes, counting 1 ml from to oe
89
Evaluation of the field pole coordinates( )cz :
[ ][ ][ ][ ]
( )0
1 _ ,
1 _ ,
ss s
s
x Xgl inc nv source child mlz x y I
y Ygl inc nv source child ml
= + → = + = +
( )[ ] ( )[ ]0
1 1
nkc
for i from to n do
Q i Q z z i
end do
+
= −
Evaluation of the contributions for vectors
[ ] [ ] [ ] [ ] [ ]1
1
G G Re ,n
childi
m m fac i PMatrixg k k i Q i+
=
= + +
∑
[ ] [ ] [ ] [ ] [ ]2
2
H H Im 1 , 1n
childj
m m fac i PMatrixh k k i Q i+
=
= + − + − ∑
where [ ][ ]1 _ ,m inc nv source child ml= +
End of loop 1.1. ( )ml
End of loop 1. ( )childn
b) Procedure 3.2 with source expansion: This procedure is responsible for
the evaluation of vectors ( )Q Z , as defined in Equation (4.7), and for the
evaluation of the contributions for the vectors Gt and Hd .
In this procedure, variable Z is substituted in vector Q(Z) which was pre-
calculated, being Z the difference of coordinates between the field pole ( nkcz )
and the source pole (nlLz ) at level 1nv+
Evaluation of the field pole coordinatesnkcz :
[ ][ ] [ ][ ][ ][ ] [ ][ ] ( ),1 , 1
0.5 ,1 , 1
nkf
f fcf
x Xgl inc k child Xgl inc k child oez x y I
y Ygl inc k child Ygl inc k child oe
= + + → = + = + +
Evaluation of the field pole coordinatesnlLz :
[ ][ ] [ ][ ][ ][ ] [ ][ ]
( ),1 , 1
0.5 ,1 , 1
nls
s sLs
x Xgl inc k source Xgl inc k source oez x y I
y Ygl inc k source Ygl inc k source oe
= + + → = + = + +
90
Evaluation of vector ( )Q Z as defined in Equation (4.7):
( )[ ] ( )[ ] 1 2 1
nk nlc L
for i from to n do
Q i Q z z i
end do
+
= −
1. Loop for the source microelements, counting ( )1_ 1 nv kn child from to np + −
Source element at level 1nv+ :
( )1_ ( 1) _nv ksource child source np n child+ −= − +
1.2. Loop for the source element’s nodes, counting 1 ml from to oe
[ ][ ][ ][ ]
( )0
1 _ ,
1 _ ,
scsc sc
sc
x Xgl inc nv source child mlz x y I
y Ygl inc nv source child ml
= + → = + = +
Evaluate the ( )P Z vector related to the source expansion:
[ ][ ]
( )[ ] ( )
1 1
2
3 1
1
Pvector
Pvector Z
for i from to n do
Pvector i Pvector i Z
end do
=
=
+
= −
where ( )0 nlLZ z z= −
Evaluate of the vector ( )Q Z related to the source expansion, as defined in
Equation (4.7):
( )
( ) ( ) ( )1
11
1 2
n nl n nlk k
n
i o j j o i jL Lc cj
for i from to n do
Q z z fac P z z Q z z
end do
+
+ −=
+
− = − −∑
Evaluation of the contributions for vectors Gt and Hd
[ ] [ ]
[ ] [ ] [ ] [ ]( )1 1
1 1
G G
1Re , 1 nk
n n
child ocii j
m m
PMatrixg k k i fac j PvectorSource j Q i j z zfac
+ +
= =
= +
+ + − − ∑ ∑
91
[ ] [ ]
[ ] [ ] [ ] [ ] [ ]( )2 1
2 1
H H
Im 1 , 1 1
nk
n n
child oci j
m m
fac i PMatrixh k k i fac i PvectorSource i Q i j z z+ +
= =
= +
− + − + − − ∑ ∑
where [ ][ ]1 _ ,m inc nv source child ml= +
End of loop 1.1. ( )ml
End of loop 1. ( )_n child
Procedure 4: Evaluation of the nodal value of the Jacobian
( ) ( )[ ][ ] [ ][ ]
( ) ( )[ ][ ] [ ][ ]( ) ( ) ( )
1
2 21
1
1
1 ,
1 ,
oe
i
oe
i
dx N oe i Xgl inc nv j i
J dx dy
dy N oe i Ygl inc nv j i
ξ ξξ ξ ξ
ξ ξ
+
=+
=
′ = +
→ = +′ = +
∑
∑
Where j refers to the field microelement under consideration, 'N is the
table with the shape functions derivatives, as presented in Equation (4.30), and the
parametric variable ξ is replaced by the natural coordinates given by the
following table, resulting [ ][ ]TabJac oe iξ = .
[ ] [ ] [ ] [ ]1 2 3 0 1 0 1 2 1 0 1 3 2 3 1TabJac =
10.2.6. Preliminary procedures for the GFMM
This group of procedures are evaluated before any other procedure, since it
only need as input the number of series term n , and they will be executed only
once.
Preliminary Procedure 1: Evaluate fac vector
[ ][ ]
[ ] ( )
1 1
2 1
3
1
fac
fac
for i from to n do
fac i fac i i
end do
=
=
= −
92
Preliminary Procedure 2: Evaluate Matrix C
( )[ ][ ]
( )[ ] [ ] [ ]
( )( )
1 1
,1 1
1, 1
1 1
, 1, , 1
loop
loop
for i from to n do
C i
C i
for j from to n do
C i j C i j C i j
end do j
end do i
+
=
=
+
= − + −
Preliminary Procedure 3: Pre-evaluation of the derivatives vector ( )Q Z , as
defined in Equation (4.5).
[ ] ( )
[ ]( ) ( )
( )
1
1
1
1
i
i
Q f Z
for i from to Qdim do
f ZQ i
Zend do
−
−
=
∂=
∂
Where ( )
( )2 for procedure 3.2 without source expansion
2 1 for procedure 3.2 with source expansion
nQdim
n
+= +