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.
el perfil de carga (el término fuente) viene dado por,
y las condiciones de contorno son,
y el dominio es .
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.
¿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).