Simulación de producción de pozo a separador y DSL de correlaciones PVT

Trabajo anterior a SIMYL Research de un integrante del equipo; la procedencia está al final de la ficha.

Problema

Una startup de software para ingeniería de producción petrolera, de la que el responsable formó parte, necesitaba calcular las propiedades de los fluidos en función de la presión, el volumen y la temperatura (PVT) con las correlaciones publicadas en la literatura, cada una con sus unidades, su rango de validez y su origen, y usarlas en un simulador de la producción desde el fondo del pozo hasta el separador. Escribir cada correlación a mano en C++ era lento y propenso a errores de unidades y de rango.

Intervención

  • Un lenguaje específico de dominio (DSL) en Ruby para definir cada correlación de forma declarativa: nombre, familia, unidad del resultado, parámetros con sus unidades y rangos, sinónimos, descripción de los datos de origen, referencia bibliográfica y ecuación. Un generador produce el código C++ a partir de esas definiciones.
  • Una biblioteca en C++ que ejecuta las correlaciones con magnitudes físicas tipadas: una unidad incompatible o un resultado fuera de rango se señalan como error, no como un número silenciosamente equivocado. Incluye herramientas de ajuste de correlaciones y una batería de pruebas.
  • El módulo de unidades nació en ese proyecto y siguió evolucionando como biblioteca independiente, uconv, hoy en C++20.
  • Sobre esa base se construyó el backend de simulación de la producción desde el fondo del pozo hasta el separador.

Resultados registrados

  • 188 correlaciones PVT de petróleo, gas y agua, organizadas en 35 familias, definidas en el DSL y publicadas con su referencia bibliográfica en back-pvt, bajo licencia GPL-3.0.
  • El historial público de back-pvt va de julio de 2016 a abril de 2018, con 1.282 commits del responsable y 65 de otra persona.
  • La biblioteca de unidades sigue mantenida: uconv tiene historial desde marzo de 2017 hasta 2026, con integración continua.

Límites

La startup no llegó a tener clientes, así que el simulador no se usó en producción con terceros; funcionó en desarrollo y pruebas internas, y sus componentes específicos no se publicaron. Las cifras de esta ficha son recuentos verificables en los repositorios, no resultados de negocio.

Procedencia

Trabajo previo de Leandro Rabindranath León, integrante de SIMYL Research, como desarrollador principal de una startup de la que formó parte: diseño del DSL, de la biblioteca y del backend de simulación, hasta 2018. Otra persona colaboró en la documentación. Código publicado como software libre: back-pvt y uconv.

Cuéntanos tu proyecto.