Sunteți pe pagina 1din 46

Thiago de Sousa Goveia

Avaliao quantitativa do mtodo do gradiente


conjugado precondicionado para a soluo paralela e
concorrente de um modelo de elementos finitos

Proposta de trabalho apresentada como re-


quisito das disciplinas trabalho de concluso
de curso I e metodologia de pesquisa.

Centro Federal de Educao Tecnolgica de Minas Gerais


Campus Timteo
Graduao em Engenharia de Computao

Orientador: Mrcio Matias

Timteo
2017
Sumrio

1 INTRODUO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1 Problema de Pesquisa . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.1 Objetivos Gerais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.2 Objetivos Especficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Resultados Esperados . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 REVISO BIBLIOGRFICA . . . . . . . . . . . . . . . . . . . . . . 7
2.1 Estado da arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Fundamentao terica . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.1 Problema de Valor de Contorno . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.2 Mtodos numricos para PVCs . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.3 Mtodo dos Elementos Finitos . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.4 Mtodo dos Resduos Ponderados . . . . . . . . . . . . . . . . . . . . . . 11
2.2.5 Mtodo do Gradiente Conjugado . . . . . . . . . . . . . . . . . . . . . . . 15

3 DESENVOLVIMENTO . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1 Materiais e mtodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1.1 Especificao da geometria . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1.2 Obteno dos valores de referncia . . . . . . . . . . . . . . . . . . . . . . 18
3.1.3 Implementao do FEM . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.4 Implementao do EBE-FEM . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.1.5 Colorao da malha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1.6 Paralelizao do algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.1 Resultados preliminares . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4 CONCLUSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

REFERNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

APNDICES 36

APNDICE A SISTEMAS DE ELEMENTOS DISCRETOS . . . 37


A.1 Modelo de Elementos Discretos . . . . . . . . . . . . . . . . . . . . . 37
A.2 Montagem do Sistema Global . . . . . . . . . . . . . . . . . . . . . . 40
A.3 Atribuio das condies de Contorno . . . . . . . . . . . . . . . . . . 41
A.4 Exemplo: Associao de resistores . . . . . . . . . . . . . . . . . . . . 41

APNDICE B MTODO DOS ELEMENTOS FINITOS EM 2


DIMENSES . . . . . . . . . . . . . . . . . . . . . 44
4

1 Introduo

Devido popularizao da computao de alto desempenho (HPC), trabalhos


recentes tm retomado problemas tradicionais a fim de adequ-los aos novos paradigmas
e arquiteturas de computao. De acordo com Kiss et al. (2012) a conformidade entre
o problema a ser resolvido e a estrutura do ambiente de execuo capaz de ampliar a
performance e reduzir a energia dispendida no processamento. Devido ao aumento da
demanda por recursos computacionais, dispositivos que possibilitam a execuo paralela
acabaram se estabelecendo no mercado da informtica. Por meio das arquiteturas manycore
e multicore, possvel se executar paralela ou concorrentemente tanto tarefas corriqueiras
como a exibio de vdeos e jogos at clculos complexos da cincia e da engenharia.
Podem ser citados como processadores multicore as linhas Core e Xeon da Intel, Opteron
e Ryzen da AMD e a linha Power da IBM. Os dispositivos manycore por sua vez, tm
como principais representantes as unidades de processamento grfico (GPU) da qual fazem
parte as placas GeForce, Quadro e Tesla da NVIDIA e Radeon e FirePro da AMD.
O mtodo dos elementos finitos (FEM) um mtodo numrico para a resoluo de
problemas de valor de contorno (PVC) modelados por equaes diferenciais e tambm de
problemas associados minimizao de um funcional de energia (SZABO; BABUKA,
2009). O algoritmo clssico do FEM foi concebido em sua forma sequencial e consiste
principalmente na soluo de um sistema linear esparso. A tarefa de se resolver tal sistema
geralmente custosa em termos de memria quando adotados mtodos diretos como a
eliminao gaussiana e computacionalmente custosa quando adotados mtodos iterativos
como o mtodo de Jacobi. O mtodo dos gradientes conjugados (CG) e suas variantes
pertencem famlia dos mtodos exatos/iterativos do subespao de Krylov (ANZT et
al., 2016) e tem sido adotados na literatura para a soluo paralela de elementos finitos.
Alguns trabalhos correlatos que utilizam a famlia CG so apresentados por Yao et al.
(2015), Ahamed e Magouls (2016) e Iwashita et al. (2017).
A fim de adequar o FEM s arquiteturas modernas ser adotado neste trabalho
a abordagem elemento a elemento (EbE-FEM) proposta por Hughes, Levit e Winget
(1983). Esta tcnica baseia-se no fato de que a matriz do sistema de elementos finitos
caracterizada como uma funo parcialmente separvel (DAYDE; LEXCELLENT;
GOULD, 1995), resultado da soma das matrizes elementares. Assim sendo, as operaes
da soluo do sistema de elementos finitos podem ser realizadas em nvel elementar, sem
a necessidade de se montar a matriz global de coeficientes. Adicionalmente tem-se a
vantagem de que elementos no adjacentes podem ser calculados simultaneamente a partir
dos mtodos da famlia CG (WATHEN, 1989). Esta ltima caracterstica torna a tcnica
EbE-FEM propcia para a implementao paralela nas arquiteturas modernas.
Captulo 1. Introduo 5

1.1 Problema de Pesquisa


Neste trabalho feita uma anlise quantitativa do desempenho do algoritmo
do EbE-FEM nas linguagens concorrentes C++, Erlang e Scala e nas linguagens de
computao paralela CUDA e Harlan. O problema benchmark a ser resolvido refere-se
equao de Laplace originada do clculo da distribuio de potencial e do campo eltrico
de um capacitor de placas paralelas (BOYLESTAD, 2011, Exemplo 10.3). A escolha deste
problema se deve simplicidade de sua modelagem e ao seu comportamento j explorado
em livros de eletromagnetismo e circuitos eltricos.

1.2 Justificativa
A justificativa deste trabalho se baseia na contnua transformao dos paradigmas
de programao e arquiteturas de hardware. Como coloca Guo et al. (2014), com aumento
de ncleos de processamento, ocorre a reduo da razo memria por ncleo, o que impe
uma forte demanda para que os algoritmos utilizem eficientemente todos os nveis de
paralelismo disponveis enquanto minimizam a movimentao de dados. Tal evoluo no
se limita ao cenrios dos clusters e grids mas alcana inclusive os dispositivos mveis, que
atualmente j possuem oito ncleos. Pensando em um futuro prximo, com os avanos da
computao ubqua que introduz temas como internet das coisas, dispositivos "usveis",
realidade aumentada e realidade virtual, a necessidade de se aproveitar ao mximo todo
o poder de processamento disponvel se torna ainda mais evidente, uma vez que nessas
tecnologias h alta demanda de processamento e/ou pouco espao fsico para comportar
um processador adequado. A justificativa para a escolha das linguagens C++, Scala e
Erlang se de devido ausncia de trabalhos acadmicos relacionando tais tecnologias e seu
desempenho. C/C++ uma linguagem abrangente, robusta e atual, presente por trs de
grande parte das aplicaes desktop e mobile. Scala e Erlang (e/ou Elixir) so linguagens
naturalmente concorrentes e que possuem crescente market share .

1.3 Objetivos
1.3.1 Objetivos Gerais

Demonstrar o processo de mudana do paradigma sequencial para uma soluo


paralela do mtodo do elementos finitos;

Avaliar quantitativamente, segundo as mtricas propostas (tempo de execuo, uso


de memria, e speedup) o desempenho do processo de soluo do EbE-FEM.
Captulo 1. Introduo 6

Apresentar comunidade resultados acadmicos experimentais do desempenho das


linguagens C++, Scala, Erlang, CUDA e Harlan.

1.3.2 Objetivos Especficos

Investigar a viabilidade da tcnica EbE-FEM como alternativa dos solvers iterativos


e do solver do MATLAB R
;

Desenvolver um material acessvel e de fcil compreenso de introduo ao FEM


para o nvel da graduao;

Investigar o quo otimizada a convergncia do EbE a partir do emprego de diferentes


precondicionadores;

Relacionar as mtricas e conceitos de estatsticas necessrios para a avaliao ade-


quada de performance;

Comparar conforme as mtricas o desempenho das linguagens nativamente concor-


rentes e paralelas na resoluo do problema benchmark deste trabalho.

1.4 Resultados Esperados


Espera-se com este trabalho iniciar no CEFET-MG campus Timteo uma nova
linha de pesquisa a ser continuada nos trabalhos futuros, voltada para a anlise numrica de
problemas de valor de contorno da fsica aplicada. De forma similar, espera-se o incentivo
e a adoo por parte da universidade de paradigmas e linguagens emergentes, a fim de
diversificar o currculo dos graduandos.
7

2 Reviso bibliogrfica

2.1 Estado da arte


Como coloca Kiss et al. (2012), o processamento paralelo de um problema modelado
pelo FEM pode ser feito a partir da decomposio do domnio do problema. Esta decompo-
sio pode ser feita por meio do particionamento da malha ou por meio da decomposio
apropriada da matriz de coeficientes. Os trabalhos de Boehmer et al. (2011) e Ahamed e
Magouls (2016) apresentam casos com a soluo paralela do FEM por meio do partici-
onamento da malha. No primeiro caso o processamento executado comparativamente
nas arquiteturas de memria compartilhada e distribuda com o uso da API OpenMP
e da biblioteca MPI respectivamente. No segundo caso, a comparao feita entre as
linguagens CUDA e OpenCL que so executadas em uma arquitetura manycore.
A tcnica EbE uma forma de decomposio da matriz de coeficientes e ser
tratada neste trabalho. Por meio desta, as operaes so realizadas na matriz de cada
elemento, sem que seja necessria a montagem do sistema global. Esta estrutura de dados
foi proposta originalmente por Hughes, Levit e Winget (1983) como uma fatorao especial
para a matriz de coeficientes, de forma a melhorar sua condio a acelerar a convergncia
(CAREY et al., 1988). Devido ao seu desempenho, preciso, economia de memria e
possibilidade de processamento paralelo (LEVIT, 1987; HU; QUIGLEY; CHAN, 2008;
KISS et al., 2012) a adoo da abordagem EbE tem sido recorrente medida em que
surgem novas tecnologias de HPC.
Carey et al. (1988) apresenta uma implementao EbE do gradiente biconjugado
(BiCG) para solucionar um sistema de elementos finitos (FE). Segundo ele, o surgimento
de novas arquiteturas tais como os processadores vetoriais, paralelos e estaes de trabalho
microprocessadas foram responsveis por se repensar o algoritmo original do FEM. A
execuo vetorial foi realizada no computador CRAY-XMP e foi 8 vezes mais rpida
em relao ao processamento sequencial e apresentou speed-up variando de 4.25 6.5. A
execuo paralela foi feita no ALLIANT-FX/8, um mini supercomputador com 8 CPUs.
Foi adotado um esquema de ordenao de ns a fim de se evitar condies de corrida no
acesso s variveis globais. Com a utilizao de todas as unidade de processamento, o
speed-up foi em torno de 7 em relao ao uso de uma nica CPU.
O trabalho de Dayde, LExcellent e Gould (1995) faz uma anlise comparativa entre
5 precondicionadores de nvel elementar para o algoritmo do gradiente conjugado (CG), a
saber: Element matrix factorization (EMF), finite element preconditioner (FEP), one-pass
element-by-element preconditioner (EbE), two-pass element-by-element preconditioner
Captulo 2. Reviso bibliogrfica 8

