OpenGeoRock

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.

7
Casos publicados
12
Comprobaciones de método
5 265
Tests · v0.1.235
§ 01 — La regla

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.

01

Casos publicados

Factores de seguridad tomados de estudios comparativos, artículos y manuales de referencia, guardados con su fuente y una tolerancia propia.

02

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.

03

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.

04

Coherencia

Un transitorio largo tiene que llegar al régimen permanente, y una malla tiene que conservar el área de su región.

Si un caso falla

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.

§ 02 — Casos de referencia publicados

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.

CasoQué compruebaMétodoReferenciaOGR Slip2DDiferenciaTolerancia
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.Bishop0.9910.9885−0.25 %2.0 %
Janbu corregido0.9910.9897−0.14 %
Yamagami & Ueta (1988)Dos métodos a la vez, así que también se comprueba la diferencia entre ambos.Bishop1.3481.3502+0.16 %1.5 %
Ordinario1.2821.2852+0.25 %
ACADS 1(c)
Giam & Donald (1989)
Tres capas: regiones y asignación de materiales. Referencia: media de 16 programas con Bishop.Bishop1.4061.4083+0.16 %1.5 %
Arai & Tagyo (1985), ej. 1Un talud de 20 m con inclinación 1V:1.5H.Bishop1.4511.4123−2.67 %3.5 %
Arai & Tagyo (1985), ej. 3El mismo talud con nivel freático, que aísla el efecto de la presión intersticial.Bishop1.1381.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.Bishop0.7640.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.Bishop2.2042.2088+0.22 %2.0 %
Spencer2.292.2918+0.08 %
GLE / Morgenstern-Price2.292.3019+0.52 %
Janbu corregido2.0732.0739+0.05 %

Las diferencias se calculan con los factores de seguridad sin redondear.

Por qué los casos de Arai y Tagyo salen más bajos

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.

Método a método

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.

§ 03 — Soluciones analíticas e identidades

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ónResultado
Filtración confinadaSolución analítica de Darcy0.000 %
Medios estratificadosMedias armónica y aritmética de la conductividad0.000 %
AnisotropíaPrueba de la parcela (patch test) con Kxy ≠ 0precisión de máquina
Filtración transitoriaRespuesta a un escalón de altura (función de error)0.11 %
Transitorio a largo plazoTiene que reproducir el régimen permanente0.0000 m
Malla de elementos finitosSu área es igual a la de la región en cualquier refinamientoexacto
Retroanálisis de la fuerza de soporteLas fuerzas activa y pasiva coinciden cuando el factor objetivo es 1.0exacto
Parámetros de Hoek-BrownCon GSI = 100 y D = 0 se obtiene mb = mi, s = 1, a = 0.5exacto
Exportación e importación de DXFMisma á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.

§ 04 — La batería de tests

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.
Contribuir

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.