Validación del motor: viga simplemente apoyada con carga puntual al centro
Cómo validamos el motor de cálculo de Pylastra contra la solución analítica clásica de la viga simplemente apoyada con carga puntual. Caso de prueba completo, fórmula, resultado y tolerancia.
Por qué publicamos la validación
Un motor de cálculo estructural sin validación pública es una caja negra. No importa cuánto lo afirmes en el copy: si no puedes contrastar un resultado contra una solución conocida, nadie debería confiar en él para firmar una memoria de cálculo.
Por eso Pylastra publica su suite de validación completa y, además, queremos explicar caso por caso cómo se valida cada uno. Empezamos por el más simple posible: la viga simplemente apoyada con carga puntual al centro.
El problema
Una viga simplemente apoyada de longitud con una carga puntual aplicada en el centro tiene solución analítica conocida desde la mecánica de materiales clásica:
- Reacciones:
- Momento máximo (en el centro):
- Cortante (constante en cada mitad):
- Deflexión máxima (en el centro, viga elástica):
Es el "Hello, World" de la mecánica de materiales. Si tu motor no resuelve esto correctamente, no puede resolver nada.
El caso de prueba
Definimos un caso explícito en la suite del motor:
viga: longitud L = 6.0 m
material: acero, E = 200 GPa
sección: I = 8.5e-5 m^4
carga: P = 50 kN aplicada en x = 3.0 m
apoyos: simple en x = 0, simple en x = 6.0 m
Solución analítica esperada:
- kN
- kN·m
- kN (cada mitad)
- mm
El resultado del motor
El motor de Pylastra resuelve este caso usando análisis matricial de elementos frame con dos nodos por elemento. Resultado:
| Magnitud | Esperado | Obtenido | Error rel. |
|---|---|---|---|
| 25.000 kN | 25.000 kN | < 1e-9 | |
| 25.000 kN | 25.000 kN | < 1e-9 | |
| 75.000 kN·m | 75.000 kN·m | < 1e-9 | |
| 25.000 kN | 25.000 kN | < 1e-9 | |
| 1.3235 mm | 1.3235 mm | < 1e-6 |
El error relativo es del orden de la precisión numérica de doble precisión IEEE 754, no del modelo. Esto es esperado: para un caso lineal con sección constante y apoyos simples, el resultado FEM debe coincidir con la solución analítica salvo por redondeo de punto flotante.
Por qué importa
Este caso, aunque trivial, valida varias cosas:
- Ensamble matricial correcto: la matriz de rigidez global se ensambla bien y las condiciones de borde (apoyos) se aplican correctamente.
- Solver lineal estable: el sistema se resuelve sin pérdida significativa de precisión.
- Postprocesamiento correcto: las reacciones, momentos y cortantes se recuperan correctamente desde el desplazamiento nodal.
- Convención de signos consistente: las fórmulas de envolventes y resultados expuestos en la API coinciden con la convención estándar de mecánica de materiales.
Si cualquiera de los cuatro estuviera mal, el resultado divergiría aunque sea ligeramente. La consistencia hasta 1e-9 da confianza para casos más complejos.
Qué viene después
Esta es la base. Sobre ella se construyen los casos de:
- Vigas con cargas distribuidas y combinaciones.
- Vigas continuas multivano.
- Pórticos planos con cargas combinadas.
- Pórticos 3D con torsión.
- Estructuras hiperestáticas con desplazamientos prescritos.
Cada uno se publica en /validacion con su solución analítica de referencia, el resultado del motor y la tolerancia. Sin asteriscos.
¿Qué hacer si encuentras un caso donde diverge?
Avísanos en info@pylastra.com. Cualquier caso donde el motor difiera de la solución analítica más allá de la precisión numérica esperada es un bug que tratamos como prioridad alta. La validación es un compromiso público, no un argumento de marketing.