(EbE2) e Gauss-Seidel element-by-element preconditioner (GS-EBE). Como os autores


colocam, uma vez que se tm problemas de larga escala mas parcialmente separveis,
torna-se necessrio explorar diferentes alternativas a fim de se aproveitar as vantagens
oferecidas pela estrutura do problema. A abordagem EbE se mostrou a melhor opo entre
seus concorrentes. EMF e FEP requerem a montagem parcial do sistema, o que agrega
maior custo de processamento. EBE2 e GS-EBE no apresentaram boas aproximaes
para elementos com pouca vizinhana. A fim de se realizar a paralelizao, sugerida a
colorao da malha de forma que elementos vizinhos sejam processados sequencialmente.
Uma implementao EbE-CG em FPGA (Field Programmable Gate Array)
proposta por Hu, Quigley e Chan (2008). Neste trabalho as operaes sobre as matrizes
elementares foram realizadas por meio da configurao de um circuito lgico no chip
4VLX160 da Xilinx. O processamento sequencial foi feito em um PC 2.01 GHz Athlon
64 com as devidas otimizaes na compilao. Graas implementao diretamente em
hardware foi alcanado um speed-up mximo igual a 40.
O surgimento da linguagem CUDA em 2006 e a popularizao das GPGPU possibi-
litaram que a tcnica de EbE pudesse ser revisitada e aplicada nas arquiteturas modernas.
Kiss et al. (2012) soluciona o um modelo de elementos finitos por meio do BiCG com
precondicionador de Jacobi. De acordo com este trabalho, a abordagem EbE adequada
para o processamento em GPU, cuja arquitetura embora seja massivamente paralela,
possui um gargalo, que a capacidade limitada de memria. O carter localizado do EbE
faz com que o trnsito de dados seja mnimo, o que reduz o consumo de energia e maximiza
o potencial do dispositivo. Para a realizao dos testes foram utilizados o processador
quad-core Xeon X3440 da Intel e a placa GTX 590 da NVIDIA, contendo 2 GPUs. A
execuo com acelerao em GPU consumiu 20 vezes menos memria e foi 10 vezes mais
rpida que a execuo unicamente em CPU.
O trabalho de Wu et al. (2015) tambm apresenta o mtodo BiCG elemento a ele-
mento com precondicionador de Jacobi implementado em GPU. Foi utilizado o processador
Xeon E5-2696v2 da Intel e a placa Tesla K20c da NVIDIA. Nos dois refinamentos de malha
testados foi alcanado um speed-up de 4.63, e como coloca o autor, o resultado obtido se
torna ainda mais efetivo medida em que o nmero de elementos aumenta. No trabalho
mais recente dos mesmos autores (YAN et al., 2017) apresentado o uso do precondici-
onador de Gauss-Seidel para a abordagem EbE, o qual apresentou melhores resultados
para o nmero de iteraes e tempo de execuo em relao ao precondicionamento de
Jacobi, mantendo a mesma preciso.
Outros trabalhos importantes para esta monografia so os de Xu, Yin e Mao (2005),
Yao et al. (2015) e Chou e Chen (2016). O primeiro apresenta a implementao do EbE-
CG e a tcnica de atribuio das condies de contorno que tambm ser empregada no
presente trabalho. O segundo apresenta a comparao da performance da implementao
Captulo 2. Reviso bibliogrfica 9

Condio Tipo
u(xi ) = Dirichlet
u(xi ) = 0 Dirichlet Homognea
0
u (xi ) = Neumann
0
u (xi ) = 0 Neumann Homognea

Tabela 1 Exemplos de condies de contorno

do BiCG estabilizado (BiCGStab) em CPU e GPU, utilizando-se diferentes formas de


armazenamento de matriz esparsa e diferentes ferramentas de resoluo de sistema linear
em GPU, a saber: CUSPARSE, CUSP e CULA Sparse. O ltimo trabalho apresenta a
comparao entre diferentes tecnologias de processamento paralelo (Cuda C, Cuda Fortran,
MPI e OpenMP) na resoluo de dois problemas benchmark

2.2 Fundamentao terica


2.2.1 Problema de Valor de Contorno
Um problema de valor inicial PVI, pode ser definido como uma equao diferencial
(ou sistema de equaes) na qual so dadas as condies iniciais do fenmeno. Tais
condies so impostas sobre a varivel dependente e suas derivadas em um nico instante
de tempo (inicial) t0 . Um problema de valor de contorno PVC por sua vez, apresenta tais
condies impostas em pontos distintos, como por exemplo em xi e xf . Geralmente os
PVI so dados em funo do tempo enquanto os PVC so dados em funo do espao
(BOYCE; DIPRIMA, 2010).
Como pode ser visto na tabela 1. as condies estabelecidas sobre a varivel
dependente, so chamadas de condies de Dirichlet ou essenciais, enquanto as que so
estabelecidas sobre as derivadas da varivel dependente so conhecidas como condies de
Neumann ou naturais. Alm destas duas, existem as restries especficas do fenmeno
modelado, como por exemplo, condies de radiao ou de impedncia para problemas do
eletromagnetismo (JIN, 2002).
A soluo analtica de um PVC pode ser obtida por meio da integrao direta ou
a partir da aplicao de tcnicas como a separao de variveis, expanso em sries ou
pela transformada de Laplace. No entanto, a maioria dos problemas da engenharia e da
cincia no so lineares e apresentam geometria ou condies de contorno complexas. Estas
caractersticas fazem com que a resoluo analtica de tais problemas seja impraticvel,
sendo necessrio recorrer a mtodos numricos para se obter uma soluo aproximada
(BOYCE; DIPRIMA, 2010; POWERS, 2006).
Captulo 2. Reviso bibliogrfica 10

2.2.2 Mtodos numricos para PVCs


O mtodo dos elementos finitos (FEM) uma alternativa numrica para a soluo
de PVCs. Neste mtodo, o domnio do problema visto como uma coleo de subdomnios,
chamados de elementos finitos, sobre os quais, a equao que modela o problema
aproximada por um mtodo variacional ou de resduos ponderados Reddy (2006). Essas
diferentes vertentes do mtodo surgiram graas aos esforos independentes de matemticos,
cientistas e engenheiros (ZIENKIEWICZ, 2005).
O mtodo das diferenas finitas (FDM) assim como o FEM uma abordagem
numrica para a aproximao de PVCs. Este mtodo consiste na discretizao do domnio
do problema por meio de uma grade de pontos e na aproximao de cada derivada da
equao por um quociente-diferena adequado (FAIRES, 2008). Embora este mtodo seja
til em muitos casos, se torna difcil aplic-lo em problemas com geometria irregular ou
com condies de contorno no usuais. Um exemplo pode ser visto na figura 1.
Diferentemente do FDM, como coloca Huebner et al. (2001), o FEM divide o
domnio no em pontos, mas em subdomnios, sobre os quais as equaes so aproximadas
por polinmios definidos por partes. O FEM tambm capaz de representar mais fielmente
o contorno (ou a borda) do problema. Desta forma, ele se apresenta como uma tcnica
mais poderosa e verstil para a modelagem de fenmenos com geometria complexa e meios
no homogneos (SADIKU, 2001).

Figura 1 Mtodo das diferenas Finitas e mtodo dos Elementos Finitos

2.2.3 Mtodo dos Elementos Finitos


O FEM surgiu originalmente como uma tcnica de anlise de deslocamentos e elas-
ticidade de estruturas mecnicas, mas em seguida foi estendido para solucionar problemas
de outros campos da fsica e da engenharia (JIN, 2002; DESAI, 1972; ZIENKIEWICZ,
2005).
As primeiras formulaes do FEM so conhecidas como abordagem direta ou
formulao fsica, que embora fornea a interpretao intuitiva do mtodo, util apenas
para a resoluo de problemas relativamente simples (HUEBNER et al., 2001; DESAI,
1972; ZIENKIEWICZ, 2005). O uso do princpio do trabalho virtual, para a determinao
Captulo 2. Reviso bibliogrfica 11

de foras na abordagem direta, levou generalizao do FEM, por meio da estratgia de


minimizao do funcional de energia. Esta tcnica mais genrica ficou conhecida como
formulao variacional (DESAI, 1972; ZIENKIEWICZ, 2005; JIN, 2002) e tem como
principal representante o mtodo de Rayleigh-Ritz. Uma terceira abordagem, conhecida
como Mtodo dos Resduos Ponderados ou formulao generalizada (ZIENKIEWICZ,
2005; HUEBNER et al., 2001) tradicionalmente utilizada e ainda mais genrica que o
princpio variacional, pois resolve diretamente as equaes diferenciais do modelo, sem
necessitar da existncia de um funcional de energia (DESAI, 1972), ou ainda, sem exigir
que o sistema seja positivo-definido. Neste trabalho ser adotado o mtodo dos resduos
ponderados, mais especificamente, o mtodo de Galerkin.

2.2.4 Mtodo dos Resduos Ponderados


De acordo com Jin (2002), a aplicao do FEM pode ser feita a partir de 4 passos
bsicos: discretizao do domnio, seleo das funes de interpolao, formulao do
sistema de equaes e soluo do sistema de equaes. Os trs primeiros passos so
descritos nos tpicos a seguir e o ltimo na subseo seguinte.

Discretizao do Domnio

A discretizao do domnio consiste na transformao do contnuo em uma malha


de elementos finitos (discretos). Cada elemento e dessa malha representa um subdomnio
de . Nesta etapa so definidas a forma, a quantidade e o tamanho dos elementos, de
maneira que a representao em malha seja a mais prxima possvel do objeto em anlise
(DESAI, 1972).
Conforme pode ser visto na figura 2, cada elemento identificado na malha a partir
de um nmero que lhe atribudo. Os vrtices (ou ns) de cada elemento tambm so
numerados. Cada n possui dois valores vinculados a ele, um atuando como identificador
global (numerao do n na malha) e o outro como identificador local (numerao dentro
de um dado elemento). A numerao local geralmente feita no sentido anti-horrio, a
fim de se obter um valor positivo no clculo da rea ou volume por meio do determinante
(SADIKU, 2001; JIN, 2002).
Um fator que deve ser levado em considerao o balanceamento entre o refinamento
da malha e o esforo computacional necessrio (DESAI, 1972). Como o valor da soluo
aproximado para cada elemento, o excesso de elementos pode causar a propagao do erro
de aproximao, levando a resultados indesejveis.
Captulo 2. Reviso bibliogrfica 12

Figura 2 Identificadores de elementos e ns

Seleo das funes de interpolao

