Skip to content

Numerical tool for Construction of Reduced Order Models for Fluid Flows.

Notifications You must be signed in to change notification settings

lucasreis1/ROM_code-paramout-iteration

 
 

Repository files navigation

DNN-ROM code

The DNN-ROM code can be used for construction of reduced order models, ROMs, of fluid flows. The code employs a combination of flow modal decomposition and regression analysis. Spectral proper orthogonal decomposition, SPOD, is applied to reduce the dimensionality of the model and, at the same time, filter the POD temporal modes. The regression step is performed by a deep feedforward neural network, DNN, and the current framework is implemented in a context similar to the sparse identification of non-linear dynamics algorithm, SINDy. Test cases such as the compressible flow past a cylinder and the turbulent flow computed by a large eddy simulation of a plunging airfoil under dynamic stall are provided. For more details, see https://arxiv.org/abs/1903.05206.

Trabalho

Este repositório fornece o código preparado para execução do trabalho prático da disciplina MO833, incluindo scripts de automatização e uma receita de container que executa a aplicação.

Instâncias utilizadas

Recomendamos a utilização de dois tipos de instâncias para validação. Para utilizar o tensorflow na CPU, utilizamos da família c5. Já para o tensorflow na GPU, utilizamos as instâncias das famílias p2 e p3.

Imagens

Para imagens, recomendamos pelo menos 70GB de disco, para garantir espaço de armazenamento dos resultados. Para utilização do tensorflow na CPU, utilizamos a imagem Ubuntu Server 18.04 LTS [ami-024a64a6685d05041]. Para utilizalção de tensorflow na GPU, utilizamos a imagem Deep Learning AMI (Ubuntu) Version 18.1 [ami-024a64a6685d05041], que já possui os drivers CUDA instalados.

Receita

Para criar o container a partir da receita, basta executar:

  • Tensorflow para CPU:
sudo ./install_dep.sh cpu
  • Tensorflow para GPU:
sudo ./install_dep.sh 

Ao final da execução, será criado um container de nome rom_dnn.sif.

Script de execução

Para executar a aplicação, é necessário primeiro entrar no ambiente singularity, utilizando o container gerado anteriormente:

sudo singularity shell --nv rom_dnn.sif

Obs: Utilize --nv apenas ao executar o experimento em instâncias com GPU

Então, deve-se acessar a pasta code e inicializar o script de execução:

cd code && sh run.sh

Para executar apenas utilizando o método de paramount iteration, utilize:

cd code && sh run.sh <p_number> <full_number>

Onde <p_number> é o número de iterações em paramount, e <full_number> é o número de execuções utilizadas para validação do método paramount. A execução apresentada consiste de 5 execuções em paramount iteration, seguidas de 5 execuções do número de iterações que estimula uma execução cheia (full_number).

Outra alternativa é executar o script ./exec_script.sh na raíz do repositório, que chama o script run.sh com p_number = 5 e full_number = 50.

Ao fim da execução, um arquivo chamado results.txt será armazenado na raíz do repositório, apresentando os tempos de execução computados.

About

Numerical tool for Construction of Reduced Order Models for Fluid Flows.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Fortran 62.3%
  • Python 33.3%
  • Shell 2.9%
  • Makefile 1.5%