¿Cómo deben aplicarse las condiciones de contorno cuando se utiliza el método de volumen finito?


16

Siguiendo mi pregunta anterior , estoy tratando de aplicar condiciones de contorno a esta malla de volumen finito no uniforme,

El límite del lado izquierdo incluye una celda fantasma.

Me gustaría aplicar una condición de límite de tipo Robin a las lhs del dominio ( , de modo que,x=xL)

σL=(dux+au)|x=xL

donde es el valor límite; son coeficientes definidos en el límite, advección y difusión respectivamente; , es la derivada de evaluada en el límite es la variable por la que estamos resolviendo.σLa,dux=uxuu

Posibles enfoques

Puedo pensar en dos formas de implementar esta condición de límite en la malla de volumen finito anterior:

  1. Un enfoque de célula fantasma.

    Escriba como una diferencia finita, incluida una celda fantasma. ux

    σL=du1u0h+au(xL)

    A. Luego use interpolación lineal con puntosx0 yx1 para encontrar el valor intermedio,u(xL) .

    B. Alternativamente encuentre u(xL) promediando sobre las celdas, u(xL)=12(u0+u1)

    En cualquier caso, la dependencia de la célula fantasma puede eliminarse de la forma habitual (mediante sustitución en la ecuación de volumen finito).

  2. Un enfoque de extrapolación.

    Ajuste una función lineal (o cuadrática) a u(x) utilizando los valores en los puntos x1,x2 ( x3 ). Esto proporcionará el valor en u(xL) . La función lineal (o cuadrática) se puede diferenciar para encontrar una expresión para el valor de la derivada, ux(xL) , en el límite. Este enfoque no utiliza una célula fantasma.

Preguntas

  • ¿Qué enfoque de los tres (1A, 1B o 2) es "estándar" o recomendaría?
  • ¿Qué enfoque introduce el error más pequeño o es el más estable?
  • Creo que puedo implementar el enfoque de célula fantasma yo mismo, sin embargo, ¿cómo se puede implementar el enfoque de extrapolación? ¿Este enfoque tiene un nombre?
  • ¿Hay alguna diferencia de estabilidad entre ajustar una función lineal o una ecuación cuadrática?

Ecuación específica

Deseo aplicar este límite a la ecuación de advección-difusión (en forma de conservación) con un término fuente no lineal,

ut=aux+duxx+s(x,u,t)

Discretización esta ecuación en lo anterior con malla usando el -method da,θ

wjn+1θrawj1n+1θrbwjn+1θrcwj+1n+1=wjn+(1θ)rawj1n+(1θ)rbwjn+(1θ)rcwj+1n+s(xj,tn)

Sin embargo, para el punto límite ( ) prefiero usar un esquema totalmente implícito ( θ = 1 ) para reducir la complejidad,j=1θ=1

w1n+1raw0n+1rbw1n+1rcw2n+1=w1n+s1n

Observe el punto fantasma , esto se eliminará aplicando la condición de contorno.w0n+1

Los coeficientes tienen las definiciones,

ra=Δthj(ahj2h+dh)

rb=Δthj(a2[hj1hhj+1h+]+d[1h1h+])

rc=Δthj(ahj2h++dh+)

Todas las variables " " se definen como en el diagrama anterior. Finalmente, Δ t , que es el paso de tiempo ( NB este es un simplificado caso con constantes a y d coeficientes, en la práctica los " r coeficientes" son un poco más complicado por esta razón).hΔtadr


1
El libro más reciente de LeVeque sobre métodos de volumen finito aboga por las células fantasmas, debido a su simplicidad de implementación, pero no recuerdo la discusión de los términos de error.
Geoff Oxberry

¿Puedes anotar las ecuaciones que quieres resolver? El camino a seguir también dependerá del problema. Por ejemplo, bien puede ser que debido a la parte 'Neumann', las condiciones de contorno se resuelven naturalmente en la formulación discreta.
Jan

@ GeoffOxberry gracias por la sugerencia. Estoy contento de usar la célula fantasma, intentaré implementarlo de esa manera.
boyfarrell

@ Jan Inicialmente evité poner las ecuaciones por la complejidad debido a la discretización de malla no uniforme, pero acabo de actualizar la pregunta con estos detalles. Este es un problema de advección-difusión. No estoy muy seguro de lo que quieres decir con "resuelto naturalmente".
boyfarrell

Al igual que Neumann bc, se resuelven naturalmente en esquemas FEM para, por ejemplo, la ecuación de Poisson. Para FVM pienso en: Considere la primera celda . Si tienes un valor para u x0hdx(au+dux)dx=(au+dux)|x=h1(au+dux)|x=0=suxen el límite, no hay necesidad de discretizarlo.
Jan