O passo seguinte a escolha das funes de interpolao (ou funo de base ou


de forma) (HUEBNER et al., 2001) que fornece uma aproximao da equao original
dentro de cada subdomnio (JIN, 2002). A funo interpoladora escolhida geralmente
um polinmio, e isso ocorre por dois motivos a priori (DESAI, 1972):

Facilidade de manipulao matemtica, principalmente derivao e integrao;

Aproximao satisfatria quando truncado em uma ordem qualquer.

Na prtica so escolhidos polinmios de primeira ou segunda ordem, mas ordens


superiores podem ser adotadas para reduzir o erro de aproximao, sobretudo em bordas
com curvaturas, no entanto, ocorre tambm o aumento da carga computacional (JIN,
2002).
Seja a funo desconhecida, da qual se deseja obter uma aproximao. A nvel
elementar, a funo e aproxima dentro do domnio do elemento e. Considerando um
subdomnio bidimensional triangular a aproximao linear para o elemento e pode ser
feita como na equao 2.1. De acordo com esta aproximao, o valor em um dado n i
pode ser obtido pela equao 2.2.

e = ae + be xe + ce y e (2.1)

ei = ae + be xei + ce yie i = 1, 2, 3 (2.2)

Aps a resoluo do sistema 2.2, a fim de se obter os valores dos coeficientes a, b e


c, uma funo de interpolao N gerada. Conforme mostra a equao 2.3, os valores e
Captulo 2. Reviso bibliogrfica 13

em um ponto (x, y) de e podem ser aproximados a partir dos valores nodais ej .

n
e = Nje (x, y)ej = {N e }T {e }
X
(2.3)
j=1

As funes Nie obtidas interpolam os valores no interior do domnio e preservam os


valores nodais e1 , e2 e e3 . Para que isso ocorra, essas funes devem se comportar como o
delta de Kronecker, como mostra a equao 2.4 a seguir.


1,

i=j
Nie (xej , yje ) = ij = (2.4)
0, i 6= j

As funes de interpolao mais comuns pertencem s famlias de funes Lagrange


e Serendipity (ZIENKIEWICZ, 2005; VOLAKIS; CHATTERJEE; KEMPEL, 1998).

Formulao do sistema de equaes

Na abordagem variacional destaca-se o mtodo de Ritz, ou Rayleigh-Ritz, o qual


tem por objetivo, minimizar o funcional variacional, ou funcional de energia, do problema
aproximado (VOLAKIS; CHATTERJEE; KEMPEL, 1998). Embora tal abordagem tenha
sido historicamente utilizada e possua fundamentao fsica e matemtica, sua adoo,
em muitos casos, mais complicada em relao ao Mtodo dos Resduos Ponderados,
pois demanda a formulao variacional do problema. Desta forma, se um problema
dado por um modelo diferencial, necessrio se obter a partir deste modelo a forma
variacional equivalente, para s ento se aplicar o mtodo para a obteno do sistema de
equaes. No eletromagnetismo, a formulao variacional das equaes de Maxwell no
bem estabelecida (JIN, 2002).
Para problemas que apresentam explicitamente condies de Dirichlet no contorno
e cujo operador L linear e auto-adjunto, possvel se obter imediatamente o funcional
de energia correspondente (ZIENKIEWICZ, 2005), no entanto, como mostra (VOLAKIS;
CHATTERJEE; KEMPEL, 1998, p. 29), para este tipo de operador a mesma integral da
formulao variacional obtida pelo mtodo de Galerkin.
Seja a equao 2.5, uma equao de um PVC na qual L um operador diferencial,
f uma funo de excitao conhecida e a soluo procurada.

L = f (2.5)

Se substituirmos a soluo exata pela sua aproximao apresentada na equao


2.3, um resduo r surge, como pode ser visto na equao 2.6, em decorrencia dos erros de
Captulo 2. Reviso bibliogrfica 14

aproximao.

r = L f 6= 0 (2.6)

Embora o resduo em cada elemento seja diferente de zero em sua maioria, deseja-se
que o resduo total seja igual a zero. Para que isso seja possvel, uma funo de poderao
wi introduzida para cada subdomnio e. Desta forma na mdia dos M subdomnios de
a condio residual atendida (VOLAKIS; CHATTERJEE; KEMPEL, 1998). As equaes
2.7 e 2.8 correspondem ao sistema de resduos ponderados. A ideia chave dessa abordagem
transformar o problema de valor de contorno em um sistema linear que fornea o valor
aproximado.

Z
Rie = wie r d = 0 i = 1, 2, 3. (2.7)

Z
Rie = wie [L f ] d = 0 i = 1, 2, 3. (2.8)

A escolha particular de wie = Nie configura o mtodo de Galerkin, o qual, para um


operador L auto adjunto a matriz do sistema simtrica e equivalente matriz gerada
pelo mtodo de Ritz. Aps a substituio da equao 2.3 em 2.8 obtem-se a equao 2.9,
da qual so extradas as matrizes elementares, como mostra a equao 2.10.


Z n Z
Rie Nie L Nje ej Nie f d = 0
X
= i = 1, 2, 3. (2.9)
j=1

n Z
Nie LNje ej = 0 [K e ]{e } = {be }
X
i = 1, 2, 3. (2.10)
j=1

importante colocar que o parmetro wi deve ser um conjunto de funes integraveis


e que respeitem as condies de contorno, ou seja, wi deve ser igual a zero nos ns de
contorno do problema. (REDDY, 2006). Alguns casos especiais do mtodo dos resduos
ponderados so obtidos a partir da escolha de wi :

Mtodo de Petrov-Galerkin wi = i 6= i
Mtodo de Galerkin wi = i
  (2.11)
Mtodo dos Mnimos quadrados wi = d
dx
a(x) d
dx
i

Mtodo da colocao (x xi )

Uma vez que as matrizes elementares foram obtidas realizado o mapeamento


dos identificadores locais para os identificadores globais. Este processo conhecido como
Captulo 2. Reviso bibliogrfica 15

montagem da matriz global e detalhado no apndice A. O sistema global esparso e da


ordem do nmero de ns da malha. As contribuies elementares (ou os coeficientes das
matrizes de elementos) so agregados na matriz e as condies de contorno so aplicadas.
Neste trabalho so abordadas apenas as condies de contorno de Dirichlet. Essas
condies, tambm conhecidas como essenciais, correspondem aos valores pre-estabelecidos
da varivel dependente. Dessa forma a definio do contorno consiste na substituio das
incgnitas dos ns de contorno por seus respectivos valores. Assim, se um sistema de
ordem 1000 possui 200 valores pr-fixados ele pode ser reduzido ordem 800. Um exemplo
bidimensional com os passos descritos nessa subseo apresentado no apndice B.

2.2.5 Mtodo do Gradiente Conjugado


O mtodo do gradiente conjugado (CG) foi proposto por Hestenes e Stiefel em 1952
como um mtodo direto para a soluo de sistemas n por n positivos definidos (FAIRES,
2008). Embora sua concepo seja de um mtodo exato que converge aps n iteraes, sua
aplicao tem sido feita como um mtodo iterativo para se aproximar a soluo de sistemas
esparsos (BARRETT et al., 1995). O mtodo trabalha na busca da direo de maior
decrescimento do funcional de energia, ou seja, na direo contrria do vetor gradiente
para problemas de minimizao. Inicialmente atribudo um chute para a soluo, e
este chute vinculado um certo resduo, proporcional distncia entre o valor do chute
e o valor da soluo (mnimo do funcional). A cada iterao calculada a correo da
direo, a qual tomada de tal forma que seja ortogonal s direes anteriores, impedindo
que o mtodo repita uma direo j percorrida. As direes ortogonais so obtidas por
meio de sucessivas multiplicaes da matriz do sistema pelo vetor direo. Dessa forma a
aproximao da soluo em cada iterao encontrada em um subespao de Krylov, como
mostra a equao 2.12. O pseudocdigo 1 descreve as iteraes do CG.

K m = span(d, Ad, A2 d, A3 d, ..., Am1 d) (2.12)


Captulo 2. Reviso bibliogrfica 16

Algorithm 1 Algoritmo do Gradiente Conjugado


1: d0 = r0 = b Ax0
2: for j = 1,2... do
i T ri
3: = dri T Ad i

4: xi+1 = xi + di
5: ri+1 = rTi di
i+1 i+1
6: = r ri T rri
7: di+1 = di di
i+1
8: if krkbk k then
9: break
10: end if
11: end for
17

3 Desenvolvimento

O desenvolvimento deste trabalho est dividido nas etapas de validao do problema


e aplicao das estratgias. Na primeira so apresentados os recursos utilizados para modelar
o problema e para definir as possveis estratgias de soluo. As decises tomadas na
segunda etapa tero como base os resultados preliminares obtidos na primeira.

3.1 Materiais e mtodos


O ambiente de desenvolvimento MATLAB R
foi adotado para a realizao da
etapa de validao do problema. A motivao dessa escolha se deu pela facilidade da
manipulao de matrizes oferecida pelo ambiente e pela existncia de ferramentas dedicadas
especificao de PVCs e programao paralela.

3.1.1 Especificao da geometria


O problema benchmark utilizado neste trabalho o exemplo 10.3 do livro Anlise
de Circuitos de Boylestad (2011) e ilustrado na figura 3(a). O capacitor composto de
duas placas quadradas paralelas com lado de 2 polegadas sendo a distncia entre elas igual
1
32
polegadas. O problema informa que a diferena de potencial entre as placas de 48V ,
dessa forma foi assumido que uma das placas possui 48V e e que a outra est aterrada.
A fim de se realizar uma anlise mais ampla do problema a distribuio do campo
eltrico calculada entre as placas mas tambm no espao ao redor. Ser considerada uma
regio quadrada de 16cm de lado como mostra o esquema na figura 3(b). Tambm foi
considerado que a espessura de cada placa a metade da largura da regio entre elas, ou
1
seja, 64 polegadas.
A fim de se obter um parmetro da corretude dos resultados obtidos, foi feita a
simulao do problema na partial differential equation toolbox do MATLAB R
. Por meio
dessa ferramenta possvel programaticamente e via interface grfica definir a equao
diferencial que rege o problema, a geometria, as condies de contorno, a malha inicial e
seus refinamentos bem como a soluo e exibio dos resultados do PVC. As figuras 3(c) e
3(d) mostram a geometria e a malha inicial modeladas com o auxlio da interface grfica
da pdetool.
Captulo 3. Desenvolvimento 18

(a) Perspectiva do capaci- (b) Esquema da regio de anlise


tor de placas paralelas
16 11

14 10.9

10.8
12
10.7
10
10.6

8 10.5

6 10.4

10.3
4
10.2
2
10.1

0
0 5 10 15 7.6 7.8 8 8.2 8.4

(c) Regio de anlise com malha (d) Zoom sobre as placas do capacitor

Figura 3 Geometria do capacitor de placas paralelas

3.1.2 Obteno dos valores de referncia


