December 28, 2007

Post Científico do ano de 2007

O Tecnoclasta está realizando uma promoção sobre posts científicos. Segue abaixo o texto na integra:

Como estamos no fim do ano, e vários sites lançam promoções de todos os tipos, resolvi criar uma promoção também.

Vou selecionar os três melhores artigos científicos do ano. Os vencedores irão ganhar um destaque de 1 mês inteiro neste site.

E o primeiro lugar receberá um brinde especialmente preparado por mim mesmo: uma réplica de uma nave espacial Mercury em escala 1:23. Eis uma foto do troféu:


Mercury foi o primeiro projeto da Nasa à enviar um homem para o espaço. É histórico que os Soviéticos chegaram primeiro, mas de qualquer forma, o modelo da nave russa Vostok é muito mais complexa. Não me atrevi construí-la.


Para participar da promoção basta ter escrito em seu site, blog ou o que for, um artigo interessante sobre ciências e deixar um trackback nos comentários deste post. Os melhores posts serão selecionados por mim mesmo. As inscrições vão valer durante todo o mês de janeiro, e o resultado será divulgado no dia 25 de janeiro.

Se ainda não fez nenhum artigo sobre ciências, ainda há tempo. Vale artigos publicados durante todo o ano de 2007. Não precisa ser nenhum artigo sério, didático, ou coisa assim. Basta o tema principal ser algum conhecimento científico que estimule a imaginação.

Vamos motivar nossos jovens a desenvolver raciocínio lógico e gosto pela ciência, pois o desenvolvimento do país passa exatamente pelo desenvolvimento de nossos jovens.

Cadastre seus posts e artigos aqui.


Acredito que todos tenhamos apenas a ganhar com isso e coloquei um tópico meu para concorrer (do Notas em CFD). Além disso, o primeiro prêmio é realmente legal (adoro miniaturas!).

O Tecnoclasta está aceitando múltiplos posts do mesmo blog, mas apenas um tópico de cada blog pode ganhar uma das três vagas (o que é muito lógico e justo, mesmo em blogs com múltiplos autores).

Os tópicos devem ser de 2007, mas parece que as inscrições poderão ser feitas até uma certa data de janeiro. Creio que exista uma certa contradição em dizer que o cadastro dos tópicos podem ser feitos em todo janeiro, mas com o resultado saindo no dia 25 (o que aconteceria nos 6 dias restantes ?). Então, se tiver alguém querendo concorrer sugiro que faça a inscrição até 20 de Janeiro. Assim não há riscos. Mas lembre-se que os textos devem ser publicados em 2007, se ainda não escreveu o seu, ainda tem tempo.

December 27, 2007

Do Colour Fluid Dynamic para Computational Fluid Dynamics

Já vai tempo desde que falei sobre o Colour Fluid Dynamics e prometi descrever o que seria necessário para ter um resultado bem apresentado. Pois bem, antes tarde do que nunca.

Eu vou fazer uma divisão aqui: Modelagem, Simulação e Resultados. Apesar da divisão ser pessoal, os conceitos são bem abrangentes. Cada uma dessas três etapas compreende uma parte importante da obtenção dos resultados e principalmente na apresentação dos resultados.

