July 14, 2011

OpenFOAM: o controlDict e o writeInterval

Olá leitores,
no mês de maio o J.F.Mitre falou um pouco sobre arquivo controlDict no estudo de um caso tutorial do simpleFoam. O objetivo deste post é esclarecer um pouco mais sobre um dos parâmetros deste arquivo, o writeInterval.


O valor que deve ser especificado no writeInterval depende de uma opção definida no parâmetro writeControl. Um resumo das opções do writeControl e o respectivo valor que deve ser adotado no writeInterval estão listados em uma tabela logo abaixo.


Agora fique atento, não basta você modificar a opção do writeControl e passar a adotar aquela que for da sua preferencia. Cada solver foi desenvolvido de uma forma e aceita apenas algumas opções.  Uma boa dica é trocar a opção do writeControl para uma palavra qualquer, como por exemplo "teste", e tentar executar o caso. O OpenFOAM irá mostrar uma mensagem de erro com as opções disponíveis para o seu caso. Escolha uma e siga em frente!


writeControl


writeInterval


timeStep


é o valor do período no qual os resultados da simulação serão salvos. Ou seja, para writeInterval igual a 20 e deltaT igual a 0.1, os resultados serão salvos a cada 2 segundos do tempo de simulação.  Neste caso, as pastas com resultados serão nomeadas da seguinte forma: 0.2, 0.4, 0.6, ...., endTime.


runTime


é exatamente o valor de armazenamento do resultados. Ou seja, se
writeInterval é igual 0.1, os resultados serão salvos a cada 0.1 segundos do tempo de simulação. Neste caso, as pastas com resultados serão nomeadas da seguinte forma: 0.1, 0.2, 0.3, ...., endTime.


adjustableRunTime


é semelhante a opção runTime, a diferença é que esta opção modifica o valor do deltaT. É usado em alguns solvers com ajuste de intervalo de tempo automático, como alguns solvers de escoamento compressível.


cpuTime


semelhante ao runTime porém, neste caso, o valor de armazenamento dos resultados é o do tempo da CPU e não mais o tempo de simulação.


clockTime


semelhante a opção cpuTime, porém este é o valor é do somatório do tempo de CPU e do tempo necessário para leitura e gravação de dados, ou seja, o tempo da vida real.



Até o próximo post!

July 4, 2011

OpenFOAM® versão 2.0.0: mudanças na biblioteca thermophysicalModels

No início do mês passado a OpenCFD lançou a versão 2.0 do OpenFOAM. A própria OpenCFD disponibilizou uma lista contendo as principais mudanças na nova versão. A proposta deste post é ressaltar aquela que eu considero a principal mudança na biblioteca thermophysicalModels: a nova sintaxe do arquivo thermophysicalProperties.

A biblioteca thermophysicalModels é responsável pela definição dos modelos para o cálculo de propriedades termofísicas. Propriedades como a massa específica, a viscosidade e o calor específico, por exemplo, dependem da  temperatura e da pressão e, por este motivo, o usuário precisa especificar os modelos para o cálculo destas propriedades durante a simulação do seu caso.

Essa é função do arquivo thermophysicalProperties na pasta constant dos casos e a biblioteca thermophysicalModels estabelece as regras de entrada de dados neste arquivo. A principal mudança na versão 2.0 esta justamente na forma de entrada de dados no aquivo thermophysicalProperties. Portanto, se você usa algum solver contendo este arquivo, fique atento, pois o seu caso criado em uma versão 1.X não irá funcionar na versão 2.0! Será necessário atualizar a forma de entrada de dados do arquivo thermophysicalProperties!


A boa notícia é que essa mudança transformou a leitura de dados muito mais palatável para um ser humano! Antes o arquivo thermophysicalProperties se resumia a um conjunto de números e nomes de modelos que, a principio, não fazia o menor sentido para um primeiro leitor! Agora fica mais fácil identificar os parâmetros relacionados a cada modelo e o impacto para um usuário novato é menor! Mas como o mundo não é perfeito, o usuário ainda precisa consultar o User's Guide para saber o que cada nome de modelo especificado no thermoType significa na prática.


Somente para ilustrar a diferença na forma de entrada de dados, um trecho do arquivo thermophysicalProperties  do solver  XiFoam tinha a seguinte estrutura:

reactants       reactants 24.8095 29.4649 200 5000 1000 3.28069 0.00195035 -6.53483e-07 1.00239e-10 -5.64653e-15 -1609.55 4.41496 3.47696 0.000367499 1.84866e-06 -9.8993e-10 -3.10214e-14 -1570.81 3.76075 1.67212e-06 170.672;

Agora, na versão 2.0, esta mesma informação é entrada da seguinte forma:

reactants
{
    specie
    {
        nMoles          24.8095;
        molWeight       29.4649;
    }
    thermodynamics
    {
        Tlow            200;
        Thigh           5000;
        Tcommon         1000;
        highCpCoeffs    ( 3.28069 0.00195035 -6.53483e-07 1.00239e-10 -5.64653e-15 -1609.55 4.41496 );
        lowCpCoeffs     ( 3.47696 0.000367499 1.84866e-06 -9.8993e-10 -3.10214e-14 -1570.81 3.76075 );
    }
    transport
    {
        As              1.67212e-06;
        Ts              170.672;
    }
}

Muito melhor, não!? Agora resta a expectativa que a sintaxe mais palatável seja estendida também para a definição dos modelos no thermoType! Tomara que não demore muito!

Até a próxima.