Visual
- Visual 1.32
- Dagoberto Adriano Rizzotto Justo
O programa Visual é destinado a visualização de dados vindos da resolução de problemas de Dinâmica de Fluidos Computacional e Condução de Calor dentre outros, que possam gerar uma saída de dados na forma de uma malha de pontos. O programa gera o desenho da malha, mapas de cores, de contornos e de vetores para que o usuário possa analisar os seus dados.
Após algumas revisões, como a inclusão de Streamlines chegamos a versão 1.32. A primeira versão destinada as estações de trabalho to tipo SUN, rodando em sistemas UNIX. Depois de algum tempo, foi concluída a versão para microcomputadores rodando sobre o sistema Windows 95.
A operação do programa continua idêntica as primeiras versões com algumas alterações do ponto de vista técnico.
A principal mudança, para a versão para microcomputadores está na operação do software que agora precisa ser escolhida entre operar via Mouse ou via Teclado, você utiliza a que lhe for mais cômoda. Para isso foi acrescentada mais uma linha no arquivo .visualrc onde 0 indica teclado e 1 indica mouse (leia mais no item O arquivo .visualrc).
Ao programa feito originalmente para FORTRAN 77, foram acrescentadas algumas rotinas para rodar em microcomputadores sobre FORTRAN 90, conseguindo com isso a utilização do mouse.
Temos também a opção da captura de imagens no próprio programa, facilitando em muito esta tarefa tão árdua nas estações de trabalho.
Espero que o programa agrade a maioria dos usuários e amigos ficando aberto a críticas construtivas.
Índice
Introdução
Muitos problemas do meio acadêmico/científico são resolvidos através do computador. É preciso, primeiramente, descrevermos o modelo matemático e/ou físico que rege o problema. Esse modelo normalmente conterá equações diferenciais e sistemas de equações diferenciais que, na maioria das vezes, não podemos resolver analiticamente. Necessitamos então utilizar algum método numérico para poder solucioná-lo, como, por exemplo, o método de diferenças finitas.
Para isso devemos discretizar o domínio da solução, isto é, devemos gerar uma malha (ou grid) que represente o espaço bi ou tridimensional onde a solução é procurada. Então, com o auxílio de uma aproximação por diferenças finitas, podemos resolver o nosso problema. O resultado disso tudo será um conjunto de coordenadas (x,y) que definem cada nó do grid, mais um conjunto de valores para uma variável Phi (que podem representar a pressão ou outras quantidades escalares como temperatura, altura, etc.) e um conjunto de vetores (u,v) que representam, por exemplo, o escoamento de um fluido sobre o domínio. Todos estes dados, colocados em um arquivo, são apenas uma quantidade grande de números com difícil interpretação para qualquer pessoa. Precisamos de uma maneira de visualizar esses dados.
Com esse objetivo, foi desenvolvido o programa Visual 1.0 para possibilitar obter-se uma representação gráfica satisfatória para esses dados, utilizando-se de grids, mapas de cores, de contornos e de vetores. Baseado no sistema operacional Unix, originalmente em máquinas Sun com o ambiente gráfico X-Windows, teve sua criação na linguagem FORTRAN 77, com o auxílio fundamental de uma biblioteca de funções gráficas chamada PGPLOT, desenvolvida no California Institute of Technology (CALTECH).
Após a primeira versão, depois de um período de amplos testes, foram feitas alterações para melhorar a interface gráfica com o usuário como a inclusão de botões na tela e o melhoramento de algumas rotinas surgindo então a versão atual do programa denominado Visual 1.1.
O Arquivo de Dados
O programa Visual baseia-se na biblioteca PGPLOT para desempenhar a maior parte de suas saídas em vídeo, saídas essas geradas em função dos arquivos de dados.
Esses arquivos de dados são gerados pelo usuário utilizando as técnicas de grid e multigrid. Os dados podem representar, por exemplo, os valores de uma função bidimensional ou os resultados para uma equação diferencial parcial via métodos numéricos. As equações diferenciais podem estar modelando problemas de escoamento de fluidos internos e externos.
Devido ao vasto número de aplicações, faz-se necessário criar uma entrada padrão para o programa. Os dados fornecidos tem a forma de um grid, ou seja, uma matriz bidimensional de dimensões x e y.
As três primeiras linhas formam o cabeçário do arquivo de dados e contém o título do gráfico, o número de pontos na dimensão x e o número de pontos na dimensão y respectivamente.
Um exemplo de cabeçário para um arquivo de dados é o seguinte:
Solução para a equação de Laplace 20 30
Nesse exemplo temos um grid de 20 x 30 pontos.
Logo após o cabeçário estarão dispostos todos os pontos do grid, no exemplo 600 pontos, um abaixo do outro.
Existem três maneiras possíveis de armazenar os dados:
Tipo Variáveis 0 x y phi u v 1 x y 2 x y phi
No tipo (0) podemos fazer todos os gráficos. Devemos para isso informar a posição x e y do ponto, o valor da variável phi e as componentes da velocidade u e v. Normalmente a variável phi representa a pressão, mas ela pode estar representando outras quantidades escalares como temperatura, altura, número de Mach, etc.
Com a opção (1) temos apenas gráficos do grid. Isto possibilita a visualização dos pontos (x,y) da malha antes de gerar a solução phi do problema. Escolhendo (2) podemos fazer mapas de cores e de contornos também.
O arquivo de dados pode ter no máximo 1024 pontos na dimensão x e na dimensão y o tamanho do arquivo é ilimitado, dependendo apenas do espaço para armazenamento na máquina. O título do gráfico deve ter no máximo 50 caracteres.
Iniciando o Visual
Para chamar o programa devemos digitar VISUAL na janela de texto. Ao ser iniciado, o programa solicita qual o nome do arquivo de dados que deve ter no máximo 30 caracteres.
Depois disso devemos informar qual o tipo do arquivo de dados utilizado. São permitidos três tipos de arquivos que são os seguintes:
(0) x y phi u v (1) x y (2) x y phi
Para mais detalhes dos tipos de arquivo veja o item anterior.
Logo após surgirá uma janela gráfica onde serão visualizados os gráficos.
Arquivo:Tela inicial do programa
Nessa figura vemos a interface gráfica com os botões que são clicados para ver os gráficos. Uma outra maneira de chamar as funções do programa é utilizando a letra maiúscula de cada botão.
Na tela inicial temos os seguintes botões:
Botão Função Init Limpar a tela, voltando às dimensões originais do gráfico. cLear Limpar a tela. Grid Desenhar o grid formado pelos pontos x e y. Color Desenhar o mapa de cores referente a variável Phi. conT Desenhar o mapa das isocurvas referente a variável Phi. Vector Desenhar o mapa de vetores das componentes u e v. Effect Realizar um deslocamento na paleta de cores. Zoom Realizar a ampliação de determinada área do gráfico. Wedge Alterar a faixa de visualização da variável Phi. Option Chamar um novo menu, com outras opções. Quit Sair do programa.
Ao clicar Option, surgirá um novo menu com mais opções como o da figura abaixo:
Este menu oferece as seguintes opções:
Botão Função File Chamar um novo arquivo de dados. Paint Desenhar um mapa de cores mais refinado. Length Alterar a escala dos vetores. Contourn Alterar o número de contornos do mapa de isocurvas. subDiv Alterar o número de subdivisões do mapa de cores. Step Alterar o passo do efeito referente a opção Effect. Help Mostrar um arquivo de ajuda na tela de texto. Quit Voltar ao menu anterior.
Obs.: O cursor sobre a janela gráfica quando em forma de cruz, indica que o programa está a espera de um novo comando; quando em forma de asterisco, indica que o programa está executando uma operação.
O Menu Principal
Opção Init
A opção Init limpa a tela atual retornando para o tamanho inicial, onde podemos ver os gráficos inteiramente na tela. Esta opção é usada normalmente depois de fazermos desenhos em zoom para voltar ao tamanho padrão. Opção cLear
A opção cLear limpa a tela atual preservando a dimensão da mesma, isto é, não altera o tamanho da janela atual.
Opção Grid
Esta opção realiza o gráfico do grid dos pontos x e y. Ela pode ser utilizada para arquivos que contenham apenas pontos x e y possibilitando a visualização da malha antes de calcularmos as outras variáveis (Phi, u e v).
Arquivo:Exemplo de um grid sobre a asa Naca0012
Opção Color
Cada ponto do grid contém um valor para a variável Phi e esta opção realiza um mapa de cores para esta variável. Para o menor valor associamos o violeta, passando pelo azul, ciano, verde, amarelo, laranja e vermelho, sendo esta a cor do maior valor de Phi.
Cada quadrilátero do grid é dividido em dois por dois (valor padrão), isto é, quatro quadriláteros menores antes de ser pintado (podemos mudar este valor utilizando o comando subDiv do menu Option).
Arquivo:Exemplo de um mapa de cores sobre um veículo
Opção conT
A partir da variável Phi podemos traçar um mapa de contornos sobre a malha do arquivo de dados. Cada linha de contorno percorre o grid passando pelos pontos de igual valor de Phi.
O número de linhas de contorno padrão é igual a 64, mas você pode alterar esse valor com o comando Contourn do menu Option.
Arquivo:Exemplo de um mapa de contornos sobre um aerofólio
Opção Vector
Para cada ponto da malha associamos um valor u e v correspondendo à projeção em x e y da velocidade, com isto podemos traçar um mapa de vetores.
Os vetores possuem uma escala cujo valor padrão é igual a 1.0. Por exemplo, se mudarmos esse valor para 0.5, então os vetores terão a metade do tamanho normal e caso seja 2.0 terá o dobro do tamanho. Para mudar esse valor devemos usar o comando Length do menu Option.
Arquivo:Exemplo de um mapa de vetores
Opção Effect
Realiza uma translação na paleta de cores, ou seja, translada a barra de cores possibilitando a melhor visualização de determinadas áreas do mapa de cores. Usando a opção Step do menu Option podemos mudar o passo desse efeito. Arquivo:Opção Zoom
Esta opção realiza a ampliação de determinada área da tela. Para selecionar a área a ser ampliada, delimitamos um retângulo na tela usando o botão esquerdo do mouse. Clicando uma vez, marcamos um dos cantos do retângulo. Soltando o botão e movimentando o mouse podemos marcar o retângulo a ser ampliado. Para voltar ao tamanho normal use o comando Init.
Opção Wedge
Alguns arquivos de dados contém a variável Phi distribuída não-uniformemente sobre o domínio, ou seja, em algumas regiões do gráfico há uma variação muito grande enquanto que em outras regiões Phi é quase constante. Para podermos ver melhor o mapa de cores e/ou contornos, usamos essa opção. Ela delimita novos valores para a variação de Phi.
Arquivo:Parte negativa, positiva e ambas utilizando a opção Wedge
Ao clicar em Wedge, aparecerá um barra de cores no lado direito da janela. Devemos clicar então no maior e no menor valor de Phi para fixar a nova faixa de visão do gráfico.
O Menu Option
Nesse menu temos opções para a mudança de alguns valores padrões do programa, como por exemplo, a escala dos vetores. Outros parâmetros podem ser mudados a partir do arquivo .visualrc.
Opção File
Esta opção fecha o arquivo atual e pergunta por um novo nome de arquivo de dados para visualização.
Opção Paint
Esta opção realiza um mapa de cores refinado, ou seja, um mapa mais detalhado da variável Phi sem que haja mudanças abruptas de cores. Na verdade o que esta opção faz é um mapa de cores seguido de um mapa de contornos. Para que o efeito seja notado devemos ter pelo menos cinco subdivisões no mapa de cores e aproximadamente cem linhas de contorno. Para mudar estes valores usa-se as opções subDiv e Contourn.
Arquivo:Exemplo da opção Paint sobre uma asa
Opção Length
Alguns mapas de vetores não são bem visualizados por que os vetores são muito grandes ou muito pequenos. Ao realizar o mapa de vetores, o programa usa o valor 1.0 como escala. Deste modo os vetores terão seu tamanho normal.
Caso eles estejam muito grandes ou muito pequenos, podemos alterar este valor usando esta opção, que abre uma janela onde devemos digitar um novo valor para a escala. Por exemplo, com 0.30 teremos vetores com 30% do seu tamanho normal e com 1.30 teremos vetores 30% maiores.
Caixa de texto da opção Length
Arquivo:Exemplo de mapa de vetores com comprimentos 1.00 e 0.30
Opção Contourn
Usamos esta opção para alterar o número de contornos do mapa de isocurvas. Esta opção abre uma janela onde digitamos o novo número de contornos. O valor padrão é 64.
Arquivo:Caixa de texto da opção Contourn
Arquivo:Mapa com 12 contornos sobre um mapa de cores
Opção subDiv
Ao fazer um mapa de cores, dividimos cada quadrilátero do grid em dois por dois, ou seja, em quatro quadriláteros menores, antes de ser pintado. Esta opção altera o número de subdivisões do mapa de cores, abrindo uma janela onde digitamos um novo valor. Por exemplo, digitando 5 teremos o quadrilátero original dividido em 5x5 quadriláteros menores.
Arquivo:Caixa de texto da opção subDiv
Opção Step
Usando a opção Effect fazemos uma translação na paleta de cores. Cada vez que clicarmos Effect teremos uma translação de 19 cores. Este é o valor padrão, mas pode ser mudado com esta opção, a qual abre uma janela onde digitamos o novo passo do efeito. Por exemplo, digitando 2 como valor do passo, cada vez que escolhermos Effect estaremos transladando 2 cores na paleta.
Arquivo:Caixa de texto da opção Step
Opção Help
Exibe na tela de texto o arquivo help.txt, o qual possibilita uma ajuda rápida e resumida para a utilização do Visual. Esta ajuda contém uma pequena descrição de cada comando e uma cópia do arquivo .visualrc, que será descrito posteriormente.
Opção Quit
Esta opção do menu Option volta ao menu principal.
Opção Quit
Fecha o arquivo de dados e sai do programa Visual retornando ao sistema Unix
O Arquivo visualrc
Alguns parâmetros iniciais do programa Visual podem ser mudados mediante a alteração do arquivo .visualrc. Esse arquivo de inicialização pode ser personalizado de acordo com as preferências do usuário. Ele deve estar gravado no seu diretório de trabalho.
Veja abaixo um exemplo do arquivo .visualrc:
0 =Numero de cores 1 =Cor de Operação 0 =Cor de fundo 2 =Eixos 1 =Escalas 0.5 =Ponta vetor 1.0 =Escala do vetor 64 =Numero de contornos 2 =Subdivisões no mapa de cores 1 =Estilo da linha 1 =Largura da linha 1 =Padrão preenchimento
- Número de Cores: altera o número máximo de cores utilizada no programa.
0=o programa escolhe automaticamente o número máximo de cores.(•) n=n cores utilizadas no programa.
- Cor de Operação: é a cor utilizada para escrever os textos e os eixos na tela.
0=preto 1=branco (•) 2=cinza
- Cor de fundo: troca a cor de fundo. Pode ser útil no momento da impressão.
0=preto (•) 1=branco.
- Eixos: muda as opções de eixos na tela.
-2=sem borda, eixo e rótulos. -1=somente borda. 0=borda e rótulos. 1=borda, rótulos e eixos coordenados. 2=borda, rótulos, eixos coordenados e grid no fundo.(•)
- Escalas: troca as escalas dos gráficos.
0=escalas diferentes. Obs.: os gráficos podem parecer esticados. 1=escalas iguais, não causando distorções na figura.(•)
- Ponta do vetor: altera o tamanho da ponta do vetor.
0.5=metade do tamanho normal.(•) 1.0=tamanho normal 2.0=dobro do tamanho normal.
- Escala do vetor: esta variável muda a escala dos vetores. Também pode ser mudada através da opção Length do menu Option.
0.5=metade do tamanho normal. 1.0=tamanho normal(•)
- Número de contornos: altera o número de contornos feito pela opção Cont. Pode ser alterado através da opção Contourn do menu Option.
64=64 linhas de contorno.(•) n=n linhas de contorno. O valor máximo é 1024.
- Subdivisões no mapa de cores: é o número de subdivisões em cada quadrilátero do grid. Para mais detalhes veja a opção subDiv.
2=divide os quadriláteros em 2x2 (4) quadrados menores.(•) n=divide em nxn quadrados menores. O valor máximo é 20.
- Estilo da linha: muda a forma da linha usada para eixos, contornos e grids.
1=linha cheia.(•) 2=linha tracejada. 3=linha com pontos e traços. 4=linha pontilhadas. 5=linha traço-ponto-ponto-ponto.
- Largura da linha: altera a largura da linha usada para eixos, grids e contornos. Cada incremento aumenta a largura em 0.13 mm. O valor máximo é 200.
1=largura padrão.(•) n=a linha terá largura n x 0.13 mm.
- Padrão de preenchimento: altera o modo de preenchimento das pinturas.
1=sólido.(•) 2=outline (apenas os contornos das figuras pintadas. 3=tracejado. 4=tracejado em cruz.
Obs.: As opções marcadas com o símbolo (•) são as definições padrão do Visual.
Capturando Imagens
Depois de visualizar os gráficos, talvez você deseje capturar essas imagens para colocar em seus trabalhos.
Se você desejar gráficos com fundo branco para imprimi-los, você deve mudar a terceira linha do arquivo .visualrc para 1, indicando que a cor de fundo é branca.
Siga os seguintes passos para capturar as imagens:
- No menu Edit escolha a opção Select Graphics.
- Marque na tela a figura a ser capturada.
- No menu Edit escolha a opção Copy.
- Se quiser salvar a imagem como Bitmap selecione a opção Save no menu File.
- Ou abra o Paint ou seu editor gráfico preferido e cole a figura diretamente nele.
Sistema Sun: setando as variáveis de ambiente
Caso o programa Visual não esteja funcionando, um possível motivo para isso é a falta da preparação de seu arquivo ~/.login.
Para solucionar isso devemos setar as seguintes variáveis de sistema no arquivo ~/.login do usuário, acrescentando as seguintes linhas:
setenv PGPLOT_DIR/usr/local/Visual/pgplot setenv PGPLOT_DEV/xwin
Aplicações
O programa Visual já está sendo utilizado por vários pesquisadores e bolsistas do Instituto de Matemática. Veremos abaixo mais alguns exemplos de figuras que podem ser obtidas através do Visual usando efeitos combinados entre si.
- Gráfico da pressão sobre dois automóveis.
- Pressão e vetores sobre o aerofólio NACA0012
- Isolinhas de pressão no aerofólio NACA0012
- Escoamento em um duto
- Escoamento numa artéria carótida
Arquivo de dados em Fortran
O arquivo deve ser salvo com um algoritmo da forma abaixo.
open(unit=1, file='arquivo.dat', status='UNKNOWN') write(unit=1,fmt=*) 'Cavidade' write(unit=1,fmt=*) M ! n.o de linhas write(unit=1,fmt=*) N ! n.o de colunas do i=1,M do j=1,N write(unit=1,fmt=*) x(i,j), y(i,j), p(i,j), u(i,j), v(i,j) endo do end do
Veja também
- Última revisão: dago 00h37min de 9 de Maio de 2009 (BRT)