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.

No comments:

Post a Comment