Definidas a geometria e a malha, foram feitas as atribuies das condies de
contorno de Dirichlet nas 4 bordas da seo de cada placa. placa da esquerda foram
atribudos 48V e 0V para a placa da direita. Para se definir a EDP do problema necessrio
atribuir valores aos coeficientes da frmula geral de EDPs elpticas, mostrada na equao
3.1.

5 (c 5 (u)) + au = f (3.1)

Na equao de Laplace, que modela a distribuio do potencial eltrico, apenas o


coeficiente c diferente de zero. A constante c corresponde permissividade no vcuo na
equao de Poisson, mas como a densidade volumtrica de carga representada por f e o
auto valor a so iguais a zero na equao de Laplace, c passa a valer 1. Estabelecidos os
valores das constantes a soluo do problema pode ser obtida, como mostram as figuras
4(a) e 4(b).
Captulo 3. Desenvolvimento 19

Color: u Vector field: -grad(u) Color: u


16
45 45

10.8
14 40 40

12 35 35
10.7

10 30 30

10.6
25 25
8

20 20
6 10.5

15 15
4
10.4
10 10
2
5 5
10.3
0
0 0
0 2 4 6 8 10 12 14 16 7.7 7.8 7.9 8 8.1 8.2 8.3

(a) Distribuio do potencial em Volts (b) Distribuio do potencial entre as placas


e fluxo do campo eltrico em
Volts/centmetro (vetores normaliza-
dos)
Color: u Height: u

45
Color: abs(grad(u)) Height: abs(grad(u))
600
X: 7.279 40 11
Y: 9.844
Z: 42.2
X: 1.334 35 10.9
50 500
Y: 7.47 X: 7.736
Z: 33.5 Y: 5.324 10.8
30
40 Z: 34.7
10.7 400
X: 14.64 X: 7.921
25
X: 7.865 Y: 13.53 Y: 10.54 X: 8
30 X: 1.371 Y: 2.324 Z: 16.63 10.6 Z: 231.1 Y: 10.48
Y: 2.42 Z: 24.33 X: 11.02 20 300
Z: 604.5
Z: 31.38 Y: 8.76 10.5
20 Z: 11.37
15
10.4 200
20

10 15 10 10.3

X: 8.605 X: 7.921
10 Y: 10.1 100
Y: 7.762 5 10.2
0 Z: 16.01
Z: 2.712
5
0 2 10.1
4 6 8 0
10 12 0
14 16 7.4 7.6 7.8 8 8.2 8.4 8.6

(c) Pontos de referncia do potencial eltrico (d) Pontos de referncia do campo eltrico

Figura 4 Soluo do PVC com a pdetool

De posse da soluo da pdetool, foram tomados 8 pontos de referncia da distribuio


do potencial e 3 pontos de referncia do campo eltrico. A localizao e os valores destes
pontos so apresentados na figuras 4(c) e 4(d).

3.1.3 Implementao do FEM


Aps a simulao e obteno dos valores de referncia foi realizada a implementao
do mtodo dos elementos finitos em duas dimenses, conforme o apresentado na seo B
do referencial terico. A fim de no tirar proveito das funes do MATLAB R
de forma a
manter a generalidade da soluo implementada e a facilidade de transcrev-la para outras
linguagens, foram utilizadas nos algoritmos deste trabalho apenas as funes da PDE
toolbox relativas geometria, gerao da malha e exibio dos resultados. No pseudocdigo
2 as palavras destacadas em itlico so variveis, as funes destacadas em negrito fazem
parte do MATLAB R
e as funes descritas nas linhas de 9 a 12 so detalhadas no exemplo
do apndice B. A tabela 2 contm a descrio das funes utilizadas.
Captulo 3. Desenvolvimento 20

Algorithm 2 Pseudocdigo do FEM


1: load(dadosGeometria);
2: load(coordRef erencia);
3: load(dadosContorno);
4: g = decsg(dadosGeometria);
5: m = createpde(1);
6: geometryFromEdges(m,g);
7: generateMesh(m, Hmax,valHmax);
8: (nos,tri) = meshToPet(m.M esh);
9: C = geraMatElementares(nos, tri);
10: G = geraMatGlobal(C, tri);
11: (A, b) = atribuiContorno(G, dadosContorno);
12: sol = resolveSistLinear(A,b);
13: pdeplot(m,...);

A funo resolveSistLinear o ponto central deste trabalho, uma vez que a anlise
feita sobre o desempenho das implementaes durante soluo do sistema de equaes
originado do FEM. Foram utilizados 2 solvers a fim de se verificar a performance e a
gesto de memria. O primeiro deles o solver \ do MATLAB R
e o segundo a
implementao do mtodo do gradiente conjugado proposta por Barrett et al. (1995). O
CG como explicitado no referencial terico, um mtodo iterativo no estacionrio do
subespao de Krylov. Como coloca Wathen (1989), o uso de mtodos iterativos se tornou
competitivo medida em que os sistemas de equaes se tornavam maiores. A tcnica
EbE desenvolvida neste trabalho foi proposta originalmente por Hughes, Levit e Winget
(1983) como como sendo um precondicionador para o CG de forma a possibilitar que as
computaes com matrizes sejam realizadas no nvel elementar (KISS et al., 2012).
A motivao da escolha do solver do MATLAB R
(\ ou mldivide) est no fato
de ele utilizar diferentes algoritmos dependendo da estrutura da matriz de coeficientes, tais
como simetria e esparsidade . Especificamente para o problema deste trabalho, cuja matriz
Hermitiana (auto-adjunta) e positiva definida, o solver adota a fatorao de Cholesky
ou a LDL.
A motivao para a escolha do CG implementado por Barrett et al. (1995) est no
fato de que seu material citado em diferentes trabalhos da reviso bibliogrfica, como em
Kiss et al. (2012), Dolwithayakul, Chantrapornchai e Chumchob (2012), Yang, Liu e Chen
(2016). Alm de um completo survey de mtodos numricos para a soluo de sistemas
lineares, os autores disponibilizam as implementaes na linguagem do MATLAB R
e em
C++. O pseudocdigo 3 refere-se ao CG precondicionado com a matriz M .
Captulo 3. Desenvolvimento 21

Funo Descrio
load Carrega para o workspace as variveis salvas nos arquivos
.mat.
decsg Cria a geometria do problema por meio da associao
de regies primitivas. O espao de anlise do capaci-
tor de placas paralelas, por exemplo composto por 2
retngulos e 1 quadrado.
createpde Instancia um modelo de PDE contendo n equaes.
geometryFromEdges Vincula a geometria originada da funo decsg ao modelo
de PDE gerado por createpde.
generateMesh Cria uma malha sobre a geometria do modelo de PDE.
Parmetros adicionais podem ser includos para modificar
a qualidade malha ou a ordem dos elementos (ver 2.2.4).
O parmetro Hmax determina o tamanho mximo das
arestas dos elementos.
meshToPet Obtm as matrizes de pontos, arestas e tringulos, as
quais sero utilizadas na gerao das matrizes elementa-
res e da matriz global.
geraMatElementares partir dos dados da triangulao da malha, gera a
matriz de cada elemento por meio das funes de aproxi-
mao e interpolao.
geraMatGlobal Realiza a agregao ou o mapeamento das matrizes ele-
mentares no sistema global. A matriz resultante esparsa
e sua ordem corresponde ao nmero de ns da malha.
atribuiContorno Atribui os m valores de contorno pr-estabelecidos e com
isso realiza a reduo dos sistema em m ordens, fazendo
com que deixe de ser homogneo.
resolveSistLinear Consiste na aplicao de mtodos numricos para a solu-
o eficiente de sistemas lineares esparsos.
pdePlot Funo utilizada para a exibio da malha e dos resul-
tados. Conforme os parmetros adicionais, so plotados
grficos tridimensionais, campos vetoriais e linhas de
campo.

Tabela 2 Descrio das funes utilizadas no algoritmo do FEM

3.1.4 Implementao do EBE-FEM


A implementao do EBE-FEM consiste basicamente em antecipar a soluo do
sistema de equaes, passando da montagem das matrizes elementares diretamente para
a atribuio das condies de contorno e soluo do sistema, sem que seja necessria
a montagem da matriz de coeficientes global. Para realizar esta mudana de rota na
soluo do problema necessrio modificar tanto o algoritmo quanto a estrutura de dados
Captulo 3. Desenvolvimento 22

Algorithm 3 Pseudocdigo do CG
1: x0 = {0}
2: r0 = b Ax0
3: for i = 1,2... do
4: zi1 = resolve(M , ri1 )
5: i1 = ri1 T zi1
6: if i = 1 then
7: p1 = z0
8: else
9: i1 = i1 / i2
10: pi = zi1 + i1 pi1
11: end if
12: qi = Api
13: i = i1 / pi T qi
14: xi = xi1 + i pi
15: ri = ri1 - i qi
16: if converge(r,tol) then
17: break
18: end if
19: end for

utilizados.
A adaptao do bloco referente atribuio das condies de contorno (linha 11
do algoritmo 2) baseada na abordagem proposta por Xu, Yin e Mao (2005) a qual
consiste na criao de vetores rhs (right hand side) elementares. Ao invs de se atribuir
os valores de contorno s clulas do vetor rhs global que correspondem cada n da
malha, a atribuio feita no nvel elementar. Por exemplo, se um n compartilhado por
2 elementos possui valor de contorno igual a 10, a atribuio feita como uma mdia no
vetor rhs de cada um dos 2 elementos. Assim sendo, cada vetor recebe o valor de contorno
igual a 5. A figura 5 contm o esquema que ilustra este exemplo. Yan et al. (2017) e Wu
et al. (2015) prope uma abordagem parecida baseada no no nmero de conexes do n,
mas na mdia ponderada do valor de contorno original pelos coeficientes de cada elemento
que contm o n.
De posse das matrizes e vetores elementares com as condies de contorno atribudas,
feita a adaptao no algoritmo do CG a fim de que os clculos envolvendo matrizes
sejam feitos elemento a elemento. As operaes entre vetores ou vetores e escalares so
mantidas no nvel global, visto que no requerem tanto esforo computacional como as
operaes matriciais. As adaptaes consistem basicamente em percorrer os N elementos,
realizando os clculos pertinentes e em seguida, armazenar nos vetores globais os resultados
gerados para cada n do elemento. As linhas 4 e 12 do algoritmo 3 possuem operaes
matriciais e so modificadas conforme apresentado nos pseudocdigos 4 e 5. Alm disso, o
resduo inicial da linha 2 do 3 igual a b , dado que o chute x0 vale zero para todos os ns.
Captulo 3. Desenvolvimento 23

Figura 5 Esquema da aplicao das condies de contorno de um elemento

Como os valores de b foram atribudos pelas condies de contorno em nvel elementar,


necessrio realizar a montagem do vetor rhs global para para determinar o resduo inicial.
Este processo de montagem apresentado no pseudocdigo 6.

Algorithm 4 Adaptao da declarao zi1 = resolve(M , ri1 )


1: z = {0}
2: for j = 1,2...|tri| do
3: map = tri(j)
4: Me = precond(Ae (j))
5: z(map) = z(map) + Me r(map)
6: end for

Algorithm 5 Adaptao da declarao qi = Api


