trabalho computacional transferência de energia e massa guillaume riflet, dúvidas:...

23
Trabalho Computacional Transferência de Energia e Massa Guillaume Riflet, Dúvidas: [email protected] Ext:3430 Página: https://fenix.ist.utl.pt/homepage/ist146730

Upload: internet

Post on 18-Apr-2015

106 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Trabalho Computacional Transferência de Energia e Massa Guillaume Riflet, Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430guillaume.riflet@ist.utl.pt Página:

Trabalho Computacional Transferência de Energia e Massa

Guillaume Riflet,

Dúvidas: [email protected] Ext:3430

Página: https://fenix.ist.utl.pt/homepage/ist146730

Page 2: Trabalho Computacional Transferência de Energia e Massa Guillaume Riflet, Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430guillaume.riflet@ist.utl.pt Página:

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

Page 3: Trabalho Computacional Transferência de Energia e Massa Guillaume Riflet, Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430guillaume.riflet@ist.utl.pt Página:

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)

Page 4: Trabalho Computacional Transferência de Energia e Massa Guillaume Riflet, Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430guillaume.riflet@ist.utl.pt Página:

Diagrama por blocos genérico dum problema computacional

Input

Processing /Factory/Engine

Output

• Processing variables 1• Algorithms

• Variables initialization 2• Algorithm selection• User given input / User-Interface (UI)

• Product(s) 3• Tables• Graphics

Single or continuous input?

Single or continuous output?

Page 5: Trabalho Computacional Transferência de Energia e Massa Guillaume Riflet, Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430guillaume.riflet@ist.utl.pt Página:

Identificação dos Algoritmos

Processing /Factory/Engine

• Processing variables 1• Algorithms

ijiii

ti

tti kC

x

CCC

t

CC

211 2

ti

tti

tti

tti CtkC

x

tC

x

tC

x

t

121 12212

ti

ti

ti

tti C

x

tCtk

x

tC

x

tC 12212

21

enunciado

explicito

implicito

Page 6: Trabalho Computacional Transferência de Energia e Massa Guillaume Riflet, Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430guillaume.riflet@ist.utl.pt Página:

Algoritmos e Variáveis - esquema numérico explícito no tempo

ti

ti

ti

tti C

x

tCtk

x

tC

x

tC 12212

21

explicito 2x

tDif

tkSk Processing /Factory/Engine

tL

tttt Cx

tCtk

x

tC

x

tC

212221 21

tN

tN

tU

ttN C

x

tCtk

x

tC

x

tC 1222

21

i = 2, ..., N-1

i = 1 Boundary

i = N Boundary

Page 7: Trabalho Computacional Transferência de Energia e Massa Guillaume Riflet, Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430guillaume.riflet@ist.utl.pt Página:

Algoritmos - esquema numérico implícito no tempo

ti

tti

tti

tti CtkC

x

tC

x

tC

x

t

121 12212

implícito

A B CTi

Call Thomas(A,B,C,Ti)

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.

Processing /Factory/Engine

i = 2, ..., N-1

i = 1 Boundary

i = N Boundary

tL

ttttt Cx

tCtkC

x

tC

x

t

211222

121

tU

tN

ttN

ttN C

x

tCtkC

x

tC

x

t

2122

121

Page 8: Trabalho Computacional Transferência de Energia e Massa Guillaume Riflet, Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430guillaume.riflet@ist.utl.pt Página:

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

Page 9: Trabalho Computacional Transferência de Energia e Massa Guillaume Riflet, Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430guillaume.riflet@ist.utl.pt Página:

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

Page 10: Trabalho Computacional Transferência de Energia e Massa Guillaume Riflet, Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430guillaume.riflet@ist.utl.pt Página:

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.

Page 11: Trabalho Computacional Transferência de Energia e Massa Guillaume Riflet, Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430guillaume.riflet@ist.utl.pt Página:

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.

Page 12: Trabalho Computacional Transferência de Energia e Massa Guillaume Riflet, Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430guillaume.riflet@ist.utl.pt Página:

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

