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ámicalibShardianAero.soen la ruta$FOAM_USER_LIBBIN. - Acoplamiento: Hereda de
RASModelen 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.Fen 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 flagbl_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.