Saltar a contenido

Arquitectura del Repositorio

El espacio de trabajo de Shardian está estructurado como un monorepo que contiene el motor de entrenamiento simbólico, los módulos físicos de C++ y Fortran, y la infraestructura de licencias.


1. Estructura de Directorios

shardian-workspace/
├── applications/
│   ├── openfoam_cfd/       # Shardian Aero (Código fuente C++ para OpenFOAM)
│   │   ├── Make/           # Directivas de compilación (files, options)
│   │   └── AdvancedZonalModel/
│   ├── wrf/                # Shardian Atmos (Módulos Fortran para WRF)
│   │   └── phys/           # Código de module_bl_eml_sr.F
│   ├── license-server/     # Servidor de licencias Go/SQLite y CLI de claves
│   └── shardian-web/       # Sitio web comercial e instalador
├── eml-sr-core/            # Framework de entrenamiento simbólico basado en JAX
├── scripts/                # Scripts de compilación, despliegue y exportación
└── datasets/               # Perfiles DNS de alta fidelidad para entrenamiento

2. Diseño de Componentes y Límites de Código

Para mantener el máximo rendimiento numérico y evitar sobrecostes en tiempo de ejecución (como invocar intérpretes de Python o JAX desde C++), el repositorio implementa una separación estricta entre el Entrenamiento Fuera de Línea (Offline) y la Simulación en Tiempo Real (Online).

graph LR
    subgraph "Fase Offline (Python)"
        A[eml-sr-core] -->|Ajuste Simbólico| B(Fórmulas Matemáticas)
    end
    subgraph "Fase Online (C++ y Fortran)"
        C[scripts de exportación] -->|Generación de Código| D(Código Estático Inyectado)
        D --> E[wmake libso / compilación WRF]
    end
    B --> C

A. Shardian Aero (applications/openfoam_cfd)

  • Tecnología: C++ bajo el estándar de OpenFOAM Foundation.
  • Compilación: Se compila con wmake libso, generando la librería dinámica libShardianAero.so en la ruta $FOAM_USER_LIBBIN.
  • Acoplamiento: Hereda de RASModel en OpenFOAM y evalúa \(\nu_t\) inyectando directamente las ecuaciones algebraicas simbólicas.

B. Shardian Atmos (applications/wrf)

  • Tecnología: Fortran Moderno.
  • Integración: Inyecta module_bl_eml_sr.F en el flujo de compilación de WRF. Conecta con el driver de física de capa límite (phys/module_pbl_driver.F) bajo el flag bl_pbl_physics = 99.
  • Independencia: Fórmulas algebraicas inyectadas directamente como operaciones aritméticas nativas en Fortran, eliminando cualquier cargador externo.

C. Servidor de Licencias (applications/license-server)

  • Tecnología: Go / SQLite.
  • Base de Datos: Una base de datos ligera (licenses.db) que gestiona las claves emitidas, sus ámbitos de producto, expiración y estado.
  • Endpoints: API HTTPS con endpoints /v1/verify (verificación de resolvedor) y /v1/admin (administración).
  • Autenticación: Hilo HTTPS ligero que valida la licencia en el primer paso de tiempo, cacheando el resultado para el resto de la simulación.