Parque Tecnológico Itaipu - PTI Centro de Estudos Avançados em Segurança de Barragens Universidade Estadual do Oeste do Paraná Laboratório de Computação de Alto Desempenho - LCAD Instalação e configuração do Ansys 16.2 e Intel Fortran Parallel Edition 2016 (Linux CentOS 6.85 x64) Pétterson Vinícius Pramiu Rogério Luís Rizzi Julho de 2016 Cascavel 2016 Sumário 1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 1 Pré-requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 Instalação do CentOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.1 Configuração do sistema operacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3 Instalação Ansys 16.2 Linux x64 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4 Instalação e configuração Intel Fortran 2016 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.1 Configuração Intel Fortran 2016 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 5 Exemplo de utilização de subrotinas Fortran no Ansys CFX: Flow Through a Butterfly Valve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 5.1 Modelo de Finnie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1 1 Introdução Esse tutorial foi escrito com objetivo de auxiliar a instalação e configuração do software Ansys v16.2 (cliente) em plataforma Linux. Como mencionado na documentação da Ansys, somente as distribuições Linux RedHat EL e SUSE apresentam suporte à instalação e operação do referido software. No entanto, como será apresentado a seguir é possível instalar e utilizar o Ansys em outras distribuições. Neste tutorial, o Ansys será instalado como cliente, o que significa que a licença para funcionamento do software está hospedada em outra máquina da rede. 1.1 Pré-requisitos A distribuição utilizada neste tutorial é a CentOS 6.85 x64 que é muito próxima à RedHat EL, informações adicionais da distribuição são apresentadas a seguir: [root@lcad etc]# lsb_release -a LSB Version: base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch: graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch Distributor ID:CentOS Description:CentOS release 6.85 (Final) Release:6.85 Codename:Final A versão do Software Ansys é a 16.2, e adicionalmente foi instalado o compilador Intel Fortran 2016 Parallel Edition for Linux x64. Além da instalação e configuração desses softwares, será apresentado um exemplo de simulação com Ansys CFX e subrotinas em Fortran. A instalação do Ansys v16.2 também funciona corretamente no Linux Ubuntu 14.04, bastando no final da instalação adicionar o caminho diretamente no terminal: LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LIBRARY_PATH export LIBRARY_PATH 2 2 Instalação do CentOS A versão selecionada para o sistema operacional Unix, foi a CentOS 6.85. Esta versão foi escolhida por ser praticamente uma versão opensource da renomada distribuição RedHat Enterprise Linux, que é homologada pela Ansys, mas não é gratuita. O download pode ser realizado no endereço: https://www.centos.org/download/. Figura 1: Download CentOS. Após realizar o download da distribuição e criar o disco de boot, a instalação pode ser inicializada como apresentado na Figura 2. Figura 2: Opções de instalação CentOS. 3 Após selecionar a opção Install ou upgrade an existing system a seguinte tela é exibida. Figura 3: Opções de instalação CentOS. Em seguida, um janela sobre a verificação do disco é apresentada. Figura 4: Opções de instalação CentOS. 4 Após verificar os discos de instalação, uma nova janela é exibida, na qual o usuário deve escolher as opções de idioma e de teclado. Figura 5: Opções de idioma para instalação CentOS. Em seguida, um janela para adicionar o nome do computador será apresentada. Esta etapa é importante, pois será utilizado este nome de computador para localizar a licença do Ansys posteriormente. Figura 6: Opções de instalação CentOS. Na próxima janela o usuário deverá selecionar sua senha de acesso como super usuário: root. Figura 7: Opções de instalação CentOS. Uma nova tela será exibida para que seja selecionada a versão de pacotes a ser instalda. Neste exemplo, instalou-se a versão Software Developmente Workstation. 5 Figura 8: Opções de instalação CentOS. Em seguida basta aguardar o processo de instalação. Figura 9: Opções de instalação CentOS. Ao final da instalação deve-se reinicializar o computador. 6 Figura 10: Opções de instalação CentOS. No primeiro acesso ao sistema operacional, é necessário aceitar o termos de uso da licença, criar um usuário e configurar data e hora. Figura 11: Primeiro acesso CentOS. Figura 12: Primeiro acesso CentOS. 7 2.1 Configuração do sistema operacional Como já mencionado, neste tutorial o Ansys será instalado como cliente, o que significa que a licença para funcionamento do software, está hospedada em outra máquina da rede. A máquina que contém a licença é identificada na rede como ccsc-sp000005.unioeste.br cujo IP é 10.81.115.218. A rede em que esta instalação foi realizada tem um servidor proxy que exige autenticação do usuário. Estas opções foram previamente configuradas no gerenciador de proxy da rede do CentOS, como ilustrado nas Figuras 13 e 14. Figura 13: Configurações do CentOS. Figura 14: Configurações do CentOS. Após a configuração é importante verificar o nome do seu host e seu IP, com auxílio do comando ifconfi. Neste exemplo o nome de host é LCA e o IP é 10.851.119.66. 8 Figura 15: Configurações do CentOS. Após saber os nomes e endereços de host e do servidor de licenças, o usuário deve adicionar esses dois endereços no arquivo etc/hosts e salvá-lo em seguida. Figura 16: Configurações do CentOS. Após realizar a configuração do arquivo etc/hosts, é importante verificar se o servidor de licenças e o host estão sendo encontrados na rede. Isso pode ser feito através do comando ping 9 ’name’, onde name é o nome da máquina a ser verificado - LCA neste caso. Figura 17: Configurações do CentOS - ping LCA. Figura 18: Configurações do CentOS - ping ccsc-sp000005. 10 3 Instalação Ansys 16.2 Linux x64 A versão instalada neste tutorial foi obtida juntamente ao Customer Portal, cuja tela é apresentada na Figura 19 e 20. O endereço para download oficial da Ansys é https://support. ansys.com/portal/site/AnsysCustomerPortal. Figura 19: Download Ansys. Figura 20: Download Ansys. Após descarregar os arquivos .iso e extraí-los no computador, deve-se abrir no terminal a pasta que contém o disco 1. 11 Figura 21: Download Ansys. Para iniciar a instalação o usuário deve digitar sudo chmod 777 INSTALL, e em seguida digitar ./INSTALL. Figura 22: Instalação Ansys. 12 Figura 23: Instalação Ansys. A janela de instalação será exibida, como apresentado na Figura 24, em o usuário deve clicar na primeira opção ’Install Ansys Products’. Figura 24: Instalação Ansys. 13 Em seguida é necessário aceitar os termos de licença. Figura 25: Instalação Ansys. Na próxima janela o usuário deve escolher a pasta em o software será instalado. Recomenda-se deixar pasta default. Figura 26: Instalação Ansys. A próxima tela apresenta o formulário para preechimento dos dados do servidor de licenças, que neste caso é identificado como ccsc-sp000005. 14 Figura 27: Instalação Ansys. Note que na próxima janela, os aplicativos já são automaticamente selecionados de acordo com a licença do servidor. Figura 28: Instalação Ansys. Agora basta aguardar a finalização da instalação. 15 Figura 29: Instalação Ansys. Na última tela é exibido um relatório do processo de instalação. Figura 30: Instalação Ansys. Em seguida, para abrir o CFX deve-se navegar no terminal até a pasta onde o Ansys foi instalado /usr/ansys_inc/v162/CFX/bin, e digitar o comando ./cfx5. 16 Figura 31: Abrir Ansys CFX. A tela do Ansys CFX será exibida. Figura 32: Abrir Ansys CFX. Para abrir o CFX-Pre basta clicar no referido botão. 17 Figura 33: Abrir Ansys CFX. Agora o software está pronto para utilização!!! Figura 34: Abrir Ansys CFX. O resultado do problema ’bentchmark’ é apresentado na Figura 35. 18 Figura 35: Abrir Ansys CFX. Note que o License Manager do Ansys, identifica quantas e quais hosts estão utilizando as licenças do servidor. Figura 36: License Manager Ansys. 19 4 Instalação e configuração Intel Fortran 2016 A instalação do Intel Fortran 2016 Parallel Studio é necessária para posterior execução de simulações que empregam subrotinas implementadas em Fortran. A versão utilizada neste tutorial é uma versão acadêmica obtida diretamente do site da Intel. Figura 37: Download Intel Fortran. Após realizar o download e descompactar o arquivo de instalação, o usuário deve abrir no terminal a pasta onde os arquivos foram extraídos. Em seguida deve-se digitar ./install.sh, para iniciar a instalação. 20 Figura 38: Instalação Intel Fortran 2016. Os passos seguintes são intuitivos e são apresentados a seguir. Figura 39: Instalação Intel Fortran 2016. 21 Figura 40: Instalação Intel Fortran 2016. Figura 41: Instalação Intel Fortran 2016. 22 4.1 Configuração Intel Fortran 2016 Antes da utilização do compilador o usuário deve declarar as variáveis de ambientes a serem empregadas na compilação. Para isso deve-se navegar pelo terminal até a pasta de instalação do Intel Fortran e executar o script compilevars.sh [arg], onde argumento pode ser a opção intel64 ou ia32, dependendo da arquitetura da máquina. Figura 42: Configuração Intel Fortran. Note que o endereço padrão de instalação do Intel Fortran 2016 é /opt/intel/. Para verificar se a configuração está correta, basta criar um simples exemplo ’hello_world.f’ e compilá-lo através do comando ifort *.f. program hello print *, "Hello World!" end program hello 23 Figura 43: Configuração Intel Fortran. Se tudo estiver correto seu arquivo *.f será compilado com sucesso, e pode ser executado através do comando ./hello_world.out. Figura 44: Compilando exemplo Intel Fortran. 24 5 Exemplo de utilização de subrotinas Fortran no Ansys CFX: Flow Through a Butterfly Valve Antes de prosseguir encontre o diretório \usr\ansys_inc\v162\CFX\examples e copie o arquivo pt_erosion.F para o diretório \usr\ansys_inc\v162\CFX. Também localize o arquivo cfx5mkext.ccl que fica na pasta \usr\ansys_inc\v162\CFX\etc, copie e cole esse arquivo no mesmo diretório \usr\ansys_inc\v162\CFX. Em seguida faça a compilação do arquivo pt_erosion.F através do comando ./cfx5mkext -64bit pt_erosion.F e verifique a existência de erros. Figura 45: Compilando exemplo Intel Fortran. 5.1 Modelo de Finnie O exemplo aqui ilustrado segue o tutorial apresentado no manual do CFX “Flow Through a Butterfly Valve”, com a diferença que será utilizado o modelo de Finnie para erosão implementado em Fortran ao invés do modelo de Finnie implementado no CFX. Obviamente utilizando os mesmos parâmetros, os resultados devem ser iguais. Após montar o problema “Flow Through a Butterfly Valve” com auxílio do tutorial do ANSYS CFX Tutorials, para utilização de sub rotinas Fortran deve-se criar uma “User Routines”. Para isso, clique com o botão trocado do mouse em “User Routines” e insira uma nova rotina, como na Figura 46. 25 Figura 46: Criação de rotinas no CFX. Nomeie sua rotina como myerosion. Veja a Figura 47 Figura 47: Criação de rotinas no CFX. Na janela que será exibida, selecione a opção particle user routine e preencha os campus de acordo com a Figura 48 26 Figura 48: Criação de rotinas no CFX. Em que Library Path é o local onde você salvou seu código fonte Fortran pt_erosion.F. Em seguida deve-se editar as opções do Default Domain: Figura 49: Criação de rotinas no CFX. Na guia Fluid Specific Models escolha como Erosion model a opção User defined, como apresentado nas Figuras 50 e 51. 27 Figura 50: Criação de rotinas no CFX. Figura 51: Criação de rotinas no CFX. Altere as opções do Default Domain default: Figura 52: Criação de rotinas no CFX. 28 Na guia Fluid Values selecione as opções como apresentado nas Figuras 53 e 54. Figura 53: Criação de rotinas no CFX. Figura 54: Criação de rotinas no CFX. Em que o valor dos argumentos na Figura 53 é: Sand Fully Coupled.Particle Impact Angle, Sand Fully Coupled.Velocity e o valor de retorno é: Particle Erosion. E o valor dos argumentos na Figura 54 é: Sand One Way Coupled.Particle Impact Angle, Sand One Way Coupled.Velocity e o valor de retorno é: Particle Erosion. Altere as opções do Wall: 29 Figura 55: Criação de rotinas no CFX. Na guia Fluid Values selecione as opções como apresentado nas Figuras 56 e 57. Figura 56: Criação de rotinas no CFX. Figura 57: Criação de rotinas no CFX. 30 Em que o valor dos argumentos na primeira imagem é: Sand Fully Coupled.Particle Impact Angle,Sand Fully Coupled.Velocity e o valor de retorno é: Particle Erosion. E o valor dos argumentos na segunda imagem é: Sand One Way Coupled.Particle Impact Angle,Sand One Way Coupled.Velocity e o valor de retorno é: Particle Erosion. Em seguida execute o Solver do CFX e aguarde o final da simulação. Veja a Figura 58. Figura 58: Criação de rotinas no CFX. A Figura 59 mostra os resultados obtidos usando o modelo Finnie do CFX e o implementado em Fortran (pt_erosion.F) para comparação dos resultados. Figura 59: Resultado da simulação de erosão utilizando o modelo Finnie. O código fonte do arquivo pt_erosion.F é descrito a seguir: 1 2 3 4 # include " cfx5ext . h " dllexport ( pt_erosion ) SUBROUTINE PT_EROSION ( NLOC , NRET , NARG , RET , ARG , CRESLT , & CZ , DZ , IZ , LZ , RZ ) 31 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 CC C D User routine : Finnie erosion model CC CC -------------------CC Input CC -------------------CC C C NLOC - number of entities C C NRET - length of return stack C C NARG - length of argument stack C C ARG - argument values CC CC -------------------CC Modified CC -------------------CC CC -------------------CC Output CC -------------------CC C C RET - return values CC CC -------------------CC Details CC -------------------CC CC ====================================================================== C C -----------------------------C Preprocessor includes C -----------------------------C # include " cfd_sysdep . h " # include " cfd_constants . h " C C -----------------------------C Argument list C -----------------------------C INTEGER NARG , NRET , NLOC C REAL ARG ( NLOC , NARG ) , RET ( NLOC , NRET ) C CHARACTER *(4) CRESLT C INTEGER IZ (*) CHARACTER CZ (*)*(1) DOUBLE PRECISION DZ (*) LOGICAL LZ (*) REAL RZ (*) C C -----------------------------C External routines C -----------------------------C 32 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 C C -----------------------------C Local Parameters C -----------------------------C C C -----------------------------C Local Variables C -----------------------------C C -----------------------------C Stack pointers C -----------------------------C C ======================================================================= C C --------------------------C Executable Statements C --------------------------C C ======================================================================= C C Return variables : C ----------------C C Particle erosion : RET (1 ,1) C C Argument variables C ------------------C C Particle impact angle : ARG (1 ,1) C Particle velocity : ARG (1 ,2) C C ======================================================================= C C ----------------------------------------------------------------------C Calculate the return variables C ----------------------------------------------------------------------C CALL FINNIE ( RET (1 ,1) , & ARG (1 ,1) , ARG (1 ,2)) C END 103 104 105 106 107 108 109 110 111 112 113 114 SUBROUTINE FINNIE ( EROSION , ANGLE , VEL_PT ) C C ======================================================================= C Calculate Finnie erosion rate C ======================================================================= C C --------------------------C Preprocessor includes C --------------------------C # include " cfd_sysdep . h " 33 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 # include " cfd_constants . h " C C -----------------------------C Argument list C -----------------------------C REAL EROSION , ANGLE , VEL_PT (3) C C -----------------------------C Local variables C -----------------------------C REAL ANGLE_DEG , F , V0 , N , VEL C C -----------------------------C Executable statements C -----------------------------C V0 = 1.0 N = 2.0 C ANGLE_DEG = ANGLE *180./ PI C IF ( ANGLE_DEG . GE . 18.5) THEN F = COS ( ANGLE )**2 / THREE ELSE F = SIN ( TWO * ANGLE ) - THREE * SIN ( ANGLE )**2 ENDIF C VEL = SQRT ( VEL_PT (1)**2 + VEL_PT (2)**2 + VEL_PT (3)**2) C EROSION = ( VEL /( V0 + SN ))** N * F C END