Caso Básico

  1. Copiar diretório para pasta local
cd  $FOAM_RUN  
cp -r $FOAM_TUTORIALS/incompressible/icoFoam/cavity/cavity .
cd cavity
  1. Mudar para pasta system
cd system
  1. Visualizar blockMeshDict
cat blockMeshDict
  1. Mudar pasta
cd ..
  1. Executar blockmesh
blockMesh
  1. Mudar pasta
cd 0
  1. Exibir conteúdo de p
cat p
  1. Exibir conteúdo de U
cat U
  1. Mudar pasta
cd ../constant
  1. Exibir conteúdo de transportProperties
cat transportProperties
  1. Mudar pasta
cd ../system
  1. Exibir conteúdo de controlDict
cat controlDict
  1. Exibir conteúdo de fvSchemes
cat fvSchemes
  1. Exibir conteúdo de fvSolution
cat fvSolution
  1. Visualizar malha no ParaView
  2. Mudar pasta
cd ..
  1. Executar icoFoam
icoFoam
  1. Visualizar resultados no ParaView

Refinamento de Malha

  1. Ir para a pasta de execução
cd $FOAM_RUN
  1. Criar novo diretório e copiar pastas relevantes do caso anterior
mkdir cavityFine  
cp -r cavity/constant cavityFine  
cp -r cavity/system cavityFine
  1. Mudar de pasta
cd cavityFine
  1. Editar blockMeshDict e implementar a resolução (40 40 1).
  2. Mudar startTime no arquivo controlDict para 0.5 (tempo final da simulação) cavity
  3. Executar o comando blockMesh
blockMesh
  1. Executar o comando mapFields com a opção -consistent.
mapFields ../cavity -consistent
  1. Reduzir DeltaT em controlDict pela metade para garantir que o número de Courant permaneça menor que 1.
  2. Ainda em controlDict, mudar writeControl para runTime, writeInterval para 0.1 e endTime para 0.7.
  3. Mudar de diretório
cd ..
  1. Executar icoFoam como um processo em segundo plano, e gravar a saída em um arquivo de log.
icoFoam > log &  
  1. Visualizar o log
cat log
  1. Criar o arquivo vazio necessário para visualizar os dados no ParaView
paraFoam -touch
  1. Visualizar campos de velocidade no ParaView e comparar com o caso cavity.
  2. Listar as opções de pós-processamento do OpenFOAM.
postProcess -list
  1. Extrair os componentes de velocidade do vetor velocidade para os casos cavity e cavityFine
cd $FOAM_RUN/cavity  
postProcess -func "components(U)"
cd $FOAM_RUN/cavityFine  
postProcess -func "components(U)"
  1. No ParaView, fazer um gráfico da componente Ux ao longo de uma linha vertical no centro do domínio.

Uso de malha não-uniforme

  1. Criar o diretório cavityGrade e copiar a pasta do diretório tutorial.
cd  $FOAM_RUN  
cp -r $FOAM_TUTORIALS/incompressible/icoFoam/cavity/cavityGrade .
cd cavityGrade
  1. Visualizar o arquivo blockMeshDict
cd system
cat blockMeshDict
  1. Executar blockMesh
blockmesh
  1. Visualizar a malha no ParaView.
  2. Verificar o valor de deltaT de 2.5 ms e writeInterval para 40, de forma que os resultados sejam impressos a cada 0.1 s (dentro do arquivo controlDict)
  3. Mudar startTime para 0.7 s e endTime para 0.8 s, no arquivo controlDict.
  4. Mapear os campos de cavityFine para cavityGrade
cd $FOAM_RUN/cavityGrade  
mapFields ../cavityFine -consistent
  1. Execute icoFoam
icoFoam > log &  
  1. Visualize os resultados no ParaView

Aumento do número de Reynolds

  1. Clonar o caso cavity para a o caso cavityHighRe com a ferramenta foamCloneCase
run  
foamCloneCase -latestTime cavity cavityHighRe  
cd cavityHighRe
  1. Mude a viscosidade nu para 0.001 no dicionário transportProperties no diretório constant (equivalente a aumentar Re de 10 para 100)
  2. No dicionário controlDict, altere startFrom para latestTime e mude endTime para 2 s.
  3. Execute o ìcoFoam usando nohup, o que permite que o usuário faça logoff do sistema e o processo continue em execução até ser completado. A opção -n 19 atribui baixa prioridade.
nohup nice -n 19 icoFoam > log &  
cat log
  1. Visualize os resultados no ParaView

Escoamento com elevado número de Reynolds

  1. Continue a aumentar o número de Reynolds e aumente a resolução.
  2. Visualize os resultados.
  3. Copie o caso cavity para o diretório run e renomeie-o para cavityRAS
run  
cp -r $FOAM_TUTORIALS/incompressible/pisoFoam/RAS/cavity cavityRAS  
cd cavityRAS
  1. Gere a malha
blockMesh
  1. Visualize o arquivo 0/nut
cd 0
cat nut
  1. Verifique que os seguintes valores iniciais são atribuídos para k e ε nos arquivos k e epsilon do diretório 0.
  1. Visualize o arquivo turbulenceProperties no diretório constant.
cd ../constant
cat turbulenceProperties
  1. Para alcançar um número de Reynolds de 104, a viscosidade cinemática de 10-5 m2s-1 é requerida. Edite o arquivo constant/transportProperties
  2. Ajuste startTime, stopTime, deltaT e writeInterval em controlDict. Configure deltaT para 0.005para satisfazer a restrição do número de Courant e endTimepara 10 s.
  3. Execute pisoFoam no diretório apropriado.
  4. Reconfigure o valor de deltaT para 0.02 e startFrom para latestTime. O valor endTime deve agora ser 20.
  5. Reinicie a simulação novamente e monitore a convergência da solução.
  6. Veja os resultados em passos de tempo consecutivos na medida em que a solução progride para ver se há convergência para um regime permanente ou se possivelmente um estado oscilatório periódico é alcançado.

Mudança de Geometria

  1. Copie o caso cavityClipped do diretório tutorials para o diretório run do usuário, e mude para o diretório cavityClipped.
run  
cp -r $FOAM_TUTORIALS/incompressible/icoFoam/cavity/cavityClipped .  
cd cavityClipped
  1. Visualize o arquivo blockMeshDict e tente entender a mudança de geometria implementada.
  2. Gere a malha
blockMesh
  1. Copie os dados iniciais do tempo 0 para o tempo 0.5.
cp -r 0 0.5
  1. Visualize a malha e os dados.
  2. Edite o dicionário mapFieldsDict, localizado no diretório system.
patchMap  
(  
lid movingWall  
);
  1. Executar mapFields de dentro do diretório cavityClipped.
mapFields ../cavity
  1. Visualize o campo mapeado no ParaView.
  2. Execute icoFoam
icoFoam
  1. Visualize os resultados.