Instalação do Fortran com Ansys CFX
Instalação do Fortran com Ansys CFX
Dezembro de 2015
Cascavel
2015
Sumário
Para o correto funcionamento dos aplicativos aqui listados, procure executar em ordem as
tarefas apresentadas assim como escolher atentamente os softwares de acordo com as configurações
do seu sistema (32 ou 64bits).
Os aplicativos necessários para realização deste tutorial são:
Integre seu Fortran com o Visual Studio já instalado. Veja a Figura 28.
15
Uma nova janela será exibida. Nesta janela clique sobre o link Configurações avançadas
do sistema, como mostra a Figura 33.
Ao clicar no link, uma nova janela será exibida. Nesta janela clique no botão Variáveis de
Ambiente. Veja a Figura 34
18
Para criação das novas variáveis de ambiente, clique no botão Novo.... Figura 35
Uma caixa com os campus Nome da variável e Valor da variável será exibida e deverá
ser preenchida com os valores da nova variável de ambiente:
Clique em Ok para que a variável seja criada. Note que os endereços aqui utilizados podem mudar
de acordo com as opções selecionadas no momento da instalação.
Repita este procedimento criando uma nova variável include com valores:
C:\Program Files (x86)\Intel\Composer XE 2013\compiler\include;
C:\Program Files (x86)\Intel\Composer XE 2013\compiler\include\intel64
Novamente, repita este procedimento criando uma nova variável PATH com valores:
C:\Program Files\ANSYS Inc\v140\CFX\bin;C:\Program Files (x86)\Intel\
Composer XE 2013\bin;C:\Program Files (x86)\Intel\Composer XE 2013\
bin\intel64;C:\Program Files (x86)\Intel\Composer XE 2013\redist;
C:\Program Files (x86)\Intel\Composer XE 2013\redist\intel64;
C:\Program Files (x86)\Intel\Composer XE 2013\redist\intel64\compiler;
C:\Program Files (x86)\Intel\Composer XE 2013\redist\intel64\mkl;
C:\Program Files (x86)\Intel\Composer XE 2013\redist\intel64\mpirt
Caso seu sistema seja 32bits renomeie todas a pastas chamadas intel64 para ia32. Por
exemplo, a variável lib em um sistema 32bits seria da forma:
Nome da variável: lib
Valor da variável: C:\Program Files (x86)\Intel\Composer XE 2013\compiler\lib;
C:\Program Files (x86)\Intel\Composer XE 2013\compiler\lib\ia32
Feito isso, clique em OK para sair da janela de Propriedades do Sistema.
Em seguida clique no menu Tools -> Command Line. Veja Figura 38:
20
Nesta janela de prompt, navegue até o diretório onde se encontra o compilador Fortran
(C:\Program Files (x86)\Intel\Composer XE 2013\bin) e digite o seguinte comando:
[Link] intel64. Caso seu sistema seja 32bits use o comando [Link] ia32.
Se a configuração for realizada com sucesso será exibida uma mensagem como na Figura 40.
21
Para gerar os arquivos necessários ao funcionamento do CFX, navegue pelo prompt até
o diretório onde está localizado seu arquivo fonte em Fortran. Dentro do diretório digite o
comando: cfx5mkext -64bit <nome_arquivo.F>. Caso seu sistema seja 32bits use o comando
cfx5mkext <nome_arquivo.F>. Veja a Figura 41.
A Figura 42 mostra a janela que deverá ser exibida se a compilação for executada com êxito.
22
Note que no diretório onde está o código fonte é gerada uma nova pasta, que contém os
arquivos utilizados pelo solver do CFX. Veja a Figura 43.
Na janela que será exibida, selecione a opção particle user routine e preencha os campus
de acordo com a Figura 46
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:
25
Na guia Fluid Specific Models escolha como Erosion model a opção User defined,
como apresentado nas Figuras 48 e 49.
Na guia Fluid Values selecione as opções como apresentado nas Figuras 51 e 52.
27
Na guia Fluid Values selecione as opções como apresentado nas Figuras 54 e 55.
92 C
93 C =======================================================================
94 C
95 C -----------------------------------------------------------------------
96 C Calculate the return variables
97 C -----------------------------------------------------------------------
98 C
99 CALL FINNIE ( RET (1 ,1) ,
100 & ARG (1 ,1) , ARG (1 ,2))
101 C
102 END
103
147 C
148 END
EROSION MODEL:
Option = User Defined
END
PARTICLE USER WALL INTERACTION:
Argument Variables List = Sand One Way [Link] Impact \
Angle,Sand One Way [Link]
Particle User Routine = myerosion
Particle Wall Interaction Return Variables List = Particle Erosion
END
PARTICLE WALL INTERACTION:
Option = Equation Dependent
END
VELOCITY:
Option = Restitution Coefficient
Parallel Coefficient of Restitution = 1.0
Perpendicular Coefficient of Restitution = 0.9
END
END
END
END
8 CC --------------------
9 CC Input
10 CC --------------------
11 CC
12 C C NLOC - number of entities
13 C C NRET - length of return stack
14 C C NARG - length of argument stack
15 C C ARG - argument values
16 CC
17 CC --------------------
18 CC Modified
19 CC --------------------
20 CC
21 CC --------------------
22 CC Output
23 CC --------------------
24 CC
25 C C RET - return values
26 CC
27 CC --------------------
28 CC Details
29 CC --------------------
30 CC
31 CC ======================================================================
32 C
33 C ------------------------------
34 C Preprocessor includes
35 C ------------------------------
36 C
37 # include " cfd_sysdep . h "
38 # include " cfd_constants . h "
39 C
40 C ------------------------------
41 C Argument list
42 C ------------------------------
43 C
44 INTEGER NARG , NRET , NLOC
45 C
46 REAL ARG ( NLOC , NARG ) , RET ( NLOC , NRET )
47 C
48 CHARACTER *(4) CRESLT
49 C
50 INTEGER IZ (*)
51 CHARACTER CZ (*)*(1)
52 DOUBLE PRECISION DZ (*)
53 LOGICAL LZ (*)
54 REAL RZ (*)
55 C
56 C ------------------------------
57 C External routines
58 C ------------------------------
59 C
60 C
61 C ------------------------------
62 C Local Parameters
36
63 C ------------------------------
64 C
65 C
66 C ------------------------------
67 C Local Variables
68 C ------------------------------
69 C
70 C ------------------------------
71 C Stack pointers
72 C ------------------------------
73 C
74 C =======================================================================
75 C
76 C ---------------------------
77 C Executable Statements
78 C ---------------------------
79 C
80 C =======================================================================
81 C
82 C Return variables :
83 C -----------------
84 C
85 C Particle erosion : RET (1 ,1)
86 C
87 C Argument variables
88 C -------------------
89 C
90 C Particle impact angle : ARG (1 ,1)
91 C Particle velocity : ARG (1 ,2)
92 C
93 C =======================================================================
94 C
95 C -----------------------------------------------------------------------
96 C Calculate the return variables
97 C -----------------------------------------------------------------------
98 C
99 CALL TABAKOFF ( RET (1 ,1) ,
100 & ARG (1 ,1) , ARG (1 ,2))
101 C
102 END
103
END
END
40
Como mencionado no Guia de Referência do ANSYS CFX existem quatro formas de especificar
condições de contorno para um problema, sendo elas determinadas através de condições constantes
(tipo Dirichlet), através da utilização de CEL (CFX Expression Language), da utilização de CEL
Function (FORTRAN) ou através da leitura de arquivo que contenha os valores explícitos da condição
de contorno em cada ponto do domínio.
Este primeiro estudo de caso emprega uma condição de contorno inlet especificada como um
perfil de velocidade em função do raio do tubo, expresso por:
ˇ ˇ1
ˇ r ˇ7
Wprof prq “ Wmax ˇˇ1 ´ ˇ (3.1)
Rmax ˇ
41
em que Wprof indica o perfil de velocidade, Wmax “ 5 m{s é a velocidade máxima do fluido em
escoamento, 0 ď r ď 20 mm representa o raio do tubo e Rmax “ 20 mm indica o valor máximo
assumido para r. A Figura 59 ilustra a variação do perfil de velocidade especificado pela expressão
(3.1).
5
5*(1-50.0*r)^(1/7)
Velocidade de entrada - (m/s)
0
0 0.005 0.01 0.015 0.02
Raio do tubo - (m)
Após a configuração do problema no CFX, é necessário criar as CEL Expressions Wmax, Rmax,
Wprof para representação o perfil de velocidade inlet. Para tal criação, o usuário deve clicar com
42
Em seguida uma nova janela será exibida, em que o usuário deve inserir o nome da Expression
a ser criada. A primeira expressão criada deve ser denominada de Wmax. Veja a Figura 62.
Ao clicar em ’OK’ será exibida uma janela em que o usuário deverá definir a sua Expressão.
Para a expressão que define a velocidade máxima do fluido em escoamento, Wmax, será utilizado um
valor constante igual 5 m/s. Em seguida deve-se clicar em ’Aplly’. Veja a Figura 63.
43
Duas novas Expressions devem ser criadas e nomeadas como Rmax e Wprof seguindo os
procedimentos anteriormente apresentados. A Expression Rmax deve assumir o valor 20 mm e a
Expression Wprof deve assumir o valor expresso em (3.1). Veja a Figura 64 para uma ilustração de
como devem estar configuradas as CEL Expressions.
Agora deve-se criar o arquivo que contém o código fonte a ser compilado em Fortran. O
código fonte é apresentado como segue.
1 # include " cfx5ext . h "
2 dllexport ( inlet_velocity )
3 SUBROUTINE INLET_VELOCITY (
4 & NLOC , NRET , NARG , RET , ARGS , CRESLT , CZ , DZ , IZ , LZ , RZ )
5 INTEGER NLOC , NARG , NRETC
6 CHARACTER CRESLT *(*)
7 REAL ARGS ( NLOC , NARG ) , RET ( NLOC , NRET )
8 INTEGER IZ (*)
46
9 CHARACTER CZ (*)*(1)
10 DOUBLE PRECISION DZ (*)
11 LOGICAL LZ (*)
12 REAL RZ (*)
13 INTEGER ILOC
14 REAL EXPONENT
15 REAL VALUE
16 C CALL SET_A_0 ( RET , NLOC * NRET )
17 EXPONENT = 1.0/7.0
18 C
19 PRINT * , NLOC , NRET , NARG
20 DO ILOC = 1 , NLOC
21 VALUE = 1.0 - ARGS ( ILOC ,2)/ ARGS ( ILOC ,3)
22 IF ( VALUE . LT . 0.0) VALUE = 0.0
23 RET ( ILOC ,1) = ARGS ( ILOC ,1)* VALUE ** EXPONENT
24 END DO
25 C
26 CRESLT = ’ GOOD ’
27 C Executable statements
28 CALL MESAGE ( ’ WRITE ’ , ’␣ ’)
29 CALL MESAGE ( ’ WRITE ’ , ’ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ’)
30 CALL MESAGE ( ’ WRITE ’ , ’␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ Start ␣ USER_OUTPUT ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ’)
31 CALL MESAGE ( ’ WRITE ’ , ’ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ’)
32 CALL MESAGE ( ’ WRITE ’ , ’␣ ’)
33 C
34 C =======================================================================
35 END
Note que a estrutura das subrotinas Fortran utilizadas pelo CFX deve apresentar os
argumentos fixos <subroutine_name>(NLOC , NRET , NARG , RET , ARGS , CRESLT , CZ
,DZ ,IZ ,LZ ,RZ ), em que:
• ARGS(1: NLOC, 1: NARG): Argumentos passados para a função (em cada ponto no
espaço).
• RET (1: NLOC, 1: NRET): Variáveis de retorno (em cada ponto no espaço).
Em seguida o código fonte deve ser compilado de forma análoga ao apresentado na seção 1.5.
As Figuras 68 e 69 ilustram o resultado da compilação do código Fortran.
47
Figura 68: Configuração do compilador Intel Fortran para utilização com CFX.
É importante observar as mensagens apresentadas após a execução dos comandos, que devem
ser iguais às ilustradas nas Figuras 68 e 69.
Em seguida, dois passos são necessários para definir uma CEL Fucntion do usuário que utiliza a
sub-rotina Fortran compilada. Em primeiro lugar, deve-se definir uma User Routine que aponta para
a sub-rotina Fortran. Em seguida, uma User Function que aponta para a User Routine previamente
criada. Para isso o usuário deve seguir os passos listados abaixo:
1. Na barra de ferramentas principal, clique com o botão direito do mouse em User Routines.
2. Defina o nome da rotina como WprofRoutine e clique em ’OK’. Em seguida irá aparecer ao
usuário os detalhes da User Routine.
5. Defina o Library Name para inlet_velocity. Este é o nome passado para o comando
cfx5mkext pela opção -name. Se a opção -name não for especificado, um padrão será usado.
O padrão é o nome do arquivo Fortran sem a extensão .F.
6. Defina o Library Path para o diretório onde o comando cfx5mkext foi executado
(geralmente o diretório de trabalho atual). Por exemplo, em Windows:
C:/TUTORIAIS_LEARN/ButterflyValve. Isso pode ser feito rapidamente, clicando em
Procurar (ao lado do Library Path), navegando até a pasta apropriada (não é necessário se o
usuário selecionar o diretório de trabalho), e clicando em OK (em Select Directory).
7. Clique em OK para finalizar. A Figura 89 ilustra como deve ficar a configuração da User
Routine.
Em seguida o usuário deverá criar uma User Function para linkar o Solver com o código em
Fortran declarado pela User Routine. Para isso o usuário deve seguir os passos listados abaixo:
5. Digite a lista de argumentos a ser passada para o código Fortran como [m s-̂1], [m], [m].
Estas são as unidades dos três argumentos de entrada: Wmax, r e Rmax.
49
6. Passe a unidade do argumento de retorno em Result Units como [m s-̂1], que é a unidade do
perfil de velocidade calculado pelo código Fortran.
Após definir a User Function e a User Routine, é necessário definí-la como condição de entrada
e como condição inicial. Isto pode ser feito seguindo as configurações apresentadas nas Figuras 72
e 73.
50
Esta seção apresenta a configuração do problema de escoamento através do tubo com válvula
borboleta empregando condições de contorno inlet e outlet especificadas como distintos perfis de
velocidade em função do raio do tubo, expresso em inlet por:
ˆˇ ˇ˙ 1
ˇ r ˇ 7
Win prq “ Wmax ˇˇ1 ´ ˇ (3.3)
Rmax ˇ
e em outlet por: ˆˇ ˇ˙ 2
ˇ r ˇ
Wout prq “ Wmax ˇˇ1 ´ ˇ (3.4)
Rmax ˇ
em que Win indica o perfil de velocidade de entrada, Wout representa o perfil de velocidade de saída,
Wmax “ 5 m{s é a velocidade máxima do fluido em escoamento, 0 ď r ď 20 mm representa o raio
do tubo e Rmax “ 20 mm indica o valor máximo assumido para r. As Figuras 75 e 76 ilustram a
variação dos perfis de velocidade especificados pelas expressões (3.3) e (3.4), respectivamente.
52
5*(1-50.0*r)^(1/7)
Velocidade de entrada - (m/s)
4
0
0 0.005 0.01 0.015 0.02
Raio do tubo - (m)
4.5
5*(1-50.0*r)^2
4
3.5
Velocidade de saída - (m/s)
2.5
1.5
0.5
0
0 0.005 0.01 0.015 0.02
Raio do tubo - (m)
Após a configuração do problema no CFX, é necessário criar as CEL Expressions Wmax, Rmax,
Wprof para representação o perfil de velocidade inlet. Para tal criação, o usuário deve clicar com
o botão direito do mouse sobre o menu Expressions->Insert->Expression como ilustrado na
Figura 79.
54
Em seguida uma nova janela será exibida, em que o usuário deve inserir o nome da Expression
a ser criada. A primeira expressão criada deve ser denominada de Wmax. Veja a Figura 80.
Ao clicar em ’OK’ será exibida uma janela em que o usuário deverá definir a sua Expressão.
Para a expressão que define a velocidade máxima do fluido em escoamento, Wmax, será utilizado um
valor constante igual 5 m/s. Em seguida deve-se clicar em ’Aplly’. Veja a Figura 81.
55
Três novas Expressions devem ser criadas e nomeadas como Rmax, Wprof e WprofOutlet
seguindo os procedimentos anteriormente apresentados. A Expression Rmax deve assumir o valor
20 mm, a Expression Wprof deve assumir o valor expresso em (3.3) e a Expression WprofOutlet
deve assumir o valor expresso em (3.4). Veja a Figura 82 para uma ilustração de como devem estar
configuradas as CEL Expressions.
Expression declarada, caso contrário mensagens de erro serão apresentadas. A variável r é uma
variável do ambiente CFX e é avaliada em termos das coordenadas cartesianas, x e y, como:
a
r “ x2 ` y 2 (3.5)
.
Nesta seção os perfis de velocidade nas condições de contorno de entrada e saída serão
especificado com o emprego de CEL Functions e combinado com a utilização de CEL Expressions,
objetivando uma melhor compreensão da passagem de parâmetros entre o Solver do CFX e o código
Fortran, durante a execução do Solver.
Primeiramente o arquivo [Link] deve ser carregado e as configurações padrão do
problema devem ser realizadas de acordo com o tutorial Flow Through a Butterfly Valve. Após
realizar as configurações iniciais do problema, deve-se criar duas CEL Expressions denominadas de
Wmax e Rmax, cujos valores são 5 m/s e 20 mm, respectivamente. Veja Figura 86.
58
Agora deve-se criar os arquivos que contém os códigos fonte para a condição de entrada e
para a condição de saída. Os códigos fonte são apresentados como segue.
1 # include " cfx5ext . h "
2 dllexport ( inlet_velocity )
3 SUBROUTINE INLET_VELOCITY (
4 & NLOC , NRET , NARG , RET , ARGS , CRESLT , CZ , DZ , IZ , LZ , RZ )
5 INTEGER NLOC , NARG , NRETC
6 CHARACTER CRESLT *(*)
7 REAL ARGS ( NLOC , NARG ) , RET ( NLOC , NRET )
8 INTEGER IZ (*)
9 CHARACTER CZ (*)*(1)
10 DOUBLE PRECISION DZ (*)
11 LOGICAL LZ (*)
12 REAL RZ (*)
13 INTEGER ILOC
14 REAL EXPONENT
15 REAL VALUE
16 C CALL SET_A_0 ( RET , NLOC * NRET )
17 EXPONENT = 1.0/7.0
18 C
19 PRINT * , NLOC , NRET , NARG
20 DO ILOC = 1 , NLOC
21 VALUE = 1.0 - ARGS ( ILOC ,2)/ ARGS ( ILOC ,3)
22 IF ( VALUE . LT . 0.0) VALUE = 0.0
23 RET ( ILOC ,1) = ARGS ( ILOC ,1)* VALUE ** EXPONENT
24 END DO
25 C
26 CRESLT = ’ GOOD ’
27 C Executable statements
28 CALL MESAGE ( ’ WRITE ’ , ’␣ ’)
59
Note que a estrutura das subrotinas Fortran utilizadas pelo CFX deve apresentar os
argumentos fixos <subroutine_name>(NLOC , NRET , NARG , RET , ARGS , CRESLT , CZ
,DZ ,IZ ,LZ ,RZ ), em que:
• ARGS(1: NLOC, 1: NARG): Argumentos passados para a função (em cada ponto no
espaço).
• RET (1: NLOC, 1: NRET): Variáveis de retorno (em cada ponto no espaço).
Em seguida o código fonte deve ser compilado de forma análoga ao apresentado na seção 1.5.
As Figuras 86 e 69 ilustram o resultado da compilação do código Fortran.
Figura 86: Configuração do compilador Intel Fortran para utilização com CFX.
É importante observar as mensagens apresentadas após a execução dos comandos, que devem
ser iguais às ilustradas nas Figuras 68, 87 e 88.
Em seguida deve-se definir uma User Routine que aponta para a sub-rotina
inlet_velocity.F. E após, uma User Function que aponta para a User Routine previamente
criada. Para isso o usuário deve seguir os passos listados abaixo:
1. Na barra de ferramentas principal, clique com o botão direito do mouse em User Routines.
2. Defina o nome da rotina como WprofRoutine e clique em ’OK’. Em seguida irá aparecer ao
usuário os detalhes da User Routine.
5. Defina o Library Name para inlet_velocity. Este é o nome passado para o comando
cfx5mkext pela opção -name. Se a opção -name não for especificado, um padrão será usado.
O padrão é o nome do arquivo Fortran sem a extensão .F.
6. Defina o Library Path para o diretório onde o comando cfx5mkext foi executado
(geralmente o diretório de trabalho atual). Por exemplo, em Windows:
C:/TUTORIAIS_LEARN/ButterflyValve. Isso pode ser feito rapidamente, clicando em
Procurar (ao lado do Library Path), navegando até a pasta apropriada (não é necessário se o
usuário selecionar o diretório de trabalho), e clicando em OK (em Select Directory).
7. Clique em OK para finalizar. A Figura 89 ilustra como deve ficar a configuração da User
Routine.
62
Em seguida o usuário deverá criar uma User Function para linkar o Solver com o código em
Fortran declarado pela User Routine. Para isso o usuário deve seguir os passos listados abaixo:
5. Digite a lista de argumentos a ser passada para o código Fortran como [m s-̂1], [m], [m].
Estas são as unidades dos três argumentos de entrada: Wmax, r e Rmax.
6. Passe a unidade do argumento de retorno em Result Units como [m s-̂1], que é a unidade do
perfil de velocidade calculado pelo código Fortran.
Após definir a User Function e a User Routine, é necessário definí-la como condição de entrada
e como condição inicial. Isto pode ser feito seguindo as configurações apresentadas nas Figuras 91
e 92.
Deve-se também definir uma User Routine que aponta para a sub-rotina outlet_velocity.F.
E após, uma User Function que aponta para a User Routine previamente criada. Para isso o usuário
deve seguir os passos listados abaixo:
1. Na barra de ferramentas principal, clique com o botão direito do mouse em User Routines.
5. Defina o Library Name para outlet_velocity. Este é o nome passado para o comando
cfx5mkext pela opção -name. Se a opção -name não for especificado, um padrão será usado.
O padrão é o nome do arquivo Fortran sem a extensão .F.
6. Defina o Library Path para o diretório onde o comando cfx5mkext foi executado
(geralmente o diretório de trabalho atual). Por exemplo, em Windows:
C:/TUTORIAIS_LEARN/ButterflyValve. Isso pode ser feito rapidamente, clicando em
Procurar (ao lado do Library Path), navegando até a pasta apropriada (não é necessário se o
usuário selecionar o diretório de trabalho), e clicando em OK (em Select Directory).
7. Clique em OK para finalizar. A Figura 93 ilustra como deve ficar a configuração da User
Routine.
65
Em seguida o usuário deverá criar uma User Function para linkar o Solver com o código em
Fortran declarado pela User Routine recém configurada. Para isso o usuário deve seguir os passos
listados abaixo:
5. Digite a lista de argumentos a ser passada para o código Fortran como [m s-̂1], [m], [m].
Estas são as unidades dos três argumentos de entrada: Wmax, r e Rmax.
6. Passe a unidade do argumento de retorno em Result Units como [m s-̂1], que é a unidade do
perfil de velocidade calculado pelo código Fortran.
Após definir a User Function e a User Routine, é necessário definí-la como condição de saída.
Isto pode ser feito seguindo as configurações apresentada na Figura 95.
em que Wprof indica o perfil de velocidade de entrada, Wmax “ 5 m{s é a velocidade máxima do
fluido em escoamento, 0 ď r ď 20 mm representa o raio do tubo e Rmax “ 20 mm indica o valor
máximo assumido para r, t é o tempo de simulação e tempo é igual a 1 s para manter a consistência
dimensional. ˇ ˇ2
ˇ r ˇ
Pprof prq “ Pmax ˇˇ1 ´ ˇ (4.2)
Rmax ˇ
69
em que Pprof indica o perfil de pressão de saída, Pmax “ 0.05 P a é a pressão máxima do fluido
em escoamento, 0 ď r ď 20 mm representa o raio do tubo e Rmax “ 20 mm indica o valor
máximo assumido para r. As Figuras 104 e 105 ilustram a variação do perfil de entrada e saída,
respectivamente.
Velocidade de entrada - (m/s)
5
4
3
2
1
0
0
0.005
Ra
io
0.01
do
0.5
tub
0.4
o-
0.015 0.3
(m
0.2 )
)
(seg
0.1 po -
Tem
0.02 0
0.05
0.04
Pressão de saída - (Pa)
0.03
0.02
0.01
0
0 0.005 0.01 0.015 0.02
Raio do tubo - (m)
Para configurar o tipo de análise como transiente deve-se clicar em “Analysis Type”, como
indicado na Figura 99.
Uma nova guia será exibida em que o usuário deverá alterar a opção “Analysis Type” de
Steady State para Transient. E as configurações de Max. Timesteps e Time Steps devem seguir às
apresentadas na Figura 100.
Após configurar os Time Steps, o usuário deve criar as Expressions Pmax, Pprof, Rmax,
Wmax, Wprof, densityw, tempo, cujos valores e unidades são exibidos na Figura 101.
Com as expressões definidas para as condições de contorno, é necessário linkar tais expressões
com as regiões inlet e outle. Para isso deve-se dar um duplo clique sobre a o menu “inlet” para
setar a expressão Wprof como condição de entrada. Veja a Figura 102.
Após realizar as configurações pode-se executar o Solver do CFX para obtenção da solução
73
numérica do problema. A Figura abaixo ilustra o resultado final da simulação tipo transiente para
variação da velocidade no domínio, utilizando CFX CEL Expressions.
Variação da velocidade
em que Wprof indica o perfil de velocidade de entrada, Wmax “ 5 m{s é a velocidade máxima do
fluido em escoamento, 0 ď r ď 20 mm representa o raio do tubo e Rmax “ 20 mm indica o valor
máximo assumido para r, t é o tempo de simulação e tempo é igual a 1 s para manter a consistência
dimensional. ˇ ˇ2
ˇ r ˇ
Pprof prq “ Pmax ˇˇ1 ´ ˇ (4.4)
Rmax ˇ
em que Pprof indica o perfil de pressão de saída, Pmax “ 0.05 P a é a pressão máxima do fluido
em escoamento, 0 ď r ď 20 mm representa o raio do tubo e Rmax “ 20 mm indica o valor
máximo assumido para r. As Figuras 104 e 105 ilustram a variação do perfil de entrada e saída,
respectivamente.
74
0.005
Ra
io
0.01
do
0.5
tub
0.4
o-
0.015 0.3
(m
seg)
0.2
)
0.1 po-(
Tem
0.02 0
0.05
0.04
Pressão de saída - (Pa)
0.03
0.02
0.01
0
0 0.005 0.01 0.015 0.02
Raio do tubo - (m)
contorno. Desta forma, deve-se criar os arquivos que contém os códigos fonte para a condição de
entrada e para a condição de saída. Os códigos fonte são apresentados como segue.
1 # include " cfx5ext . h "
2 dllexport ( i n l e t _ v e l o c i t y _ t r a n s i e n t )
3 SUBROUTINE I N L E T _ V E L O C I T Y _ T R A N S I E N T (
4 & NLOC , NRET , NARG , RET , ARGS , CRESLT , CZ , DZ , IZ , LZ , RZ )
5 INTEGER NLOC , NARG , NRETC
6 CHARACTER CRESLT *(*)
7 REAL ARGS ( NLOC , NARG ) , RET ( NLOC , NRET ) , PI
8 INTEGER IZ (*)
9 CHARACTER CZ (*)*(1)
10 DOUBLE PRECISION DZ (*)
11 LOGICAL LZ (*)
12 REAL RZ (*)
13 INTEGER ILOC
14 REAL EXPONENT
15 REAL VALUE
16 C CALL SET_A_0 ( RET , NLOC * NRET )
17 PI = 4.0* ATAN (1.0)
18 EXPONENT = 1.0/7.0
19 C
20 DO ILOC = 1 , NLOC
21 VALUE = 1.0 - ARGS ( ILOC ,2)/ ARGS ( ILOC ,3)
22 IF ( VALUE . LT . 0.0) VALUE = 0.0
23 RET ( ILOC ,1) = ( ARGS ( ILOC ,1)* VALUE ** EXPONENT )* ABS ( SIN (10*3.1415*
24 & ARGS ( ILOC ,4)))
25 END DO
26 C
27 CRESLT = ’ GOOD ’
28 C
29 C =======================================================================
30 END
Em seguida o código fonte deve ser compilado de forma análoga ao apresentado na seção 1.5.
As Figuras 106 e 107 ilustram o resultado da compilação do código Fortran.
Figura 106: Configuração do compilador Intel Fortran para utilização com CFX.
É importante observar as mensagens apresentadas após a execução dos comandos, que devem
ser iguais às ilustradas nas Figuras 106, 107 e 108.
Em seguida analogamente ao realizado para o caso estacionário, deve-se definir uma User
Routine que aponta para a sub-rotina inlet_velocity_transient.F. E após, uma User Function
que aponta para a User Routine previamente criada. Para isso o usuário deve seguir os passos
listados abaixo:
1. Na barra de ferramentas principal, clique com o botão direito do mouse em User Routines.
2. Defina o nome da rotina como Wprof_transient e clique em ’OK’. Em seguida irá aparecer
ao usuário os detalhes da User Routine.
6. Defina o Library Path para o diretório onde o comando cfx5mkext foi executado
(geralmente o diretório de trabalho atual). Por exemplo, em Windows:
C:/TUTORIAIS_LEARN/ButterflyValve/pipe_valve. Isso pode ser feito rapidamente,
clicando em Procurar (ao lado do Library Path), navegando até a pasta apropriada (não é
necessário se o usuário selecionar o diretório de trabalho), e clicando em OK (em Select
Directory).
7. Clique em OK para finalizar. A Figura 109 ilustra como deve ficar a configuração da User
Routine.
78
Em seguida o usuário deverá criar uma User Function para linkar o Solver com o código em
Fortran declarado pela User Routine. Para isso o usuário deve seguir os passos listados abaixo:
2. Seleciona o nome da User Function como WprofTrans, e clique em OK. Os detalhes de User
Function serão exibidos. Notque que não deve ser utilizado o mesmo nome para a User Routine
e para a User Function.
5. Digite a lista de argumentos a ser passada para o código Fortran como [m s-̂1], [m], [m], [s].
Estas são as unidades dos três argumentos de entrada: Wmax, r, Rmax e t.
6. Insira a unidade do argumento de retorno em Result Units como [m s-̂1], que é a unidade do
perfil de velocidade calculado pelo código Fortran.
7. Clique em OK para completar a especificação da User Function. A Figura 110 ilustra como
deve ficar a configuração da User Routine.
79
Após definir a User Function e a User Routine, é necessário definí-la como condição de entrada
e como condição inicial. Isto pode ser feito seguindo as configurações apresentadas nas Figuras 111
e 112.
Deve-se criar outra User Function e User Routine para representar a condição de contorno de
saída, seguindo os procedimentos abaixo:
1. Na barra de ferramentas principal, clique com o botão direito do mouse em User Routines.
2. Defina o nome da rotina como Pprof_transient e clique em ’OK’. Em seguida irá aparecer
ao usuário os detalhes da User Routine.
6. Defina o Library Path para o diretório onde o comando cfx5mkext foi executado
(geralmente o diretório de trabalho atual). Por exemplo, em Windows:
C:/TUTORIAIS_LEARN/ButterflyValve/pipe_valve. Isso pode ser feito rapidamente,
clicando em Procurar (ao lado do Library Path), navegando até a pasta apropriada (não é
necessário se o usuário selecionar o diretório de trabalho), e clicando em OK (em Select
Directory).
7. Clique em OK para finalizar. A Figura 113 ilustra como deve ficar a configuração da User
Routine.
81
Em seguida o usuário deverá criar uma User Function para linkar o Solver com o código em
Fortran declarado pela User Routine. Para isso o usuário deve seguir os passos listados abaixo:
2. Seleciona o nome da User Function como PprofTrans, e clique em OK. Os detalhes de User
Function serão exibidos. Notque que não deve ser utilizado o mesmo nome para a User Routine
e para a User Function.
5. Digite a lista de argumentos a ser passada para o código Fortran como [Pa], [m], [m]. Estas
são as unidades dos três argumentos de entrada: Pmax, r, Rmax.
6. Insira a unidade do argumento de retorno em Result Units como [Pa], que é a unidade do
perfil de pressão calculado pelo código Fortran.
7. Clique em OK para completar a especificação da User Function. A Figura 114 ilustra como
deve ficar a configuração da User Routine.
82
Após definir a User Function e a User Routine, é necessário definí-la como condição de saída.
Isto pode ser feito seguindo as configurações apresentadas nas Figuras 115.
Após realizar as configurações pode-se executar o Solver do CFX para obtenção da solução
83
numérica do problema. A animação abaixo ilustra o resultado final da simulação tipo transiente
para variação da velocidade no domínio, utilizando CFX CEL Functions.
Variação da velocidade