Page 13: Trabalho Computacional Transferência de Energia e Massa Guillaume Riflet, Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430guillaume.riflet@ist.utl.pt Página:

Identificação dos Algoritmos de Advecção

Processing /Factory/Engine

• Processing variables 1• Algorithms

x

UCUC

t

CC iiti

tti 2/12/1

ti

ti

iti

itti CC

x

tUC

x

tUC 1

2/11

2/1 01

enunciado

Upwind U>0, Exp

Faces centradas, Exp

ti

iti

iiti

itti C

x

tUC

x

tU

x

tUC

x

tUC 1

2/12/12/11

2/1

2221

2

Page 14: Trabalho Computacional Transferência de Energia e Massa Guillaume Riflet, Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430guillaume.riflet@ist.utl.pt Página:

Identificação dos Algoritmos de Advecção

Processing /Factory/Engine

x

UCUC

t

CC iiti

tti 2/12/1

ti

tti

tti

itti

i CCCx

tUC

x

tU

1

2/11

2/1 01

enunciado

Upwind U>0, Imp

Faces centradas, Imp

ti

tti

itti

iitti

i CCx

tUC

x

tU

x

tUC

x

tU

1

2/12/12/11

2/1

2221

2

0,

Ux

tUCr

Page 15: Trabalho Computacional Transferência de Energia e Massa Guillaume Riflet, Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430guillaume.riflet@ist.utl.pt Página:

Refactoring dos Algoritmos de Advecção e de Difusão

Processing /Factory/Engine

x

UCUC

t

CC iiti

tti 2/12/1

ti

tti

tti

itti

i CCCx

tUC

x

tU

1

2/11

2/1 01

enunciado

Upwind U>0, Imp

Faces centradas, Imp

ti

tti

itti

iitti

i CCx

tUC

x

tU

x

tUC

x

tU

1

2/12/12/11

2/1

2221

2

0,

Ux

tUCr

Page 16: Trabalho Computacional Transferência de Energia e Massa Guillaume Riflet, Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430guillaume.riflet@ist.utl.pt Página:

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

Page 17: Trabalho Computacional Transferência de Energia e Massa Guillaume Riflet, Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430guillaume.riflet@ist.utl.pt Página:

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?

Page 18: Trabalho Computacional Transferência de Energia e Massa Guillaume Riflet, Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430guillaume.riflet@ist.utl.pt Página:

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”.

Page 19: Trabalho Computacional Transferência de Energia e Massa Guillaume Riflet, Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430guillaume.riflet@ist.utl.pt Página:

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)

Page 20: Trabalho Computacional Transferência de Energia e Massa Guillaume Riflet, Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430guillaume.riflet@ist.utl.pt Página:

Diagrama por blocos genérico dum problema computacional

Input

Processing /Factory/Engine

Output

• Processing variables 1• Algorithms

• Variables initialization 2• Algorithm selection• User given input / User-Interface (UI)

• Product(s) 3• Tables• Graphics

Single or continuous input?

Single or continuous output?

Page 21: Trabalho Computacional Transferência de Energia e Massa Guillaume Riflet, Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430guillaume.riflet@ist.utl.pt Página:

Input – interface com o utilizador. Variáveis

Input• 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

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)

Page 22: Trabalho Computacional Transferência de Energia e Massa Guillaume Riflet, Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430guillaume.riflet@ist.utl.pt Página:

Input – interface com o utilizador. Subrotinas e Userforms

Input1. Input - Tipo que engloba as variáveis de entrada

fornecidas pelo utilizador.2. 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.

3. 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.

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)

Page 23: Trabalho Computacional Transferência de Energia e Massa Guillaume Riflet, Dúvidas: guillaume.riflet@ist.utl.pt Ext:3430guillaume.riflet@ist.utl.pt Página:

Output – Resultados.

1. writeOutput - Subrotina que escreve a concentração do traçador no canal numa tabela. (disponível na página do projecto de tem-vba).

2. 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).

3. 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