0:00 · portada mientras entra la gente Ventanas: A este deck; B terminal en el repo; C terminal en ~/sw-volve con el agente SIN lanzar, letra grande y tema claro; D visor de imágenes sobre ~/sw-volve/corridas; E navegador con bitacora.html; F fuera de pantalla, el guion y docente/plan-b/tabla.md. El minuto a minuto completo está en docente/guion.md.
2 min · acumulado 0:02 Todo corre en mi máquina. Ustedes se llevan el repo para repetirlo. La clase sirve si al final pueden decir qué le pedirían a un agente y qué le revisarían.
0 min · acumulado 0:02 Arranca 0:00, termina 0:25.
2 min · acumulado 0:04 Sm³: metro cúbico en condiciones estándar. Los datos de campo son de la ficha de la Norwegian Offshore Directorate (Sodir); el acumulado sale del archivo de producción del operador. Equinor liberó el conjunto en 2018.
3 min · acumulado 0:07 Un alto de unos 1.5 por 2.5 km con el tope cerca de 2,800 m en la cresta. En color, los siete pozos que usamos, con su tramo dentro del Hugin. Los tres 19 son pozos de exploración de 1993 a 1998; los F salen de la plataforma. Los puntos negros son los otros pozos con tope del Hugin.
3 min · acumulado 0:10 BCU: base Cretaceous unconformity, la discordancia de la base del Cretácico, el sello regional. En nuestros pozos el Hugin tiene de 18 m (19 SR) a 126 m (19 BT2) de espesor vertical, y se adelgaza hacia el oeste. No hay en público superficies de Sleipner ni de Skagerrak, ni polígonos de falla: los topes de pozo son la única fuente para lo que está debajo.
4 min · acumulado 0:14 19 SR, F-12, F-4 y 19 A cruzan el Hugin con petróleo, cada uno a una profundidad distinta: entre los cuatro cubren de 2,818 a 3,101 m. 19 BT2 lo cruza entero en agua, de 3,149 a 3,275 m. F-5 baja por el flanco este hasta 3,144 m. F-11 B corre cerca del tope y entra y sale por fallas. La línea de los horizontes sale del mapa, con su incertidumbre.
3 min · acumulado 0:17 La regla de la clase: se ajusta solo con pozos perfilados antes de producir. F-4 es el caso límite: sus perfiles de reservorio son del 7 y del 11 de febrero de 2008, la semana anterior al primer petróleo. Dos pozos posteriores quedan como control, y no son equivalentes. F-5 se perfiló a fines de julio de 2008: el campo había producido 0.5 millones de Sm³ de petróleo, el 5% de lo que terminó produciendo, y el propio F-5 todavía no inyectaba. El único inyector, F-4, está a 830 m y llevaba 0.5 millones de Sm³ inyectados. Vale como estado inicial. F-11 B se perforó en junio de 2013: 7.75 millones de Sm³ de petróleo producidos, el 77% del total final, 19 millones de Sm³ de agua inyectados y un corte de agua del 85%. Puede estar barrido.
3 min · acumulado 0:20 TVDSS: true vertical depth subsea, metros verticales bajo el nivel del mar. La arena neta está en metros de pozo, una celda por metro. Los controles nunca se le muestran al caso. F-5 está sin barrer: un buen modelo lo predice tan bien como a los pozos de ajuste. F-11 B es posterior a cinco años de inyección y su Sw es igual o mayor que la inicial: un buen modelo queda igual o por debajo de ese perfil.
3 min · acumulado 0:23 Todo se baja de espejos públicos y queda fijado por su hash. Los dos informes son el petrofísico del operador de 2006 y el PVT de laboratorio del petróleo de F-4.
2 min · acumulado 0:25 Preguntar a la sala: ¿dónde pondrían el contacto? Anotar dos o tres respuestas, vuelven en el bloque 3. Petróleo hasta 3,101 m en 19 A, agua desde 3,149 m en 19 BT2. Ningún pozo vio el contacto. Cierre del bloque 1.
0 min · acumulado 0:25 Arranca 0:25, termina 0:45.
5 min · acumulado 0:30 No hay potencial espontáneo (SP): los pozos se perforaron con lodo base aceite. La arena se marca con rayos gamma y volumen de arcilla. Leer las pistas en orden. La última es la que importa para hoy: BVW (bulk volume water) es porosidad por saturación, el agua por unidad de roca. El celeste claro es agua que la roca retiene; el azul oscuro, agua que puede moverse.
5 min · acumulado 0:35 En F-4 la zona de transición está dentro del pozo: debajo de 3,015 m hay agua móvil. En 19 A, 70 m más abajo, casi no la hay. Esa diferencia es la pregunta del bloque 8: ¿hay una cubeta en la base? Dato de procedencia: la permeabilidad de F-12 en el archivo de 2007 es unas 40 veces menor que la revisión de 2009 del operador. Usamos la revisión. La función J depende de la raíz de k.
6 min · acumulado 0:41 Izquierda, Buckles: los puntos sobre una línea de BVW constante tienen solo agua irreducible. F-12, 19 SR y buena parte de 19 A y F-4 caen entre 0.02 y 0.04. 19 BT2 queda aparte: es agua. Derecha: Sw contra permeabilidad con la línea de Swirr del operador. Con esa línea, hay agua móvil en el 17% de la arena de 19 A, el 27% de F-12, el 37% de F-4 y el 99% de 19 BT2. Mucho punto queda por debajo de la línea: el Swirr del operador es alto para estos pozos. Vuelve en el bloque 6.
4 min · acumulado 0:45 La idea que ordena el ajuste. El agua irreducible depende de la calidad de roca y no de la altura. Lo que cambia con la altura sobre el contacto es el agua móvil, y eso es lo que describe una función J. Cierre del bloque 2.
0 min · acumulado 0:45 Arranca 0:45, termina 1:00.
4 min · acumulado 0:49 PVT: presión, volumen y temperatura, el estudio de fluidos. El petróleo está subsaturado: 100 bar por encima de la burbuja. No hay gas libre y el modelo es de dos fases. Estas dos densidades son las que usó el operador para su modelo de saturación-altura y las que quedan fijas en nuestro deck.
6 min · acumulado 0:55 La línea de agua sale de 16 puntos del probador de formación de 19 BT2: 0.1053 bar por metro, 1,074 kg/m³. La de petróleo pasa por el ensayo de 19 A con 720 kg/m³. Medio bar de error en el ensayo mueve el cruce 14 m. Y 19 BT2 puede estar en otro bloque. El punto de F-4 queda 6.7 bar por encima de la línea de petróleo: o la presión de 19 A está referida a otra profundidad, o son bloques distintos. No hay presiones en F-12.
5 min · acumulado 1:00 Volver a las respuestas del bloque 1. El rango de 120 m es lo que dejan los datos. Dentro de ese rango, el contacto es un parámetro más del ajuste. Cierre del bloque 3.
0 min · acumulado 1:00 Arranca 1:00, termina 1:20.
4 min · acumulado 1:04 OPM: Open Porous Media. Para quien usa Eclipse: las keywords son las mismas, con algunas sin soporte.
9 min · acumulado 1:13 Ventana B. instalar.sh: leer las tres etapas en voz alta. La imagen ya está bajada; decir que la primera vez pesa 1.2 GB. verificar.sh: Flow responde, SPE1 corre en cerca de un segundo, el caso base da su puntaje. Después, uv run evaluar.py a mano: mostrar el bloque de números y abrir la figura en la ventana D.
7 min · acumulado 1:20 Ventana B: ejercicio/preparar.sh, y después abrir settings.json. Leer la lista de permisos y la de prohibiciones. Lo que el agente no debe hacer se escribe como permiso, y lo que debe saber se escribe en CLAUDE.md. Cierre del bloque 4. Pausa de 10 minutos.
0 min · acumulado 1:30 Arranca 1:30, termina 1:55.
4 min · acumulado 1:34 Swn: saturación normalizada entre el agua irreducible y uno. Lo que supone: una sola familia de roca, mojabilidad uniforme, drenaje primario, y que k y φ del perfil representan la garganta poral. Cuando alguno falla, la nube de puntos se abre. σ·cosθ en reservorio no se mide: es un parámetro de escala. Lo dejamos fijo en el valor del operador, 2 mN/m, para comparar con su informe.
4 min · acumulado 1:38 Izquierda: a igual altura, la roca de 10 mD tiene mucha más agua que la de 1,000 mD. Derecha: las tres caen sobre la misma J. El ajuste de hoy son los parámetros de esa curva, más el contacto.
4 min · acumulado 1:42 Lo verifiqué en el deck público: la columna de presión capilar de sus tablas de saturación es cero y no usa JFUNC ni SWATINIT. Las dos formas son legítimas. La de campo honra el volumen del geomodelo; la de J explica por qué el agua está donde está.
2 min · acumulado 1:44 RMSE: root mean square error. En cada celda de arena neta se resta la Sw del perfil a la simulada, se eleva al cuadrado, se promedia y se saca la raíz. Un RMSE de 0.09 quiere decir que el modelo erra, en una celda típica, unos 9 puntos de saturación. El cuadrado castiga los errores grandes: un tramo con agua donde hay petróleo pesa más que muchos desvíos chicos. No llega a cero: el perfil cambia metro a metro por cosas que ninguna función de la roca explica. Tres números por caso: el de ajuste, con los cinco pozos que el caso ve; el del control inicial, F-5, que no ve y está sin barrer; y el del control barrido, F-11 B. Si el primero baja y el segundo sube, el modelo está aprendiendo los pozos y no la roca.
4 min · acumulado 1:48 Ventana C. Aceptar el diálogo de confianza leyéndolo en voz alta. Narrar qué herramienta llama: lee archivos, corre evaluar.py con --fragmento, abre SW.DATA, mira perfil.png. El caso base da rmse_ajuste 0.142, control inicial 0.295 y control barrido 0.205.
5 min · acumulado 1:53 Es la salida de evaluar.py --fragmento para el caso J1, sin los comentarios. El deck está partido: SW.DATA es el esqueleto, MODELO_*.INC la grilla y los fluidos, que no cambian, y estos archivos lo que decide un caso. Con JFUNC, la cuarta columna de SWOF deja de ser presión capilar en bar y pasa a ser J. Cuatro parámetros a la vista: la J de entrada (0.298), la forma de la tabla (dos números) y el contacto.
2 min · acumulado 1:55 Lo que hace revisable el trabajo del agente: cada cambio de caso toca solo AJUSTE_*.INC. Lo vamos a ver en el bloque que sigue. Cierre del bloque 5.
0 min · acumulado 1:55 Arranca 1:55, termina 2:35. Pegar PEDIDO-2.md al empezar: el agente necesita unos 12 minutos.
12 min · acumulado 2:07 Mientras el agente trabaja. Pedir a la sala que apueste: ¿el modelo de 2006 sin tocar ajusta mejor o peor que una J nueva de cuatro parámetros? Si el agente encuentra que la tabla 11 y las figuras del informe no coinciden, mostrarlo: es verdad. La tabla da Swirr = 0.45 − 0.105 log k para Volve; la figura 20.b rotula 0.412 − 0.088 log k.
6 min · acumulado 2:13 Leer la figura: siete pozos en una escala de profundidad, el FWL como línea de trazos, y a la derecha la nube de J de cada pozo con la curva. Las dos curvas son valores por celda y van en escalones. Casi no se ven porque cada celda mide entre 0.3 y 0.9 m verticales: el modelo está a la escala del perfil, con una celda por metro de pozo. En un modelo de campo, con capas de 1 a 3 m y celdas de 50 m de lado, se verían. Un modelo de 2006, hecho con pozos de Sleipner Øst y dos de Volve, reproduce pozos que no existían cuando se escribió. Su debilidad está en los controles. F-5, perfilado en 2008, tiene petróleo hasta 3,144 m: el contacto de 3,120 m del informe de 2006 queda 24 m dentro de esa columna. Y da más agua inicial que la que F-11 B tiene después de cinco años de inyección.
6 min · acumulado 2:19 El contacto queda en 3,150 m: entre el petróleo de 19 A y el agua de 19 BT2, que es donde los datos lo acotan. Mirar F-5, que el caso nunca vio: el modelo lo predice con 0.090, mejor que el promedio de los pozos de ajuste, y reproduce la subida de Sw entre 3,100 y 3,144 m. El contacto ajustado, 3,150 m, queda 6 m por debajo del último petróleo de F-5. En F-11 B, la transición que predice entre 3,100 y 3,170 m también está. El peor pozo es F-4: 0.147. El modelo no pone agua en su base.
6 min · acumulado 2:25 Tabla de referencia, ajustada con un optimizador clásico. Compararla con comparacion.md, la que acaba de escribir el agente. Cuatro lecturas. Una: el quinto parámetro de J2 no compra nada; J2 puede colapsar en J1 y da 0.112. Dos: los dos ajustes llevan el contacto a 3,150 m sin que nadie se lo pida, y F-5 lo confirma a ciegas. Tres: con el contacto en 3,120 m, el control inicial pasa de 0.09 a 0.30. Cuatro: F-4 queda mal en todos. El sesgo en F-11 B es −0.003 con J1 y +0.066 con el operador.
5 min · acumulado 2:30 Es diff corridas/j1/fragmento.txt corridas/op/fragmento.txt, recortado. Tres cambios y se leen: la tabla pasa a ir de 0 a 1 porque el agua irreducible sale de SWL celda por celda; la J de entrada sube de 0.3 a 2; el contacto sube 30 m. Esto es lo que un ingeniero revisa antes de aceptar un caso.
5 min · acumulado 2:35 Qué eligió el agente para un modelo de campo y si la sala está de acuerdo. J1 es el caso parsimonioso: menos parámetros, mejores controles. Su punto débil es que casi no tiene agua irreducible (0.02): toda el agua la explica la altura. Un petrofísico puede preferir J2 por eso. Antes de la pausa: pegar PEDIDO-3.md y dejar el loop corriendo. Cierre del bloque 6. Pausa de 10 minutos.
0 min · acumulado 2:45 Arranca 2:45, termina 3:15.
4 min · acumulado 2:49 Es una adaptación de autoresearch, de Andrej Karpathy, pensado para entrenar redes: un archivo fijo con la métrica, un archivo que el agente edita y un texto con las reglas. Cada experimento es un commit. Si mejora y es simple, queda; si no, git reset. Nada se pierde: la bitácora guarda también lo descartado.
3 min · acumulado 2:52 Abrir program.md y leer el formato del commit: hipótesis, mecanismo y predicción. Como el commit es anterior a la corrida, nadie puede escribir la hipótesis mirando el resultado. El criterio de simplicidad: una mejora que agrega parámetros se conserva solo si baja el error 0.004 por parámetro.
5 min · acumulado 2:57 Ventana E, bitacora.html. Arriba, el reproductor y las curvas del error de ajuste y de los dos controles por experimento: marca llena, conservado; hueca, descartado. Abajo, cada experimento con su hipótesis, el mecanismo, la predicción, el resultado, la lectura, el diff del deck y la figura. Si no terminó: Esc y pedirle el informe con lo que tenga. Plan B en docente/plan-b/ensayo/.
3 min · acumulado 3:00 Es el ensayo del 5 de octubre de 2026: 12 experimentos en 9 minutos, 3 conservados. Termina con una J de 2 parámetros: ajuste 0.112, control inicial 0.103, control barrido 0.121. El GIF avanza solo cada 4 segundos; en bitacora.html está el mismo reproductor con pausa y flechas. Mirar tres cosas mientras corre: cómo se mueve la curva negra sobre la nube de J, qué pozo cambia de un cuadro al otro, y que el error de ajuste casi no baja después del segundo experimento.
HIPOTESIS:INICIO
2 min · acumulado 3:02 Tabla del ensayo, tal como la escribió el agente: cada hipótesis es la primera línea de un commit anterior a la corrida. Leer dos o tres en voz alta: una que quedó, una que se descartó por el criterio de simplicidad y una que empeoró.
2 min · acumulado 3:04 Preguntar antes de mostrar el veredicto: ¿esta la conservarían?
2 min · acumulado 3:06 Preguntar antes de mostrar el veredicto: ¿esta la conservarían?
HIPOTESIS:FIN
5 min · acumulado 3:11 Recorrer la tabla anterior con estas cuatro preguntas. La fila para mirar es la 3: mover el contacto de 3,120 a 3,150 m mejora el ajuste 0.001 y el loop la descarta por el criterio de simplicidad. Pero el control inicial pasa de 0.296 a 0.093. Los cinco pozos de ajuste no distinguen los dos contactos; el pozo sin barrer, sí. El loop llega igual a 3,150 m dos experimentos después, por otro camino. El ensayo se hizo con F-11 B como único control; los números de F-5 se calcularon después, corriendo de nuevo el caso de cada commit. En la primera versión de esta clase, sin rango para el contacto, el loop terminó con el contacto 148 m debajo del pozo y una J sin permeabilidad. Bajaba el error y nadie la habría firmado. Las reglas de program.md salen de ese ensayo.
4 min · acumulado 3:15 docente/optimizar.py: Nelder-Mead, cuatro a seis minutos por caso. Cierre del bloque 7.
0 min · acumulado 3:15 Arranca 3:15, termina 3:30. Pegar PEDIDO-4.md al empezar.
2 min · acumulado 3:17 Mientras el agente corre el pedido 4. Sw 0.34 en roca de tres darcys no se explica por calidad de roca: a esa altura sobre el contacto regional debería estar en agua irreducible. Agua colgada (perched water): agua que quedó atrapada en un bajo de la base y el petróleo no pudo desplazar. Todo es una misma estructura, con un contacto local por encima del regional.
2 min · acumulado 3:19 Cada punto es un ajuste completo con esa inclinación fija. La mejora está toda en F-4. Los controles no acompañan: con 90 m por kilómetro el modelo pone agua donde F-5 tiene petróleo sin barrer, y donde F-11 B todavía lo tiene después de cinco años de inyección. La curva de los controles es errática: con 120 m por kilómetro vuelven a 0.097 y 0.143. Depende de por dónde pasa el plano en cada pozo. Y sostener 90 m por kilómetro pide unos 3 bar por kilómetro de gradiente en el acuífero: 0.090 por 345 sobre 1,065.
4 min · acumulado 3:23 La cuenta: se llena la base mapeada como un terreno y se ve hasta qué nivel se sostiene el agua antes de derramar. Los escalones de más de 39 grados se toman como falla sellante. Da una cubeta de 0.07 km² bajo F-4, con derrame en 3,016 m. Con 45 grados, 3,024 m. Con 56 grados no cierra. En los otros cuatro pozos no hay cubeta con ninguno de los tres. El modelo de campo de Equinor tiene una región de equilibrio propia, rotulada "purged water", con contacto en 3,025 m.
2 min · acumulado 3:25 Caso P: la misma función J, el contacto regional en 3,146 m y una segunda región de equilibrio para F-4. Un parámetro más. El mínimo es agudo y cae en la base del Hugin de F-4. Queda 9 a 17 m por debajo del derrame de la cubeta y 8 m por debajo del modelo de campo: tres estimaciones independientes dentro de 17 m. Los controles no se rompen: el nivel local no toca a F-5 ni a F-11 B. El control inicial incluso mejora, de 0.090 a 0.075, porque la curva J se reajusta sin tener que explicar el agua de F-4.
3 min · acumulado 3:28 Leer la figura pozo por pozo. El número bajo cada nombre es su RMSE: 19 SR 0.053, 19 A 0.055, F-12 0.091, F-4 0.090, 19 BT2 0.110. En F-4 el simulado ahora sigue la subida de Sw hacia la base; antes se quedaba en agua irreducible. La línea de trazos de F-4 es su nivel local. A la derecha, la nube de J: los puntos de F-4, en rosa, caen ahora sobre la misma curva que los demás hasta J cerca de 1. Con el contacto regional quedaban todos arriba, con J de cientos. 19 BT2 da 0.110 en cualquier caso: está en agua, el perfil promedia 0.95 y el modelo pone 1. F-5, que el caso no vio y está sin barrer, da 0.075: mejor que cualquier pozo de ajuste salvo los dos 19. F-11 B queda en 0.131 y el modelo no lo inunda.
2 min · acumulado 3:30 Lo que queda abierto. Un solo pozo no distingue una cubeta dentro de la misma estructura de un bloque separado con su propio contacto: en los dos casos F-4 tiene un nivel local. Lo decide la presión del petróleo: en una cubeta es la misma que en el resto del campo; en otro bloque, no. El punto de F-4 del bloque 3, 6.7 bar sobre la línea de 19 A, apunta a otro bloque, pero las dos presiones son de fechas y referencias distintas. Y la cubeta depende de qué pendiente se toma como falla sellante. Cierre del bloque 8.
0 min · acumulado 3:30 Arranca 3:30, termina 3:45.
6 min · acumulado 3:36 Cada control tuvo su ejemplo hoy: la carpeta de trabajo, el diff de los AJUSTE_*.INC, la lista de supuestos del primer pedido, los hashes, F-5 y F-11 B.
4 min · acumulado 3:40 El ejercicio muestra el método de trabajo con el agente. El resultado de reservorios queda abierto, y está bien decirlo así.
5 min · acumulado 3:45 Cómo repetirlo: el repo, instalar.sh, verificar.sh y preparar.sh. Preguntas.