Cómo verificamos OGR Slip2D
Para fiarse de un factor de seguridad hace falta alguna prueba de que el programa que lo da calcula bien. Validamos OGR Slip2D con casos publicados, soluciones analíticas e identidades exactas. No usamos como referencia resultados guardados del propio programa, porque conservarían cualquier error que tuviera en el momento de guardarlos.
Qué cuenta como referencia
Los métodos, el motor de cálculo y las fórmulas se contrastan con resultados que no hayan salido del propio programa. Se aceptan cuatro tipos de referencia; una copia de los resultados de hoy no es ninguno de ellos.
Casos publicados
Factores de seguridad tomados de estudios comparativos, artículos y manuales de referencia, guardados con su fuente y una tolerancia propia.
Soluciones analíticas
Para el motor de agua subterránea: flujo de Darcy, medios estratificados y la respuesta a un escalón de altura piezométrica, que sigue la función de error.
Identidades exactas
Resultados que se tienen que cumplir exactamente. Por ejemplo, las fuerzas de soporte activa y pasiva coinciden cuando el factor objetivo es 1.0.
Coherencia
Un transitorio largo tiene que llegar al régimen permanente, y una malla tiene que conservar el área de su región.
Un caso que falla no se retoca para que pase. El fallo puede estar en el código o en el valor esperado, y para averiguarlo está el caso. Cada caso lleva su propia tolerancia, que depende de la calidad de la fuente: a un valor leído en una figura no se le puede pedir la precisión de uno tabulado.
Resultados de los siete casos publicados
El repositorio guarda cada caso con su modelo, sus valores esperados y su fuente, y la batería de tests los ejecuta todos. Los valores de la tabla se han recalculado con OGR Slip2D 0.1.235, ejecutando cada caso igual que lo hace la batería.
| Caso | Qué comprueba | Método | Referencia | OGR Slip2D | Diferencia | Tolerancia |
|---|---|---|---|---|---|---|
| ACADS 1(a) Giam & Donald (1989) | La búsqueda por rejilla encuentra el círculo crítico; talud homogéneo, en tensiones totales. Referencia: media de 33 programas. | Bishop | 0.991 | 0.9885 | −0.25 % | 2.0 % |
| Janbu corregido | 0.991 | 0.9897 | −0.14 % | |||
| Yamagami & Ueta (1988) | Dos métodos a la vez, así que también se comprueba la diferencia entre ambos. | Bishop | 1.348 | 1.3502 | +0.16 % | 1.5 % |
| Ordinario | 1.282 | 1.2852 | +0.25 % | |||
| ACADS 1(c) Giam & Donald (1989) | Tres capas: regiones y asignación de materiales. Referencia: media de 16 programas con Bishop. | Bishop | 1.406 | 1.4083 | +0.16 % | 1.5 % |
| Arai & Tagyo (1985), ej. 1 | Un talud de 20 m con inclinación 1V:1.5H. | Bishop | 1.451 | 1.4123 | −2.67 % | 3.5 % |
| Arai & Tagyo (1985), ej. 3 | El mismo talud con nivel freático, que aísla el efecto de la presión intersticial. | Bishop | 1.138 | 1.1200 | −1.58 % | 2.5 % |
| Ejemplo de refuerzo (1999) | El filtro de profundidad mínima de las superficies se aplica en el motor de cálculo. | Bishop | 0.764 | 0.7660 | +0.26 % | 1.0 % |
| ACADS 2(b), presa de Talbingo Giam & Donald (1989) | Solo los métodos, sobre el círculo que fija el enunciado. Bishop frente a la media de 11 programas; los métodos rigurosos, frente al valor del árbitro. | Bishop | 2.204 | 2.2088 | +0.22 % | 2.0 % |
| Spencer | 2.29 | 2.2918 | +0.08 % | |||
| GLE / Morgenstern-Price | 2.29 | 2.3019 | +0.52 % | |||
| Janbu corregido | 2.073 | 2.0739 | +0.05 % |
Las diferencias se calculan con los factores de seguridad sin redondear.
Los reanálisis modernos de los dos ejemplos de Arai y Tagyo coinciden entre sí y dan valores un 2–3 % por debajo de los publicados en 1985. Las búsquedas de 1985 usaban menos dovelas y menos círculos, y una búsqueda más fina encuentra un mínimo más bajo. Los casos conservan el valor publicado con una tolerancia que cubre esa diferencia conocida; así siguen detectando una regresión grave sin atribuir a la fuente más precisión de la que tiene.
Los métodos Corps of Engineers #1 y #2 se comprueban dovela a dovela con el ejemplo resuelto del Apéndice G de USACE EM 1110-2-1902, cuyas tablas dan las fuerzas entre dovelas y las fuerzas normales en la base de cada dovela. La batería de tests incluye más comprobaciones de los métodos sobre superficies dadas.
Comprobaciones con solución exacta conocida
El motor de agua subterránea y varias herramientas se comprueban con resultados cuyo valor exacto se conoce. La última columna da, en cada comprobación, la diferencia con ese valor.
| Qué | Comprobación | Resultado |
|---|---|---|
| Filtración confinada | Solución analítica de Darcy | 0.000 % |
| Medios estratificados | Medias armónica y aritmética de la conductividad | 0.000 % |
| Anisotropía | Prueba de la parcela (patch test) con Kxy ≠ 0 | precisión de máquina |
| Filtración transitoria | Respuesta a un escalón de altura (función de error) | 0.11 % |
| Transitorio a largo plazo | Tiene que reproducir el régimen permanente | 0.0000 m |
| Malla de elementos finitos | Su área es igual a la de la región en cualquier refinamiento | exacto |
| Retroanálisis de la fuerza de soporte | Las fuerzas activa y pasiva coinciden cuando el factor objetivo es 1.0 | exacto |
| Parámetros de Hoek-Brown | Con GSI = 100 y D = 0 se obtiene mb = mi, s = 1, a = 0.5 | exacto |
| Exportación e importación de DXF | Misma área y vértices sobre los originales | < 10⁻⁶ |
El desembalse rápido también reproduce el resultado clásico, sin que nada en el modelo lo imponga: el factor de seguridad es mínimo justo después del descenso del nivel y se recupera a medida que se disipan las presiones intersticiales.
Cómo se organizan los 5 265 tests
- Hay un archivo de tests por área funcional, con una cabecera que indica qué invariante protege y por qué.
- Cada opción configurable tiene un test que comprueba que cambia el resultado.
- Los tests restauran el estado que modifican, como el idioma, las unidades o las cachés. Si no lo hicieran, podrían fallar tests sin relación, y solo al ejecutar la batería completa.
- La batería completa se ejecuta antes de publicar cada versión. Una ejecución parcial lo indica en su salida y no vale como prueba para publicar.
- La integración continua se ejecuta con Python 3.11, 3.12 y 3.13 y comprueba además la cabecera de licencia de cada archivo.
Aportar un caso de validación
Para nosotros, la contribución más útil es un caso de validación: un talud cuyo factor de seguridad conozcas por una publicación o por un cálculo a mano, junto con su fuente.