Começamos pela modelagem.
  • Para se fazer entender, a primeira coisa a ser feito é, de fato, apresentar o problema. Definir o que estamos fazendo. De preferência definir as condições físicas do problema. Como temperatura, vazão, pressão, ou seja, tudo que define o problema como um problema.
  • Juntamente com a etapa anterior, temos a apresentação do ambiente de simulação. Ele pode ser uma outra geometria qualquer (como um duto), uma área aberta ou até a mão de alguém. A definição da geometria faz parte do seu problema.
  • Já o terceiro item, eu classifico aqui, é a definição da malha. Algumas pessoas poderiam, de forma correta, classificar na área de simulação, mas eu prefiro colocar aqui, na modelagem. Por um motivo muito simples: ela está intimamente ligada a definição da geometria. Eu já disse que dizer quantos nós/elementos tem uma malha, não diz tudo, é preciso dizer principalmente o tamanho da geometria e o tamanho médio do elemento. Isso diz quase tudo. Se o trabalho for honesto, de fato diz tudo, mas como estamos falando de questionar o trabalho de outro, temos que exigir algumas outras garantias dessa malha. As principais (mas não únicas) são a razão de aspecto, que define a razão entre a maior e a menor aresta de um dado elemento (pode ser o inverso disso também) e a razão de volumes, que defini a razão entre o volume de elemento e pelo volume dos seus elementos vizinhos. Entender a importância desses valores é muito simples. Se a razão de aspecto for muito grande, isso significa que o elemento é muito esticado para um dos lados, ou seja, ele está muito deformado, como, por exemplo, uma "agulha". Deve ser intuitivo imaginar que isso pode provocar problemas na definição dos resultados. Da mesma forma, se a razão de volumes for muito grande, significa que existe um elemento muito grande perto de um elemento muito pequeno. Também é intuitivo imaginar que isso não é bom. Normalmente quando esses parâmetros são ruins, o principal problema está associado a capacidade do problema de convergir para algum lugar. Outra questão importante sobre a malha é o aspecto visual. Significa que você olha para ela e vê alguma coisa boa. Outros fatores, ou características da malha, como a presença ou não de camadas de primas na superfícies, até merecem menção, mas são mais importantes em textos do que em apresentações.
  • Bom, então chegamos a modelagem do problema propriamente dita. Significa definir claramente quais são as equações que você deve/quer resolver. Quais são os modelos, especialmente os modelos de fechamento, como turbulência, arrasto, dispersão turbulenta, etc (a lista é grande) serão usados e se serão usados. Os erros da sua modelagem começam aqui. É também nessa parte onde se exige mais conhecimento de quem está sentado fazendo o problema e de quem está lendo/ouvindo também. A despeito disso, só porque os modelos utilizados não são adequados não significa que eles não podem ser testados, vai que o sujeito quer justamente provar que tais modelos não são adequados?
Olhando para trás, você verá o problema e sua modelagem como um todo. Resta, então, resolver. Como ?
  • É preciso definir o método matemático que será utilizado.
  • Estado estacionário (onde o tempo não é uma variável importante) ou transiente (onde o tempo é uma das variáveis mais importantes).
  • É importantes definir o erro numérico de simulação que definirá o problema como convergido. De forma básica, dois tipos de erro são monitorados, o erro absoluto (que é o erro de uma variável propriamente dito, está relacionado com o valor do interação anterior) e o erro médio. Esse último tem o problema da média. Se a média é boa não significa que o valores estão bem. Pode existir um ponto com um erro muito grande compensado por outro ponto onde o erro é muito pequeno. Eu gosto de definir os meus problemas pelo erro máximo que eu aceito ver entre todos os pontos nos quais estou resolvendo o problema e eu normalmente 0.00001 como um valor base interessante. Ignorando-se opiniões, pode ter certeza de que 0.001 ou 0.01 não são bons valores para erro máximo.
  • Se o problema é transiente, ainda existem outras questões, tipo: de quanto em quanto tempo você vai imprimir os valores que te interessam no tempo ? Qual o tempo de simulação total necessário/desejado ? Qual o passo de tempo que está sendo utilizado ? As respostas para essas perguntas estão intimamente ligadas ao problema físico modelado.