Respuestas:


9

Esto es más bien una observación general sobre FVM que una respuesta a las preguntas concretas. Y el mensaje es que no debería existir la necesidad de una discretización ad hoc de las condiciones de contorno.

A diferencia de los métodos FE o FD, donde el punto de partida es una respuesta discreta para la solución, el enfoque FVM deja la solución intacta (al principio) pero promedia una segmentación del dominio. La discretización de la solución entra en juego solo cuando el sistema de ecuaciones de equilibrio obtenido se convierte en un sistema de ecuaciones algebraicas al aproximar los flujos a través de las interfaces.

En este sentido, en vista de las condiciones de contorno, aconsejo mantener la forma continua de la solución el mayor tiempo posible e introducir las aproximaciones discretas solo al final.

Digamos, la ecuación mantiene en todo el dominio. Luego se mantiene en el subdominio [ 0 , h 1 ) , y una integración en el espacio da h 1 0 u t d x

ut=aux+duxx+s(x,u,t)
[0,h1) que es la contribución de la primera celda al sistema de ecuaciones. Tenga en cuenta que, aparte de tomar solo promedios, no ha habido discretización deusted.
0 0h1tutreX=0 0h1X(-untu+retuX)reX+0 0h1s(X,tu,t)reX=(-untu+retuX)El |X=h1-(-untu+retuX)El |X=0 0+0 0h1s(X,tu,t)reX,
tu

Pero ahora, para convertir esto en una ecuación algebraica, normalmente se supone que en la celda la función u es constante en el espacio, es decir, u ( t , x ) | C i = u i ( t ) . Así, habiendo asociado u ( x i ) u i , se puede expresar u x | h i en las celdas a través del cociente de diferencia en u i y u i + 1Cyotutu(t,X)El |Cyo=tuyo(t)tu(Xyo)tuyotuXEl |hyotuyotuyo+1tu

(-untu+retuX)El |X=0 0tu

  • Dado tuEl |X=0 0=solre uno puede introducir una célula fantasma y la condición de que un interpolante entre tu0 0 y tu1 es igual a solre en el huésped.

  • Dado tuXEl |X=0 0=solnorte uno puede introducir una celda fantasma y la condición de que una aproximación a la derivada entre tu0 0 y tu1 partidos solnorte en el huésped

  • Si se prescribe el flujo en sí: (-untu+retuX)El |X=0 0=solR, no hay necesidad de una discretización.

Sin embargo, no estoy seguro de qué hacer en caso de que haya Robin tipo bc que no coincidan directamente con el flujo. Esto necesitará cierta regularización debido a la discontinuidad de los parámetros de advección y difusión.


===> Algunos pensamientos personales sobre FVM <===

  • FVM no es un FDM escalado, como a menudo sugieren ejemplos de ecuaciones de 1D Poisson en una cuadrícula regular
  • No debería haber una cuadrícula en FVM, debería haber celdas con interfaces y, si es necesario, centros
  • Por eso creo que una formulación de plantilla de la discretización no es adecuada.
  • El ensamblaje del sistema de ecuaciones debe hacerse de acuerdo con el enfoque de discretización, es decir, iterando sobre las celdas en lugar de definir una ecuación para cada desconocido. Me refiero a pensar en elyoquinta fila de la matriz de coeficientes como parte del problema planteado en la celda Ωyo, en lugar de la ecuación asociada con tuyo.
  • Esto es particularmente importante para problemas 2D o 3D, pero también puede ayudar a tener una notación clara en 1D: haga una diferencia entre el volumen (en 1D: longitud) de la celda, aquí hyo, y la distancia entre los centros, tal vez en 1D: reyo: =reyo,yo+1=El |Xyo-Xyo+1El |.


Gracias por su orientación mientras aprendía sobre este método. Quizás yo también pueda compartir mis pensamientos. Estoy de acuerdo en que es mejor decir con el formulario FVM el mayor tiempo posible; particularmente para las condiciones de contorno como has mostrado! Pero creo que es muy útil al implementar escribir la ecuación en forma matricial; Es una notación precisa y clara. Además, la estabilidad y otras propiedades numéricas dependen crucialmente de cómo se discretiza el problema (para FVM esto significa cómo se aproximan los flujos y las caras de la celda). En ese sentido, prefiero una ecuación matricial, a una iteración sobre las celdas.
boyfarrell

Quizás mi último punto fue ambiguo. Al final, tendrá una matriz de coeficientes y un vector variable. Editaré mi publicación. Estaba más interesado en interpretar que en hacer.
Jan

Fantástico, entiendo tu punto. Gracias.
boyfarrell
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.