Instalando OpenFOAM 10 no Windows

Conteúdo

Preparação

Para instalar o OpenFOAM no Windows, precisamos instalar o Windows Subsystem For Linux (WSL). O Windows precisa estar pelo menos na versão Windows 10 versão 2004; caso não esteja, atualize via o Windows Update. Precisamos também verificar se o seu PC está com as extensões de virtualização habilitadas; para tanto, abra o menu iniciar, busque por “Windows Powershell” (e não “Windows Powershell ISE”!), e selecione “Executar como Administrador”.

Após responder “sim” no diálogo do Controle de Conta do Usuário, apaecerá uma janela com título “Administrador: Windows Powershell”. Execute a seguinte instrução:

Get-ComputerInfo -property "HyperV*"

Caso “HyperVRequirementVirtualizationFirmwareEnabled” tenha o valor “True” ou caso “HyperVisorPresent” tenha o valor “True” e as outras linhas estejam com valor em branco, podemos pular a próxima seção e seguir diretamente para Instalando o WSL. Caso contrário, precisamos habilitar o suporte a virtualização do processador no firmware.

Habilitando o Suporte a Virtualização no Firmware

Abra o Menu Iniciar, selecione a opção “Ligar/Desligar”, e, enquanto mantém pressionada a tecla “SHIFT”, clique em “Reiniciar”. Aguarde alguns segundos e um menu entitulado “Escolha uma opção” aparecerá. Selecione “Solução de Problemas”, depois “Opções avançadas” e, finalmete, “Configurações de Firmware UEFI”. O computador irá reiniciar e entrar na BIOS. A partir daí varia dependendo da marca do fabricante, mas geralmente se chama “AMD-V” para processadores AMD e “VT-x” ou “VT-d” para processadores Intel. A opção deverá estar dentro de uma aba ou submenu chamado “CPU Configurations”, “System Configurations”, “Advanced” , “Security” ou “Processor” e poderá estar marcada como “SVM”, “VMX”, “VT”, “Virtualization Technology”, “Virtual Machine Extensions”, “Vanderpool Technology”

Após habilitar a opção salve suas modificações e volte ao windows (frequentemente a tecla “F10” serve como atalho para isso).

Instalando o WSL

Na janela “Administrador: Windows Powershell” execute os seguintes comandos:

Enable-WindowsOptionalFeature -Online -FeatureName "VirtualMachinePlatform" -All -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Windows-Subsystem-Linux" -All

Após reiniciar o computador, reabra a Powershell (de agora em diante não é necessário executar como administrador) e verifique o estado do WSL:

wsl --status

Se o texto incluir a frase “O arquivo kernel do WSL 2 não foi encontrado. Para atualizar ou restaurar o kernel, execute ‘wsl.exe –update’.”, atualize o kernel Linux do WSL2 com o seguinte comando:

wsl --update

Uma vez terminado, precisamos instalar uma distribuição Linux. Recomendamos utilizar a Ubuntu 22.04 LTS, mas as opçoes disponíveis podem ser vistas com o comando

wsl --list --online

Se na lista resultante aparecer uma linha com o texto “Ubuntu-22.04”, use os seguintes comandos:

wsl --install --distribution Ubuntu-22.04

Se não aparecer a string “Ubuntu-22.04” na lista, precisamos instalar pela interface gráfica. Abra o Microsoft Store e busque por “Ubuntu 22.04 LTS”. Clique no botão “Adquirir”, e após a instalação aparentemente concluir, clique no botão que agora tem o rótulo “Abrir”. Uma nova janela aparecerá dizendo que a distribuição está sendo desempacotada. Ao terminar, uma terceira janela abrirá pedindo para selecionar um nome de usuário e uma senha; lembre-se dela, ela será importante.

wsl --set-version Ubuntu-22.04 2

Verifique que o Ubuntu 22.04 LTS está utilizando o WSL2 com o comando:

wsl --list --verbose

Se o Ubuntu-22.04 estiver com “VERSION” 1, o suporte a virtualização proavelmente não está habilitado. Volte para a seção “Habilitando o Suporte a Virtualização no Firmware” e tente novamente.

Instalando o Servidor X

Para poder executar programas que façam uso de interface gráfica, como o Paraview, precisamos instalar um servidor X no Windows. No Windows 10, recomendamos utilizar o vcXsrv; no caso do Windows 11 a funcionalidade WSLg já providencia uma cópia desse servidor pré-configurada, e esta seção pode ser pulada.

