02.01.2015 Views

Manual do FlexPDE v.5 - DEMAR

Manual do FlexPDE v.5 - DEMAR

Manual do FlexPDE v.5 - DEMAR

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!