1: q = {0}
2: for j = 1,2...|tri| do
3: map = tri(j)
4: q(map) = q(map) + Ae (j)q(map)
5: end for

Algorithm 6 Adaptao da declarao r0 = b Ax0


1: b = {0}
2: for j = 1,2...|tri| do
3: map = tri(j)
4: b(map) = b(map) + be (j)
5: end for
6: r0 = b

3.1.5 Colorao da malha


Proposta por Wathen (1989) e implementada por Kiss et al. (2012) a colorao da
malha possibilita que os trechos do CG descritos nos algoritmos 4, 5 e 6 sejam paralelizados.
Captulo 3. Desenvolvimento 24

A colorao assim como o processo de excluso mtua so estratgias adotadas para evitar
condies de corrida. Condio de corrida o estado inconsistente dos dados causado por
transaes no atmicas. Desta forma, se por exemplo, dois processos ou threads alteram
ao mesmo tempo um dado em memria compartilhada, no se pode prever o valor final do
dado, mas sabe-se que ser inconsistente. A colorao deve acontecer de tal forma que
elementos que compartilhem um mesmo n possuam cores distintas. Uma caracterstica
desejvel num algoritmo otimizado que haja uma distribuio equalizada na quantidade
elementos de cada cor, ao invs de uma quantidade mnima de cores. Por exemplo, numa
malha de 1000 elementos prefervel se utilizar 20 cores com 50 elementos de cada cor, ao
invs de 6 cores com uma distribuio desequilibrada de elementos, como por exemplo
{500 50 200 150 10 90}. Contudo, como o objetivo da etapa de validao do problema no
obter resultados timos, foi adotada uma heurstica gulosa sem balanceamento de cores,
mas que apenas prioriza a aplicao das cores menos utilizadas. A figura 6 mostra um
zoom na colorao da malha no topo entre as duas placas.

10.75

10.7

10.65

10.6

10.55

7.85 7.9 7.95 8 8.05

Figura 6 Exemplo de colorao da malha

Uma vez realizada a colorao, o processamento pode ocorrer de tal forma que
elementos da mesma cor seja executados simultaneamente e elementos de cores distintas
sequencialmente. Como elementos de uma determinada cor no possuem vrtices em
comum, no h a possibilidade de acontecer condio de corrida durante o acesso s
variveis globais z e r do algoritmo 7 e q e d dos algoritmos 8 e 9 respectivamente. A
estrutura de dados cores contm os dados da localizao do elemento na malha.

3.1.6 Paralelizao do algoritmo


A fim de manter a conformidade com o ambiente de desenvolvimento optou-se
por utilizar a parallel Computing toolbox do MATLAB R
. Esta ferramenta possibilita
a implementao para plataformas multicore, GPUs, clusters, grids e cloud. De acordo
com a documentao do MATLAB R
, funes de lgebra linear como f f t, mldivide, eig,
Captulo 3. Desenvolvimento 25

Algorithm 7 Aplicao da colorao no algoritmo 4


1: z = {0}
2: for c = 1,2...|cores| do
3: triCor = cores(c)
4: for j = 1,2...|triCor| do
5: idG = triCor(j)
6: map = tri(idG)
7: Me = precond(Ae (idG))
8: z(map) = z(map) + Me r(map)
9: end for
10: end for

Algorithm 8 Aplicao da colorao no algoritmo 5


1: q = {0}
2: for c = 1,2...|cores| do
3: triCor = cores(c)
4: for j = 1,2...|triCor| do
5: idG = triCor(j)
6: map = tri(id)
7: q(map) = q(map) + Ae (idG)q(map)
8: end for
9: end for

Algorithm 9 Aplicao da colorao no algoritmo 6


1: b = {0}
2: for c = 1,2...|cores| do
3: triCor = cores(c)
4: for j = 1,2...|triCor| do
5: idG = triCor(j)
6: map = tri(idG)
7: b(map) = b(map) + be (idG)
8: end for
9: end for
10: r0 = b
Captulo 3. Desenvolvimento 26

svd, e sort so multithread desde a verso R2008a. No entanto, possvel melhorar a


performance de funes customizadas por meio da parallel toolbox.
A fim de garantir a robustez do cdigo paralelizado, o MATLAB R
disponibiliza a
programao em mltiplos workers ao invs de threads. Cada worker um processo que
trabalha em funo do processo principal (client) que o originou. Desta forma, as tarefas
so divididas entre os workers e coordenadas pelo client, num modelo mestre-escravo. A
fim de evitar condies de corrida e o overhead de comunicao entre os processos, a
ferramenta trabalha por meio de distribuio e troca de mensagens (MPI) ao invs do
compartilhamento de memria. Assim sendo, os dados so copiados para cada worker e ao
final do processamento, agregados novamente no client. A tabela 3 contm a descrio das
funes utilizadas da parallel toolbox.
Para que a paralelizao do cdigo ocorra por meio das funes parfor e spmd
necessrio que a estrutura de dados da colorao seja modificada, a fim de que possa ser
fatiada e distribuda entre os workers. Como pode ser visto nos algoritmos de 7 a 9, as
variveis globais so indexadas pela varivel map, que contm a lista dos identificadores de
cada n do elemento, como por exemplo {25 12 96}. Como estes ndices no so contguos,
ocorre um erro durante a compilao do parfor e o overhead de comunicao no spmd.
Esta restrio do MATLAB R
demanda uma nova adaptao da estrutura de dados e
impede que a atribuio s variveis globais seja feita de forma paralela.
A nova estrutura de dados gerada durante a colorao j retorna o vetor b (ou rhs)
completo, dessa forma, no h a necessidade do processo de montagem partir dos vetores
elementares, como descrito nos algoritmos 6 e 9. Alm dessa melhoria, o objeto retornado
da colorao possui para cada cor, as matrizes elementares e o vetor rhs referente aos
elementos da cor. Em resumo, a nova abordagem retorna os prprios objetos que sero
utilizados na paralelizao ao invs do seu endereo na malha. Os pseudocdigos 10 e 11
mostram a aplicao das funes parfor e spmd no algoritmo 7. A mesma adaptao
feita para o algoritmo 8.

Algorithm 10 Aplicao do parfor no algoritmo 7


1: for c = 1,2...|cores| do
2: matElCor = cores(c).matEl
3: rhsCor = cores(c).rhs
4: R = reshape(r(rhsCor), 3, [ ])
5: PARFOR
6: for j = 1,2...|cores(c)| do
7: Me = precond(matElCor(j))
8: Z = Me R(j)
9: end for
10: END PARFOR
11: z(rhsCor) = z(rhsCor) + reshape(Z, 1, [ ])
12: end for
Captulo 3. Desenvolvimento 27

Funo Descrio
gcp Get current parallel pool retorna as informaes sobre os
workers ativos.
parpool Cria uma nova parallel pool, ou seja, um conjunto de
workers e os demais processos necessrios para o funcio-
namento da toolbox.
parfor Executa as iteraes de um loop em workers. Para que isso
seja possvel as iteraes devem ser independentes entre
si e as estruturas de dados (colees) utilizadas devem
ter a caracterstica de serem fatiadas. Por exemplo,
uma matriz bidimensional pode ser fatiada de 2 formas,
pelas linhas ou pelas colunas.
spmd A funo single program, multiple data executando o
mesmo cdigo em diferentes workers. Diferente do parfor,
os dados no precisam necessariamente estar particiona-
dos, visto que o spmd permite a comunicao entre os
workers.
codistributed Cria uma coleo que distribuda entre os workers e
no copiada integralmente.
getLocalPart Obtm os dados de uma determinada partio de uma
coleo distribuda.
codistributor Funo que realiza a distribuio de uma coleo. Di-
ferente da distribuio limitada que ocorre no parfor,
essa funo possibilita que a distribuio seja feita de
diferentes formas em uma coleo.
gather Funo que realiza a agregao de uma coleo distri-
buda.
drange Executa um loop entre as parties de uma coleo. Este
bloco de cdigo faz com que os workers trabalhem simul-
taneamente em cada distribuio da coleo, mas impede
a comunicao entre eles.

Tabela 3 Descrio das funes utilizadas na paralelizao do EbE-FEM

Enquanto a paralelizao por parfor feita elemento a elemento, a funo spmd


distribui o processamento em q partes, sendo q a quantidade de workers. Cada worker
executa sequencialmente a parcela do problema que lhe atribuda. Conforme a recomen-
dao da documentao, para se obter melhor desempenho, a quantidade de workers deve
ser a mesma de ncleos fsicos do processador. Ao se utilizar o bloco f or drange na
linha 13 ao invs do f or convencional, o comportamento do spdm passa a ser equivalente
ao do parf or.
Captulo 3. Desenvolvimento 28

Algorithm 11 Aplicao do spmd no algoritmo. 7


1: for c = 1,2...|cores| do
2: matElCor = cores(c).matEl
3: rhsCor = cores(c).rhs
4: R = reshape(r(rhsCor), 3, [ ])
5: SPMD
6: codM at = codistributor(f ormaDistM at)
7: M atDist = codistributed(matElCor, codM at)
8: codR = codistributor(f ormaDistR)
9: RDist = codistributed(R, codR)
10: M atP art = getLocalP art(M atDist)
11: RP art = getLocalP art(RDist)
12: for j = 1,2...qtdW orkers do
13: for k = 1,2...|cores(c)| do
14: Me = precond(M atP art(j, k))
15: Z = Me RP art(j, k)
16: end for
17: end for
18: END SPMD
19: z(rhsCor) = z(rhsCor) + reshape(Z, 1, [ ])
20: end for

3.2 Resultados
Os resultados deste trabalho esto divididos nas subsees resultados preliminares
e resultados aplicados. Na primeira subseo so apresentados os resultados da modelagem
com o MATLAB R
e nas subsees seguintes os resultados da aplicao do algoritmo
desenvolvido nas linguagens C++, Scala, Erlang, CUDA e Harlan.

3.2.1 Resultados preliminares


O objetivo desta primeira etapa de atividades validar o processo de paralelizao
do EbE-FEM na tentativa de antecipar as eventuais dificuldades que possam surgir na
implementao do algoritmo nas linguages concorrentes e paralelas e nas arquiteturas
multi e manycore. As execues foram realizadas em um notebook Dell Inspiron N4050
com proessador i5-2450M, 2.50GHz e memria SO-DIMM DDR3 de 4 GiB.

Overview da triangulao

No incio do desenvolvimento foram selecionados pontos de referncia a fim de se


estimar a preciso das aproximaes, com base nos resultados da pdetool (figura 4). A
pdetool fornece a opo de refinamento da malha, que consiste na subdiviso dos tringulos
j existentes, no entanto, a opo de refinamento programtico disponibilizada pela
toolbox dada pelo parmetro Hmax da funo generateMesh (algoritmo 2). Enquanto o
Captulo 3. Desenvolvimento 29

16 16
45 45
14 14
40 40

12 12
35 35

10 30 10 30

25 25
8 8

20 20
6 6
15 15
4 4
10 10

2 2
5 5

