Tema: Monte Carlo cinético para un sistema de reacción-difusión
**A cargo de:** Ernesto Medina (@ernestom) <br>
\ No newline at end of file
**Tema:** Monte Carlo cinético para un sistema de reacción-difusión <br>
---------------------------------
Dentro de este repositorio se encuentran los siguientes archivos:
CARPETAS: <br>
-**Carpeta 'Archi'**: Carpeta necesaria para correr el código (actualmente se encuentra vacía) <br>
-**Carpeta 'Ejemplos'**: Carpeta que contiene arhivos ejemplos de las simulaciones <br>
-**Carpeta img** : Contiene las imagenes de este README
ARCHIVOS: <br>
-**Articulo.pdf** : Es el documento con el artículo referente al proyecto <br>
-**Video_presentación.mp4 **: Sustentación oral del Articulo.pdf (_En construcción_) <br>
-**Explicaciones_cod.ipynb**: Notebook de python que contiene el código y explicaciones referentes a su construcción <br>
-**Ejemplo.ipynb** : Notebook que permite visualizar los resultados del ejemplo
-**main.py**: Contiene los códigos base explicados en el Notebook.ipynb para su posterior uso <br>
-**run.py**: Contiene el código para correr el código
---------------------------------
#### Tabla de contenido
-[Sistema de trabajo](#sistema-de-trabajo)
-[Objetivos](#objetivos)
-[Archivos importantes](#archivos-importantes)
-[Para correr los códigos](#para-correr-los-códigos)
-[Para visualizar el ejemplo](#para-visualizar-el-ejemplo)
-[Referencias](#referencias)
---------------------------------
#### Sistema de trabajo
Se considera una red unidimensional discreta de longitud 2L con reactantes inicialmente separados, las partículas A se encuentran en la región del espacio −L $\leq$ x $<$0mientrasquelasBenlaregiónL$\geq$x$>$ 0. Cada sitio de la red puede estar ocupado cuando más por una sola partícula y dichas partículas están sometidas por la siguiente reacción:
$$A+B \rightarrow^\beta C$$
donde C es una partícula inerte y β es la tasa de reacción. La dinámica del sistema se
define a continuación:
- Las partículas ejecutan saltos aleatorios exclusivamente entre sus vecinos más cercanos vacíos, moviéndose una distancia ∆x en un intervalo de tiempo ∆t. Estos saltos ocurren con una probabilidad λ∆t, en donde λ es la tasa de salto de tal forma que el coeficiente de difusión (D) está dado por λ=D/∆x2.
- En los sitios de red −L y L, se tiene flujos de partículas A y B respectivamente, cada uno con corriente J. De esta forma, el número promedio de partículas que entran a la red en un paso de tiempo, es J∆t.
- Por otro lado, en el sistema una reacción ocurre con una probabilidad β ∆t cuando dos partículas A y B se encuentran una al lado de la otra. Además, se define la constante de reacción como k=β∆x.
Cabe resaltar que en nuestro sistema el estado estacionario se alcanza debido a
que en los extremos izquierdo y derecho del sistema se depositan partículas A y B,
respectivamente lo que compensa la disminución de partículas debida a la reacción.
<imgsrc= "img/sistema.PNG"width=400height=400>
#### Objetivos
**OBJETIVO GENERAL:**<br>
Encontrar la dinámica del sistema, así como su estado estacionario, por medio del
método de Monte Carlo cinético. Posteriormente encontrar la distribución
de espaciamientos entre las dos partículas.
**OBJETIVOS ESPECIFICOS:**<br>
- Encontrar la distribución de espaciamiento en el estado estacionario
- Encontrar la evolución de las partículas A en el estado estacionario
- Encontrar la evolución de las partículas B en el estado estacionario
----------------------------------------------
#### Archivos importantes
Para entender la estructuración del código, asi como también el sistema de trabajo y los resultados obtenidos, por favor leer y/o ver:
-**Articulo.pdf**
-**Video_presentación.mp4 **
-**Explicaciones_cod.ipynb**
----------------------------------------------
#### Para correr los códigos
**ADVERTENCIA**: Antes de correr el código, por favor correr el ejemplo, ya que para las simulaciones el costo de tiempo es bastante alto, por lo que se recomienda como primera instancia ver los ejemplos.
Las funciones principales para correr el código se encuentran en el archivo 'main.py', para correr el código con el archivo 'run.py' se requiere descargar la carpeta 'Archi' o crear una con ese mismo nombre, en el directorio donde se encuentra 'main.py' y 'run.py', en dicha carpeta se escribiran archivos de formato txt con los resultados de las simulaciones.
Para correr el código se requiere ingresar los siguientes parametros: <br>
- L : 1/2 de la longitud del sistema
- D : Coeficiente de difusión
- j : Corriente de incerción
- K : Constante de reacción
- tiempo : Tiempo de simulación
- rep : Repeticiones de la simulación
- nombre: Nombre que le da el usuario a los archivos txt que se generaran
Correr el archivo 'Ejemplo.ipynb' que contiene los resultados de simulaciones realizadas. Para su correcta visualización, se requiere tener la carpeta 'Ejemplos' en el mismo directorio donde se tiene el notebook. Dentro de este notebook se muestran las imagenes presentadas en la sección de resultados del Articulo.pdf