Então você definiu o problema, especificou as questões de simulação e colocou o caso para rodar. Aí depois de algum tempo (pode ser daqui algumas horas ou meses) você tirou o caso do forno e está pronto para apresentar a outros os seus resultados. Então, o que podemos "exigir/desejar" do palestrante ?
  • Que ele mostre, ou pelo menos mencione alguma coisa sobre convergência de malha. Esse tópico é muito importante se desejar convergir um determinado valor do seu problema. Se torna menos importante se o seu caso for um estudo de tendências em diversas variações geométricas (onde o valor pontual é menos importante), mas de qualquer ponto de vista tem seu valor e deve ao menos ser mencionado se foi ou não foi feito e quais foram as condições.
  • Que ele se lembre do y+ (y plus). A controvérsias sobre essa minha expectativa, mas não custa nada. Se ele já resolveu o problema então, por que não mostrar ou mencionar o valor de y+. Mas o que é isso afinal ? Em termos leigos ele fornece uma forma de mensurar se a solução foi bem resolvida perto da parede. Se o y+ máximo for de até 5. Então o problema está bem resolvido na parede (pelo menos em termos numéricos e em relação a malha). Se ele estiver entre 5-10, ele está aceitável. É desconfortável, mas você aceita. Se estiver entre 10-26 e for um placa plana, ainda está aceitável. Entre 26-100 você diz que o problema não foi bem resolvido perto da parede e a malha precisa de ser refinada perto da parede se você quiser uma solução boa perto da parede. A parede pode não ser importante, por exemplo, se o modelo de turbulência utilizado não resolver a parede. De qualquer forma, se ele estiver maior que 200, então definitivamente você deve voltar para sua malha e diminuir o tamanho dos elementos perto da parede. As controvérsias estão nas faixas de valores (obtidas experimentalmente em condições ideais e que ninguém disse que são boas fora dessas condições) e no fato de que nem todo mundo vê na parede seu principal problema. Mas será que custa mesmo mencionar que o valor do y+ máximo é de x ?
  • Pelo amor de Deus, apresente uma variável de cada vez, com raras excessões para duas variáveis simultâneas, uma definida em cores e outra em uma estrutura geométrica, com uma superfície que satisfaz uma certa especificação física. Nada de apresentar quatrocentas variáveis simultaneamente. Quais são as variáveis importantes ? Aquelas que você mencionou quando apresentou o problema. Você, as vezes, até pode mecanicamente apresentar tudo em uma única figura, mas não fica nada fácil para o observador entender o que você quer dizer com isso.
  • Cuidado com a escala. Os professores de física experimental que tive sem disseram-me a mesma coisa: "Cuidado com a escala ela deve ser clara de fácil entendimento para quem vê e discreta em número que permita boa observação do problema". Não imagina como é fácil erra isso quando se têm tantas cores e variáveis para lidar. Erros aqui são muito comuns.
  • Em CFD existem, superfícies de revolução, volumes e planos dados por condições físicas (onde estão os isovolumes e isosuperfícies), linhas de fluxo, e milhões de outros objetos que podem fazer o seu problema ser melhor entendido. Eles devem ser usados, mas usados corretamente. Não é fácil, mas quando se acerta, você percebe pelo olhar de "oh! Entendi." que as pessoas que vêem faz.
Terminado tudo isso, você pode até não saber se tudo é ou não correto, mas terá condições de saber se a apresentação é ou não coerente. E, principalmente, se existe algum ponto que necessita de esclarecimento. Qualquer pessoa que tenha conhecimento sobre mecânica dos fluidos deve ser capaz de entender os resultados, mesmo que não entenda muito bem questões sobre modelagem e especificações da simulação. Entretanto, as questões de simulação são, em geral, auto-destrutivas, se estiver errado, acaba com o problema.

Já modelagem errada, gera resultados sem sentido ou que não condizem com a realidade física. O principal problema é que aqueles que não tiverem nenhuma noção do problema (as vezes por conta do problema e não da pessoa) e não se tenha condições de diferenciar a priori o que é ou não realidade física. E isso não está ligado apenas a questões de saber ou não a física do problema, mas muitas vezes em não saber quais sãos os valores esperados ou o comportamento esperado de um dados problema. Aí não tem jeito. Somente a validação experimental acaba com as dúvidas. Diga-se de passagem eu enfrento um problema desses atualmente, mas essa deve ser a única questão pendente de uma apresentação de resultados de CFD. Uma vez que o erro, nesse caso, não é um erro em si, mas uma necessidade de aperfeiçoar algum ponto da técnica utilizada.

Bom, ficou grande. Até a próxima, provavelmente no ano que vêm. Boas Festas.

CFD em Esportes - O Campeão

Hoje em dia, existe uma enorme pressão da indústria desportiva e do entretenimento sobre o desempenho ótimo dos atletas (e deles próprios também), seja em conquista de campeonatos ou medalhas de ouro. Isso promove um desenvolvimento tecnológico constante de novos e melhores produtos de esporte e lazer, o aperfeiçoamento contínuo do projeto de estádios esportivos e seu ambiente e propicia a competitividade entre os patrocinadores e empresas de produtos esportivos. Como era de se esperar, uma área de importância crítica em todos os esportes (hum, ok... Xadrez, não.) é o escoamento do ar ou água ao redor dos equipamentos esportivos, dos atletas e espectadores, sem esquecer dos processos fluidodinâmicos que envolvem a manufatura dos equipamentos esportivos. E é aí que CFD pode ser aplicada aos esportes.

