terça-feira, agosto 20, 2013

Funções de Interpolação aplicadas à Fluidodinâmica Computacional e Transferência de Calor (Parte II)


Complementando o post anterior, vou falar um pouco mais sobre Funções de Interpolação aplicadas à Fluidodinâmica Computacional e Transferência de Calor. Como já dito na primeira parte, esta postagem não se trata de um manual passo-a-passo sobre como desenvolver funções de interpolação, mas sim uma visão geral sobre cada uma delas com o objetivo de auxiliar o leitor no momento de escolher a melhor opção para a sua eventual necessidade.


SUDS e SWUDS – Skew Weighted Upstream Differencing Scheme

As funções SUDS e WUDS usam equações baseadas no vetor velocidade para a resolução de problemas. Conforme a direção que o vetor segue, sendo esta constante, são escolhidos os pontos nodais utilizados na formulação da equação.
Para uma situação bidimensional, são utilizados em média nove pontos nodais. Mas, pode haver diferenças dependendo das características do problema.
Segundo Maliska (2004), pode-se concluir que nesta função existe a possibilidade de coeficientes negativos, dependendo da inclinação do vetor velocidade. É um esquema que diminui a difusão numérica mas, em função da complexidade devido ao controle de ângulos do vetor velocidade, é complicado para implementação.


WUDS-E – Weighted Upstream Differencing Scheme-Extended

Este esquema resolve a mesma equação diferencial do SWUDS, incluindo todos os efeitos restantes no termo fonte.
Segundo Zanardi (2008), o esquema foi desenvolvido para coordenadas generalizadas e a função de interpolação leva em conta todos os pontos vizinhos, como se fosse um esquema skew. Os testes realizados no problema da advecção de um pulso mostraram que o método tem o mesmo desempenho dos métodos skew, que são naturalmente mais complexos e aumentam a banda da matriz.


FIC – Função de Interpolação Completa

O principal objetivo do uso da função de interpolação é que esta seja a mais próxima possível da solução exata. Isto normalmente é alcançado em problemas que possuem solução analítica. Porém, existem casos em que os problemas devem ser resolvidos numericamente, de forma que todos os efeitos sejam considerados. Isto vale tanto para a função de interpolação quanto para a equação diferencial. Este é o objetivo do método FIC.
O método FIC é possivelmente o mais complexo em relação aos outros citados anteriormente, com média de esforço de tempos de computação na faixa de 10 a 15% maior que os demais. Isto é compensado pela qualidade dos resultados. De acordo com Maliska (2004), resultados com qualidade que só são obtidos com malhas em torno de 40 x 40 com os métodos unidimensionais são conseguidos com malhas 20 x 20 com o método FIC.

quinta-feira, maio 02, 2013

Funções de Interpolação aplicadas à Fluidodinâmica Computacional e Transferência de Calor


Inicialmente é importante destacar que esta postagem não se trata de um manual passo-a-passo sobre como desenvolver funções de interpolação, mas sim uma visão geral sobre cada uma delas com o objetivo de auxiliar o leitor no momento de escolher a melhor opção para a sua eventual necessidade.
Tudo começa com um problema proposto. Na definição de um determinado problema, também devem ser definidas algumas características deste. Um exemplo típico pode ser aplicado às temperaturas de um determinado sólido. Se nas extremidades direita e esquerda deste sólido houver, em um estado inicial, temperaturas T=1 e T=0 respectivamente, existirão cenários diferentes para variações de velocidade. Se a velocidade de propagação das partículas de temperatura for zero, teoricamente não haverá deslocamento destas partículas e, por conseqüência, não haverá alteração dos valores. Já na incidência de uma velocidade qualquer, no sentido da esquerda para a direita no eixo x, haverá um deslocamento parabólico que garantirá a distribuição da temperatura no sólido.
Este suporte físico é imprescindível na escolha das funções de interpolação a serem utilizadas, pois definirão, entre outros, o número de pontos nodais necessários e sua disposição para a resolução do problema.
As funções de interpolação, do ponto de vista matemático, também podem simplificar o processo de obtenção da solução. Obviamente, o ônus pode ser um resultado contendo alguns erros. Dependendo do caso, os erros compensam a diminuição da complexidade do problema.
Abaixo, uma breve descrição sobre cada uma das principais funções de interpolação utilizadas em fluidodinâmica:
O esquema de Diferenças Centrais é o de entendimento mais simples. Como o próprio nome diz, através da diferença de valores entre dois pontos nodais é possível fazer uma “previsão” do valor de um ponto localizado ao centro ou em outro ponto de localização linear. Entretanto, este esquema não evita uma solução contendo coeficientes negativos. Para isto, pode ser usado o esquema Upwind, que trata-se de uma aproximação de um lado só, de primeira ordem de aproximação. Dessa forma, usam-se equações diferentes para velocidade positiva e negativa, a fim de evitar resultados com coeficientes negativos.
Outro esquema muito citado em literaturas sobre o assunto é o esquema Exponencial, que usa as funções de interpolação obtidas da solução exata do problema unidimensional de advecção/difusão. Um ponto negativo é o tempo computacional necessário para avaliar os exponenciais, visto que são necessários cálculos para todas as interfaces dos volumes de controle.
O WUDS, Weighted Upstream Differencing Scheme, utiliza coeficientes que servem como peso entre a convecção e a difusão. Aplica-se junto com o Upwind para recuperação de velocidades negativas.
Muito utilizada em pacotes de software de mecânica dos fluidos computacional, a interpolação Upwind Quadrática trabalha com o aumento da ordem de aproximação da função de interpolação, utilizando um polinômio de maior ordem.

