ReactSim Studio es un simulador técnico de reactores batch ideales desarrollado en Python. Su objetivo es ofrecer una base sólida para análisis, validación y estudio de casos de reacción en fase líquida mediante una interfaz de escritorio moderna, un motor numérico reproducible y una arquitectura preparada para crecer.
El proyecto combina una GUI en PySide6 con un núcleo de simulación desacoplado que normaliza entradas al Sistema Internacional, valida coherencia física y resuelve balances diferenciales con scipy.integrate.solve_ivp.
ReactSim Studio está orientado a uso técnico general. Puede utilizarse para análisis preliminar, evaluación de escenarios, demostración de comportamiento dinámico, validación de casos de referencia y extensión futura hacia modelos más complejos.
- Simulación de reactores batch ideales en fase líquida y volumen constante.
- Modo isotérmico, no isotérmico adiabático y no isotérmico con chaqueta a temperatura constante.
- Resolución numérica con
RK45,RadauyBDF. - Selección automática de solver con lógica de respaldo y diagnóstico.
- Cinética por ley de potencia.
- Cinética con dependencia de Arrhenius.
- Cinética personalizada segura mediante expresiones validadas.
- Conversión automática de unidades al Sistema Internacional.
- Detección y reporte de errores de entrada con ayudas visuales en la GUI.
- Gráficas interactivas con vista ampliada, zoom e inspección de puntos.
- Exportación de casos y resultados a PDF.
- Guardado y carga de casos en formato propio
.reactsim. - Biblioteca de benchmarks ReactSim integrada.
- Consola de cálculo para seguir la lógica interna de la simulación.
- Construcción de distribución Windows mediante
PyInstaller.
La versión actual trabaja bajo las siguientes hipótesis:
- Mezcla perfectamente agitada.
- Fase líquida.
- Volumen constante.
- Una sola reacción irreversible.
- Propiedades térmicas tratadas como constantes dentro del caso.
- Estados formulados en concentraciones y, cuando aplica, temperatura.
Actualmente no se incluyen:
- Gases ideales.
- Volumen variable.
- Múltiples reacciones simultáneas.
- Reacciones reversibles.
- Dependencia explícita de propiedades con la temperatura más allá del marco cinético tipo Arrhenius.
El proyecto está dividido para separar claramente la interfaz de usuario, el motor físico-numérico y los recursos de ejecución.
ReactSim/
├── compiler/ # Scripts de distribución y build con PyInstaller.
├── docs/ # Manual técnico y documentación exportada.
├── public/ # Recursos públicos auxiliares.
├── src/
│ ├── batch/
│ │ ├── resources/ # Íconos, benchmarks y rutas de recursos.
│ │ ├── simulation/ # Núcleo matemático, validación y motor numérico.
│ │ ├── ui/ # Arranque, splash, tema y ventana principal.
│ │ └── README.md # Mapa general del paquete batch.
│ └── reactsim.egg-info/ # Metadata generada por setuptools.
├── LICENSE
├── pyproject.toml
├── requirements.txt
└── README.md
- Python 3.10 o superior.
- Windows 10 u 11 para la build distribuible actual.
pipactualizado.
- Clona el repositorio.
git clone https://github.com/DTCarlox77/ReactSim.git
cd ReactSim- Crea y activa un entorno virtual.
Windows.
python -m venv venv
venv\Scripts\activatemacOS o Linux.
python -m venv venv
source venv/bin/activate- Instala dependencias.
pip install -r requirements.txtCon el entorno activo, puedes iniciar la aplicación con cualquiera de estos comandos:
reactsimo:
ReactSimTambién puedes ejecutarla directamente desde el módulo principal:
python src/batch/ui/main.py- Define el caso en la pestaña de datos generales.
- Agrega especies, coeficientes estequiométricos y concentraciones iniciales.
- Configura la cinética mediante ley de potencia o expresión personalizada.
- Si aplica, define el balance térmico del caso.
- Ejecuta la simulación.
- Revisa el resumen, las gráficas, la tabla, los mensajes y la terminal de cálculo.
- Guarda el caso en
.reactsimo exporta el reporte en PDF si necesitas trazabilidad.
ReactSim Studio usa el formato .reactsim para guardar casos. Esto permite:
- Recuperar una simulación sin volver a escribir entradas.
- Compartir benchmarks o escenarios entre usuarios.
- Mantener una biblioteca interna de casos de referencia.
El proyecto incluye:
- Benchmarks ReactSim integrados dentro de la aplicación.
- Manual técnico en
docs/ReactSim_instructivo_tecnico.pdf.
La carpeta compiler/ contiene el flujo de empaquetado para Windows con PyInstaller.
Para generar una distribución lista para compartir:
python compiler/build.pyEsto genera:
- Una carpeta distribuible en
dist/ReactSim. - Un comprimido listo para compartir en
dist/ReactSim-<version>-windows.zip.
Opcionalmente, también puede generarse una build onefile:
python compiler/build.py --onefileLa opción recomendada sigue siendo onedir, porque suele ser más estable en aplicaciones Qt con recursos gráficos y científicos.
ReactSim Studio está diseñado para poder ampliarse sin reescribir el sistema completo. La separación entre ui/ y simulation/ permite evolucionar el motor, agregar nuevas hipótesis de modelado o construir nuevos flujos de análisis sobre una base estable.
Si deseas extenderlo, el mejor punto de entrada es:
src/batch/simulation/README.md, para entender el motor.src/batch/ui/window/README.md, para entender la ventana principal.compiler/README.md, para entender el flujo de distribución.
Este proyecto se distribuye bajo la Licencia MIT.
Hecho por: Carlos Adrián Espinosa Luna y Blanca Gisell Rivas Medal.
Supervisado por: MSc. Juan Manuel Alonso Santos.
Universidad Nacional de Ingeniería.