Saltar al contenido principal

Arquitectura del ecosistema

HydroPol2D usa un único paquete de malla versionado en sus implementaciones de MATLAB y Python. Esto evita que cada solucionador reconstruya la geometría o interprete de forma distinta las propiedades de la malla.

HydroBathyDEM genera el paquete de malla, con el prototipo archivado HydroPolMesh apuntando a él; el paquete contiene la malla UGRID, los pesos de superposición con el ráster, las tablas de submalla y las capas GeoPackage y declara los elementos del contrato de malla; HydroPol2D-Python y HydroPol2D-MATLAB lo validan al cargarlo, y una lista muestra lo que ambos rechazan

Figura 1. HydroBathyDEM escribe un único paquete de malla versionado, que HydroPol2D-Python y HydroPol2D-MATLAB validan y usan. Un paquete que falla una verificación se rechaza, y ningún solucionador reconstruye las propiedades que faltan.

Responsabilidades de los repositorios​

ComponenteResponsabilidadVersión candidata
HydroBathyDEMGenerador de producción de mallas regulares y de Voronoi, productos de terreno, superposición conservativa de rásteres, tablas de submalla, UGRID, capas de inspección en GeoPackage y control de calidad de la malla.0.4.0rc1
HydroPol2D-PythonMotor del modelo en Python y Studio. Valida y utiliza el paquete de malla; no regenera la geometría hidráulica de la malla.0.9.0rc2
HydroPol2D-MATLABImplementación de referencia en MATLAB que utiliza de forma compatible el mismo paquete de malla.1.19.0-rc2
HydroPolMeshPrototipo de migración archivado. Las capacidades útiles ya validadas se están conservando en HydroBathyDEM; no es una dependencia de ejecución en producción.prototipo

La versión estable v1.17.0 de MATLAB sigue siendo la referencia numérica mientras las versiones candidatas coordinadas completan las verificaciones de paridad y de larga duración.

Contrato de malla compartido​

El contrato de malla 1.0 exige que el paquete declare:

  • la geometría de celdas y caras, la conectividad, las áreas, las longitudes y la orientación;
  • índices de archivo con base cero, convertidos explícitamente a índices de MATLAB con base uno;
  • cell_cfl_width_m, definido a partir de la separación mínima entre centros en dirección normal a una cara;
  • el CRS, las unidades, la resolución de origen, la procedencia y la versión del contrato;
  • pesos conservativos de superposición entre el ráster y las celdas;
  • tablas de submalla compatibles a nivel de celda y de cara cuando el enrutamiento con submalla está activado.

Ambos solucionadores rechazan índices mal formados, caras de longitud cero, áreas nulas o negativas, unidades o CRS ausentes, anchos CFL no definidos, superposición no conservativa, tablas de submalla incompatibles y la ausencia de la versión del contrato. No reconstruyen de forma silenciosa las propiedades de la malla que faltan.

Formulaciones de submalla​

Las siguientes opciones resuelven representaciones distintas y no son alias entre sí:

OpciónRepresentación prevista
Canal de NealCanal rectangular embebido en la malla ráster estructurada; se admite con enrutamiento inercial local.
Submalla estructurada con tablas de consultaTablas de consulta de celdas y caras dependientes de la profundidad, al estilo de SFINCS, en una malla estructurada.
Submalla de VoronoiRelaciones de área, perímetro mojado y capacidad de conducción en una malla de Voronoi no estructurada.

Los nombres heredados solo se aceptan mediante la migración del caso. Las combinaciones incompatibles deben corregirse antes de que pueda iniciarse una simulación.

Estado de las versiones​

Las versiones candidatas son compilaciones de integración, no versiones coordinadas finales. La publicación final requiere la instalación desde un clon limpio, comparaciones entre MATLAB y Python con mallas y entradas hidrológicas idénticas, las simulaciones de Pune de 2 h, 6 h y 12 h, y la aprobación de las verificaciones científicas, de Studio, de lint, de tipos y de procedencia.