Fontes utilizadas na pesquisa:
MALISKA, Clovis R. Transferência de Calor e Mecânica dos Fluidos Computacional. 2ª edição. 2004. LTC Editora. Rio de Janeiro/RJ.
ZANARDI, Maurício de Araújo. LEITE, Newton Galvão de Campos. Análise para Escolha de uma Função de Interpolação a partir dos Resultados Numéricos da Convecção Natural Interna em Cavidades. Revista Ciências Exatas. Universidade de Taubaté (UNITAU). v. 2, n. 1, p. 3-5. 2008.

quarta-feira, fevereiro 27, 2013

Solução de Sistemas de Equações Lineares


Em mecânica de fluidos, bem como outras áreas da Engenharia, é comum nos depararmos com o uso de equações lineares para solução de problemas. Clovis Maliska, em seu livro Transferência de Calor e Mecânica dos Fluidos Computacional, apresenta os principais métodos utilizados para solução de equações lineares: Diretos e Iterativos.
Os Métodos Diretos trabalham com matrizes, algo que demanda muito processamento, principalmente devido ao fato de elas serem caracteristicamente bastante esparças. A necessidade de constantes atualizações para corrigir não-linearidades faz com que os Métodos Iterativos sejam mais utilizados para problemas na área de mecânica dos fluidos computacional, não compensando utilizar Métodos Diretos para este fim.
Os Métodos Iterativos, em um domínio, são resolvidos em etapas (iterações) classificadas como: ponto a ponto, linha a linha ou plano a plano.
Abaixo um pouco sobre cada um deles.


Métodos Diretos

Eliminação de Gauss

A Eliminação de Gauss tem a tarefa de reduzir uma matriz através de cálculos matemáticos (baseados em substituição de resultados), gerando uma segunda matriz de menor complexidade, pois muitos valores serão igualados a zero. Ao final, os valores das incógnitas são descobertos através de um processo chamado back substitution, que executa substituições sucessivas de trás para frente.

Decomposição LU

Considerado uma das variações da Eliminação de Gauss, o método Decomposição LU obtém o valor das incógnitas através d processos seqüenciais de multiplicação de matrizes.
Clovis R. Maliska, em seu livro Transferência de Calor e Mecânica dos Fluidos Computacional, usa o seguinte exemplo para representar a Decomposição LU:
O sistema linear [A][T]=[L][U][T]=B pode então ser resolvido, definindo-se [U][T]=[D] e [L][D]=[B]. Resolvendo-se o sistema linear dado por [L][D]=[B] obtém-se D e com D em [U][T]=[D] determina-se T, que é a incógnita desejada.


Métodos Iterativos

Ponto a Ponto

Alguns exemplos de métodos Ponto a Ponto são Método Jacobi, Gauss-Seidel e Método das Sobre-Relaxações Sucessivas (S.O.R.).
A diferença do Método Jacobi para o Gauss-Seidel é que o primeiro utiliza valores das variáveis do nível iterativo anterior, enquanto o segundo utiliza valores das variáveis do nível iterativo corrente. Isto faz o Método Gauss-Seidel ligeiramente mais eficiente.
O Método S.O.R. tem um processo de convergência mais acelerado em face da sobre-relaxação dos valores obtidos. Porém, qualquer Método Ponto a Ponto tem processamento custoso em malhas mais complexas.

Linha a Linha

O Método Linha a Linha é mais otimizado que o Ponto a Ponto pelo fato de, como próprio nome indica, fazer leitura das linhas vizinhas (em vez de pontos/volumes). Neste caso, um problema bi-dimensional, em uma implementação totalmente implícita, é resolvido com valores obtidos na leitura das linhas superior e inferior no tempo corrente, e da linha em questão no momento anterior. Uma questão quase óbvia é que problemas unidimensionais utilizando linha a linha são resolvidos de forma direta, sem processos de iteração.
Os principais algoritmos Linha a Linha existentes são: TriDiagonal Matrix Algorithm (TDMA) e Decomposição LU Incompleta. Este último similar ao Decomposição LU, porém busca encontrar uma matriz o mais próximo da original tirando proveito dos termos não-zeros (algo não possível no Método Decomposição LU) a fim de resolver iterativamente o problema.