As técnicas CAE (Computer Aided Engineeering) podem melhorar o projeto de várias peças de acessórios esportivos e a fluidodinâmica computacional provou ser indispensável na predição de escoamentos em várias aplicações esportivas. Em geral, as simulações CFD complementam as técnicas experimentais para estimar as forças causadas pelo escoamento (força de arrasto, por exemplo) sobre ou próximo aos equipamentos e atletas. As empresas líderes em seus segmentos esportivos e atletas já testaram e obtiveram melhoras de performance com o uso de CFD, onde foi possível construir protótipos virtuais e testá-los no computador antes que a primeira peça do equipamento fosse construída e testada na pista, quadra, piscina ou campo.

Estudo de Caso
Existem vários exemplos de aplicações de CFD em esportes. Pode procurar no Google que você vai encontrar. Mas o que eu mais gosto é a aplicação de CFD em natação [1] devido aos vários anos que pratiquei esse esporte (vou ver se volto a nadar quando acabar o doutorado - podem cobrar!). Bem, o desenvolvimento tecnológico na natação se baseou em pesquisas experimentais realizadas a pelo menos 20 anos atrás e Barry Bixler, então engenheiro da empresa Honeywell Engines and Systems, começou a usar CFD na pesquisa aplicada a esse esporte. O time de natação americano viu o potencial da técnica e juntou esforços para melhorar a performance de seus atletas. De fato, o trabalho do Sr. Bixler tem grande potencial e possui uma abordagem lógica (e cientificamente correta) para ganhar evidências sólidas que vão ajudar a comunidade da natação a entender como a propulsão do nadador é gerada. Seu trabalho permite analisar condições como aceleração e rotação da braçada e melhorar sua eficiência.

Seu trabalho inclui o estudo da trajetória do braço ao longo da braçada e a influência do escoamento (velocidade, pressão e arrasto) sobre o mesmo. Veja alguns de seus resultados (clique nas imagens para ver a animação):





Assim, o Sr. Bixler quer demonstrar através desta pesquisa os benefícios que podem ser alcançados para a comunidade da natação ao obter informações valiosas provindas de simulações CFD. Ele espera ser capaz de otimizar os movimentos dos atletas de forma a melhorar a performance dos nadadores de elite. De fato, ele conseguiu alcançar vários méritos (veja aqui).

Para detalhes, veja o artigo na íntegra (em inglês) no site da Fluent.

Ah, sim... O estudo de caso... Bem, o que você acha que deve ter sido usado nestas simulações? Modelos? Tipo de malha? Condição de contorno?

Eu não sei, mas de início eu teria usado a equação de Navier-Stokes para a quantidade de movimento usando um modelo de turbulência do tipo SST para capturar os efeitos perto e longe do braço do nadador. Poderia usar uma malha não estruturada para se adaptar às irregularidades do contorno da mão (onde existiria um refino maior da malha) e com condições de contorno variáveis no infinito de modo a simular o movimento do braço. Bem, essa é uma abordagem. O que você usaria?

Referências:
[1] http://www.fluent.com/about/news/pr/pr11.htm
A Fluent Inc. permite o uso das imagens postadas no blog.

December 26, 2007

Curiosidades sobre o CFD

Quais são as três perguntas menos importantes cientificamente e mais feitas no mundo CFD?
  1. Quanto tempo levou a simulação ?
  2. Quantas e qual o tipo das máquinas que foram utilizadas ?
  3. Quantos elementos possuí a sua simulação ?
Eu não posso dizer que essas perguntas são inúteis, mais elas não são tão importantes quanto parece.
A primeira e a segunda são meras curiosidades. Nós as fazemos sempre, não pela importância científica, mas porque queremos saber se temos condições de fazermos a mesma pesquisa. É mais uma avaliação de nossas capacidades para reproduzir o problema do que realmente um levantamento crítico do caso analisado. Nota: todo mundo pergunta isso, se você não disser alguém pergunta.

Todo mundo também pergunta quantos elementos tem sua simulação. Para não complicar, vamos imaginar que estamos com uma malha estruturada, nesse caso o número de elementos é pouca coisa maior do que o número de nós e faz com que a informação seja independente do método matemático. Bom, mas essa informação é importante, não é?

