cálculo de la presión hundimiento zapata - CTEPascaline, el proyecto que quiere llevar el software libre al cálculo de estructuras, ha avanzado un pequeño paso más estos días con la incorporación de un programa para el cálculo de la presión de hundimiento en zapatas siguiendo la formulación del CTE DB-SE-C.

El 24 de octubre, Alfredo Rodríguez Viescas, ‘Fredo’, envió la implementación inicial a la lista de correo de Pascaline y anteayer subí una versión corregida al repositorio del proyecto.

El programa phundimiento permite el cálculo de la presión de hundimiento de zapatas rectangulares tanto en condiciones drenadas como no drenadas, y para todos los casos que contempla la formulación del código técnico en su DB-SE-C, salvo el caso de zapatas circulares , y los casos en los que las cargas están inclinadas respecto a la vertical, o cuando se ha de tener en cuenta la presencia de taludes próximos.

En la versión del repositorio se ha desacoplado la interfaz de texto de las funciones que podrían formar parte de una librería de cálculos geotécnicos; se han renombrado las variables y funciones procurando que el código se autodocumente y no precise de aclaraciones en línea; se ha unificado el estilo siguiendo el PEP-8; se ha unificado la API; se ha tratado de que cada función realice tareas específicas y reciba únicamente los parámetros necesarios para ello; también se han separado las funciones que podrían llegar a ser útiles en una librería…

Los casos pendientes de resolución en la versión actual no presentan gran complejidad, puesto que se trata de incorporar un par de coeficientes adicionales o de señalizar el tipo de geometría de la zapata, pero todavía es necesario pensar cómo queremos modelar la API de programa.

Todavía es preciso abstraer más la interfaz de las funciones generales, para evitar la profusión de parámetros que únicamente responden a la casuística del problema. Seguramente, nos ayudará en esta tarea la generalización de las acciones y del terreno en clases que encapsulen la variedad existente, y permitan que las funciones principales tengan una API más uniforme. Es preferible que la lógica de selección del caso apropiado se encuentre en el propio código, por ejemplo usando el patrón estrategia, y no recaiga en la selección previa de la función adecuada por parte del usuario/a.

Idealmente, se trataría de pasar una zapata, un terreno y unas acciones, y de obtener de ellos la presión de hundimiento… así que no deberíamos exigir mucho más que eso…