Manual do FlexPDE v.5 - DEMAR
Manual do FlexPDE v.5 - DEMAR
Manual do FlexPDE v.5 - DEMAR
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Manual</strong> <strong>do</strong> <strong>FlexPDE</strong> versão 5<br />
Elementos <strong>do</strong> roteiro <strong>FlexPDE</strong><br />
• TITLE – título descritivo <strong>do</strong> problema.<br />
• SELECT – parâmetros de controle <strong>do</strong> <strong>FlexPDE</strong>.<br />
• VARIABLES – lista de variáveis.<br />
• DEFINITIONS – definição de parâmetros, relações constitutivas ou matemáticas e funções.<br />
• EQUATIONS – cada variável descrita em VARIABLES é associada à EDP correspondente.<br />
• BOUNDARIES – descreve a geometria e as condições de contorno.<br />
• MONITORS – desenha gráficos durante a execução <strong>do</strong> roteiro<br />
• PLOTS – desenha os gráficos com os resulta<strong>do</strong>s <strong>do</strong> cálculo.<br />
• END – término <strong>do</strong> roteiro.<br />
Roteiro “template” padrão <strong>do</strong> <strong>FlexPDE</strong><br />
TITLE 'New Problem' { the problem identification }<br />
COORDINATES cartesian2 { coordinate system, 1D,2D,3D, etc }<br />
VARIABLES { system variables }<br />
u { choose your own names }<br />
! SELECT { method controls }<br />
! DEFINITIONS { parameter definitions }<br />
! INITIAL VALUES<br />
EQUATIONS { PDE's, one for each variable }<br />
div(grad(u))=0 { one possibility }<br />
! CONSTRAINTS { Integral constraints }<br />
BOUNDARIES { The <strong>do</strong>main definition }<br />
REGION 1 { For each material region }<br />
START(0,0) { Walk the <strong>do</strong>main boundary }<br />
LINE TO (1,0) TO (1,1) TO (0,1) TO CLOSE<br />
! TIME 0 TO 1 { if time dependent }<br />
MONITORS { show progress }<br />
PLOTS { save result displays }<br />
CONTOUR(u)<br />
END<br />
Como descrever um problema físico no <strong>FlexPDE</strong><br />
O <strong>FlexPDE</strong> interpreta uma sequência de coman<strong>do</strong>s textuais que descrevem as características<br />
de um problema a ser resolvi<strong>do</strong> no editor (CTRL E). A melhor forma de iniciar um novo problema é<br />
modifican<strong>do</strong> um existente. Em qualquer problema, as seguintes etapas devem ser descritas:<br />
• Definir as variáveis (VARIABLES) e respectivas equações (EQUATIONS)<br />
• Definir o <strong>do</strong>mínio (BOUNDARIES)<br />
• Definir os parâmetros <strong>do</strong>s materiais (DEFINITIONS)<br />
• Definir as condições de contorno (BOUNDARIES)<br />
• Definir os parâmetros temporais, se for problema em regime transiente (TIME 0 TO n)<br />
• Especificar as saídas gráficas (MONITORS e PLOTS).<br />
Novembro 2009 1
Como salvar um roteiro no <strong>FlexPDE</strong><br />
Para gravar um roteiro clicar na opção Domain Review (CTRL D) no menu Controls ou<br />
executar o roteiro usan<strong>do</strong> o coman<strong>do</strong> CTRL R ou clicar na opção Run Script no menu Controls.<br />
Notação matemática e simbólica<br />
• Diferenciação: a derivada du/dx é denotada por dx(u). A derivada de segunda ordem<br />
d 2 u/dx 2 é descrita como dxx(u). Os opera<strong>do</strong>res diferenciais divergente ( ∇ •), gradiente<br />
(∇ )e rotacional ( ∇ × ) são descritos pelos seus nomes na língua inglesa, respectivamente,<br />
Div, Grad e Curl.<br />
• Nomes: não são sensíveis à capitalização. F é o mesmo que f.<br />
• Comentários: podem ser coloca<strong>do</strong>s no texto entre chaves { } ou com o símbolo ! que<br />
ignora o comentário até o final da linha.<br />
Variáveis e Equações<br />
Duas coisas básicas que o <strong>FlexPDE</strong> precisa saber:<br />
• Quais são as variáveis a serem analisadas<br />
• Quais são as equações diferenciais que definem as variáveis<br />
As seções VARIABLES e EQUATIONS <strong>do</strong> roteiro fornecem estas informações. As duas<br />
são intimamente relacionadas pois deve haver uma equação para cada variável.<br />
Exemplos<br />
VARIABLES<br />
Phi<br />
EQUATIONS<br />
Div(grad(Phi)) = 0<br />
Quan<strong>do</strong> houver duas ou mais variáveis, a associação com cada equação correspondente é<br />
feita da forma mostra<strong>do</strong> no exemplo seguinte.<br />
VARIABLES<br />
A, B<br />
EQUATIONS<br />
A: Div(grad(A)) = 0<br />
B: Div(grad(B)) = 0<br />
Descrição <strong>do</strong> <strong>do</strong>mínio <strong>do</strong> problema<br />
Descrição de problemas 2D<br />
Um problema de <strong>do</strong>mínio 2D é descrito na seção BOUNDARIES que é constituí<strong>do</strong> por<br />
regiões (REGIONS), cada uma com as suas propriedades de materiais. Uma REGION pode conter<br />
diversos sub<strong>do</strong>mínios conexos (fecha<strong>do</strong>s), mas to<strong>do</strong>s devem ter as mesmas propriedades <strong>do</strong>s<br />
materiais.<br />
Novembro 2009 2
• Uma especificação REGION inicia-se com a declaração REGION (ou<br />
REGION "nome") e to<strong>do</strong>s os laços seguintes ao cabeçalho são incluí<strong>do</strong>s na região<br />
• Outras REGION que ocorrem posteriormente no roteiro podem cobrir partes descritas por<br />
REGIONs anteriores.<br />
• A primeira REGION deve conter to<strong>do</strong> o <strong>do</strong>mínio. Esta é uma convenção arbitrária e faz<br />
com que a atribuição das condições de contorno seja mais fácil.<br />
A forma de cada região é descrita percorren<strong>do</strong> o perímetro e saltan<strong>do</strong> de uma junção a outra<br />
com segmentos LINE, SPLINE ou ARC. Cada segmento inicia-se com a declaração START e<br />
retorna ao início com a palavra CLOSE (ou TO CLOSE).<br />
Exemplo: região retangular constituída por quatro segmentos de reta:<br />
START (x1,y1)<br />
LINE TO (x2,y1) { Segmento 1 }<br />
TO (x2,y2) { Segmento 2 }<br />
TO (x1,y2) { Segmento 3 }<br />
TO CLOSE { Segmento 4 }<br />
Um polígono pode ser construí<strong>do</strong> adicionan<strong>do</strong>-se mais pontos e, consequentemente, mais<br />
segmentos.<br />
Exemplo: arcos podem ser construí<strong>do</strong>s de diversas formas, a mais simples é especifican<strong>do</strong> o<br />
centro e o ângulo <strong>do</strong> arco:<br />
START(r,0)<br />
ARC(CENTER = 0,0) ANGLE = 360<br />
Exemplo: arco especifican<strong>do</strong> o centro e o ponto final:<br />
START(r,0)<br />
ARC(CENTER = 0,0) TO (0,r) { arco de 90 graus }<br />
Um arco elíptico pode ser construí<strong>do</strong> se a distância <strong>do</strong> centro a uma extremidade for<br />
diferente da distância <strong>do</strong> centro ao ponto inicial. Os eixos da elipse estarão alinha<strong>do</strong>s às direções<br />
horizontal e vertical; não é possível construir uma elipse inclinada.<br />
Laços também podem ser nomea<strong>do</strong>s para referência posteriormente, como em:<br />
START "Nome" (…)<br />
O protótipo da seção BOUNDARIES é na forma:<br />
BOUNDARIES<br />
REGION 1<br />
< laço fecha<strong>do</strong> no entorno <strong>do</strong> <strong>do</strong>mínio><br />
REGION 2<br />
<br />
…<br />
Pode-se construir o <strong>do</strong>mínio um pedaço de cada vez, usan<strong>do</strong> a opção Domain Review para<br />
pré-visualizar o <strong>do</strong>mínio.<br />
Novembro 2009 3
Exemplo<br />
BOUNDARIES<br />
REGION 1 'caixa' { <strong>do</strong>mínio retangular }<br />
START (-1,-1)<br />
LINE TO (1,-1)<br />
TO (1,1)<br />
TO (-1,1)<br />
TO CLOSE<br />
REGION 2 'bolha' { círculo no interior <strong>do</strong> <strong>do</strong>mínio }<br />
START 'anel' (1/2,0)<br />
ARC(CENTER = 0,0) ANGLE = 360 TO CLOSE<br />
END<br />
Executan<strong>do</strong> o exemplo lista<strong>do</strong> acima através da opção Domain Review obtém-se as<br />
seguintes figuras:<br />
Geração da malha de elementos finitos<br />
O <strong>FlexPDE</strong> gera automaticamente a malha de elementos finitos que se ajusta ao <strong>do</strong>mínio,<br />
utilizan<strong>do</strong> triangulos quasi-equilaterais, cujos tamanhos são determina<strong>do</strong>s pelo espaçamento entre<br />
pontos explícitos na fronteira <strong>do</strong> <strong>do</strong>mínio,pela curvatura <strong>do</strong>s sub<strong>do</strong>mínios ou pela densidade<br />
controlada pelo usuário.<br />
No exemplo anterior a malha foi gerada automaticamente. Como exemplo de malha com<br />
densidade controlada pelo usuário, pode-se fazer com que a malha <strong>do</strong> círculo seja mais densa<br />
usan<strong>do</strong> o coman<strong>do</strong> modifica<strong>do</strong>r MESH_SPACING:<br />
REGION 2 'bolha' { círculo interior }<br />
START(1/2,0)<br />
MESH_SPACING = 0.05<br />
A malha resultante terá a seguinte forma:<br />
Novembro 2009 4
Na maioria <strong>do</strong>s casos não é necessário intervir na geração de malha porque o <strong>FlexPDE</strong><br />
refinará adaptativamente a malha quan<strong>do</strong> detectar uma forte curvatura na solução.<br />
Definição de parâmetros <strong>do</strong> material<br />
O <strong>FlexPDE</strong> descreve as propriedades <strong>do</strong>s materiais através de nomes de parâmetros<br />
defini<strong>do</strong>s na seção DEFINITIONS. A atribuição das propriedades <strong>do</strong>s materiais é feita no <strong>do</strong>mínio<br />
REGIONS, onde o valor pode ser altera<strong>do</strong>. O <strong>FlexPDE</strong> pode atribuir propriedades por parâmetros<br />
constantes ou por meio de equações que relacionam a propriedade <strong>do</strong> material com a temperatura<br />
ou outra grandeza física.<br />
Por exemplo, considere a equação de calor, descreven<strong>do</strong> um isolante circular de<br />
condutividade 0.001 e um condutor circundante de condutividade 1. Primeiro, define-se o nome da<br />
constante e atribui-lhe o valor padrão:<br />
DEFINITIONS<br />
k = 1<br />
Este valor padrão de k será usa<strong>do</strong> em cada REGION <strong>do</strong> problema, a menos que seja<br />
redefini<strong>do</strong> em cada região. Introduzin<strong>do</strong> a constante k na equação:<br />
EQUATIONS<br />
Div(-k*grad(phi)) = 0<br />
Especifican<strong>do</strong> um valor regional na região 2:<br />
...<br />
REGION 2 'bolha'<br />
k = 0.001<br />
START(1/2,0)<br />
ARC(CENTER = 0,0) ANGLE = 360<br />
Novembro 2009 5
Pode-se definir o parâmetro k = 1 para o condutor na REGION 1, se quiser explicitar para<br />
efeito de clareza.<br />
Condições de contorno<br />
As condições de contorno são especificadas como modifica<strong>do</strong>res durante o percurso de<br />
definição <strong>do</strong> <strong>do</strong>mínio (BOUNDARIES). O <strong>FlexPDE</strong> possui <strong>do</strong>is tipos de condição de contorno:<br />
• Dirichlet ou condição de valor (VALUE)<br />
• Neumann ou condição natural (NATURAL)<br />
A condição de contorno VALUE pode ser uma expressão aritmética incluin<strong>do</strong> dependências<br />
não lineares e dependência de variáveis.<br />
A condição de contorno NATURAL especifica o fluxo na fronteira <strong>do</strong> <strong>do</strong>mínio. A definição<br />
pode ser uma expressão aritmética incluin<strong>do</strong> dependências não lineares e dependência de variáveis.<br />
Com a equação de Laplace a condição de contorno NATURAL é equivalente à condição de<br />
Neumann ou condição derivativa normal.<br />
Cada declaração estabelecen<strong>do</strong> as condições de contorno tem como argumento o nome de<br />
uma variável. Este nome associa a condição de contorno com uma variável da lista de equações,que<br />
na realidade é a equação que é modificada pela condição de contorno.<br />
No exemplo seguinte será atribuída temperatura zero na fronteira de baixo, uma superfície<br />
isolada no la<strong>do</strong> direito, temperatura de 1 na fronteira de cima e uma fronteira isolada <strong>do</strong> la<strong>do</strong><br />
esquer<strong>do</strong>:<br />
…<br />
REGION 1 'caixa'<br />
START(-1,-1)<br />
{ Phi = 0 na linha de baixo: }<br />
VALUE(Phi) = 0 LINE TO (1,-1)<br />
{ derivada normal = 0 no la<strong>do</strong> direito: }<br />
NATURAL(Phi)=0 LINE TO (1,1)<br />
{ Phi = 1 no topo: }<br />
VALUE(Phi)=1 LINE TO (-1,1)<br />
{ derivada normal = 0 no la<strong>do</strong> esquer<strong>do</strong>: }<br />
NATURAL(Phi)=0 LINE TO CLOSE<br />
Observar que as condições VALUE ou NATURAL declaram uma condição que será<br />
aplicada aos segmentos da fronteira subsequentes até que a declaração seja alterada.<br />
Observar que a forma segmento (LINE ou ARC) deve ser reiniciada após uma troca de<br />
condição de contorno.<br />
Tipos de gráficos de exploração de resulta<strong>do</strong>s<br />
Os coman<strong>do</strong>s MONITORS e PLOTS requisitam os gráficos <strong>do</strong>s resulta<strong>do</strong>s <strong>do</strong> cálculo.<br />
MONITORS: usa<strong>do</strong> para obter informações durante o progresso da solução.<br />
PLOTS: especifica os gráficos finais que serão desenha<strong>do</strong>s.<br />
Tipos de gráficos no <strong>FlexPDE</strong><br />
Novembro 2009 6
• CONTOUR: curves de nível; podem ser preenchidas com cor.<br />
• SURFACE: curva de superfície 3D.<br />
• VECTOR: curva de campo de vetores<br />
• ELEVATION: curva X-Y em corte num caminho defini<strong>do</strong> em BOUNDARIES<br />
• SUMMARY: relatório textual<br />
Exemplo:<br />
Curva de nível (CONTOUR) de temperatura, curva de campo vetorial (VECTOR) <strong>do</strong> fluxo de<br />
calor, k*grad(Phi), curva X-Y (ELEVATION) da distribuição de temperatura numa linha no centro<br />
da geometria e uma curva X-Y <strong>do</strong> fluxo de calor normal à superfície da bolha.<br />
PLOTS<br />
CONTOUR(Phi)<br />
VECTOR(-k*grad(Phi))<br />
ELEVATION(Phi) FROM (0,-1) to (0,1)<br />
ELEVATION(Normal(-k*grad(Phi))) ON 'anel'<br />
O registro das curvas obtidas em PLOTS é grava<strong>do</strong> com a extensão .PG5 e com o nome <strong>do</strong><br />
arquivo roteiro .PDE. Esses gráficos grava<strong>do</strong>s podem ser visualiza<strong>do</strong>s através da opção VIEW no<br />
menu principal <strong>do</strong> <strong>FlexPDE</strong>.<br />
Os gráficos produzi<strong>do</strong>s pelo MONITORS não são grava<strong>do</strong>s, de mo<strong>do</strong> que é recomenda<strong>do</strong><br />
que sejam usa<strong>do</strong>s com a finalidade de depuração <strong>do</strong> roteiro <strong>FlexPDE</strong>.<br />
Além <strong>do</strong>s gráficos apresenta<strong>do</strong>s, o <strong>FlexPDE</strong> aceita outras formas de gráficos como GRID e<br />
HISTORIES.<br />
Roteiro completo<br />
TITLE 'Fluxo de calor em torno de uma bolha isolada'<br />
VARIABLES<br />
phi { Temperatura }<br />
DEFINITIONS<br />
k = 1 { condutividade }<br />
r = 0.5 { raio da bolha }<br />
EQUATIONS<br />
Div(-k*grad(phi)) = 0<br />
BOUNDARIES<br />
REGION 1 'caixa'<br />
START(-1,-1)<br />
VALUE(Phi)=0 LINE TO (1,-1)<br />
NATURAL(Phi)=0 LINE TO (1,1)<br />
VALUE(Phi)=1 LINE TO (-1,1)<br />
NATURAL(Phi)=0 LINE TO CLOSE<br />
REGION 2 'bolha'<br />
k = 0.001 { redefinição da condutividade na bolha }<br />
START 'anel' (r,0)<br />
ARC(CENTER = 0,0) ANGLE = 360 TO CLOSE<br />
PLOTS<br />
CONTOUR(phi)<br />
VECTOR(-k*grad(phi))<br />
ELEVATION(phi) FROM (0,-1) to (0,1)<br />
ELEVATION(Normal(-k*grad(phi))) ON 'anel'<br />
Novembro 2009 7
END<br />
Os gráficos de resulta<strong>do</strong> <strong>do</strong> roteiro completo para o cálculo <strong>do</strong> fluxo de calor em torno de<br />
uma bolha isolada são os seguintes:<br />
Novembro 2009 8