0 0 0 0
0 2 4 6 8 10 12 14 16 0 2 4 6 8 10 12 14 16

(a) Refinamento com Hmax = 0.6 (b) Refinamento com Hmax = 0.2

Figura 7 Vizinhana dos pontos de referncia

Hmax Ns Elementos
0.6 1700 3190
0.5 2196 4162
0.4 3154 6046
0.3 5287 10244
0.2 11439 22416
0.1 44692 88522
0.05 176971 352148

Tabela 4 Mapeamento dos identificadores locais do circuito da figura 9

refinamento da pdetool mantm os pontos da malha original, a alterao do Hmax gera uma
nova malha, fazendo com que os pontos de referncia se percam. Embora essa abordagem
possibilite o maior controle da quantidade de elementos, ela impossibilita a verificao da
preciso do valor de um ponto aps o refinamento. A figura 7 destaca os ns da vizinhana
de cada ponto de referncia. Como no se pde observar a preciso foi observado o valor
mdio prximo aos pontos de referncia. A tabela 4 apresenta a quantidade de elementos
e ns gerados para cada valor de Hmax.

Overview das implementaes

Conforme apresentado no captulo de materiais e mtodos, foram desenvolvidas


duas verses do algoritmo do EbE-FEM, sendo a primeira adequada para sistemas de
memria compartilhada e multithread (algoritmos 7 a 9) e a segunda para sistemas de
memria distribuda (10 e 11). A primeira verso do algoritmo proposta por Kiss et al.
(2012) apresenta colorao e paralelizvel, no entanto, devido s restries dos blocos
parfor e spmd da parallel computing toolbox do MATLAB R
foi possvel test-la apenas
sequencialmente. A segunda implementao utiliza uma estrutura de dados distribuda e
Captulo 3. Desenvolvimento 30

(a) Comparao do tempo de execuo (s) (b) Comparao do uso de memria (MiB)

Figura 8 Comparao do EbE com solues sequenciais eficientes

desacoplada para atender aos critrios de fatiamento e independncia dos blocos parfor
e spmd.
A tabela 5 exibe os resultados das execues com o uso de solvers sequenciais. As
linhas indicadas com x mostram as limitaes do processo de montagem da matriz global
devido ao uso excessivo de memria. A mensagem de erro retornada pelo MATLAB R

Requested 44692x44692 (14.9GB) array exceeds maximum array size preference. A adoo
do mecanismo de matrizes esparsas do MATLAB R
no entanto possibilitou que o uso de
memria e o percentual de CPU fossem reduzidos. Os solvers de matrizes esparsas e o
EbE apresentaram um uso equilibrado da CPU em relao ao mldivide e CG com matrizes
full que aumentaram o percentual do uso da CPU medida que o nmero de elementos
da malha aumentou. A figura 8 exibe a comparao do tempo de processamento e uso de
memria dos solvers mais competitivos para para os refinamentos 0.3, 0.2 e 0.1.
Como pode ser visto na tabela 6 o desempenho das implementaes paralelas do EbE
com colorao foram muito piores em relao a tempo de execuo que a implementao
sequencial. Como pode ser visto na ltima coluna, uma iterao do CG com spmd demorou
cerca de 66 vezes mais que a verso sequencial e a soluo completa do problema 48 vezes
mais. Aps dezenas de adaptaes no algoritmo e nas estruturas de dados a fim de melhorar
estes nmeros foi verificado por meio da leitura mais aprofundada da documentao da
partool que a existncia dos comandos parfor e spmd dentro de loops no recomendada
visto que a cada iterao do loop externo ocorre troca de mensagens entre o processo client
e os workers. Alm disso, a documentao informa que iteraes que apresentam operaes
simples e baixo tempo de execuo no devem ser paralelizadas pela toolbox devido ao
custo adicional de memria e comunicao para se criar e manter os workers.
Captulo 3. Desenvolvimento 31

Solver Hmax Tempo (s) Memo (MiB) %CPU


0.6 0.390717 22.1 8
0.5 0.524704 37 24
0.4 0.911115 81.8 28
mldivide
0.3 2.572255 215.2 29
0.2 21.337269 995 50
0.1 x x x
0.3 2.447401 0.05 25
mldivide Sparse 0.2 6.158577 0.08 26
0.1 76.558448 17.2 29
0.6 0.541897 32.9 19
0.5 0.789027 36.2 16
0.4 1.56392 71.3 27
CG
0.3 4.562658 210.7 51
0.2 27.876141 1006.3 55
0.1 x x x
0,3 5.114425 0.1 29
0.2 6.30303 3.2 31
CG Sparse
0.1 79.396158 25.7 33
0.05 1379.017507 172.2 35
0.6 6.082238 0.05 25
0.5 8.84496 0.1 26
0.4 16.518907 0.3 25
EBE Seq
0.3 35.125817 1.7 27
0.2 111.13326 11.8 29
0.1 996.990077 52.9 29

Tabela 5 Tempo de Execuo, consumo de memria e uso da CPU dos solvers sequenciais

Sequencial ParFor SPMD ParFor/seq. SPMD/seq.


Tempo iter. (s) 0,002388 0,052530 0,120366 28,148739 65,683311
% CPU 28 74 42 2,642857 1,5
Tempo Total (s) 4,53238 84,250123 219,3455 18,58849 48,395230

Tabela 6 Comparao das implementaes paralelas para Hmax = 1


32

4 Concluso

O EbE-FEM se mostrou uma estratgia competitiva para o processamento de


sistemas esparsos em relao aos solvers otimizados mldivide e CG, sobretudo na demanda
de memria. A paralelizao adequada deste algoritmo por meio do uso de threads tende
a ser promissora na melhoria do tempo de processamento apresentado na figura 8. Os
desafios enfrentados na paralelizao do algoritmo por meio dos blocos parfor e spmd
possibilitaram a criao de duas verses do EbE, sendo uma de memria compartilhada e
outra de memria distribuda, que facilitaro na adequao do cdigo para as linguagens e
arquiteturas que sero utilizadas na segunda etapa do trabalho.
33

Referncias

AHAMED, A.-K. C.; MAGOULS, F. Conjugate gradient method with graphics


processing unit acceleration: CUDA vs OpenCL. Advances in Engineering
Software, v. 47, n. 1, p. 164169, 2016. ISSN 0965-9978. Disponvel em: <http:
//dx.doi.org/10.1016/j.advengsoft.2011.12.013>. Citado 2 vezes nas pginas 4 e 7.

ANZT, H. et al. Preconditioned Krylov solvers on GPUs. Parallel Computing,


Elsevier B.V., v. 0, p. 113, 2016. ISSN 01678191. Disponvel em: <http:
//dx.doi.org/10.1016/j.parco.2017.05.006>. Citado na pgina 4.

BARRETT, R. et al. Templates for the Solution of Linear Systems: Building Blocks for
Iterative Methods. Mathematics of Computation, v. 64, n. 211, p. 1349, 1995. ISSN
00255718. Disponvel em: <http://www.jstor.org/stable/2153507?origin=crossref>.
Citado 2 vezes nas pginas 15 e 20.

BOEHMER, S. et al. Numerical simulation of electrical machines by means of a


hybrid parallelisation using MPI and OpenMP for finite-element method. IET Science,
Measurement & Technology, v. 6, n. 5, p. 339, 2011. ISSN 17518822. Disponvel em:
<http://digital-library.theiet.org/content/journals/10.1049/iet-smt.2011.0126>. Citado
na pgina 7.

BOYCE, W. E.; DIPRIMA, R. C. Equaces Diferenciais Elementares e Problemas de


Valores de Contorno. [S.l.]: LTC, 2010. ISBN 978521617563. Citado na pgina 9.

BOYLESTAD, R. L. Anlise de Circuitos. [S.l.]: Pearson, 2011. ISBN 978-85-64574-20-5.


Citado 2 vezes nas pginas 5 e 17.

CAREY, G. F. et al. Element-by-element vector and parallel computations.


Communications in Applied Numerical Methods, v. 4, n. 3, p. 299307, 1988. ISSN
0748-8025. Disponvel em: <http://doi.wiley.com/10.1002/cnm.1630040303>. Citado na
pgina 7.

CHOU, C.-y.; CHEN, K.-t. Performance Evaluations of Different Parallel Programming


Paradigms for Pennes Bioheat Equations and Navier-Stokes Equations. p. 503508, 2016.
Citado na pgina 8.

DAYDE, M. J.; LEXCELLENT, J.-Y.; GOULD, N. I. M. On the Use of Element-


by-Element Preconditioners to Solve Large Scale Partially Separable Optimization.
Computing, 1995. Citado 2 vezes nas pginas 4 e 7.

DESAI, J. A. C. S. Introduction to the Finite Element Method: A Numerical Method for


Engineering Analysis. [S.l.]: Van Nostrand Reinhold Company, 1972. Citado 5 vezes nas
pginas 10, 11, 12, 37 e 38.

DOCUMENTATION: mldivide. <https://www.mathworks.com/help/matlab/ref/


mldivide.html>. Acesso em: 03/08/2017. Nenhuma citao no texto.

DOLWITHAYAKUL, B.; CHANTRAPORNCHAI, C.; CHUMCHOB, N. An efficient


asynchronous approach for Gauss-Seidel iterative solver for FDM/FEM equations on
Referncias 34

multi-core processors. JCSSE 2012 - 9th International Joint Conference on Computer


Science and Software Engineering, p. 357361, 2012. Citado na pgina 20.
ERLANG Market Share. <https://w3techs.com/technologies/details/pl-erlang/all/all>.
Acesso em: 19/07/2017. Nenhuma citao no texto.
FAIRES, R. L. B. J. D. Anlise Numrica. [S.l.]: CENGAGE Learning, 2008. ISBN
978-85-221-0601-1. Citado 3 vezes nas pginas 10, 15 e 39.
GUO, X. et al. Developing a scalable hybrid MPI/OpenMP unstructured finite element
model. Computers and Fluids, Elsevier Ltd, v. 110, p. 227234, 2014. ISSN 00457930.
Disponvel em: <http://dx.doi.org/10.1016/j.compfluid.2014.09.007>. Citado na pgina
5.
HU, J.; QUIGLEY, S. F.; CHAN, A. An element-by-element preconditioned conjugate
gradient solver of 3d tetrahedral finite elements on an FPGA coprocessor. Proceedings -
2008 International Conference on Field Programmable Logic and Applications, FPL, p.
575578, 2008. Citado 2 vezes nas pginas 7 e 8.
HUEBNER, K. H. et al. The Finite Element Method for Engineers. [S.l.]: John Wiley &
sons, 2001. ISBN 978-0-471-37078-9. Citado 3 vezes nas pginas 10, 11 e 12.
HUGHES, T.; LEVIT, I.; WINGET, J. Element-by-element implicit algorithms for heat
conduction. Journal of Engineering Mechanics, v. 109, n. 2, p. 576585, 1983. ISSN
07339399. Citado 3 vezes nas pginas 4, 7 e 20.
IWASHITA, T. et al. Software framework for parallel BEM analyses with H-matrices.
IEEE CEFC 2016 - 17th Biennial Conference on Electromagnetic Field Computation,
Elsevier B.V., v. 108, n. June, p. 22002209, 2017. ISSN 18770509. Disponvel em:
<http://dx.doi.org/10.1016/j.procs.2017.05.263>. Citado na pgina 4.
JIN, J. The Finite Element Method in Electromagnetics. [S.l.]: John Wiley & sons, 2002.
ISBN 0471438189. Citado 5 vezes nas pginas 9, 10, 11, 12 e 13.
KISS, I. et al. High locality and increased intra-node parallelism for solving finite
element models on GPUs by novel element-by-element implementation. In: 2012 IEEE
Conference on High Performance Extreme Computing, HPEC 2012. [S.l.: s.n.], 2012. ISBN
9781467315760. Citado 6 vezes nas pginas 4, 7, 8, 20, 23 e 29.
LEVIT, I. Element by element solvers of order n. v. 27, n. 3, p. 357360, 1987. Citado na
pgina 7.
POWERS, D. L. Boundary Value Problems and Partial Differential Equations. [S.l.]:
Elsevier, 2006. ISBN 139780125637381. Citado na pgina 9.
PROCESSADOR Power9 da IBM. <http://www.ibmsystemsmag.com/power/
businessstrategy/competitiveadvantage/POWER9-Plans/>. Acesso em: 19/07/2017.
Nenhuma citao no texto.
PROCESSADORES Intel. <https://www.intel.com/content/www/us/en/products/
processors.html>. Acesso em: 19/07/2017. Nenhuma citao no texto.
PRODUTOS AMD. <http://www.amd.com/pt-br/products>. Acesso em: 19/07/2017.
Nenhuma citao no texto.
Referncias 35