Multigrid

Os Métodos Multigrid baseiam-se nos comprimentos de onda da ordem do tamanho da malha, conceito baseado no Método Ponto a Ponto, para acelerar a convergência e eliminar erros. O sentido ocorre a partir da malha mais fina, observando a direção na qual os coeficientes são dominantes, para a criação da malha mais grosseira. Este processo ocorre gradativamente, passando por diversos estágios de tamanho de malhas.
Existem, basicamente, duas classes de Métodos Multigrid: os geométricos, onde aglomeração dos volumes é feita com base na malha, e os algébricos, onde a aglomeração é feita considerando a anisotropia dos coeficientes. No caso dos algébricos, tanto a relação de dimensão como propriedades físicas aparecem nos coeficientes.
Uma metodologia Multigrid conhecida é Additive Correction Multigrid (ACM), que baseia-se na manutenção dos princípios de conservação nos blocos de malhas criados a partir da malha fina.

sábado, janeiro 26, 2013

Condições de Contorno aplicadas à Mecânica de Fluidos


Na discretização de um determinado domínio, são criados vários volumes de controle. Em cada volume são aplicadas equações de conservação (no caso do Método de Volumes Finitos). Porém, estas equações são aplicadas, por padrão, na parte interna de cada volume e, muitas vezes, para se obter um sistema de equações algébricas completo é necessário que existam equações para os volumes que estão na fronteira (borda do domínio).
Algumas técnicas utilizadas para corrigir este problema criam meios volumes nas fronteiras para que as equações nestes pontos sejam tratadas nas extremidades, e não no centro, como nos demais volumes. Porém, isto gera uma não uniformidade dos volumes, que pode vir a causar diversos outros problemas.
Clovos R. Maliska, no seu livro Transferência de Calor e Mecânica dos Fluidos Computacional, apresenta dois procedimentos que respeitam a conservação para todos os volumes. São eles: Volumes Fictícios e Balanços para os Volumes de Fronteira.

Volumes Fictícios
Este procedimento é baseado na uniformidade dos volumes, de forma que todos eles, inclusive os de fronteira, são interpretados como internos. A vantagem deste procedimento é a fácil implantação. Em contrapartida, existe um aumento do tamanho do sistema linear causado pela criação de novas incógnitas.

Balanços para os Volumes de Fronteira
Esta técnica, que é a mais indicada, consiste em integrar, no espaço e no tempo, a equação diferencial também nos volumes de fronteira, da mesma forma realizada para os volumes internos, respeitando as condições de contorno impostas. Assim, as condições de contorno ficam embutidas nas equações para os volumes de fronteira (Santos, Uilbiran C. 2008).

quarta-feira, novembro 14, 2012

Condução Unidimensional Transiente aplicada à Mecânica de Fluidos


Condição Unidimensional Transiente ocorre quando há variação de estado em diferentes estágios de tempo, e esta variação pode ser utilizada como parâmetro para a simulação de problemas reais. Um exemplo típico é a variação de temperatura em um determinado domínio. Obtendo-se valores de temperatura de um volume em estágios de tempo diferente é possível, por exemplo, através da aplicação de equações de conservação, fazer uma previsão da variação de temperatura em estágios de tempo futuros.
Existem três técnicas principais de formulação: Formulação Explícita, Implícita e Totalmente Implícita. Cada uma delas faz uso de diferentes estratégias de leitura no tempo e no espaço.

Formulação Explícita
A Formulação Explícita acontece quando definimos a temperatura de um determinado ponto através de leituras feitas em pontos vizinhos a ele, em um estado de tempo imediatamente anterior.
Essas equações são refeitas em um conjunto de pontos por vez a cada nível de tempo. Dessa forma, o ponto que no tempo “x” está recebendo informações para formular seus valores, no tempo “x+1” possivelmente estará cedendo seus valores para equações que serão executadas pelo seu ponto vizinho.
Um modelo de equação para esta formulação é: T2= ½ (T3+T1), onde T2 é o ponto a ser calculado, e T3 e T1 são os pontos vizinhos que estão cedendo valores para o cálculo.

