Preview only show first 10 pages with watermark. For full document please download

Soares, Rf - Volumes Finitos - Transferência De Calor - Advecção Numérica Pura

Trabalho da disciplina de Volumes Finitos, considerando simulação de escoamento 2D sob advecção numérica pura.

   EMBED


Share

Transcript

UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Engenharia Mecânica Programa de Pós-Graduação em Engenharia Mecânica VOLUMES FINITOS EM TRANSFERÊNCIA DE CALOR E ESCOAMENTO DE FLUIDOS Escoamento com Advecção Numérica Pura: Código Bidimensional Renan Francisco Soares Prof. Dr. Francisco José de Souza Uberlândia/MG 2013 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza SUMÁRIO 1. PROBLEMA DE TRANFERÊNCIA DE CALOR ................................................... 5 1.1 MODELO FÍSICO ......................................................................................................... 5 1.2 MODELO MATEMÁTICO ........................................................................................... 6 1.2.1 Modelo Centrado (2nd Order) ........................................................................................ 7 1.2.2 Modelo 1st Order Upwind .............................................................................................. 8 1.2.3 Modelo 2nd Order Upwind ............................................................................................ 9 2. CÓDIGO PARA O PROBLEMA DE ADVECÇÃO NUMÉRICA PURA ........... 10 2.1 PROPRIEDADES FÍSICAS PADRÕES E CRITÉRIOS DE SOLUÇÃO .................. 10 2.2 ALTERAÇÃO DAS PROPRIEDADES FÍSICAS ...................................................... 11 2.3 GERAÇÃO DAS MATRIZES DE VELOCIDADES ................................................. 13 2.4 MÉTODOS DE DISCRETIZAÇÃO ............................................................................ 14 2.5 PROCESSO DE SOLUÇÃO ITERATIVO ................................................................. 16 2.6 REPORTE DO RESULTADO ..................................................................................... 19 3. SIMULAÇÃO NUMÉRICA ...................................................................................... 20 3.1 COEFICIENTE DE SUB/SOBRERELAXAÇÃO ÔMEGA ....................................... 20 3.2 CASOS E RESULTADOS ........................................................................................... 20 3.2.1 Resultados – Centrado 2nd Order ................................................................................. 21 3.2.2 Resultados – Modelos Upwind (1st e 2nd Order) ........................................................ 22 4. CONCLUSÃO............................................................................................................. 29 APÊNDICE – CÓDIGO COMPLETO ................................................................................ 30 Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 2 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza LISTA DE FIGURAS Figura 1 – Representação do problema com seu resultado esperado. ........................................ 5 Figura 2 - Representação da modelagem dos fluxos mássicos presentes no volume de controle P. ................................................................................................................................................. 7 Figura 3 - Esquema de volume de controle com temperatura TP e seus vizinhos, ..................... 8 Figura 4 - Esquema de volume de controle com temperatura TP e seus vizinhos, ..................... 9 Figura 5 – Resultado após o 1º passo iterativo: padrão “tabuleiro de xadrez”. ........................ 21 Figura 6 – Resultado após o 2º passo iterativo: padrão “tabuleiro de xadrez”. ........................ 21 Figura 7 – 1st Order Upwind: malha numérica de 5x5 divisões (25 volumes de controle). .... 22 Figura 8 – 2nd Order Upwind: malha numérica de 5x5 divisões (25 volumes de controle). ... 22 Figura 9 – 1st Order Upwind: malha numérica de 10x10 divisões (100 volumes de controle). .................................................................................................................................................. 23 Figura 10 – 2nd Order Upwind: malha numérica de 10x10 divisões (100 volumes de controle). .................................................................................................................................................. 23 Figura 11 – 1st Order Upwind: malha numérica de 20x20 divisões (400 volumes de controle). .................................................................................................................................................. 24 Figura 12 – 2nd Order Upwind: malha numérica de 20x20 divisões (400 volumes de controle). .................................................................................................................................................. 24 Figura 13 – 1st Order Upwind: malha numérica de 50x50 divisões (2500 volumes de controle). .................................................................................................................................................. 25 Figura 14 – 2nd Order Upwind: malha numérica de 50x50 divisões (2500 volumes de controle). .................................................................................................................................................. 25 Figura 15 – 1st Order Upwind: malha numérica de 100x100 divisões (10000 volumes de controle). ................................................................................................................................... 26 Figura 16 – 2nd Order Upwind: malha numérica de 100x100 divisões (10000 volumes de controle). ................................................................................................................................... 26 Figura 17 – 1st Order Upwind: malha numérica de 200x200 divisões (40000 volumes de controle). ................................................................................................................................... 27 Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 3 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza Figura 18 – 2nd Order Upwind: malha numérica de 200x200 divisões (40000 volumes de controle). ................................................................................................................................... 27 Figura 19 – 1st Order Upwind: malha numérica de 500x500 divisões (250000 volumes de controle). ................................................................................................................................... 28 Figura 20 – 2nd Order Upwind: malha numérica de 500x500 divisões (250000 volumes de controle). ................................................................................................................................... 28 Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 4 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza 1. PROBLEMA DE TRANFERÊNCIA DE CALOR 1.1 MODELO FÍSICO Neste trabalho, analisa-se o escoamento em um domínio quadrado. As faces inferior e esquerda são tomadas como entrada do fluido e, assim, as componentes de velocidade u e v adotam valores positivos. A representação da geometria, assim como as condições de contorno nas faces inferior e esquerda, apresentam-se na figura abaixo. TE = 100 °C L U∞ H v u TI = 50 °C Figura 1 – Representação do problema com seu resultado esperado. Para caso proposto, suas dimensões e parâmetros estão presentes na tabela abaixo: Tabela 1 - Parâmetros do problema proposto. Componente de velocidade Eixo x u 2 m/s Eixo y v 2 m/s Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 5 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza Condição de Contorno Temperatura imposta: Face Esquerda TE 100 ºC Temperatura imposta: Face Inferior TI 50 ºC Geometria 1.2 Comprimento H 1 m Largura L 1 m MODELO MATEMÁTICO Uma vez levantada a hipótese de regime permanente, assim como desprezando os termos de geração e o difuso-advectivo, tem-se o Teorema de Transporte de Reynols, para φ=T: 𝜕 𝜕 (𝑢𝑇) + (𝑢𝑇) = 0 𝜕𝑥 𝜕𝑥 Assim, o problema proposto é modelado em três diferentes formas de discretização de suas propriedades:  Modelo Centrado (2nd order).  Modelo 1st Order Upwind.  Modelo 2nd Order Upwind. Apesar de suas diferentes metodologias, estes três modelos utilizam a mesma forma de cálculo da das velocidades nas faces: 𝑢𝑒 = 𝑢𝐸 + 𝑢𝑃 2 Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 6 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza onde e representa a interface entre os volumes E e P. A figura abaixo representa o sentido positivo dos fluxos, assim como o posicionamento do volume de controle P em relação ao seus vizinhos. °N Vn Uw °P W° °E Ue Vs °S Figura 2 - Representação da modelagem dos fluxos mássicos presentes no volume de controle P. Por último, mas não menos importante, destaca-se a presença da constante ω. Esta é utilizada para efeito de sub/sobrerelaxação da temperatura ao longo do processo iterativo. 1.2.1 Modelo Centrado (2nd Order) Partindo da integração no volume de controle da equação fundamental deste problema, encontra-se a equação: 1 ∆𝑥 ∆𝑦 ∆𝑥 ∆𝑦 𝑇𝑃 . [∆𝑥. (𝑣𝑠 − 𝑣𝑛 ) + ∆𝑦. (𝑢𝑤 − 𝑢𝑒 )] = 𝑇𝑁 . (𝑣𝑛 ). + 𝑇𝐸 . (𝑢𝑒 ). − 𝑇𝑆 . (𝑢𝑠 ). − 𝑇𝑊 . (𝑢𝑤 ). 2 2 2 2 2 𝑇𝑃 𝑡+1 = 𝜔. { [𝐴𝑛. 𝑇𝑁 + 𝐴𝑠. 𝑇𝑆 + 𝐴𝑒. 𝑇𝐸 + 𝐴𝑤. 𝑇𝑊 ] } + (1 − 𝜔). 𝑇𝑃 𝑡 𝐴𝑝 Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 7 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza Onde: 𝐴𝑛 = (𝑣𝑛 ). ∆𝑥 2 ; 𝐴𝑒 = (𝑢𝑒 ). ∆𝑦 2 ; 𝐴𝑠 = −(𝑢𝑠 ). ∆𝑥 2 ; 𝐴𝑤 = −(𝑢𝑤 ). ∆𝑦 2 ; 1 𝐴𝑝 = [∆𝑥. (𝑣𝑠 − 𝑣𝑛 ) + ∆𝑦. (𝑢𝑤 − 𝑢𝑒 )] 2 1.2.2 Modelo 1st Order Upwind Para esta modelagem, a propriedade φ é tratada em função do fluxo mássico m na face de interesse. Assim: φ𝑒 = { φ𝑃 , φ𝐸 , 𝑝𝑎𝑟𝑎 M𝑒 > 0 𝑝𝑎𝑟𝑎 M𝑒 ≤ 0 TN TW TP TE TS Figura 3 - Esquema de volume de controle com temperatura TP e seus vizinhos, pertinentes ao modelo 1st Order Upwind. Logo, tem-se a seguinte discretização: 1 ∆𝑥 ∆𝑦 𝑇𝑃 . (𝑣𝑛 . ∆𝑥 + 𝑢𝑒 . ∆𝑦) = 𝑇𝑆 . (𝑣𝑠 ). + 𝑇𝑊 . (𝑢𝑤 ). 2 2 2 [𝐴𝑤. 𝑇𝑊 + 𝐴𝑠. 𝑇𝑆 ] 𝑇𝑃 𝑡+1 = 𝜔. { } + (1 − 𝜔). 𝑇𝑃 𝑡 𝐴𝑝 Onde: 𝐴𝑤 = (𝑢𝑤 ). ∆𝑦 ∆𝑥 ; 𝐴𝑠 = (𝑣𝑠 ). ; 2 2 1 𝐴𝑝 = (𝑣𝑛 . ∆𝑥 + 𝑢𝑒 . ∆𝑦) 2 Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 8 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza 1.2.3 Modelo 2nd Order Upwind Nesta modelagem Upwind, de segunda ordem, adota-se a propriedade φ também em função do fluxo mássico m na face pertinente. Portanto, tem-se a propriedade como: 3⁄ φ − 1⁄ φ , 𝑃 2 𝑊 φ𝑒 = { 2 3⁄ φ − 1⁄ φ , 2 𝐸 2 𝐸𝐸 𝑝𝑎𝑟𝑎 M𝑒 > 0 𝑝𝑎𝑟𝑎 M𝑒 ≤ 0 TNN TN TWW TW TP TE TEE TS TSS Figura 4 - Esquema de volume de controle com temperatura TP e seus vizinhos, pertinentes ao modelo 2nd Order Upwind. Consequentemente, tem-se a discretização: 𝑇𝑃 . 3(𝑣𝑛 . ∆𝑦 + 𝑢𝑒 . ∆𝑦) = 𝑇𝑆 . (𝑣𝑛 + 3𝑣𝑠 ). ∆𝑥 + 𝑇𝑊 . (𝑢𝑒 + 3𝑢𝑤 ). ∆𝑦 − 𝑇𝑆𝑆 . (𝑣𝑠 ). ∆𝑥 − 𝑇𝑊𝑊 . (𝑢𝑤 ). ∆𝑦 𝑇𝑃 𝑡+1 = 𝜔. { [𝐴𝑤. 𝑇𝑊 + 𝐴𝑠𝑠. 𝑇𝑆𝑆 + 𝑇𝑊𝑊 . (𝑢𝑤 ). ∆𝑦] } + (1 − 𝜔). 𝑇𝑃 𝑡 𝐴𝑝 Onde: ∆𝑦 ∆𝑦 ; 𝐴𝑤𝑤 = −(𝑢𝑤 ). ; 2 2 ∆𝑥 ∆𝑥 𝐴𝑠 = (𝑣𝑛 + 3𝑣𝑠 ). ; 𝐴𝑠𝑠 = −(𝑣𝑠 ). ; 2 2 3 𝐴𝑝 = (𝑣𝑛 . ∆𝑦 + 𝑢𝑒 . ∆𝑦) 2 𝐴𝑤 = (𝑢𝑒 + 3𝑢𝑤 ). Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 9 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza 2. CÓDIGO PARA O PROBLEMA DE ADVECÇÃO NUMÉRICA PURA 2.1 PROPRIEDADES FÍSICAS PADRÕES E CRITÉRIOS DE SOLUÇÃO O código inicia-se definindo as propriedades físicas padrões. A primeira interação com o usuário é quando questionado qual o valor da constante ômega para efeito de sub/sobrerelaxação do processo iterativo. Neste caso, aconselha-se valores até 0.9 para melhor performance. A segunda pergunta é a definição do valor para o resíduo, utilizado como critério de convergência. --------------------------------------------------------------------------clear all; close all; clc; disp('--------------------------------------------------------------'); disp('MFlab - Programa de Pós Graduação em Engenharia Mecânica - UFU') disp(' Volumes Finitos para Escoamentos - Dez 2013') disp(' Renan Francisco Soares - Mestrando') disp('--------------------------------------------------------------'); disp(' Transferência de Calor 2D - Método dos Volumes Finitos'); disp(' Escoamento com Advecção Numérica Pura'); disp('-------------------------------------------------------------');disp(' ');disp(' '); %-------------------------------------------% % Coordenadas cartesianas para o problema: % % % % (i,j)=(y,x) i corresponde à y (1:n) % % j corresponde à x (1:m) % % % % z---» x (1,1) (1,2) (1,3) ... % % | (2,1) (2,2) (2,3) ... % % y (3,1) (3,2) (3,3) ... % % ... ... ... ... % %-------------------------------------------% T_left U L n = 100; = 2; = 1; = 10*5; T_down V H m = 50; Ti = 2; = 1; = 10*5; = 0; omega = input('Por favor, informe a constante de sub/sobrerelaxação (omega) [<= 0.9]: '); disp(' '); res_criterio = input('Para convergência do modelo, qual o valor aceitável para Resíduo? '); disp(' '); ----------------------------------------------------------------------------------------------------------------------------------------------------- Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 10 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza 2.2 ALTERAÇÃO DAS PROPRIEDADES FÍSICAS A partir deste momento, apresentam-se ao usuário as propriedades físicas do problema e questiona-se o desejo de alterar esta configuração. Como resposta codificada, o valor um (1) corresponde a resposta positiva (Sim) e o valor dois (2) a resposta negativa (Não). Ainda, para o caso de resposta inválida, a questão será refeita. Após a ratificação (ou retificação) dos parâmetros do problema, deve-se escolher o método de discretização para o modelo matemático: Centrado (2nd order), 1st order Upwind ou 2nd order Upwind. Uma vez finalizado a inserção de dados pelo usuário, um contador de tempo é iniciado. --------------------------------------------------------------------------% Parâmetros do problema disp('Parâmetros do problema:'); disp(' '); disp('T_left = 100 [C]'); disp('T_down = 20 [C]'); disp('Ti = 0 [C]'); disp('U = 2 [m/s]'); disp('V = 2 [m/s]'); disp('L = 1 [m]'); disp('H = 1 [m]'); disp('Volumes = 50x50 (Eixo x * Eixo y)');disp(' ');disp(' '); question = input('Deseja alterar estes valores? [1 - Sim; 2 - Não] disp(' '); while question ~= 1 && question ~= 2 disp('Resposta não válida. Por favor, responda novamente:'); question = input('Deseja alterar os valores? [1 - Sim; 2 - Não] disp(' '); end if question T_left '); T_down '); Ti '); U '); : '); : '); == 1 = input('Temperatura na face esquerda (T_left) [C]...........: = input('Temperatura na face inferior (T_down) [C]...........: = input('Temperatura inicial (Ti) [C]........................: = input('Componente de velocidade no Eixo X (U) [m/s]........: Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 11 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza V = input('Componente de velocidade no Eixo Y (V) [m/s]........: L = input('Tamanho do domínio no Eixo X (L) [m]................: H = input('Tamanho do domínio no Eixo Y (H) [m]................: m = input('Quantidade de elementos pertencente ao Eixo X (m)...: '); '); '); '); n = input('Quantidade de elementos pertencente ao Eixo Y (n)...: ');disp(' '); end % Escolha do Método de Discretização method = input('Qual o método de discretização? [0 - CDS; 1 - 1st UPw; 2 2nd UPw] : '); while method ~= 0 && method ~= 1 && method ~= 2 disp('Resposta não válida. Por favor, responda novamente:'); method = input('Qual o método de discretização? [0 - CDS; 1 - 1st UPw; 2 - 2nd UPw] : '); disp(' '); end tic; % Início do contador de tempo ----------------------------------------------------------------------------------------------------------------------------------------------------- Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 12 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza 2.3 GERAÇÃO DAS MATRIZES DE VELOCIDADES Neste parte do código, calcula-se as dimensões dos volumes de controle, os quais são uniformes para todo o domínio, além de duas fileiras adicionais de volumes de controle sobre as fronteiras. As matrizes das velocidades são calculados, representando as velocidades em todas das faces de todos os volumes de controle do domínio. --------------------------------------------------------------------------% Elementos da Malha Numérica dx = L/m; dy = H/n; % Comprimento dx dos volumes de controle em x [m] % Comprimento dy dos volumes de controle em y [m] m = m + 4; n = n + 4; % Acréscimo de elementos "Fantasmas" nas extremidades em x % Acréscimo de elementos "Fantasmas" nas extremidades em y % Condições iniciais de Ti, u, v e coeficientes AS, AN, AW, AE e AP. T(1:n,1:m) u(1:n,1:m) v(1:n,1:m) AW(1:n,1:m) AE(1:n,1:m) AS(1:n,1:m) AN(1:n,1:m) AP(1:n,1:m) = Ti; = U; = V; = 0; = 0; = 0; = 0; = 0; % Fluxo nas Faces do Volume de Controle for i=2:n-1 for j=2:m-1 vn(i,j) vs(i,j) ue(i,j) uw(i,j) = = = = (v(i-1,j) (v(i+1,j) (u(i,j+1) (u(i,j-1) + + + + v(i,j))/2; v(i,j))/2; u(i,j))/2; u(i,j))/2; end end ----------------------------------------------------------------------------------------------------------------------------------------------------- Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 13 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza 2.4 MÉTODOS DE DISCRETIZAÇÃO Seguindo as modelagens matemáticas supraexpostas, faz-se necessidade dos coeficientes associados as temperaturas. Estes coeficientes podem ser chamados de série A (An, Ann, As, Ass, Aw, Aww, Ae e Aee), onde são calculados nesta etapa. Contudo, cada forma de modelagem (Centrado 2nd Order, 1st Order Upwind e 2st Order Upwind) possui diferentes coeficientes da série A. --------------------------------------------------------------------------% Métodos de Discretização % Centrado - 2nd Order if method==0 for i=2:n-1 for j=2:m-1 AE(i,j) AW(i,j) AN(i,j) AS(i,j) AP(i,j) = ue(i,j)*dy/2; = -uw(i,j)*dy/2; = vn(i,j)*dx/2; = -vs(i,j)*dx/2; = -(AN(i,j) + AS(i,j) + AE(i,j) + AW(i,j)); end end end % Upwind - 1st Order if method==1 for i=2:n-1 for j=2:m-1 AW(i,j) = uw(i,j)*dy/2; AS(i,j) = vs(i,j)*dx/2; AP(i,j) = u(i,j)*dy/2 + v(i,j-1)*dx/2; end end end % Upwind - 2nd Order if method==2 for i=2:n-1 for j=2:m-1 AW(i,j) = (3*uw(i,j) + ue(i,j) )*dy; AWW(i,j) = -uw(i,j)*dy; Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 14 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza AS(i,j) = (3*vs(i,j) + vn(i,j) )*dx; ASS(i,j) = -vs(i,j)*dx; AP(i,j) = 3*vn(i,j)*dx + 3*ue(i,j)*dy; end end end ----------------------------------------------------------------------------------------------------------------------------------------------------- Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 15 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza 2.5 PROCESSO DE SOLUÇÃO ITERATIVO Nesta etapa, inicia-se o processo iterativo de solução propriamente dito. Ainda, como último preparativo, cria-se o termo res_AP, possuindo a finalidade de normalizar o resíduo das iterações. Dentro do primeiro subconjunto “Núcleo do Processo de Solução”, estão presentes as três formas de discretização. No segundo subconjunto “Interface com Usuário”, é plotado ao usuário mensagem em texto e os gráficos simultâneos ao processo de solução. --------------------------------------------------------------------------% Modelo de Solução Iterativo res = inf; iter = 1; iter_max = 1000; res_AP = sum(sum(AP,1),2) % % % % Valor inicial de resíduo Contador de iterações Número máximo de iterações Soma dos coeficientes da matriz AP. while (res > res_criterio) && (iter < iter_max) sum_erro = 0; Told = T; T(n,:) = T_down; T(n-1,:) = T_down; T(n-2,:) = T_down; T(:,1) = T_left; T(:,2) = T_left; T(:,3) = T_left; %---------------------------------------------------------------------% start 1.---------- Núcleo do Processo de Solução -------------------% Centrado - 2nd Order if method==0 for i=2:n-1 for j=2:m-1 orange_truck= AN(i,j)*T(i-1,j) - AS(i,j)*T(i+1,j) + AE(i,j)*T(i,j+1) - AW(i,j)*T(i,j-1); T(i,j) = ( omega*orange_truck + (1-omega)*T(i,j) )/(AP(i,j)); sum_erro = sum_erro + abs( T(i,j) - Told(i,j) ); end end end Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 16 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza % Upwind - 1st Order if method==1 for i=3:n-2 for j=3:m-2 orange_truck= AS(i,j)*T(i+1,j) + AW(i,j)*T(i,j-1); T(i,j) = omega*orange_truck/(AP(i,j)) + (1-omega)*T(i,j); sum_erro = sum_erro + abs( T(i,j) - Told(i,j) ); end end end % Upwind - 2st Order if method==2 for i=3:n-2 for j=3:m-2 orange_truck= AS(i,j)*T(i+1,j) + ASS(i,j)*T(i+2,j) + AW(i,j)*T(i,j-1) + AWW(i,j)*T(i,j-2); T(i,j) = omega*orange_truck/(AP(i,j)) + (1-omega)*T(i,j); sum_erro = sum_erro + abs( T(i,j) - Told(i,j) ); end end end % end 1.--------------------------------------------------------------- % Histórico do Resíduo % Resíduo: somatória da diferença dos elementos entre os passos (t) e (t+1), normalizado dividindo pela somatória dos termos da matriz Ap. res = sum_erro / res_AP; Residuo(iter) = res; iter = iter + 1; eixoiter = 1:iter-1; %---------------------------------------------------------------------% start 2.------------- Interface com Usuário ------------------------clc; disp('--------------------------------------------------------------'); disp('MFlab - Programa de Pós Graduação em Engenharia Mecânica - UFU') disp(' Volumes Finitos para Escoamentos - Dez 2013') disp(' Renan Francisco Soares - Mestrando') disp('--------------------------------------------------------------'); disp(' Transferência de Calor 2D - Método dos Volumes Finitos'); disp(' Escoamento com Advecção Numérica Pura'); disp('-------------------------------------------------------------');disp(' ');disp(' '); Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 17 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza disp('---------------------------------------------------'); disp('O modelo iterativo está sendo executado.'); disp('---------------------------------------------------');disp(' '); disp('Figura 1: Resultado instantâneo das iterações.'); disp('Figura 2: Histórico do Resíduo de Temperatura.');disp(' '); disp('O resíduo atual é de: '); res % Gráficos instantâneos figure(1) imagesc([3 m-2],[3 n-2],T(3:n-2,3:m-2)); title('Distribuição de Temperatura 2D') xlabel('Volumes - Eixo x') ylabel('Volumes - Eixo y') colorbar('SouthOutside') figure(2) plot(eixoiter, Residuo,'go') semilogy (Residuo,'go') grid on title('Resíduo (Temperatura)') xlabel('Iterações') ylabel('Resíduo') % end 2.--------------------------------------------------------------end ----------------------------------------------------------------------------------------------------------------------------------------------------- Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 18 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza 2.6 REPORTE DO RESULTADO Concluindo o processo, a resposta é transmitida ao usuário. Esta consiste-se no processo de discretização utilizado, a quantidade de iterações realizadas e o tempo decorrido no processo de solução. --------------------------------------------------------------------------% Mensagem de Resultado t = toc; disp('---------------------------------------------------'); disp('Processo concluído!'); disp('---------------------------------------------------');disp(' '); disp('---------------------------------------------------');disp(' '); if method == 0 fprintf('Método de discretização ..: Centrado - 2nd Order \n') elseif method == 1 fprintf('Método de discretização ..: Upwind - 1st Order \n') else fprintf('Método de discretização ..: Upwind - 2nd Order \n') end fprintf('Fator de relaxação .......: %.1f \n', omega) fprintf('Número de iterações ......: %d \n', iter-1) fprintf('Duração da solução .......: %.1f s\n', t) disp('---------------------------------------------------'); ----------------------------------------------------------------------------------------------------------------------------------------------------- Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 19 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza 3. SIMULAÇÃO NUMÉRICA 3.1 COEFICIENTE DE SUB/SOBRERELAXAÇÃO ÔMEGA Este coeficiente pode ser usado tanto para o propósito de minimizar a velocidade de avanço das informações dentro do domínio em estudo (0 < Ω < 1), ou para maximizar tal avanço (Ω > 1). A vantagem de minimizar a velocidade é prover ao processo iterativo maior estabilidade; entretanto, considerável custo computacional é faz-se necessário. Assim, para fins de performance de solução, convém adotar valores que maximizam a velocidade de propagação das informações; contudo, instabilidades aumentam ao passo que incrementa-se o valor da constante. Entretanto, embasando-se no estudo pseudoempírico deste coeficiente, as soluções providas com Ω > 0,9 adotam caráter divergente de solução. Portanto, conclui-se que o valor Ω = 0,9 é o valor máximo aceitável pelo sistema para manter seu caráter convergente, e assim, possibilitando obter resultados. 3.2 CASOS E RESULTADOS De modo progressivo, sete tamanhos diferentes de malha numéricas diferentes são simulados para análise de resultados. Assim, com o intuito de obter volumes de controle quadrados, adota-se como padrão a razão de distribuição 1x1. A condição de volumes de controle quadrados para a malha numérica é somente desejável, ou seja, não é necessária. Pois o código está configurado para aceitar valores independentes para cada eixo cartesiano; contudo, aconselha-se que os elementos estejam o mais regular possível para melhor precisão numérica. Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 20 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza 3.2.1 Resultados – Centrado 2nd Order Devido à características de sua modelagem, o esquema Centrado 2nd Order tornase inviável para extração de resultados. A partir do segundo passo iterativo, o processo para o esquema centrado (CDS) não é altera seu resultado, tomando como valor 0 (zero) todas as temperaturas do domínio de interesse. Figura 5 – Resultado após o 1º passo iterativo: padrão “tabuleiro de xadrez”. Figura 6 – Resultado após o 2º passo iterativo: padrão “tabuleiro de xadrez”. Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 21 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza 3.2.2 Resultados – Modelos Upwind (1st e 2nd Order) Nas figuras subsequentes, compara-se os resultados da diferentes malhas, diferindo somente a ordem do esquema Upwind. O refinamento da malha inicia de um domínio de 5x5 até 500x500 volumes de controle. Figura 7 – 1st Order Upwind: malha numérica de 5x5 divisões (25 volumes de controle). Figura 8 – 2nd Order Upwind: malha numérica de 5x5 divisões (25 volumes de controle). Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 22 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza Figura 9 – 1st Order Upwind: malha numérica de 10x10 divisões (100 volumes de controle). Figura 10 – 2nd Order Upwind: malha numérica de 10x10 divisões (100 volumes de controle). Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 23 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza Figura 11 – 1st Order Upwind: malha numérica de 20x20 divisões (400 volumes de controle). Figura 12 – 2nd Order Upwind: malha numérica de 20x20 divisões (400 volumes de controle). Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 24 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza Figura 13 – 1st Order Upwind: malha numérica de 50x50 divisões (2500 volumes de controle). Figura 14 – 2nd Order Upwind: malha numérica de 50x50 divisões (2500 volumes de controle). Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 25 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza Figura 15 – 1st Order Upwind: malha numérica de 100x100 divisões (10000 volumes de controle). Figura 16 – 2nd Order Upwind: malha numérica de 100x100 divisões (10000 volumes de controle). Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 26 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza Figura 17 – 1st Order Upwind: malha numérica de 200x200 divisões (40000 volumes de controle). Figura 18 – 2nd Order Upwind: malha numérica de 200x200 divisões (40000 volumes de controle). Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 27 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza Figura 19 – 1st Order Upwind: malha numérica de 500x500 divisões (250000 volumes de controle). Figura 20 – 2nd Order Upwind: malha numérica de 500x500 divisões (250000 volumes de controle). Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 28 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza 4. CONCLUSÃO Sendo que, pela modelagem matemática, não deveria haver nenhum gradiente de temperatura (somente a mudança abrupta entre os dois níveis), os resultados levam a crer que o melhor modelo a ser utilizado é o esquema 2nd Order Upwind. Como exemplo, destaca-se os resultados da malha 100x100, sob 2nd Order Upwind, e da malha 500x500, sob 1st Order Upwind. Ambas apresentam praticamente os mesmos resultados; contudo, o modelo de primeira ordem utiliza de 25 vezes a quantidade de volumes de controle do seu equivalente em segunda ordem. Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 29 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza APÊNDICE – CÓDIGO COMPLETO Segue, na íntegra, o código desenvolvido para a classe do problema proposto. clear all; close all; clc; disp('--------------------------------------------------------------'); disp('MFlab - Programa de Pós Graduação em Engenharia Mecânica - UFU') disp(' Volumes Finitos para Escoamentos - Dez 2013') disp(' Renan Francisco Soares - Mestrando') disp('--------------------------------------------------------------'); disp(' Transferência de Calor 2D - Método dos Volumes Finitos'); disp(' Escoamento com Advecção Numérica Pura'); disp('-------------------------------------------------------------');disp(' '); %-------------------------------------------% % Coordenadas cartesianas para o problema: % % % % (i,j)=(y,x) i corresponde à y (1:n) % % j corresponde à x (1:m) % % % % z---» x (1,1) (1,2) (1,3) ... % % | (2,1) (2,2) (2,3) ... % % y (3,1) (3,2) (3,3) ... % % ... ... ... ... % %-------------------------------------------% T_left T_down Ti U V L H n m = 100; = 50; = 0; = 2; = 2; = 1; = 1; = 10*5; = n; omega = input('Por favor, informe a constante de sub/sobrerelaxação (omega) [<= 0.9]: '); disp(' '); res_criterio = input('Para convergência do modelo, qual o valor aceitável para Resíduo? '); disp(' '); % Parâmetros do problema disp('Parâmetros do problema:'); disp(' '); disp('T_left = 100 [C]'); disp('T_down = 20 [C]'); Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 30 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza disp('Ti disp('U disp('V disp('L disp('H disp('Volumes = = = = = = 0 2 2 1 1 50x50 [C]'); [m/s]'); [m/s]'); [m]'); [m]'); (Eixo x * Eixo y)');disp(' ');disp(' '); question = input('Deseja alterar estes valores? [1 - Sim; 2 - Não] disp(' '); while question ~= 1 && question ~= 2 disp('Resposta não válida. Por favor, responda novamente:'); question = input('Deseja alterar os valores? [1 - Sim; 2 - Não] disp(' '); end : '); : '); if question == 1 T_left = input('Temperatura na face esquerda (T_left) [C]...........: '); T_down = input('Temperatura na face inferior (T_down) [C]...........: '); Ti = input('Temperatura inicial (Ti) [C]........................: '); U = input('Componente de velocidade no Eixo X (U) [m/s]........: '); V = input('Componente de velocidade no Eixo Y (V) [m/s]........: '); L = input('Tamanho do domínio no Eixo X (L) [m]................: '); H = input('Tamanho do domínio no Eixo Y (H) [m]................: '); m = input('Quantidade de elementos pertencente ao Eixo X (m)...: '); n = input('Quantidade de elementos pertencente ao Eixo Y (n)...: ');disp(' '); end % Escolha do Método de Discretização method = input('Qual o método de discretização? [0 - CDS; 1 - 1st UPw; 2 2nd UPw] : '); while method ~= 0 && method ~= 1 && method ~= 2 disp('Resposta não válida. Por favor, responda novamente:'); method = input('Qual o método de discretização? [0 - CDS; 1 - 1st UPw; 2 - 2nd UPw] : '); disp(' '); end tic; % Início do contador de tempo % Elementos da Malha Numérica Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 31 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza dx = L/m; dy = H/n; % Comprimento dx dos volumes de controle em x [m] % Comprimento dy dos volumes de controle em y [m] m = m + 4; n = n + 4; % Acréscimo de elementos "Fantasmas" nas extremidades em x % Acréscimo de elementos "Fantasmas" nas extremidades em y % Condições iniciais de Ti, u, v e coeficientes AS, AN, AW, AE e AP. T(1:n,1:m) u(1:n,1:m) v(1:n,1:m) AW(1:n,1:m) AE(1:n,1:m) AS(1:n,1:m) AN(1:n,1:m) AP(1:n,1:m) = Ti; = U; = V; = 0; = 0; = 0; = 0; = 0; % Fluxo nas Faces do Volume de Controle for i=2:n-1 for j=2:m-1 vn(i,j) vs(i,j) ue(i,j) uw(i,j) = = = = (v(i-1,j) (v(i+1,j) (u(i,j+1) (u(i,j-1) + + + + v(i,j))/2; v(i,j))/2; u(i,j))/2; u(i,j))/2; end end % Método de Discretização % Centrado - 2nd Order if method==0 for i=2:n-1 for j=2:m-1 AE(i,j) AW(i,j) AN(i,j) AS(i,j) AP(i,j) = ue(i,j)*dy/2; = -uw(i,j)*dy/2; = vn(i,j)*dx/2; = -vs(i,j)*dx/2; = -(AN(i,j) + AS(i,j) + AE(i,j) + AW(i,j)); end end end Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 32 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza % Upwind - 1st Order if method==1 for i=2:n-1 for j=2:m-1 AW(i,j) = uw(i,j)*dy/2; AS(i,j) = vs(i,j)*dx/2; AP(i,j) = ue(i,j)*dy/2 + vn(i,j-1)*dx/2; end end end % Upwind - 2nd Order if method==2 for i=2:n-1 for j=2:m-1 AW(i,j) = (3*uw(i,j) + ue(i,j) )*dy; AWW(i,j) = -uw(i,j)*dy; AS(i,j) = (3*vs(i,j) + vn(i,j) )*dx; ASS(i,j) = -vs(i,j)*dx; AP(i,j) = 3*vn(i,j)*dx + 3*ue(i,j)*dy; end end end % Modelo de Solução Iterativo res = inf; % Valor inicial de resíduo iter = 1; % Contador de iterações iter_max = 10000; % Número máximo de iterações res_AP = sum(sum(AP,1),2) % Soma dos coeficientes da matriz AP. upw_new = AS(i,j)*T(i+1,j) + AW(i,j)*T(i,j-1); while (res > res_criterio) && (iter < iter_max) sum_erro = 0; Told = T; T(n,:) = T_down; T(n-1,:) = T_down; T(n-2,:) = T_down; T(:,1) = T_left; T(:,2) = T_left; T(:,3) = T_left; %---------------------------------------------------------------------% start 1.---------- Núcleo do Processo de Solução -------------------- Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 33 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza % Centrado - 2nd Order if method==0 for i=2:n-1 for j=2:m-1 orange_truck= AN(i,j)*T(i-1,j) + AS(i,j)*T(i+1,j) + AE(i,j)*T(i,j+1) + AW(i,j)*T(i,j-1); T(i,j) = ( omega*orange_truck + (1-omega)*T(i,j) )/(AP(i,j)); sum_erro = sum_erro + abs( T(i,j) - Told(i,j) ); end end end % Upwind - 1st Order if method==1 for i=3:n-2 for j=3:m-2 orange_truck = AS(i,j)*T(i+1,j) + AW(i,j)*T(i,j-1); T(i,j) = omega*orange_truck/(AP(i,j)) + (1-omega)*T(i,j); sum_erro = sum_erro + abs( T(i,j) - Told(i,j) ); end end end % Upwind - 2st Order if method==2 for i=3:n-2 for j=3:m-2 orange_truck = AS(i,j)*T(i+1,j) + ASS(i,j)*T(i+2,j) + AW(i,j)*T(i,j-1) + AWW(i,j)*T(i,j-2); T(i,j) = omega*orange_truck/(AP(i,j)) + (1-omega)*T(i,j); sum_erro = sum_erro + abs( T(i,j) - Told(i,j) ); end end end % end 1.--------------------------------------------------------------- % Histórico do Resíduo % Resíduo: somatória da diferença dos elementos entre os passos (t) e (t+1), normalizado dividindo pela somatória dos termos da matriz Ap. res = sum_erro / res_AP; Residuo(iter) = res; iter = iter + 1; eixoiter = 1:iter-1; Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 34 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza %---------------------------------------------------------------------% start 2.------------- Interface com Usuário ------------------------clc; disp('--------------------------------------------------------------'); disp('MFlab - Programa de Pós Graduação em Engenharia Mecânica - UFU') disp(' Volumes Finitos para Escoamentos - Dez 2013') disp(' Renan Francisco Soares - Mestrando') disp('--------------------------------------------------------------'); disp(' Transferência de Calor 2D - Método dos Volumes Finitos'); disp(' Escoamento com Advecção Numérica Pura'); disp('-------------------------------------------------------------');disp(' ');disp(' '); disp('---------------------------------------------------'); disp('O modelo iterativo está sendo executado.'); disp('---------------------------------------------------');disp(' '); disp('Figura 1: Resultado instantâneo das iterações.'); disp('Figura 2: Histórico do Resíduo de Temperatura.');disp(' '); disp('O resíduo atual é de: '); res % Gráficos instantâneos figure(1) imagesc([3 m-2],[3 n-2],T(3:n-2,3:m-2)); title('Distribuição de Temperatura 2D') xlabel('Volumes - Eixo x') ylabel('Volumes - Eixo y') colorbar('SouthOutside') figure(2) plot(eixoiter, Residuo,'go') semilogy (Residuo,'go') grid on title('Resíduo (Temperatura)') xlabel('Iterações') ylabel('Resíduo') % end 2.--------------------------------------------------------------end % Mensagem de Resultado t = toc; disp('---------------------------------------------------'); disp('Processo concluído!'); disp('---------------------------------------------------');disp(' '); disp('---------------------------------------------------');disp(' '); Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 35 Volumes Finitos em Transferência de Calor e Escoamento de Fluidos Prof. Dr. Francisco José de Souza if method == 0 fprintf('Método de discretização ..: Centrado - 2nd Order \n') elseif method == 1 fprintf('Método de discretização ..: Upwind - 1st Order \n') else fprintf('Método de discretização ..: Upwind - 2nd Order \n') end fprintf('Fator de relaxação .......: %.1f \n', omega) fprintf('Número de iterações ......: %d \n', iter-1) fprintf('Duração da solução .......: %.1f s\n', t) disp('---------------------------------------------------'); Renan Francisco Soares Mestrando em Engenharia Mecânica Transferência de Calor e Mecânica dos Fluidos – MFlab Página 36