PRODUTOS NVIDIA. <http://www.nvidia.com.br/page/products.html>. Acesso em:


19/07/2017. Nenhuma citao no texto.
REDDY, J. N. An Introduction to the Finite Element Method. [S.l.]: McGraw Hill, 2006.
ISBN 0071244735. Citado 2 vezes nas pginas 10 e 14.
RUN MATLAB on multicore and multiprocessor machines. <https://www.mathworks.
com/discovery/matlab-multicore.html>. Acesso em: 03/08/2017. Nenhuma citao no
texto.
SADIKU, M. N. O. Numerical Techniques in Electromagnetics. [S.l.]: CRC Press, 2001.
ISBN 0-8493-1395-3. Citado 3 vezes nas pginas 10, 11 e 44.
SCALA Market Share. <https://w3techs.com/technologies/details/pl-scala/all/all>.
Acesso em: 19/07/2017. Nenhuma citao no texto.
SZABO, B.; BABUKA, I. An Introduction to Finite Element Analysis - Ch4 Generalized
Formulations. [S.l.: s.n.], 2009. 109144 p. ISBN 9780470977286. Citado na pgina 4.
VOLAKIS, J. L.; CHATTERJEE, A.; KEMPEL, L. C. Finite Element Method for
Electromagnetics. [S.l.]: John Wiley & sons, 1998. ISBN 0780334256. Citado 2 vezes nas
pginas 13 e 14.
WATHEN, A. J. An analysis of some element-by-element techniques. Computer Methods
in Applied Mechanics and Engineering, v. 74, n. 3, p. 271287, 1989. ISSN 00457825.
Citado 3 vezes nas pginas 4, 20 e 23.
WU, D. et al. GPU Acceleration of EBE Method for 3-D Linear Steady Eddy Current
Field. 2015. Citado 2 vezes nas pginas 8 e 22.
XU, J.; YIN, W. Y.; MAO, J. Capacitance extraction of high-density 3D interconnects
using finite element method. Asia-Pacific Microwave Conference Proceedings, APMC, v. 2,
p. 35, 2005. Citado 2 vezes nas pginas 8 e 22.
YAN, X. et al. Research on Preconditioned Conjugate Gradient Method Based on EBE-
FEM and the Application in Electromagnetic Field Analysis. v. 53, n. 6, 2017. Disponvel
em: <http://www.ieee.org/publications{\_}standards/publications/rights/index.h>.
Citado 2 vezes nas pginas 8 e 22.
YANG, B.; LIU, H.; CHEN, Z. Preconditioned GMRES solver on multiple-
GPU architecture. Computers and Mathematics with Applications, Elsevier
Ltd, v. 72, n. 4, p. 10761095, 2016. ISSN 08981221. Disponvel em: <http:
//dx.doi.org/10.1016/j.camwa.2016.06.027>. Citado na pgina 20.
YAO, L. et al. Parallel implementation and performance comparison of BiCGStab for
massive sparse linear system of equations on GPU libraries. Proceedings - 2015 IEEE
12th International Conference on Ubiquitous Intelligence and Computing, 2015 IEEE
12th International Conference on Advanced and Trusted Computing, 2015 IEEE 15th
International Conference on Scalable Computing and Communications, 20, p. 603608,
2015. Citado 2 vezes nas pginas 4 e 8.
ZIENKIEWICZ, R. L. T. J. Z. C. The Finite Element Method its Basis & Fundamentals.
[S.l.]: Elsevier, 2005. ISBN 0750663200. Citado 7 vezes nas pginas 10, 11, 13, 37, 39, 40
e 41.
Apndices
37

APNDICE A Sistemas de elementos


discretos

(DESAI, 1972, p. 68) introduz o conceito de Mtodo de Elementos Discretos (MED)


como sendo uma etapa intermediria da formulao fsica MEF. Na representao em
elementos discretos, cada elemento unidimensional, de tal forma que o sistema completo
representado por uma estrutura aramada, conforme mostra a figura 9.
De forma similar, (ZIENKIEWICZ, 2005, p. 2) apresenta o Sistema Discreto Padro
(SDP) como uma forma unificada de analisar problemas de natureza discreta.
Em ambos os casos, os sistemas originais no se tratam de um contnuo, propria-
mente dito, mas de um sistema composto por partes. Cada parte por si s um componente
fsico funcional, seja ela uma viga, um tubo ou um resistor, por exemplo. Entender o
sistema de elementos discretos importante para compreenso do funcionamento do MEF
(ZIENKIEWICZ, 2005, p. 6), cujos elementos (quadrados, tringulos ou tetraedros) no
so funcionais ou no possuem um significado fsico fora do sistema.

A.1 Modelo de Elementos Discretos


Considere a malha bidimensional apresentada na figura 9. Esta malha pode re-
presentar por exemplo, a abstrao de uma estrutura mecnica (prtico), de um sistema
hidrulico ou de circuito eltrico, como o apresentado na figura 10.
Na figura 9, os elementos so identificados por nmeros (sem parentesis) de 1 a 6.
A identificao de cada n, ou juno, feita entre parntesis. Na figura 9(a), em negrito,
cada n relacionado um identificador global, enquanto na figura 9(b), os ns possuem
identificadores locais, relativos no ao conjunto total de ns, mas apenas aos ns de um
dado elemento. Estes identificadores so necessrios para a anlise de um nico elemento
e em seguida para a montagem do sistema como um todo.
Fazendo a analogia com um prtico, as foras que atuam sobre cada n, podem ser
definidas a partir dos deslocamento destes ns (ZIENKIEWICZ, 2005, p. 3). Esta relao
dada pela lei de Hooke simples, mostrada na equao A.1, na qual as foras Q1 e Q2
sobre os ns de um elemento so dadas calculadas em funo dos deslocamentos u1 e u2 .
A constante A a rea do elemento, E o mdulo de Young (Mdulo de Elasticidade) e l
APNDICE A. Sistemas de elementos discretos 38

Figura 9 identificao global e local

Figura 10 Circuito puramente resistivo, um possvel objeto de representao da malha


da figura 9

o cumprimento do elemento (DESAI, 1972, p. 13).


1

1


Q1
AE u1

= (A.1)


Q2

l
1

1 u2

No circuito resistivo da figura 10, a relao para um elemento dada pela Lei
de Ohm, na qual as correntes em cada n, podem ser definidas partir das tenses nos
terminais do elemento. Na equao A.2, Ia e Va so respectivamente a corrente e a tenso
APNDICE A. Sistemas de elementos discretos 39

no n a de um elemento, enquanto R a resistncia do mesmo (ZIENKIEWICZ, 2005, p.


7).


1

1


I1
1 V1

= (A.2)


I2

R 1

1 V2

O padro encontrado nas equaes A.1 e A.2 pode ser generalizado para outros
campos da engenharia, cincia e at mesmo administrao e economia, desde que possam
ser modelados por sistema de equaes lineares (FAIRES, 2008, p. 331).
A questo a ser respondida : Como analisar o efeito global de uma ao realizada
em um conjunto limitado de ns? Por exemplo, como obter o potencial eltrico nos ns 3, 4
e 5, da figura 10, a partir da aplicao das tenses 9V e 0V nos ns 1 e 2 respectivamente?
Como compilar os resultados locais para o clculo de grandezas secundrias, como a corrente
ou potncia eltrica em cada elemento, por exemplo? Estas questes sero respondidas
nas duas subsees seguintes.
sectionEquaes do Elemento Discreto
Se um fenmeno que atua sobre um dado elemento e modelado por um sistema
de equaes lineares, pode ser representado em sua forma matricial como:

{q e } = [K e ]{ue } + {f e } (A.3)

O vetor q conhecido ou parcialmente conhecido. Ele geralmente uma grandeza


secundria, calculada a partir da distribuio da grandeza primria u desconhecida. A
matriz K a matriz de coeficientes e determina como feita a distribuio da grandeza u.
No exemplo de estruturas, K a matriz de rigidez, q o conjunto de foras que atuam nos
ns do elemento e u o deslocamento destes ns causados por estas foras. Para circuitos
eltricos, K relaciona as resistncias do sistema, q a corrente no elemento, originada pela
diferena de potencial u em seus ns. O vetor f o estado inicial do elemento. Caso este
estado seja de equilbrio (sem toro inicial ou corrente residual, por exemplo), f igual a
zero (ZIENKIEWICZ, 2005, p. 7).
As componentes de cada vetor da equao A.3 so relativas aos ns do elemento
e a ordem da matriz K igual ao nmero de ns deste elemento. O nmero de ns de
um elemento tambm denominado grau de liberdade (ZIENKIEWICZ, 2005, p. 5). A
equao A.4 mostra a representao de um elemento com grau de liberdade m. Se vista
APNDICE A. Sistemas de elementos discretos 40

como uma matriz de adjacncia, K mostra como cada n se relaciona com os demais.





q1e






u1



e
K11
e
K12 ... e
K1m




e



e .. ..
.

.


q2

u2
K11
qe = .. ue = .. Ke =
(A.4)
.. .. ..

. . . . .




















e e e
q um Km1 ... . . . Kmm




m

Como pode ser visto na figura 9(b), cada elemento compartilha ns com seus
vizinhos, de forma que, o resultado obtido no n de um elemento deve ser compatvel
com os resultados obtidos nos outros elementos, para o mesmo n. Esta condio de
compatibilidade e equilbrio ser vista na subseo seguinte.

A.2 Montagem do Sistema Global


