Biblioteca EFVLib

Logo da EFVLibA biblioteca EFVLib foi desenvolvida como uma das atividades do primeiro projeto patrocinado pela Rede de Simulação e Gerenciamento de Reservatórios (SIGER) no laboratório SINMEC. Nesse projeto, um dos objetivos principais era estabelecer as bases para a aplicação de métodos numéricos em malhas não estruturadas à simulação de reservatórios de petróleo. Logo SIGERÉ bem sabido que a implementação de um código computacional para simulação inclui sempre um conjunto básico de componentes que são sempre são os mesmos, independentemente da aplicação específica. Entre esses componentes básicos pode-se citar, por exemplo, estruturas de dados para representação de entes geométricos discretos e suas relações combinatórias, rotinas para cálculo de grandezas geométricas associadas a essas entidades, rotinas para leitura de malhas e escrita de resultados para visualização, etc. A biblioteca EFVLib foi projetada e implementada para reunir componentes básicos desse tipo, associados ao método de volumes finitos baseado em elementos (EbFVM).

Método EbFVM

O método de volumes finitos baseado em elementos é um método de discretização conser-vativo cuja principal característica é a de permitir a utilização de malhas não estruturadas para a representação discreta do domínio de solução. Como em todo método de volumes finitos, o princípio fundamental  é a construção de equações discretas que representem balanços de grandezas físicas em volumes de controle. Neste caso, os volumes de controle são construídos ao redor de cada vértice da malha não estruturada, juntando porções de todos os elementos dessa malha que compartilham um vértice. Os valores discretos das variáveis são associados também aos vértices da malha. 

A biblioteca EFVLib foi projetada para dar suporte tanto a discretização de problemas bidimensionais quanto tridimensionais. Em ambos os casos as malhas não estruturadas podem ser malhas mistas, isto é, malhas formadas por elementos de diferentes formas geométricas. No caso bidimensional, os elementos da malha podem ser triângulos e/ou quadriláteros. Em três dimensões são aceitos elementos tetraédricos, hexaédricos, prismas e pirâmides.

EbFVM em malhas 3D

Uma vez que a EFVLib foi projetada para gerenciar malhas mistas e os procedimentos de cálculo dependem da forma específica dos elementos, empregou-se o conceito de polimorfismo para implementar as características próprias de cada elemento, mantendo ao mesmo tempo uma sintaxe unificada para todos eles. Isto é, na maior parte do código não é necessário especificar o tipo de elemento para utilizar os métodos de cálculo. Para tanto, apenas deve ser usada uma interface comum implementada em uma classe-base abstrata para os elementos. 

A EFVLib está implementada na linguagem de programação C++. As entidades geométricas relevantes no método considerado encontram-se representadas por meio classes que se inter-relacionam entre si de modo a reproduzir as relações combinatórias de uma malha não estruturada mista. Essas classes fornecem todos os parâmetros geométricos necessários na discretização de equações diferenciais pelo método de volumes finitos baseado em elementos.Representação das entidades Uma vez que a EFVLib foi projetada para gerenciar malhas mistas e os procedimentos de cálculo dependem da forma específica dos elementos, empregou-se o conceito de polimorfismo para implementar as características próprias de cada elemento, mantendo ao mesmo tempo uma sintaxe unificada para todos eles. Isto é, na maior parte do código não é necessário especificar o tipo de elemento para utilizar os métodos de cálculo. Para tanto, apenas deve ser usada uma interface comum implementada em uma classe-base abstrata para os elementos.

A EFVLib dá suporte para a representação discreta de campos escalares, vetoriais e tensoriais. Nessa representação, as variáveis discretas podem ser associadas a diferentes tipos de entidades da malha. Isto é importante, pois nas fases intermediárias do processo de discretização normalmente é necessário considerar grandezas associadas a diferentes entidades. Por exemplo, fluxos são associados a faces, propriedades físicas do meio são normalmente associadas a elementos, condições de contorno são associadas a malhas de fronteira, etc.

A biblioteca EFVLib disponibiliza também operadores discretos para aproximar de forma direta os termos mais frequentes em equações de conservação. Por exemplo, encontram-se disponíveis operadores para a aproximação de termos difusivos, termos advectivos, gradientes, etc. A montagem do sistemas de equações discretizadas e a imposição de condições de contorno podem ser realizados também de forma sistematizada com ajuda de algumas classes específicas implementadas na biblioteca EFVLib.

Poços na EFVLibAlgumas funcionalidades implementadas na EFVLib estão voltadas à aplicação da biblioteca ao desenvolvimento de simuladores de escoamentos em reservatórios de petróleo. Por exemplo, as rotinas que calculam os operadores difusivos incluem a possibilidade da difussividade do meio ser representada por um tensor de segunda ordem que pode variar de um elemento da malha a outro. Isto é aplicável a representação de meios porosos anisotrópicos e heterogêneos nos modelos numéricos, que é uma das principais características dos reservatórios de petróleo. Por outro lado, na EFVLib foram incluidas entidades geométricas específicas para a representação discreta de poços. A fim de poder representar de forma precisa a trajetória de um poço em um modelo numérico, ele é formado por uma sequência de elementos lineares coincidentes com arestas da malha que representa o reservatório. Dessa forma garante-se a existência de um conjunto de vértices ao longo do poço, onde poderão ser aproximados valores discretos das variáveis relevantes do problema resolvido. Modelos de poço específicos para serem aplicados a esse tipo de representação discreta dos poços foram também implementados na EFVLib.

Equipe de desenvolvimento

  • Prof. Clovis R. Maliska
  • Prof. António F. C. da Silva
  • Fernando S. V. Hurtado
  • Carlos N. Donatti
  • Aymar V. B. Pescador Jr.
  • Jaime Ambrus

Período de desenvolvimento

  • 2008 - 2010