Error peculiar al resolver la ecuación de Poisson en un método de volumen finito de malla no uniforme (solo 1D)

9

He estado tratando de depurar este error los últimos días, me preguntaba si alguien tiene consejos sobre cómo proceder.

Estoy resolviendo la ecuación de Poisson para una distribución de carga escalonada (un problema común en la electrostática / física de semiconductores) en una malla de volumen finito no uniforme donde lo desconocido se define en los centros celulares y los flujos en las caras celulares.

0=(ϕx)x+ρ(x)

el perfil de carga (el término fuente) viene dado por,

ρ(x)={1,if 1x01,if 0x10,otherwise

y las condiciones de contorno son,

ϕ(xL)=0ϕx|xR=0

y el dominio es .[10,10]

Estoy usando un código desarrollado para resolver la ecuación de advección-difusión-reacción (me he escrito, vea mis notas aquí, http://danieljfarrell.github.io/FVM ). La ecuación de advección-difusión-reacción es un caso más general de la ecuación de Poisson. De hecho, la ecuación de Poisson se puede recuperar estableciendo la velocidad de advección en cero y eliminando el término transitorio.

El código ha sido probado en una serie de situaciones para cuadrículas uniformes, no uniformes y aleatorias y siempre produce soluciones razonables ( http://danieljfarrell.github.io/FVM/examples.html ) para la ecuación de advección-difusión-reacción.

Para mostrar dónde se descompone el código, hice el siguiente ejemplo. Configuré una malla uniforme de 20 celdas y luego la hice no uniforme al eliminar una sola celda. En la figura izquierda, eliminé la celda y en la derecha Ω 9 se eliminó. La novena celda cubre la región donde el término fuente (es decir, la carga) cambia de signo. El error aparece cuando la cuadrícula no es uniforme en una región donde el término de reacción cambia de signo . Como puede ver abajo.Ω8Ω9

¿Alguna idea de qué posibilidad podría estar causando este problema? Avíseme si sería útil obtener más información sobre la discretización (no quería incluir demasiados detalles en esta pregunta).

Error peculiar al resolver la ecuación de Poisson

boyfarrell
fuente
x=0ρ=1
¿Cómo se ve el término de reacción?
Jan
¿Qué esquema utiliza para aproximar las integrales del término fuente? Este comportamiento también puede deberse a un muestreo insuficiente de la fuente. (Cuál es, probablemente, el mismo mecanismo mencionado en la respuesta de @JLC.)
Jan
ρρ
@JLC, los BC de Dirichlet se imponen utilizando un enfoque de celda fantasma (mis notas en línea no están actualizadas con respecto a este detalle de implementación), vea aquí cómo lo hago, scicomp.stackexchange.com/questions/8538/…
boyfarrell

Respuestas:

9

Por otro lado, su documentación de github es fantástica.

Esto es solo una suposición de los métodos DG, que pueden tener problemas similares si los flujos numéricos no se eligen con cuidado (me imagino que los métodos FV son un subconjunto de los métodos DG). Si está utilizando la interpolación de los centros celulares para definir sus flujos, entonces esto debería ser equivalente a usar el promedio como flujo numérico en DG y usar una base constante por partes. Para los métodos DG estándar para Poisson, esto lleva a soluciones numéricamente no únicas: puede obtener un espacio nulo no trivial para el operador discreto, que creo que es lo que está causando sus problemas en el segundo ejemplo. Vea este documento de DG para conocer su teoría desde el lado de DG.

Intentaré simular un ejemplo para FV que muestre cómo entra esto en juego.

ρ(x)=0f(x20)=0f(x19)==f(x11)=0ϕ(x)

f(xi+1)f(xi)=0f(10)=0f(10)=ϕ9.5ϕghost=ϕ9.5f(xi)=f(10)=ϕ9.5

f(10)ϕ(9.5)

x=10

Jesse Chan
fuente
Después de experimentar, puedo demostrar que el método FVM solo es estable cuando las celdas a ambos lados de la discontinuidad (cambio de signo) de la función fuente tienen volúmenes iguales. ¿Su análisis estaría de acuerdo con esto? Esto significa que debo prestar más atención a generar una cuadrícula sensible de mis problemas que he hecho antes. ¿Quizás debería considerar aprender el método FEM a continuación?
boyfarrell
Un artículo relevante, aunque no acabo de seguir todas los detalles, jstor.org/discover/10.2307/2157873
boyfarrell
El método FVM solo es estable en este caso cuando la cuadrícula está alineada de alguna manera con la función fuente. Si su función fuente cambia, entonces tendrá que ajustar su grilla nuevamente. No creo que generar una cuadrícula sensible sea el enfoque correcto para este problema: tiene un método inestable.
Jesse Chan
Eso es un buen hallazgo. Suli es un analista sólido. Diría que aprender FEM puede ser divertido, pero FD también debería funcionar para cualquier problema elíptico 1D. También puede ver lo que hace la gente de FV (tal vez aumentar sus flujos con términos de penalización) para obtener la convergencia de los problemas elípticos de segundo orden en las redes generales. La sabiduría popular matemática por lo general dice que FV / FD enrollado es excelente para problemas hiperbólicos, mientras que FEM / FD central dif. Es excelente para elíptica.
Jesse Chan
Estoy revisando este problema. Releyendo tu respuesta, ¡debo decir que es fantástico! Veo su punto de que el método debería cambiar porque esa es la raíz del problema (no la cuadrícula). ¿Tiene alguna sugerencia o cosas que podría seguir (que son accesibles para un no experto) sobre cómo aproximar mejor el flujo en este caso. Es decir, de una manera que podría hacerlo más estable. Si es posible, me gustaría encontrar una mejor FVM para esta ecuación.
boyfarrell
0

Lo primero que debe notar son sus condiciones de contorno. Como puede cambiar la pendiente y el valor, no tiene condiciones de Dirichlet ni de Neumann.

Entonces, cada línea recta es una solución donde el lado derecho es cero. Tienes esa parte.

hh

Guido Kanschat
fuente
1
ρ0ϕ0