Vá para o site do vcXsrv e baixe o instalador clicando no botão verde de download. Selecione “Full” na primeira tela e , na segunda tela, modifique o local de instalação para “C:\Progs\VcXsrv” (ou na pasta Progs em qualquer drive que queira, caso esta máquina seja uma daquelas que tenha um SSD que mal cabe o Windows como drive C:).

Após a instalação, um novo ícone identificado como “XLaunch” aparecerá na área de trabalho. Este ícone precisará ser executado todas as vezes que quisermos utilizar o Paraview; ao ser executado, o XLaunch abrirá um wizard de configuração do servidor. Podemos deixar as opções como estão para as duas primeiras páginas, mas na terceira página é fundamental marcar a terceira opção, “Disable access control”. Dependendo da sua placa de vídeo, desmarcar a segunda opção, “Native opengl”, pode ajudar ou atrapalhar o Paraview na hora de desenhar objetos 3D na tela, melhorando a fluidez da mudança de ponto de vista. É recomendável experimentar com esta opção para descobrir a melhor configuração para o seu computador.

Instalando o OpenFOAM-10 no Ubuntu 22.04 no WSL2

Neste ponto, já podemos passar a trabalhar diretamebte no Ubuntu dentro do WSL.

Busque por Ubuntu no menu iniciar e execute o Ubuntu 22.04 LTS. Se você não tiver baixado a distribuição via o Microsoft Store, a primeira vez demorará alguns minutos, e pedirá que você crie um nome de usuário e senha agora. Caso contrário, as credenciais serão as que foram geradas no final da instalação da distribuição.

uname --kernel-release

Se a resposta começar com “4.4.0”, ainda estamos na versão 1 do WSL. Volte à powershell e tente reconfigurar o WSL para usar a versão 2. Em caso contrário, podemos fechar a janela do powershell; provavelmente não mais necessitaremos dela.

Vamos instalar os pré-requisitos do OpenFOAM. Digite

sudo su

entre a senha do usuário que você acabou de criar; você se tornará os usuário root, e o término do prompt mudará de $ para #. Isso indica que você está trabalhando como o superusuário, que tem a capacidade de mexer com (e portanto danificar) os arquivos de sistema da distribuição, portanto tome cuidado.

Faça a atualização do Ubuntu:

apt update && upgrade -y

Instale os pré-requisitos para o OpenFOAM com os seguintes comandos:

apt install -y \
git-core build-essential cmake libfl-dev bison zlib1g-dev qttools5-dev qtbase5-dev libqt5x11extras5-dev gnuplot \
libreadline-dev libncurses-dev libxt-dev libopenmpi-dev openmpi-bin libboost-system-dev libboost-thread-dev libgmp-dev \
libmpfr-dev python3 python3-dev libcgal-dev curl libglu1-mesa-dev \
wslu expect libglvnd-dev libqt5svg5-dev python3-dev python-is-python3 qtxmlpatterns5-dev-tools

Agora vamos sair do modo de superusuário, já que não vamos mais mexer com os arquivos de sistema do Ubuntu:

exit

Vamos baixar o OpenFOAM com os seguintes comandos:

cd ~
mkdir OpenFOAM
cd OpenFOAM
git clone 'https://github.com/OpenFOAM/OpenFOAM-10.git'
git clone 'https://github.com/OpenFOAM/ThirdParty-10.git'

Preparamos o ambiente para compilar o OpenFOAM com os seguintes comandos:

ln -s /usr/bin/mpicc.openmpi OpenFOAM-10/bin/mpicc
ln -s /usr/bin/mpirun.openmpi OpenFOAM-10/bin/mpirun
echo 'source /usr/share/wslu/wslusc-helper.sh' >> $HOME/.bashrc
echo "alias of10='source \$HOME/OpenFOAM/OpenFOAM-10/etc/bashrc WM_LABEL_SIZE=64 FOAMY_HEX_MESH=yes'" >> $HOME/.bashrc
source ~/.bashrc
of10

Agora o ambiente está configurado. Sempre que quisermos utilizar o OpenFOAM-10, após abrir o Ubuntu digite

of10

para preparar o ambiente automaticamente para o uso do OpenFOAM versão 10.

Em seguida, podemos compilar o ParaView, a ferramenta gráfica que utilizaremos para processar os dados gerados de maneira interativa. Começamos com as seguintes linhas:

