• Nenhum resultado encontrado

Cálculos numéricos dependentes das condições de fronteira

4.7 Algoritmos para o cálculo das equações-elemento

4.7.2 Cálculos numéricos dependentes das condições de fronteira

Os cálculos, que dependem da localização do elemento relativamente à fronteira e tam- bém das condições de fronteira prescritas, nos lados do elemento, referem-se a deter- minação do valor aproximado de[Kh],{Fh}e{Fq}.

É importante notar que estas quantidades não são calculadas, quando

1) o elemento é interior;

2) o elemento não tem condições naturais prescritas−neste caso{F} = {FQ}surge

como incógnita - variável secundária.

Apenas nos elementos cujas fronteiras são coincidentes com uma fronteira onde está prescrita uma condição do tipo convectivo é calculada a matriz[Kh]e o vetor{Fh},

uma vez que não fazem parte do modelo.

prescrito o valor do fluxo, ou seja se tem qn =qs:

Algoritmo 4.3:CÁLCULO DE{Fq}l SOBRE UM LADOl

1 Início

2 {Fq}l ← {0}

3 Para i =1 até Ngfazer

4 {Θˆ} ← {Ψˆ}(ξ(τi), η(τi)) 5 J1 ← r ∑ i=1 xi d ˆθi (τi) 6 J2 ← r ∑ i=1 xi d ˆθi (τi) 7 J ← q J12+J22 8 {Fq}l ← {Fq}l+wiˆqs(τi){Θˆ} · J 9 Fim Para 10 Retornar{Fq}l 11 Fim

Para o cálculo de {Fh}l e [Kh] sobre o lado l de um elemento coincidente com a

podemos usar o algoritmo:

Algoritmo 4.4:CÁLCULO DE{Fh}E[Kh]SOBRE UM LADOl

1 Início

2 {Fh}l ← {0} 3 [Kh]l ← [0]

4 Para i =1 até Ngfazer

5 {Θˆ} ← {Ψˆ}(ξ(τi), η(τi)) 6 J1 ← r ∑ i=1 xi d ˆθi (τi) 7 J2 ← r ∑ i=1 xi d ˆθi (τi) 8 J ← q J12+J22 9 {Fh}l ← {Fh}l+wiˆqh(τi){Θˆ} ·J 10 [Kh]l ← [Kh]l+wih{Θˆ}{Θˆ}T·J 11 Fim Para 12 Retornar{Fq}le[Kh]l 13 Fim

Nos algoritmos 4.3 e (4.4),{Ψˆ} representa o vetor contendo as r funções de inter- polação sobre o ER correspondente ao elemento sobre o qual é calculado {Fq}sobre o

lado l. As restrição das funções de interpolação sobre o lado correspondente do ER é dada por

{Θˆ}(τ) = [ˆθ1(τ), ˆθ2(τ), ..., ˆθr(τ)]T a qual é obtida com a parametrização ξ =ξ(τi)e η =η(τi).

[Kh] representa a matriz de condutância e h o coeficiente de transferência de calor por

Capítulo 5

Implementação do MEF em Wolfram

Mathematica

5.1

Motivação e objetivos

O estudo realizado nesta tese mostrou que o MEF é um método especialmente orien- tado para uma implementação computacional. As vantagens de uma implementação computacional são importantes:

- na fase de pré-processamento, onde é necessário introduzir e indexar um grande volume de dados;

- na fase de processamento, onde é necessário resolver sistemas algébricos de grande dimensão;

- na fase de pós-processamento onde é necessário produzir gráficos e tabelas que possibilitem uma análise dos resultados.

Na fase de pré-processamento é necessário introduzir um indexar um grande volume de dados para definir corretamente a especificação do problema em domínios bidi- mensionais, nomeadamente a discretização do domínio, coeficientes da equação re- gente e condições de fronteira. Esta tarefa, quando realizada manualmente é fastidiosa e propensa a erros. Assim, além da automatização das fases de processamento e pós- processamento, com vantagens óbvias, definimos também o objetivo de facilitar a in- trodução da especificação do problema, definindo módulos especialmente orientados

para a facilidade de utilização.

Com estas ideias em mente, optamos por implementar o MEF usando o sistema computacional algébrico Mathematica 10.1. O Mathematica (http://www.wolfram. com/mathematica/) teve a sua génese nos trabalhos de investigação do cientista Bri- tânico Stephen Wolfram [45]. Estas ideias deram origem à fundação da empresa Wol- fram Research em 1987 e conduziram ao lançamento da primeira versão do Mathema- tica em junho 1988. Com as versões seguintes lançadas em 1991, 1993, 1996, 1999, e numa frequência quase anual até 2015 foram refinadas e incorporadas novas funcio- nalidades. Com estes desenvolvimentos e com a crescente popularização o âmbito de utilização do Mathematica foi progressivamente estendido das ciências exatas a diver- sas áreas científicas incluído a Biologia, Finanças, Ciências sociais entre muitas outras. Todos estes desenvolvimentos conduziram ao reconhecimento pela comunidade cien- tífica, a par de outras ferramentas computacionais concorrentes, tais como o Matlab, Maple, Maxima entre outros, como um dos melhores sistemas computacionais da atu- alidade, com uma crescente comunidade de utilizadores abrangendo não só as áreas do ensino e investigação mas também na industria e na prestação de serviços. O pro- jeto Wolfram alpha (https://www.wolframalpha.com) alargou ainda mais o âm- bito de aplicações constituindo atualmente o primeiro sistema computacional global de computação dirigido ao publico em geral.

No que concerne aos objetivos desta tese, a escolha do Mathematica em detrimento de outras ferramentas computacionais igualmente relevantes (Fortran, Delphi, C++, Matlab, Mapple, Maxima, entre muitas outras) recaiu na elegância e na sofisticação da linguagem de programação “Wolfram Language” (WL) incluida no Mathematica [3]. O Mathematica possui simultaneamente capacidades avançadas de manipulação simbólica de expressões matemáticas e capacidades de cálculo numéricos. Estas va- lências, tornam-no especialmente interessante permitindo uma implementação a alto nível da fase de pré-processamento bem como uma implementação numérica eficiente da fase de processamento. Com efeito, o Mathematica possui uma biblioteca de rotinas numéricas eficientes, implementadas em baixo nível, para a fatorização resolução de sistemas de grande dimensão. O Mathematica possui também capacidades ao nível da computação gráfica contendo mecanismos que permitem a produção de gráficos de alta qualidade, essenciais na fase de pós-processamento.

Além das vantagens referidas, o Mathematica é uma ferramenta computacional que facilita a adoção do paradigma computacional da prototipagem. A implementa- ção computacional foi desenvolvida com base nesta ordem de ideias, permitindo um desenvolvimento rápido. Assim, uma aplicação é vista, não como um produto final, mas como um produto extensível onde podem ser acopladas novas funcionalidades.

Neste sentido, e tendo em vista adicionar funcionalidades de cálculo simbólico às funcionalidades numéricas, especialmente na extensão a problemas não lineares, foi desenvolvido um conjunto de sub-rotinas (módulos) em Wolfram Mathematica 10.1. Neste capítulo, começamos por definir o modelo matemático geral passível de ser resolvido computacionalmente pelos módulos Mathematica. Segue-se a descri- ção das estruturas de dados que suportam a formulação computacional e a caracte- rização dos módulos autónomos de processamento, designadamente, os módulos de pré-processamento, de processamento e de pós-processamento. O capítulo inclui um exemplo de utilização da aplicação.