Formulação Totalmente Implícita
Os conceitos adotados na Formulação Explicita são reaproveitados para a explicação da Formulação Totalmente Implícita. O diferencial, neste caso, é que a leitura dos valores dos pontos vizinhos é feita no mesmo instante de tempo em que está sendo gerada a equação do ponto em questão. Para um resultado mais consistente também é utilizado nesta equação o valor da leitura do próprio ponto, feita no tempo imediatamente anterior.
Um modelo de equação para esta formulação é: T2= ¼ ((T3+T1) + Ti2), onde T3 e T1 são os valores do ponto vizinho, lidos no mesmo espaço de tempo, e Ti2 é o valor lido no próprio ponto no estado de tempo imediatamente anterior.

Formulação Implícita
A Formulação Implícita é muito similar à Formulação Totalmente Implícita, porém um pouco mais completa. Trata-se da formulação que possui o maior número de leituras de valores, pois a equação aplicada ao ponto em questão é baseada na leitura dos valores dos pontos vizinhos no instante de tempo atual e no instante de tempo imediatamente anterior. Também é utilizada a leitura no estado de tempo imediatamente anterior do próprio ponto. A partir daí, é gerada a equação que apresentará o resultado do ponto em questão. No instante de tempo atual.

sábado, setembro 29, 2012

O futuro da Apple


Essa semana a Revista Veja publicou uma notícia sobre os constantes problemas ocorridos com o sistema de mapas da Apple.
Enfim, o que vemos hoje talvez seja algo que muitos previam.
A Apple estava quase falida qdo Steve Jobs voltou e a re-transformou no mito que é hoje. Com a morte de Jobs, fica a pergunta no ar: será que a Apple conseguirá manter seu sucesso no mercado?
Sei que pra muitos pode parecer uma ideia absurda achar que uma empresa gigante dependa apenas de uma pessoa. Mas, pense bem, não estamos falando de qualquer pessoa. O cara era um gênio que reunia duas qualidades quase impossíveis de se ver em um só indivíduo. Além de muito inteligente para questões técnicas relacionadas à engenharia, computação, eletrônica e o diabo-a-4, ele também entendia como ninguém as tendências do mercado.
Obviamente, nos primeiros momentos após a morte de Jobs (ou podemos até considerar a partir do seu afastamento ocorrido alguns meses antes) a Apple ainda conseguiria se manter no mesmo patamar, pois os projetos que estamos vendo hoje provavelmente já estavam sendo trabalhados a algum tempo. Somado a isso, a morte de Jobs - cá pra nós - foi um marketing e tanto pra Apple. Conheci muitas pessoas que nem sabiam ao certo o que era Apple e, com todas aquelas notícias e histórias que envolveram a morte de Jobs, passaram a utilizar pelo menos um produto da marca. Mas, trata-se daquele público que usa o que está na moda - que talvez hoje escute sertanejo universitário - e que não usa 5% do que um IPhone oferece (espero não estar exagerando).
Acredito que esteja chegando perto do momento em que a Apple vai ter que provar que consegue sobreviver na ausência de seu eterno líder. Vamos aguardar.

quarta-feira, setembro 12, 2012

O fim da Lei de Moore: uma perspectiva até 2020


No universo da computação, um dos assuntos mais comentados é o fim da Lei de Moore.
Na verdade não se pode afirmar qual será o cenário da computação em 2020. Muito do que vai acontecer depende de se a implantação da computação quântica acontecerá ainda nesta decada, pois é a partir dela que possívelmente a Lei de Moore tenha seu fim.
Com base nas tecnologias atuais, é bem provável que a capacidade de armazenamento das memórias continue crescendo de forma exponencial.
Os transistores também devem continuar se miniaturizando conforme a Lei de Moore, o que por consequência aumenta a quantidade destes contida em um circuito de mesmo tamanho.
As previsões acima são feitas principalmente analisando a evolução das tecnologias de construção, que caminham a passos largos.
A velocidade dos processadores (taxa de frequência) chegou ao seu limite, impedindo a continuidade de um crescimento exponencial. A limitação neste caso foi a alta discipação de calor gerada com velocidades maiores que as mais recentemente utilizadas. Em tese, este aspecto representa o fim da Lei de Moore para este caso em especial.
Porém, a solução para continuar melhorando o desempenho dos processadores, sem aumentar a frequência, foi o aumento da quantidade de núcleos por chip, resultado daquilo que hoje chamamos de verdadeiros multitarefas. Desde então tem-se um aumento gradativo do número de núcleos a cada novo processador lançado no mercado. O curioso é que este aumento tem ocorrido também de forma exponencial. Logo, contemplando a Lei de Moore.
Dessa forma, pode-se concluir que a Lei de Moore continua presente e, aparentemente, uma das poucas possibilidades de vê-la se desfazer é com o surgimento de uma "revolução" tecnologica.

Informações sobre a Lei de Moore podem ser obtidas no site: http://www.mooreslaw.org/