230 likes | 323 Views
Trabalho Computacional Transferência de Energia e Massa. Guillaume Riflet ,. Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430 Página : https://fenix.ist.utl.pt/homepage/ist146730. Metodologia de resolução. Ler o enunciado do problema Conceber uma solução computacional
E N D
Trabalho Computacional Transferência de Energia e Massa GuillaumeRiflet, • Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430 • Página: https://fenix.ist.utl.pt/homepage/ist146730
Metodologia de resolução • Ler o enunciado do problema • Conceberumasoluçãocomputacional • Partir o problema e a soluçãoemproblemas mais pequenos(fazerumdiagrama) • Resolver as peças do problema, uma de cadavez
Diagrama por blocos genérico dum problema computacional Input Identificar o processamento / escrever o(s) algoritmo(s) Identificar as variáveis necessárias para o processamento Pensar na inicialização das variáveis e na selecção dos algoritmos Pensar no input fornecido pelo utilizador para a resolução do problema e pensar na interface com o utilizador Pensar no output da solução, na sua apresentação (tabelas e gráficos) Processing /Factory/ Engine Output
Diagrama por blocos genérico dum problema computacional • Variables initialization 2 • Algorithm selection • User given input / User-Interface (UI) Input Single or continuous input? Processing /Factory/ Engine • Processing variables 1 • Algorithms Single or continuous output? • Product(s) 3 • Tables • Graphics Output
Identificação dos Algoritmos Processing /Factory/ Engine • Processing variables 1 • Algorithms enunciado explicito implicito
Algoritmos e Variáveis - esquema numérico explícito no tempo Processing /Factory/ Engine explicito i = 2, ..., N-1 i = 1 Boundary i = N Boundary
Algoritmos - esquema numérico implícito no tempo Processing /Factory/ Engine implícito i = 2, ..., N-1 Ti A B C i = 1 Boundary i = N Boundary 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)
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 • 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. • CL e CU – Concentração nas fronteiras abertas do canal. Os valores em algumas variáveis têm que ser deduzidos a partir dos dados de entrada do utilizador e do enunciado
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. • TPC – Tente alterar o codigo em i = 1 e em i = N de forma a selar as fronteiras. Se não conseguir, simplesmente mude o valor nas condições de fronteira, corra o programa e comente os resultados.
Exercício I – Solução tpc TPC – Tente alterar o codigo em i = 1 e em i = N de forma a selar as fronteiras. Se não conseguir, simplesmente mude o valor nas condições de fronteira, corra o programa e comente os resultados. A melhor forma de selar a fronteira aberta ao transporte de propriedades da água é de eliminar o termo de fluxo difusivo da equação na face com a fronteira aberta. Em particular, apenas para a equação da difusão, também se pode impôr um gradiente nulo na fronteira aberta: CL = C(1) e CU = C(N). Essa é outra forma de preservar a massa dentro do domínio. A forma adequada de verificação que a massa é preservada consiste em anular o termo de decaimento e em integrar a massa total da propriedade no canal. A integração tem que se manter constante ao longo do tempo.
Exercício II Processing /Factory/ Engine Agora resolva utilizando o método implícito. Use a subrotina fornecida com o algoritmo de Thomas. Adicionalmente, implemente um método de cálculo da massa da propriedade no canal e faça outputs temporários para uma tabela de excel. TPC – Outputs para tabela e fazer graficos (manualmente) para comparar o metodo explicito com o metodo implicito. Output
Identificação dos Algoritmos de Advecção Processing /Factory/ Engine • Processing variables 1 • Algorithms enunciado Upwind U>0, Exp Faces centradas, Exp
Identificação dos Algoritmos de Advecção Processing /Factory/ Engine enunciado Upwind U>0, Imp Faces centradas, Imp
Refactoring dos Algoritmos de Advecção e de Difusão Processing /Factory/ Engine enunciado Upwind U>0, Imp Faces centradas, Imp
Novas variáveis de processamento para advecção Processing /Factory/ Engine • Cr – Número de Courant Os valores em algumas variáveis têm que ser deduzidos a partir dos dados de entrada do utilizador e do enunciado
Exercício III Processing /Factory/ Engine Adicione ao exercício anterior uma advecção com o método Upwind para U constante no canal e positivo. E se U for negativo? Qual o comportamento do método?
Exercício IIIb Processing /Factory/ Engine Repense o esquema Upwind para que U possa ser positivo e negativo. Se não conseguir, resolva dois esquemas, um para U positivo e outro para U negativo, e utilize um “if”.
Diagrama por blocos genérico dum problema computacional Input Identificar o processamento / escrever o(s) algoritmo(s) Identificar as variáveis necessárias para o processamento Pensar na inicialização das variáveis e na selecção dos algoritmos Pensar no input fornecido pelo utilizador para a resolução do problema e pensar na interface com o utilizador Pensar no output da solução, na sua apresentação (tabelas e gráficos) Processing /Factory/ Engine Output
Diagrama por blocos genérico dum problema computacional • Variables initialization 2 • Algorithm selection • User given input / User-Interface (UI) Input Single or continuous input? Processing /Factory/ Engine • Processing variables 1 • Algorithms Single or continuous output? • Product(s) 3 • Tables • Graphics Output
Input – interface com o utilizador. Variáveis • L - Comprimento do canal (m) • Dx - Resolução espacial (m) • Tp - Tempo de corrida da simulação (s) • Dt - Resolução temporal (s) • PI - Posição inicial do traçador (m) • CI - Concentração inicial do traçador (kg/m^3) • K - Coeficiente de difusividade do traçador (m^2/s) • CL, CU - Valor imposto nas fronteiras a montante e a jusante do escoamento. • U - Velocidade média uniforme do escoamento (m/s) • isDir - Tipo de condição de fronteira (Dirichelet/Neumann) • isOpen - Tipo de fronteira (aberta/fechada) • isExp - Tipo de discretização temporal (explícito/implícito) • isUp - Tipo de discretização para advecção (upwind/diferenças centrais) • Noutputs - Frequência de escrita dos resultados OU número total de instantes a escrever na tabela de excel Input Pensar em dar um feedback ao utilizador indicando se as parametrizações seleccionadas são consistentes (ex: Cr e Dif não violam critérios de estabilidade)
Input – interface com o utilizador. Subrotinas eUserforms Input - Tipo que engloba as variáveis de entrada fornecidas pelo utilizador. ReadInput - Subrotina que lê os dados fornecidos pelo utilizador e que os guarda numa variável do tipo de entrada. Pode ser programado usando uma userform, mas também pode ser programado lendo directamente valores duma tabela de excel. InterfaceInPr - Subrotina de interface que recebe um tipo de entrada e um tipo de propriedade como argumentos. A subrotina deve inicializar os campos do tipo propriedade a partir dos campos do tipo entrada. Input Pensar em dar um feedback ao utilizador indicando se as parametrizações seleccionadas são consistentes (ex: Cr e Dif não violam critérios de estabilidade)
Output – Resultados. • writeOutput - Subrotina que escreve a concentração do traçador no canal numa tabela. (disponível na página do projecto de tem-vba). • Plot - Subrotina que desenha uma curva da concentração em função da posição no canal para cada instante escrito na tabela de excel. (disponível na página do projecto de tem-vba). • Clear - Subrotina que apaga a tabela de excel e todos os gráficos de excel. (disponível na página do projecto de tem-vba). Output