Claro que é. E normalmente ela é apresentada como parte do problema, mas ela somente traz informações quando associado a informações sobre qual o tamanho do "ambiente simulado" e, principalmente, qual o tamanho médio do elemento. Essas são as informações mais científicas, mas não mata a curiosidade. Dizer que uma malha tem 30 mil elementos não significa nada sozinho. Haverá casos onde a geometria é de milhares de metros (simulações CFD da atmosfera) e outras onde é de 0.3 mm (dentro de um microtubo, por exemplo). Dizer que a geometria é de tantos metros e que o tamanho médio de elemento é x, diz tudo, mas não mata a curiosidade.

Por exemplo, o Thadeu me passou a bola querendo saber qual é o valor típico de uma simulação em CFD. Pois eu tenho certeza de que se eu responder "pode variar muito" (o que seria verdade) eu não mataria a curiosidade dele e mais, não responderia a pergunta... (você pode conferir o texto dele aqui).

Eu prefiro responder essa pergunta de uma outra forma: para uma simulação envolvendo apenas uma fase, para cada 1 milhão de nós temos aproximadamente 5 Gb de memória RAM consumida.

Então, para 1 bilhão de "elementos", temos 5 Tb (Tera bytes) de memória RAM. Se eu não fiz regra de três errada, com 100 bilhões, 500 Tera Bytes de RAM ... entendeu, né ?

Se fosse uma escoamento de duas substância, a relação básica dá mais ou menos 7.5 Gb por 1 milhão de nós. Mas aí a gente está apenas complicando... vamos ficar com o mais básico que é a relação de 1 milhão para 5 GB (lembre-se é mais ou menos e que depende da modelagem, mas serve para as contas que vou fazer).

Agora vêm a questão: qual é o tamanho médio de uma simulação em termos de elementos ? Resposta: não sei, mas sei o que tamanho máximo está relacionado com a capacidade de memória RAM instalada na máquina. E também sei que o maior cluster registrado no Top 10 hoje tem aproximadamente de 70 Tera bytes de RAM.

Bom, mas o que eu resolvo atualmente ? Eu trabalho com simulações que vão até 3,5 milhões de nós. Por causa do tipo de malha, ou seja, por ser não estruturada, isso dá mais ou menos 6 milhões de elementos. Por eu fazer isso por pesquisa, tem sempre alguém me dizendo para utilizar malha estruturada que coloca boa parte dos meus problemas na relação de 3,5/3,5 entre nós e elementos. Nota: para mim nós é mais importante do que elementos porque eu uso volumes finitos, para quem usa elementos finitos o mais importante são os elementos. Você pode ler sobre a diferença entre um e outro aqui.

Advinha porque eu uso "apenas" até 3,5 milhões de nós ? Porque eu tenho um limitante de 16 GB de memória RAM. E o que acontece se eu precisar de um problema maior ? Das duas uma: Eu apelo para a independência de escala, isso me permite fazer um problema grande em um tamanho físico menor o que me permite resolver o problema com uma malha menor ou, quando o primeiro não for possível, eu divido o problema em partes. Existem problemas onde não seja possível fazer nem uma coisa nem outra ? Sim. Esses eu não resolvo (ainda).

Como eu disse, eu não posso dizer qual é o tamanho médio das simulações resolvidas por aí, mas sei que no meu laboratório nós temos de 80 mil a 3,5 milhões nós. Não seria errado dizer que todas as vezes que um de nós vai fazer uma malha com mais de 1 milhão, alguém vira para você e pergunta: precisa mesmo fazer isso ? Não com ar de crítica, mas com ar de espanto! Tipo: Nossa, tudo isso!

A COPPE conta (ou contará) com um cluster de 1 TB de memória RAM. E eu sei que aqui no Brasil, pelo menos a Petrobrás tem mais capacidade que isso (ele está na lista dos Top500, mas não tem a capacidade em memória). Ah! Ter o maior cluster não significa ter a maior capacidade de memória, mas dá para ter uma idéia, porque não adianta capacidade de processamento se não for possível ler os dados para a memória.

Agora falando sobre coisas importantes: no filme "300" eu não acredito que seja uma simulação rigorosa. Se foi utilizando CFD, como base, foi um Colour Fluid Dynamics
onde o problema foi resolvido por partes de forma não conectada e com equações simplificadas, ou seja, é a tal maquiagem. Fica bonito no final, mas só isso. Aí isso, até permitiria que no final desse o número de elementos mencionados. Mas mesmo assim é muito elemento para o meu gosto.