Ecuación de Poisson con condiciones de Dirichlet

 

Resumen: Se resuelve la ecuación de Poisson en un círculo con condición de contorno de tipo Dirichlet homogénea sobre toda la frontera.

Problema considerado

Dados ΩR2, abierto acotado no vacío, y f:ΩR una función de L2(Ω), hallar u:ΩR tal que

(P){Δu=fen Ω,u=0sobre Ω.

Formulación variacional

Observación: todos los cálculos que se hacen en esta sección son puramente formales, es decir, se supone siempre la regularidad suficiente para que todos ellos estén justificados.

El espacio natural para buscar la solución del problema (P) es el espacio de Sóbolev

H01(Ω)={vH1(Ω)/v=0 sobre Ω}.

Para obtener la formulación variacional de (P), multiplicamos en la ecuación ambos miembros por una función vH01(Ω) e integramos en Ω:

Ω(Δu)vdxdy=ΩfvdxdyvH01(Ω).

Integrando ahora por partes en el primer miembro, obtenemos

ΩuvdxdyΩunvdσ=ΩfvdxdyvH01(Ω),

de donde, teniendo en cuenta que v vale cero sobre Ω, se obtiene:

Ωuvdxdy=ΩfvdxdyvH01(Ω).

La formulación variacional de (P) es, por tanto

(PV){Hallar uH01(Ω) tal que Ωuvdxdy=ΩfvdxdyvH01(Ω),

o bien, desarrollando el producto escalar uv,

{Hallar uH01(Ω) tal que Ω(xuxv+yuyv)dxdy=ΩfvdxdyvH01(Ω).

Problema aproximado

Vamos a utilizar una aproximación mediante elementos finitos P1-Lagrange. Por simplicidad, supongamos que Ω es una poligonal cerrada. Consideramos un mallado de Ω mediante triángulos: Th={Tr}r=1R, verificando Ω=r=1RTr , con T˚r , r=1,,R y tales que para todo rs

TrTs={ un lado comu´n a ambos tria´ngulos o un ve´rtice comu´n a ambos tria´ngulos o

Consideramos

Wh={vh|vhC0(Ω),vh|TP1(T)TTh}H1(Ω),

siendo Wh un subespacio de dimensión finita de H1(Ω) con dimWh=M, donde M es el número de vértices de Th​. Consideramos también

Vh={vh|vhWh,vh|Ω=0}H01(Ω),

siendo Vh un subespacio de dimensión finita de H01(Ω), con dimVh=M0, siendo M0 el número de vértices de Th que no están sobre Ω. El problema aproximado de (PV) es

(PVh){Hallar uhVh tal que Ωuhvhdxdy=ΩfvhdxdyvhVh.

Sean {ai}iI los vertices de Th y sean {ai}iI0 (I0I) los vertices de Th que no están sobre Ω, siendo card(I)=M y card(I0)=M0.

Una función vhWh queda unívocamente determinada por sus valores en los vértices de la triangulación, i.e. por el conjunto de valores {vh(ai)}iI. Análogamente, una función vhVh está unívocamente determinada por el conjunto de valores {vh(ai)}iI0.

La base canónica de Wh está constituida por las funciones {φi}iI definidas por

φiWhi=1,,M,φi(aj)=δiji,j=1,,M.

La función φi está asociada al vértice ai de Th y solo es distinta de cero en los triángulos que contienen a dicho vértice.

A su vez, la base de Vh está constituida por el subconjunto de la base de Wh , {φi}iI0. Luego,

vhWhvh=iIvh(ai)φi,
vhVhvh=iI0vh(ai)φi.

Puesto que {φi}iI0 es una base de Vh el problema anterior se puede escribir

(1){Hallar uhVh tal queΩuhφidxdy=ΩfφidxdyiI0.

Ahora bien, uh se puede expresar también en función de la base de Vh:

uhVhuh=jI0uh(aj)φj,

de donde para obtener uh solo hay que calcular los coeficientes uh(aj) para jI0.

Sustituyendo uh en las ecuaciones (1) , el problema que tenemos que resolver se escribe:

(2){Hallar uh(aj)jI0 tales quejI0uh(aj)Ωφjφidxdy=ΩfφidxdyiI0.

Utilizando la siguiente notación

{uj=uh(aj),aij=Ωφjφidxdy,si=Ωfφidxdy,

el problema (2) se puede reescribir de la forma más compacta

(3){Hallar (uj)jI0 tales que jI0aijuj=siiI0,

es decir el problema (2) se reduce a la resolución de un sistema lineal de M0 ecuaciones.

Bloqueo de las condiciones de contorno

Por razones de tipo informático (ver las notas sobre implementación del Método de los Elementos Finitos) construir la matriz (aij)i,jI0 resulta más costoso que construir la matriz (aij)i,jI.

En consecuencia, el sistema que en la práctica se resuelve no es el anterior, sino el que se muestra a continuación, obtenido penalizando  (3).

Más concretamente, el problema (3) es equivalente a

(4){Hallar (uj)jI tales que{jI0aijuj=siiI0ui=0iII0.

Obsérvese que lo que hemos hecho es añadir como incógnitas los valores de uh sobre los nodos de Ω a la vez que añadimos las ecuaciones que harán que esos valores sean iguales a cero, según la condición de contorno del problema de partida. Tenemos ahora un sistema "más grande", con M ecuaciones.

Este sistema, a su vez, es equivalente a

(5)jIa~ijuj=s~i,iI,

donde

(6)a~ij={Vsi i=jII0,aijsi no,s~i={V00si i=jII0,sisi no,

donde V un número muy grande (1030).

En efecto, sea iII0 y consideramos la i-ésima ecuación del sistema (5):

(7)jIa~ijuj=jI,jiaijuj+a~iiui=s~ijI,jiaijuj+Vui=0

y como V es un valor muy grande, el primer sumando de la última igualdad se puede despreciar frente al segundo, de donde se deduce que ui0 para iII0. Sustituyendo ui0 para iII0 en las ecuaciones de (5) correspondientes a iI0, recuperamos las ecuaciones (3).

En resumen, (5) y (6) es el sistema que, realmente, se resuelve. Inicialmente, se construye la matriz y el segundo miembro del sistema "sin penalizar"

jIaijuj=si,iI,

y, posteriormente, se añaden las penalizaciones descritas en (6). El cálculo de la matriz y del segundo miembro de este sistema lineal se puede consultar en las notas sobre implementación del Método de los Elementos Finitos, aunque para resolver el sistema con FreeFEM no es necesario entrar en ese detalle.

Resolución con FreeFEM

Tomaremos como dominio Ω un círculo de centro el origen y radio 1. Por lo tanto, su frontera, Ω, viene definida por la curva

(8)C={(x,y):x=cos(t),y=sin(t),0t2π}.

Tomaremos, también, f(x,y)=xy.

Definición de la frontera del dominio

Las siguientes instrucciones definen la frontera del dominio, utilizando sus ecuaciones paramétricas y la dibujan. Obsérvese, que hemos asignado la etiqueta 1 con el comando label = 1 a toda la curva.

Obsérvese que, para dibujar la curva C se han usado las variables reservadas x e y que representan, en FreeFEM, las dos variables espaciales.

Construcción del mallado

Declaramos primero una variable tipo mesh y después construimos una triangulación del dominio encerrado por la curva C discretizada con 60 segmentos sobre su contorno.

Mallado del círculo

 

 

Definición del espacio de elementos finitos

Definimos el espacio de elementos finitos que vamos a utilizar. Como hemos dicho antes, Wh será el espacio de las funciones que son continuas en Ω y tales que su restricción a cada triángulo TTh​​ es un polinomio de grado menor o igual que 1.

Definición del problema variacional

Declaramos y definimos la función f(x,y)=xy.

Se recuerda (ver aquí la técnica del bloqueo) que la condición de Dirichlet (u=0 sobre Ω=C) se incorpora al problema aproximado mediante la técnica del bloqueo, por lo cual el problema no se resuelve en Vh, sino en Wh.

En la definición del problema variacional con FreeFEM, la ecuación variacional se escribe en forma homogénea (segundo miembro = 0).

Además, los términos bilineales y lineales no deben estar bajo la misma integral. De hecho, para construir el sistema lineal, FreeFEM averigua qué integral contribuye a la forma bilineal, comprobando si están presentes ambos, la incógnita, que aquí se denota por u , y las funciones "test", denotadas aquí por v .

Aqui,

Ωexpresion dxdy

Resolución del problema y representación

Para resolver el problema, basta escribir el nombre del problema variacional:

Mallado del círculo

Complementos

Podemos mostrar la dimensión del espacio Wh usando el comando Wh.ndof .

Las siguientes opciones de plot son interesantes:

Cada elemento u de Wh tiene un vector asociado: en este caso sus valores en los vértices de Th . Este vector se denota u[]. Podemos asignar los valores de la solución a un vector.

 

Código completo del programa

 

 

Ejercicios

Se proponen los siguientes ejercicios como variantes del problema:

  1. Usar el EF P2-Lagrange y comparar con la aproximación P1​, usando una triangulación grosera.
  2. Usar mallados mas y menos finos.

Anna Doubova - Rosa Echevarría - Dpto. EDAN - Universidad de Sevilla