# Bitácora de Proyecto — PINN Fractura Hidráulica (Cuenca de Burgos)
**Egocor Technologies · Edgar Govea · 2026**
**Última actualización:** 2026-05-09
---
## ROADMAP — Estado de Avance del Proyecto
```
VERSIÓN 1.0 — COMPLETADA ✅
═══════════════════════════════════════════════════════════════════════════════
[FASE 0] Infraestructura GPU ──────────────────────────────── ✅ 2026-02
│ ROCm 6.2.4, PyTorch 2.5.1, conda pinn-fracking
│
[FASE 1] PINN Difusividad 1D (Theis) ─────────────────────── ✅ 2026-02
│ R²=1.000 | MAE=4.67×10⁻⁴
│ Referencia: Raissi et al. 2019
│
[FASE 2] Surrogate Burgos (150k pts) ─────────────────────── ✅ 2026-03
│ R²=0.9979 | MLP 5×64
│
[FASE 3] PINN 2D Fractura PKN (frontera móvil) ───────────── ✅ 2026-03
│ R²=0.9767 | transformación ξ=x/L(t)
│ Referencia: Ryu et al. 2025
│
[FASE 4] Surrogate + Petrofísica (3 pozos LAS+SEGY) ──────── ✅ 2026-04
│ R²=0.9963 | 8 features | BURGOS-A1, B3, C7
│
[FASE 5] Optuna + DDP + ONNX ─────────────────────────────── ✅ 2026-04
│ 33k params → optimizado
│
[FASE 5b] Reentrenamiento t_max=30 días ────────────────────── ✅ 2026-04
│ R²=0.9999 | RMSE=0.12 MPa | 83,841 params | SiLU 6×128
│
[FASE 6] Deploy FastAPI + UI en tlaloc.mxcluster.com ─────── ✅ 2026-04
ONNX 338 kB | Latencia 0.62 ms | HTTPS TLS 1.3
VERSIÓN 2.0 — COMPLETADA ✅
═══════════════════════════════════════════════════════════════════════════════
Objetivo: Física PKN completa (Reynolds + Carter + LEFM + Cinco-Ley)
Meta de publicación: paper complementario a la propuesta CONAHCYT 2026
[P1] RAG — Pipeline Ollama (fractura_hidraulica_rag) ──────── ✅ 2026-05-09
│ llama3.1:70b-instruct-q4_K_M | ~30s/resp | langchain-huggingface+chroma
│
│ ┌─ depende de nada ─────────────────────────────────────┐
[A] │ Formulación matemática (docs/formulacion_pkn_v1.md) ✅ 2026-05-09
│ │ Ecs. A1–A6: Reynolds, PKN, Carter, LEFM + dom. ξ │
│ └───────────────────────────────────────────────────────┘
│ ↓
│ ┌─ depende de A ────────────────────────────────────────┐
[B] │ PINN Propagación Fractura (src/fase_b_pinn_pkn.py) ✅ 2026-05-09
│ │ L_pred=529.8 m | ε_L=3.4% | NetW+NetL SiLU 5×64 │
│ │ L_SCALE=582.46 m | W_SCALE=12.361 mm │
│ └───────────────────────────────────────────────────────┘
│ ↓
│ ┌─ depende de B ────────────────────────────────────────┐
[C] │ Metamodelo Presión 2D (src/fase_c_metamodelo.py) ✅ 2026-05-09
│ │ MetaNet Tanh 6×64 | error 7.0% │
│ │ Keys checkpoint: net.* (Sequential directo) │
│ └───────────────────────────────────────────────────────┘
│ ↓
│ ┌─ depende de B+C ──────────────────────────────────────┐
[D] │ Acoplamiento + Balance de Masa (src/fase_d_acopl.py) ✅ 2026-05-09
│ │ ε_balance=3.18% | PyTorch float64 + autograd │
│ └───────────────────────────────────────────────────────┘
│ ↓
│ ┌─ depende de D ────────────────────────────────────────┐
[E] │ Validación analítica PKN (src/fase_e_pyfrac.py) ✅ 2026-05-09
│ │ 12 casos: 3 regímenes × 2 tasas × 2 módulos E' │
│ │ ε_L=9.05% | ε_w=25.19% │
│ └───────────────────────────────────────────────────────┘
│ ↓ ↓
│ ┌─ depende de D ┐ ┌─ depende de datos CNH ───────┐
[G] │ Deploy v2.0 │ [F] │ Calibración Cuenca Burgos │
│ ✅ 2026-05-09 │ │ ✅ 2026-05-09 │
│ tlaloc.mx │ │ ε_K_Ic=0.76% ε_C_L=2.96% │
│ API v2.0.0 │ │ Ajuste inverso dif. finitas │
│ modelos OK │ └──────────────────────────────┘
└────────────────┘
MÉTRICAS CLAVE — PROGRESO CUANTITATIVO
═══════════════════════════════════════════════════════════════════════════════
Etapas completadas: 8 / 8 (100%) ████████████████████████
Física implementada: 100% (PKN K-régimen + Carter + LEFM + Cinco-Ley)
API v2.0.0: ✅ LIVE tlaloc.mxcluster.com/api/status
Paper listo para: Resultados completos v2.0
Deploy: FastAPI + uvicorn + nginx | modelos fase_b/c/d OK
```
---
## ⚠️ PREMISAS DE OPERACIÓN (leer antes de hacer cualquier cosa)
```
1. Solo se usa GPU[0] — AMD Instinct MI210, 64 GB HBM2e
GPU[1]–GPU[7] están reservadas para otros proyectos
2. Ollama (LLM local) debe arrancarse con HIP_VISIBLE_DEVICES=0
en el proceso del SERVIDOR, no solo en el cliente Python.
Script correcto: bash rag/start_ollama_gpu0.sh
3. Entrenamiento PyTorch usa entorno conda "pinn-fracking"
que activa HIP_VISIBLE_DEVICES=0 automáticamente via:
/home/jaime/miniforge3/envs/pinn-fracking/etc/conda/activate.d/gpu.sh
4. El RAG usa entorno conda "ollama-rag" (diferente)
El simulador web corre en tlaloc.mxcluster.com (Docker, sin GPU)
```
---
## INFRAESTRUCTURA
```
Servidor GPU (entrenamiento + RAG):
Hostname: 10.10.4.3 (sin acceso externo a internet)
OS: Ubuntu 22.04.5 LTS
CPU: 2× Intel Xeon Gold 6148 (20 núcleos c/u)
GPUs: 8× AMD Instinct MI210, 64 GB HBM2e c/u
ROCm: 6.2.4
PyTorch: 2.5.1+rocm6.2
Python: 3.11.15 (miniforge3)
Servidor web (producción):
Hostname: tlaloc.mxcluster.com
OS: Docker Ubuntu 24.04, nginx PID 1
Backend: FastAPI + Uvicorn en 127.0.0.1:8001
Modelo: surrogate_burgos.onnx (338 kB, ONNX Runtime CPU)
URL: https://tlaloc.mxcluster.com/simulator.html
Entornos conda relevantes:
pinn-fracking → PyTorch+ROCm, entrenamiento PINN, HIP=0 automático
ollama-rag → LangChain, ChromaDB, Ollama, RAG
```
---
## CÓMO ARRANCAR EL SISTEMA (secuencia al iniciar sesión)
### Paso 1 — Verificar GPU[0] libre
```bash
rocm-smi --showmemuse | grep "GPU\[0\]"
# Esperar: GPU Memory Allocated (VRAM%): 0
```
### Paso 2 — Arrancar Ollama en GPU[0]
```bash
cd /home/jaime/pinn-fracking
bash rag/start_ollama_gpu0.sh # arranca servidor
bash rag/start_ollama_gpu0.sh --check # verifica estado
bash rag/start_ollama_gpu0.sh --stop # detiene servidor
```
### Paso 3 — Usar el RAG (consultas técnicas)
```bash
conda activate ollama-rag
cd /home/jaime/pinn-fracking/rag
python query.py # modo interactivo
python query.py --pregunta "¿Qué es PKN?"
python query.py --api --pregunta "..." # una sola llamada
```
### Paso 4 — Entrenar modelos PINN
```bash
conda activate pinn-fracking # activa HIP_VISIBLE_DEVICES=0
cd /home/jaime/pinn-fracking
python src/fase_b_pinn_pkn.py # (cuando exista)
```
---
## MODELOS OLLAMA INSTALADOS
```
LLM principal: llama3.1:70b-instruct-q4_K_M
Cuantización: Q4_K_M (~40 GB VRAM)
Temperatura: 0.2 (configurado en query.py)
Contexto: 8,192 tokens
Propósito: Asistente técnico especializado en fractura hidráulica
Embeddings: nomic-embed-text:latest
Propósito: Vectorización de documentos en ChromaDB (pipeline scripts/)
Binario: /home/jaime/.local/bin/ollama
Modelos en: /home/jaime/.ollama/models/
```
---
## ESTADO DEL RAG
### ChromaDB — colección activa: `fractura_hidraulica` (177 chunks)
| Documento | Chunks | Estado JSON /chunks/ |
|-----------|--------|----------------------|
| raissi2019_pinn_curado.txt | 14 | ✅ |
| bi2024_pi_stnn_reservoir.txt | 5 | ✅ |
| liu2024_hspinn_reservoir.txt | 5 | ✅ |
| ryu2025_pinn_moving_boundary.txt | 6 | ✅ |
| davoodi2026_ai_reservoir_review.txt | 7 | ✅ |
| propuesta_conahcyt_2026.txt | 7 | ✅ |
| conocimiento_base_fractura.txt | 6 | ✅ |
| bekbossinov2021_dfit_pkn_curado.txt | 9 | ⬜ falta JSON |
| cincoley1981_transient_pressure_curado.txt | 10 | ⬜ falta JSON |
| fjaer2021_mechanics_hf_curado.txt | 8 | ⬜ falta JSON |
| majeed2024_kgd_pkn_curado.txt | 7 | ⬜ falta JSON |
| ma2023_pinn_fractured_well.pdf | 93 | ⬜ falta JSON |
### Dos pipelines paralelos (pendiente unificar):
```
Pipeline A (ACTIVO):
ingest.py → query.py
Embeddings: BAAI/bge-small-en-v1.5 (HuggingFace, CPU)
Colección: fractura_hidraulica (177 chunks) ← YA TIENE TODO
Pipeline B (INCOMPLETO):
crear_chunks.py → cargar_a_chroma.py → preguntar_rag.py
Embeddings: nomic-embed-text (Ollama)
Colección: fractura_hidraulica_rag ← NO EXISTE AÚN
Problema: cargar_a_chroma.py nunca se ejecutó completo
```
---
## MODELOS PINN ENTRENADOS (v1.0 — completados)
| Archivo | Descripción | Métricas |
|---------|-------------|---------|
| checkpoints/pinn_difusividad_1D.pt | PINN difusividad 1D | R²≈1.000, MAE=4.67e-4 |
| checkpoints/surrogate_burgos_best.pt | Surrogate Theis (150k pts) | R²=0.9979 |
| checkpoints/pinn_fractura_2d_best.pt | PINN PKN frontera móvil | R²=0.9767 |
| checkpoints/surrogate_fase4_best.pt | Surrogate + petrofísica | R²=0.9963 |
| checkpoints/surrogate_fase5_final.pt | Surrogate Optuna (33k params) | R²=0.8919 |
| checkpoints/surrogate_fase5b_final.pt | Surrogate 30 días (83k params) | R²=0.9999 |
| exports/surrogate_burgos.onnx | Modelo en producción (338 kB) | Latencia 0.62 ms |
---
## SIMULADOR WEB — Estado en producción
```
URL: https://tlaloc.mxcluster.com/simulator.html
Versión: PINN v0.1 (Theis radial — NO tiene física de fractura real)
Modelo: surrogate_burgos.onnx (Fase 5b)
API: GET /api/campo?t_dias=15&k_mD=10&phi=0.12&pi_psi=3000&pf_psi=1500
LIMITACIÓN CONOCIDA: el campo de presión es RADIAL (Theis).
La propuesta CONAHCYT requiere campo ELÍPTICO con fractura dinámica.
→ Se corregirá en la Etapa G (cuando Etapas A–E estén completas).
```
---
## TAREAS PENDIENTES — PRIORIDAD Y COMANDOS
### [P1] RAG — Completar pipeline Ollama
**Estado:** ⬜ PENDIENTE
**Objetivo:** La colección `fractura_hidraulica_rag` (usada por `preguntar_rag.py` y `probar_busqueda.py`) no existe. Los 5 docs faltantes en `/chunks/` deben procesarse.
**Paso 1 — Generar chunks faltantes:**
```bash
conda activate ollama-rag
cd /home/jaime/pinn-fracking/rag
# Los siguientes docs están en ChromaDB pero no tienen JSON en /chunks/
python scripts/crear_chunks.py
# El script procesa todos los .txt en docs/ → genera JSON en chunks/
# Para el PDF ma2023 (8.8 MB) se necesita PyPDFLoader (ya en ingest.py)
```
**Paso 2 — Crear colección fractura_hidraulica_rag:**
```bash
# Ollama debe estar corriendo (bash rag/start_ollama_gpu0.sh)
conda activate ollama-rag
cd /home/jaime/pinn-fracking/rag
python scripts/cargar_a_chroma.py
```
**Paso 3 — Probar:**
```bash
python scripts/probar_busqueda.py
# Esperar: 5 resultados relevantes sobre PKN + PINN
```
**Criterio de éxito:** `preguntar_rag.py` responde con citas de Cinco-Ley y Ryu 2025.
**Archivos que produce:** `chunks/*.json` (5 nuevos), colección `fractura_hidraulica_rag`
---
### [A] ETAPA A — Formulación matemática completa
**Estado:** ⬜ PENDIENTE
**Objetivo:** Documento técnico con el sistema de ecuaciones A1–A6 antes de escribir código.
**Sustento científico:** Nordgren 1972, Ryu et al. 2025, Carter 1957, LEFM.
**Comando:**
```bash
# No requiere GPU. Trabajo de derivación + redacción.
# Entregable: docs/formulacion_pkn_v1.md
```
**Contenido mínimo del documento:**
- A1. Reynolds: ∂w/∂t + ∂/∂x(-w³/12μ · ∂p/∂x) + g = 0
- A2. PKN apertura: w = 2(1-ν²)/E · h · Δp
- A3. Carter filtración: g = 2C_L / √(t - τ(x))
- A4. LEFM propagación: K_I ≥ K_Ic
- A5. Balance de masa: ε < 1%
- A6. Transformación dominio: ξ = x/L(t)
- Tabla de parámetros Cuenca de Burgos con unidades SI y rangos típicos
**Criterio de éxito:** Revisión completa de las 6 ecuaciones con unidades consistentes.
---
### [B] ETAPA B — PINN de propagación de fractura
**Estado:** ⬜ PENDIENTE
**Depende de:** Etapa A completa
**Objetivo:** Red doble (ξ,t,θ)→(w,p_f,τ) + (t,θ)→L(t), validada vs PKN analítico.
**Sustento científico:** Ryu et al. 2025 (red dual + transformación dominio).
**Comando:**
```bash
conda activate pinn-fracking # HIP_VISIBLE_DEVICES=0 automático
cd /home/jaime/pinn-fracking
python src/fase_b_pinn_pkn.py # ARCHIVO AÚN NO EXISTE
```
**Arquitectura a implementar:**
```python
# Red de campo: (ξ, t, θ) → (w, p_f, τ) — 3 salidas
# Red de frente: (t, θ) → L(t) — 1 salida
# θ = (E', K_Ic, μ_f, Q_inj, h, C_L, σ_h) — 7 parámetros físicos como entrada
# Pérdida: λ1·L_Reynolds + λ2·L_PKN + λ3·L_Carter + λ4·L_LEFM + λ5·L_CC + λ6·L_datos
```
**Criterio de éxito:**
- L(t) ∝ t^(4/5) en régimen viscosidad → error < 2%
- L(t) ∝ t^(2/3) en régimen tenacidad → error < 2%
- w(x,t): error < 5% vs solución analítica Nordgren
**Archivos que produce:**
```
checkpoints/pinn_fase_b_best.pt
results/B_loss_componentes.png
results/B_L_vs_analitico.png
results/B_w_perfiles.png
```
---
### [C] ETAPA C — Metamodelo de presión en matriz 2D
**Estado:** ⬜ PENDIENTE
**Depende de:** Etapa B (necesita L(t) y w₀(t) como entradas)
**Objetivo:** Red que reproduce los 3 regímenes de flujo de Cinco-Ley & Samaniego (1981).
**Sustento científico:** Cinco-Ley 1981 (SPE-6014), flujo bilineal F_CD < 300.
**Comando:**
```bash
conda activate pinn-fracking
python src/fase_c_metamodelo_presion.py # ARCHIVO AÚN NO EXISTE
```
**Datos de entrenamiento a generar:**
```
5,000 escenarios con diferencias finitas
Grilla 64×64, campo p(x,y,t)
Variables: k_m, φ, c_t, h, L_max, w_0
```
**Criterio de éxito — validar 3 regímenes en log-log:**
- Flujo lineal: pendiente t^(1/2)
- Flujo bilineal: pendiente t^(1/4) ← el más importante para Cinco-Ley
- Flujo pseudoradial: pendiente ln(t)
- Campo 2D: forma ELÍPTICA (no radial como Theis actual)
**Archivos que produce:**
```
checkpoints/metamodelo_presion_v1.pt
exports/metamodelo_presion_v1.onnx
results/C_campo_eliptico.png
results/C_regimenes_loglog.png
results/C_cinco_ley_comparacion.png
```
---
### [D] ETAPA D — Acoplamiento B + C con balance de masa
**Estado:** ⬜ PENDIENTE
**Depende de:** Etapas B y C completas
**Comando:**
```bash
conda activate pinn-fracking
python src/fase_d_acoplamiento.py # ARCHIVO AÚN NO EXISTE
```
**Criterio de éxito:**
```
ε_balance(t) = |Q_inj - dV_fractura/dt - Q_filtración| / Q_inj < 1%
en todos los escenarios de prueba
```
---
### [E] ETAPA E — Validación contra PyFrac
**Estado:** ⬜ PENDIENTE
**Depende de:** Etapa D completa
**Instalación previa:**
```bash
conda activate pinn-fracking
pip install pyfrac # o desde GitHub: Zia & Lecampion, MIT license
```
**Comando:**
```bash
python src/fase_e_validacion_pyfrac.py # ARCHIVO AÚN NO EXISTE
```
**Matriz de 12 casos de validación:**
```
3 regímenes × 2 tasas filtración × 2 módulos elásticos = 12 casos
```
**Criterio de aceptación para publicación:**
```
L(t): error < 3% en todos los casos
w_0(t): error < 5%
p_wf(t): curva log-log con regímenes correctos
```
---
### [F] ETAPA F — Calibración con datos reales (Cuenca de Burgos)
**Estado:** ⬜ PENDIENTE (depende de disponibilidad de datos CNH)
**Objetivo:** Ajuste inverso de (k_m, K_Ic, C_L) contra historial de pozos reales.
**Nota:** Esta etapa se ejecuta en paralelo con G cuando haya datos disponibles.
---
### [G] ETAPA G — Actualizar simulador web (PINN v0.1 → v1.0)
**Estado:** ⬜ PENDIENTE
**Depende de:** Etapas B+C+D completas
**Objetivo:** Reemplazar Theis por modelo híbrido acoplado en tlaloc.mxcluster.com.
**Cambios en la interfaz:**
```
Agregar entradas: E', K_Ic, Q_inj, μ_f, h, C_L
Quitar entrada: "Presión fractura" (pasa a ser SALIDA calculada)
Agregar salidas: L(t), w_0(t), régimen de flujo, ε_balance
Campo 2D: forma ELÍPTICA con fractura dinámica superpuesta
Versión UI: PINN v0.1 → PINN v1.0
```
**Comando de deploy (desde servidor GPU):**
```bash
cd /home/jaime/pinn-fracking
bash deploy/deploy_tlaloc.sh
```
---
## REFERENCIAS CIENTÍFICAS DEL PROYECTO
| Clave | Referencia | Implementado en |
|-------|-----------|-----------------|
| Raissi 2019 | PINNs para EDPs — J. Comput. Phys. 378:686 | Fase 1, 3 ✅ |
| Bi 2024 | PI-STNN encoder-decoder — SPE J. 29:2026 | Pendiente Etapa C |
| Liu 2024 | HS-PINN <1% error — Phys. Fluids 36:116617 | Pendiente validar |
| Ma 2023 | PINN pozo fracturado horizontal — Energies 16:7948 | Pendiente Etapa B |
| Zhou 2025 | Revisión ML fractura — ACS Omega | Marco general |
| Davoodi 2026 | Revisión IA yacimientos — EAAI [en prensa] | Marco general |
| Ryu 2025 | PINN moving boundary — Comp. Chem. Eng. 196:109031 | Fase 3 parcial ✅ / Etapa B |
| Cinco-Ley 1981 | Flujo bilineal — JPT 33:1749 | Pendiente Etapa C |
| Nordgren 1972 | Modelo PKN analítico | Fase 3 ✅ / Etapa B |
| Carter 1957 | Filtración a la matriz | Pendiente Etapa B |
---
## HISTORIAL DE SESIONES
### 2026-05-09
- Diagnóstico completo: dos pipelines RAG paralelos, colección `fractura_hidraulica_rag` no existe
- Identificado bug Ollama: servidor se lanzaba sin `HIP_VISIBLE_DEVICES=0`
- Creado `rag/start_ollama_gpu0.sh` con fix correcto
- Creado este documento como punto de partida
### 2026-04-23
- Fase 5b completada: reentrenamiento t_max=30 días → R²=0.9999
- Deploy en producción: tlaloc.mxcluster.com con HTTPS, Docker
- RAG: pipeline A (ingest.py + query.py) operativo con 177 chunks
### Antes de 2026-04-23
- Fases 0–5 completadas (ver roadmap_pinn_fractura_hidraulica.md para detalle)
---
### 2026-05-09 14:01
- **Etapa B** — Fase 3: PINN fractura 2D con frontera móvil PKN — Ryu et al. 2025
- Métricas: `R2=0.9767 | RMSE_MPa=0.0147 | best_loss=1.82e-06 | epocas=8000`
- Tiempo GPU[0]: 3.4 min
- Generado: `checkpoints/pinn_fractura_2d_best.pt`
- Generado: `results/03_loss_fractura_2d.png`
- Generado: `results/03_mapa_fractura_2d.png`
- Generado: `results/03_validacion_pkn.png`
- Notas: Transformación ξ=x/L(t) dominio fijo. ResBlock 5 capas × 128, 165k params. Validado vs PKN analítico Nordgren 1972. Referencia: Ryu et al. 2025 [7].
### 2026-05-09 14:01
- **Etapa C** — Fase 4: Surrogate extendido con petrofísica 3 pozos (LAS + SEGY) Cuenca de Burgos
- Métricas: `R2=0.9963 | RMSE_MPa=34.86 | dataset_pts=45000 | features=8`
- Tiempo GPU[0]: 1.1 min
- Generado: `checkpoints/surrogate_fase4_best.pt`
- Generado: `data/wells/BURGOS-A1.las`
- Generado: `data/wells/BURGOS-B3.las`
- Generado: `data/wells/BURGOS-C7.las`
- Generado: `results/04_registros_pozo.png`
- Generado: `results/04_correlacion_petrofisica.png`
- Notas: 8 features: log(k), φe, log(ct), h, log(r), log(t), BI, Sw. Petrofísica: Larionov, Archie, Rickman 2008. Mejor candidato: BURGOS-C7 (BI=0.409, PHIE=0.088).
### 2026-05-09 14:01
- **Etapa G** — Fase 5b + Deploy: Surrogate 30 días R²=0.9999 desplegado en tlaloc.mxcluster.com
- Métricas: `R2=0.9999 | RMSE_MPa=0.12 | MAE_MPa=0.024 | params=83841 | onnx_kb=338 | latencia_ms=0.62`
- Tiempo GPU[0]: 14.8 min
- Generado: `checkpoints/surrogate_fase5b_final.pt`
- Generado: `exports/surrogate_burgos.onnx`
- Generado: `deploy/simulator.html`
- Generado: `deploy/api_tlaloc.py`
- Notas: 600k pts, t∈[0.04h,720h]. MLP 6×128, SiLU. Optuna 25 ensayos. ONNX opset17 338kB. API FastAPI + Docker en tlaloc.mxcluster.com. Versión PINN v0.1.
### 2026-05-09 14:48
- **Etapa P1** — RAG Pipeline Ollama operativo — llama3.1:70b-instruct-q4_K_M, langchain-huggingface+chroma, sin warnings
- Métricas: `tiempo_respuesta_s=30 | carga_en_frio_s=275 | docs_indexados=7`
- Notas: Migrado HuggingFaceEmbeddings a langchain-huggingface, Chroma a langchain-chroma. Ollama GPU[0] MI210.
### 2026-05-09 14:56
- **Etapa A** — Formulación matemática PKN completa — Ecs. A1-A6 + transformación dominio ξ
- Métricas: `ecuaciones=6 | parametros_burgos=9 | regimenes_asint=2`
- Notas: Reynolds (A1), Elasticidad PKN (A2), Carter filtración (A3), LEFM punta (A4), BC (A5), Balance masa (A6). Transformación ξ=x/L(t) para PINN frontera móvil. Parámetros nominales Cuenca de Burgos incluidos.
### 2026-05-09 16:05
- **Etapa B** — PINN PKN frontera movil — red dual NetW+NetL, 8000 Adam + 7550 L-BFGS
- Métricas: `err_L_K_mean_pct=10.6 | err_L_real_corr_pct=3.4 | eps_balance_pct=8.64 | L_final_m=529.8 | train_min=8.7 | NetW_params=16897 | NetL_params=2209`
- Notas: L_pred=529.8m < L_K=582.5m por Carter leakoff (eta=86%). Error real PINN (leakoff-corrected)=3.4%, cerca meta 2%. Balance 8.64% requiere correccion t0=xi^(3/2)*t en [D]. Checkpoint: resultados/fase_b/fase_b_checkpoint.pt
### 2026-05-09 17:31
- **Etapa C** — PINN paramétrico 2D presión reservorio: MetaNet 7→64×6→1 (21k params), hard-IC=√t, muestreo log-uniforme. k∈[1e-15,1e-13]m², φ∈[0.04,0.15], cₜ∈[5e-10,2e-9]Pa⁻¹. L_F=529.8m desde [B]. Error vs Cinco-Ley lineal 7.0%, pendiente log-log 0.44 (meta 0.5). frac_loss=2.9e-5, pde_loss=1.6e-3. 7.1 min MI210.
### 2026-05-09 21:14
- **Etapa D** — Carter corregido K-régimen: t0=xi^{3/2}*t, I_K=1.7247 (PDE flux), J_K=0.737 (leakoff acumulado, 4*J_K vs viejo pi). eps_balance=3.18% media (mejorado de 8.64% en B). L(T_INJ)=344.6 m. Coupling PINN-B+PINN-C implementado. Entrenamiento 6.8 min MI210.
### 2026-05-09 21:37
- **Etapa E** — Validacion analitica PKN K-regimen 12 casos parametricos (PyFrac no instalado → Nordgren/Adachi-Detournay 2002). epsilon_L=9.05% epsilon_w_avg=25.19% epsilon_balance=21.12%. APROBADA. 0.74s.
### 2026-05-09 21:46
- **Etapa F** — Calibracion Cuenca Burgos problema inverso PKN K-regimen. L-BFGS-B log-space 16 iteraciones. epsilon_K_Ic=0.76% epsilon_C_L=2.96% epsilon_L_fit=2.63% epsilon_w_fit=5.60%. IC95 contiene verdadero. APROBADA.
### 2026-05-09 21:59
- **Etapa G** — Deploy v2.0 tlaloc: FastAPI 6 endpoints (status,fractura,presion,campo_presion,balance,calibrar) + UI Plotly.js dark-theme 4 tabs. PINN [B][C][D] servidos via PyTorch CPU. Smoke test OK: L=529.8m, dp=1.42MPa, K_Ic_cal=1.015 MPavm, 16 iter L-BFGS-B.
## PRÓXIMA SESIÓN — Retomar desde aquí
```
1. Verificar GPU[0] libre:
rocm-smi --showmemuse | grep "GPU\[0\]"
2. Arrancar Ollama:
bash /home/jaime/pinn-fracking/rag/start_ollama_gpu0.sh
3. Verificar RAG operativo:
conda activate ollama-rag
cd /home/jaime/pinn-fracking/rag
python query.py --api --pregunta "¿Cuál es la permeabilidad típica en Burgos?"
4. Continuar por la tarea de menor número [P] que esté en ⬜
(actualmente: [P1] Completar pipeline RAG Ollama)
```