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  kt 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  kt 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  kt Ci   2 Ci 1
x
 x 


 x 
t
Dif 
x 2
Sk  kt
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  kt 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.
Download

aula2 - slides