cd $FOAM_ETC/config.sh
theVersion=5.10.1
theLine=$(( $(grep -n 'export ParaView_MAJOR' paraview | cut -d ':' -f 1) - 1 ))
if grep -qvE "^\s*export\s+ParaView_VERSION=${theVersion}" paraview
then 
ed paraview << EOF
${theLine}s/^/#/
${theLine}a
export ParaView_VERSION=${theVersion}
.
wq paraview
EOF
wmRefresh
fi

Isto configura o OpenFOAM para baixar e compilar a versão 5.10.1 do ParaView, a mais recente disponível na ocasião da última atualização deste documento.

Para iniciar a compilação, entre as seguintes linhas:

export QT_SELECT=qt5
cd $WM_THIRD_PARTY_DIR
unbuffer ./makeParaView -python -mpi -python-lib /usr/lib/x86_64-linux-gnu/libpython3.10.so 2>&1 | tee log.makePV

Dependendo do computador, isto pode demorar entre trinta minutos e várias horas. Após terminar com sucesso, podemos seguir para a compilação do OpenFOAM propriamente dito com as seguintes linhas:

cd ../OpenFOAM-10
unbuffer ./Allwmake 2>&1 | tee log.Allwmake

Este processo costuma demorar ainda mais que a compilação do ParaView. Após o termino da compilação uma maneira prática de verificar se o processo terminou é rodando novamente a linha final e verificando se aparece alguma mensagem de erro:

unbuffer ./Allwmake 2>&1 | tee -a log.Allwmake

Finalmente, podemos criar a pasta de trabalho para o OpenFOAM. As seguintes linhas criarão a pasta dentro da pasta “Meus Documentos” no Windows:

path_to_win_docs="$(powershell.exe -Command '[Environment]::GetFolderPath("mydocuments")'| sed -E 's!\\!/!g;s!^([A-Z]):(.*)$!/mnt/\L\1\E\2!;s!\r$!!')"
cd $WM_PROJECT_USER_DIR
mkdir  "${path_to_win_docs}/OpenFOAM"
ln -sf "${path_to_win_docs}/OpenFOAM" run

Quando formos utilizar o OpenFOAM, podemos utilizar as linhas

of10
run

e estaremos com o Ubuntu dentro da pasta “Meus Documentos\OpenFOAM” pronto para criar e rodar casos.

Resolvendo Problemas com o Servidor X

Ao executar o Paraview, o terminal trava por alguns minutos antes de terminar com a mensagem “qt.qpa.xcb: could not connect to display 172.20.16.1:0”

Abra o menu iniciar, busque por “Firewall e proteção de rede”, “Permitir um aplicativo pelo firewall”, selecione o botão “Alterar configuração” e procure o ítem “VcXsrv windows xserver”, e marque todas as quatro caixas de seleção (“nome”, “domínio”, “privada” e “publico”). Caso o ítem não esteja presente, clique em “Permitir outro aplicativo”. Na janela “Adicionar aplicativo”, pressione “Procurar…” e navegue até a pasta onde você instalou o VcXsrv e selecione o aplicativo “vcxsrv.exe”. Deve surgir na lista o aplicativo “VcXsrv windows xserver” com um ícone em forma de X. Clique em “Adicionar” e marque as caixas de seleção.

Ao executar o Paraview, o terminal retorna imediatamente com a mensagem “Authorization required, but no authorization protocol specified”

Feche o servidor X clicando com o botão da direita do mouse no seu ícone na bandeja do sistema, a área com ícones pequenos no canto inferior direito da tela, e clique em “Exit…” no menu que surgirá. Em seguida, execute novamente o XLaunch e tenha certeza de marcar a terceria opção na terceira tela, “Disable access control”

Ao tentar mexer a geometria no Paraview, demora muito a desenhar novamente na tela; efeito “show de slides”

O servidor X não está conseguindo aproveitar a capacidade de aceleração 3D por hardware da sua placa de vídeo. Tente executar o comando

export LIBGL_ALWAYS_INDIRECT=1

e execute novamente o Paraview. Compare com o desempenho ao executar o comando

export LIBGL_ALWAYS_INDIRECT=0

antes de executar o Paraview; se nenhum dos dois ficar bom, tente fechar o servidor X como descrito na resposta acima e ao reinciar o XLaunch desmarque a opção “Native opengl” além de marcar a “Disable access control”. Use a combinação de parâmetros que der melhor resultado.


Última Atualização: 2022-10-05