Trabalho Computacional Transferência de Energia e Massa Dúvidas: [email protected] Ext:3430 Página: https://fenix.ist.utl.pt/homepage/ist146730 Guillaume Riflet, Metodologia de resolução Ler o enunciado do problema Conceber uma solução computacional Partir o problema e a solução em problemas mais pequenos (fazer um diagrama) Resolver as peças do problema, uma de cada vez Diagrama por blocos genérico dum problema computacional Input Processing / Factory/ Engine Output 1. Identificar o processamento / escrever o(s) algoritmo(s) 2. Identificar as variáveis necessárias para o processamento 3. Pensar na inicialização das variáveis e na selecção dos algoritmos 4. Pensar no input fornecido pelo utilizador para a resolução do problema e pensar na interface com o utilizador 5. Pensar no output da solução, na sua apresentação (tabelas e gráficos) Diagrama por blocos genérico dum problema computacional Input Single or continuous input? Processing / Factory/ Engine Single or continuous output? Output • • • Variables initialization 2 Algorithm selection User given input / User-Interface (UI) • • Processing variables Algorithms 1 • Product(s) • Tables • Graphics 3 Identificação dos Algoritmos Processing / Factory/ Engine • • Processing variables Algorithms Ci 1 2Ci Ci 1 Cit t Cit kCij 2 t x t t i C 1 enunciado t t t t t t 2 Ci 1 1 2 2 kt Ci 2 Ci 1 x x x t t t t t t t t t t 2 Ci 1 1 2 2 Ci 2 Ci 1 1 kt Ci x x x explicito implicito Algoritmos e Variáveis - esquema numérico explícito no tempo Processing / Factory/ Engine C t t i explicito t t t t t t 2 Ci 1 1 2 2 kt Ci 2 Ci 1 x x x t Dif x 2 Sk kt Algoritmos - esquema numérico implícito no tempo Processing / Factory/ Engine implícito t t t t t t t t t t 2 Ci 1 1 2 2 Ci 2 Ci 1 1 kt Ci x x x A B C Sistema matricial (n equações a n incógnitas) e tridiagonal. Resolução por eliminação de Gauss ou algoritmo semelhante. Neste caso usa-se o eficiente algoritmo de Thomas. Call Thomas(A,B,C,Ti) Ti Algoritmos – ciclos no código Processing / Factory/ Engine For l = 1 to T ... For i = 1 to N ... Next ... Next Ciclo no tempo Ciclo no espaço Variáveis de processamento Processing / Factory/ Engine Os valores em algumas variáveis têm que ser deduzidos a partir dos dados de entrada do utilizador e do enunciado • N – tamanho do array da barra ou do canal • i – índice de célula do canal indo de 1 até N • Ctdt(1 to N) - array da Concentração ou Temperatura em t + dt • Ct(1 to N) – array Concentração ou Temperatura em t • t – índice de tempo indo de 1 até L • T – número total de iterações no tempo • Dif – coeficiente de difusão • Sk – coeficiente de decaimento • A(1 to N), B(1 to N), C(1 to N) e Ti(1 to N) – arrays de entrada do algoritmo de Thomas. Resultado escrito em Ti. Exercício I Processing / Factory/ Engine Recorrendo às variáveis acima definidas, implemente um programa em VBA que resolva o método explícito da equação da difusão duma propriedade num fluido numa barra unidimensional utilizando arrays. Inicialize todas as variáveis no código. Resolva até à aula seguinte.