Para que uma ao local em um n seja corretamente transmitida para os ns
vizinhos, e dessa forma tenha seus efeitos refletidos em todo o sistema, necessrio
relacionar todos os elementos e ns em um nico sistema de equaes. A equao A.5
mostra um sistema global genrico. Sendo n o nmero total de ns, q, u e f so vetores
coluna de comprimento n e K uma matriz quadrada de ordem n.

{q} = [K]{u} + {f } (A.5)

A montagem do sistema A.5 consiste no mapeamento dos sistemas elementares


para um nico sistema global e na aplicao das condies de equilbrio pertinentes ao
problema (ZIENKIEWICZ, 2005, p. 5).
No mapeamento, a matriz global de coeficientes pode ser vista como uma matriz
de adjacncia de todos os ns. Desta forma, aes locais sobre um elemento podem ser
propagadas para os elementos vizinhos. Enquanto nas equaes elementares os ns so
referenciados localmente, como na figura 9(b), no sistema global cada n possui uma nica
referncia, conforme a figura 9(a). As influncias de diferentes elementos sobre um n so
somadas na matriz global, de forma que se tenha uma influncia resultante.
O prximo passo a aplicao da condio de equilbrio para cada n, conforme
a lei que modela o problema. Para problemas de mecnica, por exemplo, a condio de
equilbrio dada pela 3a lei de Newton diz que o somatrio das foras em um ponto igual
a zero. Similarmente na anlise de circuitos, a lei de Kirchoff diz que a soma das correntes
que entram e saem de um n tambm igual a zero. A equao A.6 mostra a aplicao da
APNDICE A. Sistemas de elementos discretos 41

condio de equilbrio no n a.

m
qae = qa1 + qa2 + = 0
X
(A.6)
e=1

Considerando que o estado inicial f do corpo nulo, o sistema A.5 que possui m
ns e n elementos, pode ser representado como

n X
m
e
X
q= Kab ub = 0 (A.7)
b=1 e=1

A.3 Atribuio das condies de Contorno


A atribuio dos valores de contorno consiste na imposio dos valores preestabele-
cidos da varivel u. No exemplo 10, as condies de contorno so os valores da tenso u
impostos nos ns 1 e 2, como mostra a equao a seguir





9V












0V






u= u3 (A.8)





u4











u


5

Com isso, a insero de valores de contorno no sistema promove a reduo do


nmero de equaes de equilbrio do sistema apresentado em A.7, por meio da eliminao
das linhas cujo valor de u j foi especificado (ZIENKIEWICZ, 2005, p. 5).

A.4 Exemplo: Associao de resistores


A partir dos passos apresentados nas subsees acima, deve-se determinar os valores
das tenses ns ns 3, 4 e 5 partir da diferena de potencial entre os ns 1 e 2.
O primeiro passo para a resoluo do problema a especificao das equaes
de cada elemento. Como apresentado na equao A.2, as correntes em cada n de um
elemento so dadas pelas diferenas de potencial destes ns. Com isso, para cada resistor,
APNDICE A. Sistemas de elementos discretos 42

Identificao Local Identificao Global


e11 , e62 1
e12 , e21 2
e22 , e31 , e51 3
e32 , e41 4
e42 , e52 , e61 5

Tabela 7 Mapeamento dos identificadores locais do circuito da figura 9

tem-se:


1
I11 (V11 V21 ) I12 = V12 V22

=



3
e=1: e=2:

I21 = 31 (V11 + V21 )
I22 = V12 + V22


I13 V13 V23 I14 = V14 V24

=



e=3: e=4: (A.9)
I23 = V13 + V23 I24 = V14 + V24




1
I15 = (V15 V25 ) I16 = V16 V26




2
e=5: e=6:
I25 = 21 (V15 + V25 ) I26 = V16 + V26



Uma vez definidas as equaes de cada elemento feita a montagem do sistema


global. Conforme dito anteriormente, a etapa de montagem consiste no mapeamento da
numerao local dos ns para um sistema de numerao global. Analisando a figura 9(b),
possvel notar que os ns 1 e 2 do elemento 2, por exemplo, so os ns 2 e 3 do sistema
global apresentado na figura 9(a). A tabela 7 relaciona os identificadores locais e seus
equivalentes no sistema global.
A equao A.10 a seguir, apresenta o mapeamento do elemento 1 e em seguida, na
equao A.11, includo o mapeamento do elemento 2.


1 1



I1


3 3
0 0 0


V1







1
1



I2




3 3
0 0 0


V2







I3 = 0 0 0 0 0 V3 (A.10)










I4 0 0 0 0 0 V4

















I 0 0 0 0 0 V


5 5
APNDICE A. Sistemas de elementos discretos 43


1 1



I1


3 3
0 0 0


V1







1
1
+ 1 1 0




I2




3 3
0


V2







I3 = 0 1 1 0 0 V3 (A.11)









I4 0 0 0 0 0 V4

















I 0 0 0 0 0 V


5 5

Todas as contribuies em um dado n, devem ser consideradas. Por este motivo,


quando houverem influncias de diferentes elementos sobre um n, as mesmas devem
ser somadas no sistema global. A equao A.12 apresenta o sistema global final, com as
contribuies de todos os 6 elementos.


1 1



I1


3 3
0 0 0

V1







1
4
1




I2




3 3
0 0


V2







I3 = 0 1 2 1 0 V3 (A.12)









I4 0 0 1 2 1 V4

















I 0 0 0 1 1 V


5 5
44

APNDICE B Mtodo dos elementos


finitos em 2 dimenses

Neste captulo ser apresentada a soluo de um modelo de elementos finitos. O


exemplo desenvolvido foi adaptado do exemplo 6.1 de Sadiku (2001). Deseja-se saber
o valor do potencial eltrico nos pontos a e b da placa submetida a uma diferena de
potencial de 10V , como mostra a figura 11a.
O primeiro passo consiste em realizar a triangulao da malha. Uma possibilidade
de malha apresentada na figura 11[b]. A estrutura de dados tri contm a informao
sobre quais vrtices formam cada elemento enquanto a estrutura nos possui as coordenadas
de todos os vrtices da geometria do problema.
O passo seguinte a definio da funo de interpolao. A aproximao da
distribuio do potencial num dado elemento pode ser feita por uma funo linear, como
mostra a equao B.1. Desta forma, os valores de V em cada n podem ser obtidos pelo
sistema de equaes B.2

Ve = ae + be x + ce y (B.1)





V1e


1 x1 y1
a






V2e = 1 x2 y2 b

(B.2)





Ve

1 x 3 y3 c

3

Deseja-se ento resolver o problema encontrando os valores dos coeficientes a, b e


c que fazem a aproximao de V . Dada a simplicidade o sistema ele pode ser resolvido
invertendo-se a matriz por meio do clculo dos determinantes e cofatores. Os valores da

(a) Geometria do problema (b) Triangulao do problema

Figura 11 Exemplo do FEM em 2 dimenses


APNDICE B. Mtodo dos elementos finitos em 2 dimenses 45

transposta da matriz de cofatores so dados na equao B.3 e o determinante na equao


B.4. A equao B.5 contm a substituio na equao B.1 dos valores dos coeficientes
calculados.


(x2 y3 x3 y2 ) (x3 y1 x1 y3 ) (x1 y2 x2 y1 )

cof (Ae )T = (y2 y3 ) (y3 y1 ) (y1 y2 ) (B.3)




(x3 x2 ) (x 1 x3 ) (x2 x1 )

det(Ae ) = (x1 y2 x2 y1 ) + (x3 y1 x1 y3 ) + (x2 y3 x3 y2 ) (B.4)


a e
V1




 3

e T
cof (A )

 

Ve = 1 x y Nje (x, y)Vje
X
b = 1 x y e = (B.5)
det(Ae ) V2



j=1
Ve

b

3

Obtidas as funes de interpolao N e , a prxima etapa consiste na montagem do


sistema de equaes do problema, comeando pela definio das matrizes elementares. A
distribuio do potencial modelada pela equao de Laplace 2 V = 0. Substituindo esta
equao em 2.8 e adotando-se o mtodo de Galerkin, tem-se a integral B.6.

ZZ
Nie 2 V e dxdy = Rie i = 1, 2, 3. (B.6)

Aplicando a integrao por partes fazendo u = N e dv = nabla2 V , tem-se como


resultado da relao udv = uv vdu a equao B.7.
R R

ZZ
V e Nie dxdy = Rie i = 1, 2, 3. (B.7)

Substituindo V e por sua aproximao obtida em (B.5) obtm-se a frmula da


matriz elementar nas equaes B.8 e B.9.

3
ZZ X 3 ZZ  
Nje Vje Nie dxdy = Nie Nje Vje dxdy = Rie
X
i = 1, 2, 3. (B.8)
j=1 j=1

ZZ  
Kije = Nie Nje dxdy (B.9)

De forma a agilizar os clculos das matrizes elementares define-se na equao B.10


a partir dos elementos das equaes B.3 e B.4 as variveis P , Q e A. P e Q so obtidas a
APNDICE B. Mtodo dos elementos finitos em 2 dimenses 46

partir das simplificaes nos clculos e A a rea do tringulo. A equao B.11 mostra
como os coeficientes podem ser calculados aps a simplificao

P1 = (y2 y3 ) P2 = (y3 y1 ) P3 = (y1 y1 )


Q1 = (x3 x2 ) Q2 = (x1 x3 ) Q3 = (x2 x1 ) (B.10)

A = 21 (P2 Q3 P3 Q2 )

1
Kije = (Pi Pj + Qi Qj ) (B.11)
4A
As matrizes dos elementos e a matriz global so apresentadas nas equaes B.12
e B.13. Aps a definio das matrizes elementares realizado o mapeamento de seus
coeficientes para a matriz global. Enquanto a matriz elementar da ordem do nmero de
ns do elemento, a matriz global de coeficientes da ordem do nmero de ns da malha.
O processo de mapeamento detalhado no apndice A.


0, 560 0, 285 0, 274 0, 620 0, 257 0, 362

K1 =
0, 285 0, 592 0, 3066

K2 =
0, 257 0, 509 0, 252

(B.12)


0, 274 0, 306 0, 580 0, 362 0, 252 0, 615


0, 560 0, 285 0 0, 274

0, 285 0, 257 0, 669

1, 213

K=


(B.13)
0 0, 257 0, 509 0, 252




0, 274 0, 669 0, 252 1, 195

A atribuio dos valores de contorno consiste na reduo da ordem na matriz


B.13 por meio da eliminao dos graus de liberdade (ns) com valores pr estabelecidos
(contorno). As equaes B.14 e B.15 exibem o sistema reduzido e a soluo.


0, 560 0, 285 0 0, 274
10








0







2
0, 285 0, 257 0, 669 V

1, 213

0


= (B.14)


0 0, 257 0, 509 0, 252 0
0















4
0, 274 0, 669 0, 252 1, 195 V 0



2
0.285 0.257 V 2

2.858

5.241

V



= = (B.15)
0.274 0.252 V 4 2.741 V 4 5.227

S-ar putea să vă placă și