adv-diff-reac

Solución numérica del problema de advección-difusión-reacción con FDM y FEM en Python

https://github.com/GabrielaGutierrez2025/adv-diff-reac

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (4.1%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Solución numérica del problema de advección-difusión-reacción con FDM y FEM en Python

Basic Info
  • Host: GitHub
  • Owner: GabrielaGutierrez2025
  • Language: Jupyter Notebook
  • Default Branch: main
  • Size: 362 MB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created about 1 year ago · Last pushed 11 months ago
Metadata Files
Readme Citation Authors

README.md

Solver de la EDP de AdveccinDifusinReaccin

Autora: Gabriela Gutirrez
Fecha: Junio 2025

Descripcin

Este repositorio implementa un solver numrico para la ecuacin de adveccindifusinreaccin en un dominio rectangular 2D.

Ecuacin a resolver

math \frac{\partial c}{\partial t} + A[c](t,x,y) = f(t,x,y), \quad A[c](t,x,y) = \mathbf{V}(t,x,y)\cdot\nabla c - D\Delta c + \kappa c

con \$(t,x,y)\in [0,T]\times [0,L{x}]\times [0,L{y}]\$.

Con condiciones de contorno Dirichlet homogneas:

math c(t,x,y) = 0 \quad (t, x, y) \in \partial([0,L_{x}]\times[0,L_{y}]), \forall t\in[0,T]

Condicin inicial:

math c(0,x,y) = c_0(x,y)

Parmetros dados: \$D\$, \$\kappa\$, funciones \$\mathbf{V}(t,x,y)\$, \$f(t,x,y)\$ y \$c_0(x,y)\$.

Resumen de resultados

En este proyecto implementamos y comparamos dos tcnicas numricas para resolver la ecuacin de adveccindifusinreaccin en 2D:

  1. Mtodo de Diferencias Finitas (FDM)
  2. Mtodo de Elementos Finitos P1 (FEM)

A partir de un pulso gaussiano inicial centrado en \$(0.5,0.5)\$, las animaciones en results/ ilustran:

  • Transporte: cmo el pulso viaja a lo largo del dominio arrastrado por el campo de velocidades \$\mathbf V(t,x,y)\$.
  • Difusin: ensanchamiento gradual de la campana segn el coeficiente \$D\$.
  • Reaccin: atenuacin exponencial de la amplitud con el parmetro \$k\$.

Ejemplos de salidas

Animacin FDM    Animacin FEM

  • FDM (animacion_caso2_fdm.gif):
    Se observa como la campana se ensancha por difusin, se desplaza arrastrada por el campo de velocidades y va perdiendo altura de forma suave por el trmino de reaccin

  • FEM (animacion_caso2_fem.gif):
    Muestra el mismo experimento con elementos finitos P1. La onda inicial se difunde en el espacio, viaja segn el flujo dinmico y se diluye gradualmente por la reaccin.


Estructura del proyecto

adf-diff-reac/ src/ # Cdigo fuente Python (fdm.py, fem.py, adv_diff_reac.py) notebooks/ # Jupyter Notebooks de pruebas y exploraciones results/ # Figuras, animaciones y datos de salida docs/ # Documentacin adicional .gitignore # Archivos ignorados por Git requirements.txt# Dependencias Python README.md # Documentacin del proyecto

Instalacin

bash git clone https://github.com/EDP-2025/adv-diff-reac.git cd adv-diff-reac python3 -m venv venv source venv/bin/activate pip install -r requirements.txt

Uso

Ejecuta el script principal:

bash python src/adv_diff_reac.py

  • Genera la animacin FDM en results/anim_fdm.gif.
  • Genera la animacin FEM en results/anim_fem.gif.

Etapas del trabajo

  1. FDM: Implementacin y resultados.
  2. FEM: Implementacin con elementos de orden 1 y triangulacin predefinida.
  • Enunciado y etapas frmula, BC, CI y desglose de tareas.
  • Resultados FDM animaciones y conclusiones de los distintos casos haciendo uso del mtodo de diferencias finitas.
  • Resultados FEM animaciones y conclusiones de los distintos casos haciendo uso del mtodo de elementos finitos.

Referencias

Consulta todas las referencias en docs/referencias.md.

  • AUTHORS Lista de autores y contribuciones.

Owner

  • Name: Gabriela Gutierrez
  • Login: GabrielaGutierrez2025
  • Kind: user

GitHub Events

Total
Last Year