Inicio rápido
Huygens es un simulador 3D de campos de microondas de propósito general: líneas de transmisión y circuitos (puertos discretos), antenas, componentes en guía (puertos TE10) y estructuras periódicas (puertos Floquet, incidencia normal y oblicua). Además incluye herramientas específicas para celdas unidad de metasuperficies y FSS (constructor de capas, biblioteca de elementos, barridos de fase) desde microondas hasta THz. El cálculo es un FDTD 3D que se ejecuta en la GPU de tu navegador (WebGPU): no hay que instalar nada y tus diseños no salen de tu equipo.
- 1Abre la app y elige una plantilla en File → New project… (por ejemplo Reflectarray patch).
- 2Ajusta la geometría en el panel derecho Unit Cell Builder o en la pestaña Parameter List.
- 3Pulsa ▶ Start. Una celda típica se resuelve en menos de un segundo.
- 4Mira los resultados en 1D Results (parámetros S, fase, absorción…) y el campo en la vista 3D.
- 5Para construir una biblioteca de fase, usa la pestaña Parameter Sweep.
Vídeo tutorial
Tutorial: biblioteca de fase de un reflectarray
Objetivo: obtener la fase de reflexión de un parche en función de su tamaño a 10 GHz, la «curva S» con la que se diseña un reflectarray.
- 1En File → New project… elige Reflectarray patch. Es un parche cuadrado de lado
patch_asobre RT/duroid 5880 con plano de masa, en una red cuadrada de periodop= 15 mm. - 2Pulsa ▶ Start. En 1D Results verás
SZmax(x),Zmax(x): |S| ≈ 1, porque la celda refleja casi todo y solo cambia la fase. - 3Abre la pestaña Parameter Sweep, elige
patch_a, deja inicio/fin propuestos (×0,5 … ×1,5) y 9 puntos, y pulsa ▶ Run sweep. - 4A la izquierda aparece |S| frente a frecuencia para cada tamaño; a la derecha, la biblioteca: amplitud y fase desenrollada frente a
patch_aa la frecuencia de diseño (editable). - 5Pulsa Export library CSV para llevarte la tabla tamaño → fase a tu herramienta de síntesis del array.
La interfaz
| # | Zona | Para qué sirve |
|---|---|---|
| 1 | Cinta (estilo CST) | Menú File (nuevo, abrir, guardar, exportar) y pestañas Home, Modeling, Simulation, Post-Processing y View; cada pestaña muestra solo sus comandos en una franja. A la derecha, siempre visibles: guardar, deshacer/rehacer, asistente, ayuda y ▶ Start/■ Stop. La franja se oculta con la flecha ⌃ o con doble clic en una pestaña; en View puedes ocultar el árbol, las propiedades o el panel inferior para dejar más sitio a la vista 3D. |
| 2 | Árbol de navegación | Estructura del proyecto: celda unidad y capas, componentes (sólidos), materiales, puertos, contorno, malla, solver, monitores de campo y resultados 1D/2D. Un clic abre sus propiedades. |
| 3 | Vista 3D | Geometría (arrastra para orbitar, rueda para zoom), vista del array periódico (celdas vecinas), flechas de incidencia (rojo = dirección k, azul = polarización E), plano de malla y plano de campo animable. |
| 4 | Panel inferior | Parameter List (variables), 1D Results (gráficas), Parameter Sweep (barridos y bibliotecas) y Messages (registro, avisos y errores). |
| 5 | Propiedades | Editor del elemento seleccionado. Con la celda unidad seleccionada muestra el constructor: red, paredes, pila de capas, excitación y vista superior. |
| 6 | Barra de estado | Unidades, tamaño de malla y Δt, y durante el cálculo: paso, decaimiento (dB), residuo espectral ΔS y velocidad (Mcélulas/s). |
Los colores del contorno en la vista 3D: gris PEC, azul abierto (CPML), verde periódico, violeta PMC y ámbar pared E/H.
Asistente de diseño (IA)
Abre el panel con el botón ✦ de la barra superior, con ⌘/Ctrl+J o con Alt+⇧+A (si tu navegador reserva la primera combinación). Describe en lenguaje natural la estructura que quieres (red, periodo, capas, materiales, elemento, banda) y el asistente la construye en el constructor de celda unidad. Todas las cotas quedan como parámetros, así que puedes editarlas y barrerlas como si las hubieras introducido tú.
| Puedes pedir… | Ejemplo |
|---|---|
| Un diseño nuevo | «Celda de reflectarray a 28 GHz: parche cuadrado de cobre sobre RO4003C de 0,508 mm con plano de masa, periodo λ/2» |
| Cambios estructurales | «Añade una capa de Kapton de 50 µm encima y cambia el parche por un anillo» |
| Ajustes numéricos | «Haz el parche un 10 % más pequeño» · «Sube f_max a 14 GHz» |
| Materiales no catalogados | «Usa un sustrato con εr = 2,9 y tanδ = 0,002» (lo define como material propio y te dice qué valores asumió) |
Cada resultado pasa por la misma comprobación del modelo que ▶ Start antes de aplicarse. Si hay errores, el asistente los ve y se corrige solo. Cada cambio aparece como una tarjeta con ▶ Simulate, Show in builder y ↶ Undo (también ⌘/Ctrl+Z). El asistente responde en el idioma en que le escribas.
Accesibilidad
- Todo se maneja con teclado: ⌘/Ctrl+J abre el panel y pone el foco en el campo; Enter envía; ⇧+Enter salta de línea; Esc cierra y devuelve el foco al botón.
- La conversación es una región live: los lectores de pantalla anuncian las respuestas nuevas y los cambios de estado («estructura construida», errores).
- Todos los controles tienen nombre accesible y foco visible; los colores de texto cumplen el contraste WCAG AA (≥ 4,5:1).
- Cerrar el panel no borra la conversación; New chat empieza de cero.
Constructor de celda unidad
Selecciona Unit Cell en el árbol (o Unit cell en la pestaña Home). Todo el modelo se genera desde aquí; las dimensiones quedan ligadas a parámetros, así que cualquier cota se puede barrer.
Red (Lattice)
| Tipo | Celda simulada | Uso típico |
|---|---|---|
| ▢ Square | p × p | La mayoría de FSS y reflectarrays. |
| ▭ Rect. | px × py (crea un parámetro py propio) | Celdas anisótropas, slots largos. |
| ⬡ Hexagonal | a × √3·a con dos elementos (centro + esquinas) | Redes triangulares: mejor estabilidad angular, tripolos. Es una representación exacta. |
Paredes laterales
- Periodic (Floquet): array infinito. Calcula co- y contrapolarización. Opción por defecto.
- E/H walls: paredes de simetría (PEC perpendicular a E, PMC perpendicular a H), como la «guía TEM» clásica. Solo es válida para celdas con doble simetría especular; anula por construcción la contrapolar.
Respaldo (Backing) y espacio de aire
Open (T + R) deja ambas caras abiertas (transmisión y reflexión). PEC (R only) pone un plano metálico infinito debajo: solo hay reflexión y solo se puede iluminar desde arriba. air space es el aire añadido encima y debajo de la pila; debe dejar sitio a la fuente y los planos de medida. Si es demasiado pequeño aparece un error que te lo indica.
Pila de capas (de abajo arriba)
- + Dielectric: losa que ocupa toda la celda, con material y espesor.
- + Pattern: capa con un elemento. Con espesor 0 es una lámina en la interfaz (metal impreso, lámina resistiva). Con espesor > 0 se extruye (pilares dieléctricos, metal grueso) y puede tener un material de relleno alrededor.
- + Ground: lámina metálica completa en la base.
El diagrama lateral es clicable. Usa ▲ ▼ para reordenar y ✕ para borrar. La vista superior dibuja exactamente lo que verá el solver en la capa seleccionada; la línea discontinua es el contorno periódico.
Catálogo de elementos
Todos los elementos admiten rotación (grados, sentido antihorario), desplazamiento (x, y) y modo complementario (pantalla metálica con el elemento recortado, principio de Babinet: slots, aperturas, fishnet). Las dimensiones por defecto se escalan al periodo.
| Elemento | Parámetros | Para qué |
|---|---|---|
| Full sheet | - | Plano de masa o lámina resistiva continua. |
| Rectangular patch / dipole | a, b | Parche de reflectarray; con b ≪ a es un dipolo o una barra. |
| Circular patch / pillar | r | Disco o pilar dieléctrico (con espesor). |
| Square loop | a, b, w | FSS de banda eliminada, absorbentes. |
| Circular ring | r, w | Resonador anular. |
| Cross | l, w | Doble polarización. |
| Jerusalem cross | l, w, c, t | FSS miniaturizada (capacidad en los extremos). |
| Split-ring (square) | a, w, g | Resonancia magnética, quiralidad. |
| Split ring (circular) | r, w, g | Forma en C. |
| Double split-ring | a, w, s, g | SRR de Pendry con gaps opuestos. |
| Tripole | l, w | Brazos a 120°, ideal en red hexagonal. |
| V-antenna | l, w, Δ | Metasuperficies de gradiente de fase. |
| Custom polygon | vértices (u, v) | Cualquier forma poligonal. |
Parámetros y expresiones
Cualquier cota acepta un número o una expresión que usa parámetros de Parameter List, por ejemplo patch_L / 2 o c0 / (f_max*1e9) / 20. Los parámetros pueden depender unos de otros en cualquier orden; los ciclos se detectan.
| Elemento | Disponible |
|---|---|
| Operadores | + − * / % ^ (también **) y paréntesis |
| Funciones | sin cos tan asin acos atan atan2 sinh cosh tanh sqrt exp log ln log10 abs min max pow floor ceil round deg rad |
| Constantes | pi e c0 mu0 eps0 eta0 (SI) |
En el constructor, un campo ligado a un parámetro muestra su nombre en una etiqueta azul: al editarlo cambias el parámetro, de modo que queda disponible para barridos. A la derecha de cada campo se ve el valor evaluado; un ⚠ indica un error (pasa el ratón por encima para ver el motivo).
Unidades: longitudes en mm, µm, nm, cm o m y frecuencias en MHz, GHz o THz, según el proyecto (barra de estado).
Materiales
Abre Materials en la pestaña Home, o el botón 📚 junto al material de una capa para asignarlo directamente.
Catálogo GHz–THz
Unos 60 materiales con su fuente (hoja de datos o artículo): laminados Rogers RO3000/RO4000/RT-duroid, Taconic, Isola, LCP y FR-4; cerámicas y cristales (alúmina, zafiro, sílice, Si de alta resistividad, GaAs, diamante, LTCC); polímeros (PTFE, HDPE, Kapton, PDMS, PLA/ABS); cristal líquido; metales; y láminas resistivas (ITO, tinta resistiva, 377 Ω/sq).
Base de datos refractiveindex.info
La pestaña refractiveindex.info (CC0) busca en la base pública (dominio público). Cada conjunto indica si cubre tu banda; al seleccionarlo verás ε′, ε″ y tanδ en tu rango antes de importarlo como material tabulado. La mayoría de datos son ópticos/IR; para THz hay Si, GaAs, Al₂O₃, diamante, agua y varios polímeros.
Importar una tabla
En Import table pega tres columnas: frecuencia, ε′, ε″ (separadas por espacios, comas o punto y coma; las líneas con # se ignoran).
Los datos tabulados (importados o de refractiveindex.info) se convierten automáticamente en un modelo de polos causal y se simulan con dispersión real en toda la banda (ver Materiales dispersivos). Los dieléctricos «normales» usan por defecto ε′ y tanδ constantes, exactos en la frecuencia central.
En el árbol, cada material muestra dónde se usa; los que no se usan se pueden borrar.
Materiales dispersivos (ε que varía con la frecuencia)
Huygens simula los materiales dispersivos de forma exacta en el dominio del tiempo (método ADE, ecuaciones diferenciales auxiliares): por cada polo el motor actualiza una corriente de polarización junto a los campos, así que una sola simulación de banda ancha da la respuesta correcta en todas las frecuencias, incluido ε′ < 0 (plasmas, metales en THz).
Modelos disponibles
- Debye, Δε/(1 + jωτ): relajación de líquidos polares (agua, etanol), tejidos, cerámicas con pérdidas.
- Lorentz, Δε·ω0²/(ω0² − ω² + 2jωδ): resonancias (fonones, metamateriales homogeneizados). f0 = frecuencia de resonancia, δ = amortiguamiento.
- Drude, −ωp²/(ω² − jωγ): electrones libres (plasmas, metales en THz–IR, semiconductores dopados). fp = frecuencia de plasma, γ = colisiones.
- Laminado de banda ancha (Djordjevic–Sarkar), a partir de εr y tanδ de la hoja de datos a una frecuencia: ε′ decrece lentamente y tanδ se mantiene casi plano durante décadas, como en FR-4 real. Es causal (cumple Kramers–Kronig).
- Grafeno, lámina de espesor cero con conductividad de Kubo intrabanda σs = σdc/(1 + jωτ), sintonizable con el potencial químico μc (polarización de puerta).
- Tablas medidas, se ajustan a una suma de polos Debye (+ Drude si ε′ < 1) por mínimos cuadrados no negativos, lo que garantiza un modelo causal, pasivo y estable. El error del ajuste se muestra en el panel y aparece un aviso si supera el 3 %.
Cómo usarlo
- En Materials → categorías Dispersive, Metals (Drude, THz–IR) o 2D materials; o en el panel Library → New material (dieléctrico, laminado de banda ancha, polos o grafeno).
- Selecciona el material en el árbol: puedes editar ε∞, añadir o quitar polos (+ Debye, + Lorentz, + Drude) y ver la gráfica ε′(f), ε″(f) sobre la banda del proyecto. La línea discontinua es el modelo que usa el solver (ajuste de polos, o el modelo constante si eliges «narrow band»).
- En un dieléctrico normal, cambia model a Wideband Djordjevic–Sarkar e indica la frecuencia a la que están especificados εr y tanδ.
Excitación y puertos Floquet
En el constructor, en Excitation, elige los lados de incidencia, from top (Zmax) y/o from bottom (Zmin), y las polarizaciones E ∥ x y/o E ∥ y. Cada combinación es una ejecución en GPU; juntas rellenan la matriz S. La incidencia es normal.
| Clave | Significado |
|---|---|
SZmax(x),Zmax(x) | Reflexión copolar: incide por arriba con E∥x y se mide la componente x reflejada. |
SZmax(y),Zmax(x) | Reflexión contrapolar (conversión x→y). |
SZmin(x),Zmax(x) | Transmisión copolar de arriba a abajo. |
SZmax(x),Zmin(x) | Transmisión copolar de abajo a arriba. |
Las fases están referidas a las caras de la pila (superior e inferior), como en los puertos Floquet de CST. La onda incidente se calcula con una referencia 1D exacta, así que no hace falta una simulación «vacía» aparte.
Física de los puertos Floquet
Una estructura periódica (periodos Px, Py) iluminada por una onda plana con vector de onda tangencial kt = (kx0, ky0) = k0 sen θ (cos φ, sen φ) tiene, por el teorema de Bloch–Floquet, campos que se repiten de celda en celda salvo una fase:E(x + Px, y, z) = E(x, y, z) · e−j kx0 Px. Por eso basta una celda unidad con estas paredes periódicas desfasadas para representar el array infinito.
Modos Floquet
Por encima y por debajo de la estructura el campo es una suma discreta de ondas planas, los modos Floquet (m, n):
- números de onda tangenciales
kx,m = kx0 + 2πm/Px,ky,n = ky0 + 2πn/Py; - número de onda normal
kz,mn = √(k0² − kx,m² − ky,n²): real → el modo se propaga (orden de difracción / lóbulo de red), imaginario → es evanescente y decae al alejarse de la superficie; - cada (m, n) tiene dos polarizaciones: TE (E ⟂ plano de incidencia, impedancia ZTE = η0/cos θ) y TM (H ⟂ plano de incidencia, ZTM = η0 cos θ).
El modo fundamental (0, 0) es la onda especular. Un orden superior empieza a propagarse cuando P ≥ λ / (1 + sen θ) (en aire); a partir de ahí parte de la potencia se difracta en lóbulos de red.
Qué es un puerto Floquet
Un puerto Floquet es un puerto modal situado en un plano paralelo a la estructura (Zmin / Zmax). Igual que un puerto de guía, proyecta el campo tangencial total sobre los modos Floquet y normaliza cada amplitud a potencia, de modo que |S|² = fracción de la potencia incidente que lleva cada modo:
- Huygens mide el modo (0, 0): la media en área de Et·e+jkt·r sobre un plano entre la fuente y la estructura (reflexión) y otro detrás (transmisión). Los modos superiores son evanescentes allí, o se propagan y no se informan: el chequeo del modelo avisa cuando el periodo permite lóbulos de red.
- La onda incidente se conoce exactamente: en incidencia normal con una simulación 1D en la misma malla en z, y en oblicua con una simulación de referencia en vacío en la misma malla (ambas reproducen la dispersión numérica, que se cancela en S).
- Los parámetros S se trasladan a las caras de la pila de capas con e±jkzd. Los términos copolares son cocientes de E tangencial; los cruzados TE ↔ TM se normalizan en potencia:
S = (Et,sal/Et,ent)·√(Zent/Zsal). - Los nombres siguen a CST:
SZmax(y),Zmin(x)= onda que sale por el puerto Zmax con E ∥ y, para una onda polarizada en x que entra por Zmin. En oblicua, x/y son las direcciones de E tangencial (φ = 0°: y = TE, x = TM).
Incidencia normal y oblicua en el FDTD
Con θ = 0 las paredes son simplemente periódicas. Con θ ≠ 0 el campo en el dominio del tiempo no puede llevar la fase compleja de Bloch, así que Huygens usa el método seno–coseno: dos copias reales del campo (partes real e imaginaria de u = E·ejkt·r) se actualizan juntas y solo se acoplan a través de las paredes periódicas con la rotación [cos ktP, sen ktP]. Esto fija kt, no θ: en una simulación el ángulo cambia con la frecuencia, θ(f) = asen(kt c / 2πf). Para un ángulo fijo la app ejecuta unas pocas frecuencias ancla (kt exacto en cada una) e interpola en kt entre simulaciones vecinas.
Por debajo de la frecuencia rasante fc = ktc/2π el modo (0, 0) es evanescente y esa energía nunca sale de la celda, por lo que cada simulación se excita solo por encima de fc (≤ −100 dB de espectro de fuente en fc). Las paredes de simetría E/H (PEC ⟂ E, PMC ⟂ H) son una alternativa solo en incidencia normal y para celdas doblemente simétricas.
Puertos y excitaciones
Abre Ports → Port manager / excitation en el árbol. Desde ahí añades, duplicas (⧉) y borras puertos, y eliges con la casilla Excite cuáles se excitan. Cada puerto marcado genera una ejecución en la que es la fuente y los demás actúan como cargas adaptadas; juntas rellenan las columnas de la matriz S, como la opción «selected ports» de CST.
| Tipo | Cuándo usarlo | Definición |
|---|---|---|
| Discrete (lumped) | Líneas impresas, antenas alimentadas por un punto, componentes. | Fuente con impedancia interna Z0 entre p1 y p2 (paralelos a x, y o z). Con face width > 0 se reparte en columnas paralelas, lo recomendable para pistas anchas. p1 en masa y p2 en el conductor. |
| Waveguide (TE10) | Guías rectangulares, filtros, transiciones, iris, cargas dieléctricas. | Modo fundamental TE10 en una apertura rectangular sobre una cara de contorno abierta. La apertura debe estar limitada por paredes PEC y la guía debe ser uniforme unas 14 celdas hacia dentro. S referida a la cara del puerto y normalizada en potencia (ZTE). |
| Floquet (plane wave) | Celdas unidad periódicas. | Incidencia normal desde Zmin y/o Zmax, polarización x y/o y. En proyectos de celda unidad la gestiona el constructor. |
No se pueden mezclar puertos Floquet con discretos o de guía en un mismo proyecto. Discretos y de guía sí se combinan, porque sus ondas están normalizadas en potencia.
Comprobación del modelo
Antes de cada simulación (y en segundo plano mientras editas) Huygens revisa el modelo: parámetros, banda de frecuencias, materiales, dimensiones de los elementos, puertos, contornos, compatibilidad de excitaciones, tamaño de la malla y la compilación completa de cada ejecución. La pestaña Model check lista los problemas con su solución propuesta y un botón Go to que abre el elemento afectado. Los errores bloquean la simulación; los avisos no. También puedes lanzarla con Check en la pestaña Home o Simulation.
Mallado y simulación
Malla
La malla hexaédrica graduada se genera sola: λ/N en cada dieléctrico (lines / λ), un mínimo de celdas por detalle geométrico (cells / feature), una razón máxima entre celdas vecinas y líneas ajustadas a todos los bordes. Edítala en Mesh en el árbol; puedes añadir cajas de refinamiento local.
Ranuras y tiras estrechas se detectan solas. Cada capa metálica plana se analiza en busca de ranuras, huecos y tiras finas, incluidas las que el tamaño de las primitivas no revela (un anillo recortado de una lámina, brazos rotados, huecos entre parches). Donde la malla es demasiado gruesa se refina localmente hasta cells / gap celdas a través de cada ranura (4 por defecto; las tiras metálicas usan cells / feature). Messages y el panel Mesh indican qué se refinó. Pon cells / gap a 0 para desactivarlo.
Mesh View muestra un plano de corte (X, Y o Z, con deslizador): líneas de malla, el mapa de permitividad vóxel a vóxel (verde = dieléctrico) y el metal tal como lo ve el solver (dorado). Es la mejor forma de comprobar que un detalle fino quedó bien resuelto.
Motor y convergencia
En Auto se usa WebGPU si existe; CPU reference es un espejo exacto del shader, más lento. La simulación termina cuando (1) las señales de puerto han decaído por debajo de la precisión (Solver → accuracy, −40 dB por defecto) y (2) los parámetros S han dejado de cambiar (ΔS < 2·10⁻³). Así se evitan resultados no físicos en resonancias muy agudas. La barra de estado muestra ambos indicadores en directo; ■ Stop detiene la ejecución.
max steps en Solver.Resultados
| Gráfica | Qué muestra |
|---|---|
| S-Params (dB) | Magnitud de cada parámetro S. Las respuestas nulas (|S| < 10⁻⁶) se ocultan y se indican. |
| Phase (unwrapped) | Fase desenrollada (sin saltos de 360°). |
| Power / absorption | Por cada incidencia: |R|² y |T|², co y contra, y la absorción A = 1 − ΣR − ΣT. |
| Pol. conversion | PCR = |R×|²/(|R×|²+|Rco|²), para convertidores de polarización. |
| Circular basis | Reflexión en base circular: término que conserva la helicidad (lleva la fase geométrica 2θ) y término que la invierte. Requiere x e y. |
| Smith chart | Impedancia normalizada de las reflexiones (η0 en celdas, Z0 en puertos discretos). |
| Port signals | Señales temporales: incidente y salidas por puerto/modo. |
File → Export Touchstone (o Touchstone en Post-Processing) genera un .sNp. En celdas unidad, los puertos son los modos excitados (Zmin(x)=1, Zmin(y)=2, Zmax(x)=3, Zmax(y)=4) con Z = η0; para la matriz completa activa todos los lados y polarizaciones.
Si cambias el modelo después de calcular, los resultados se marcan como stale (desactualizados) hasta que vuelvas a pulsar ▶ Start.
Campos 2D
Los Field Monitors definen planos de campo (E, H o corriente superficial Js) a una frecuencia. Se graba un plano por simulación, el marcado como record; haz clic en otro y pulsa Start para grabarlo. Por defecto se crean tres: E y Js en el plano del elemento y E en el corte y = 0.
En la leyenda del campo puedes ▶ Animate (Re{F·ejωt}), elegir componente (|F|, x, y, z) y escala lineal o dB. Los valores están normalizados a 1 V/m de onda incidente (o 1 V de fuente en puertos discretos). Durante el cálculo se ve el campo instantáneo en directo.
Barrido de parámetros
- 1Pestaña Parameter Sweep → elige el parámetro (se proponen inicio y fin en ×0,5 y ×1,5 del valor actual).
- 2Define el número de puntos y pulsa ▶ Run sweep. Cada punto resuelve todas las excitaciones en GPU.
- 3En Library extraction elige el parámetro S y la frecuencia de diseño.
- 4La gráfica derecha es tu biblioteca: |S| y fase desenrollada frente al parámetro. Exporta con Export library CSV.
Usos típicos: tamaño de parche → fase (reflectarray), rotación → fase geométrica (celdas Pancharatnam–Berry), radio de pilar → fase de transmisión (metasuperficies dieléctricas), espesor de espaciador → absorción.
Plantillas
| Plantilla | Qué demuestra |
|---|---|
| Reflectarray patch | Curva de fase frente al tamaño del parche (RT/duroid 5880, masa PEC). |
| Geometric-phase bar | Lámina de media onda reflectiva: rotar la barra θ añade 2θ de fase en base circular. |
| Polarisation converter | Barra a 45° que convierte x en y en reflexión (PCR). |
| Salisbury absorber | Lámina de 377 Ω/sq a λ/4 sobre masa: absorción ≈ 100 % a 10 GHz. |
| Jerusalem-cross FSS | FSS de banda eliminada miniaturizada sobre RO4350B. |
| Hexagonal tripole FSS | Red triangular exacta mediante supercelda. |
| Split-ring resonator | Resonancia magnética LC de un SRR sobre FR-4. |
| THz Si-pillar metasurface | Pilares de Si sobre sílice, 0,4–1,4 THz (unidades µm/THz). |
Proyectos: nuevo, abrir, guardar
Todo está en el menú File (botón azul arriba a la izquierda):
- New project… abre una galería de plantillas (reflectarrays, absorbedores, FSS, benchmarks). Si hay cambios sin guardar, te lo pregunta antes.
- Save (⌘/Ctrl+S, o el disquete arriba a la derecha) guarda el proyecto completo en la biblioteca de este navegador: modelo, parámetros, materiales, referencias, resultados S, plano de campo y barrido. Junto al nombre verás ✓ saved o ● unsaved changes.
- Open… lista los proyectos guardados (con la etiqueta results si incluyen resultados) y permite abrir un archivo del disco. Al abrir, los resultados aparecen sin volver a simular.
- Save to file… (⇧+⌘/Ctrl+S) escribe un archivo
.huygensportátil con todo lo anterior. En Chrome/Edge el archivo queda vinculado y los siguientes Save lo actualizan; en otros navegadores se descarga. - Export model only (.emproj) guarda solo el modelo (JSON legible, ideal para control de versiones). Los
.emprojy los proyectos antiguos (CSTX) también se abren. - El nombre del proyecto se edita haciendo clic sobre él, en el centro de la barra superior.
- Sesión: aunque no guardes, al recargar la página recuperas el modelo y sus resultados.
- Deshacer/rehacer: flechas de la barra superior o ⌘/Ctrl+Z y ⌘/Ctrl+⇧+Z.
.huygens de lo importante o para compartirlo.Antenas y puertos discretos
Además de celdas unidad, Huygens simula estructuras con puertos discretos (fuente resistiva con Z0 entre dos puntos, de anchura opcional): líneas microstrip, antenas de parche… Mira las plantillas Validation benchmarks. La geometría se edita como sólidos CSG (cajas, cilindros, esferas, extrusiones con unión, resta e intersección) en Components; con varios puertos, All ports rellena la matriz S completa.
Validación y precisión
| Prueba | Resultado |
|---|---|
| Absorbente de Salisbury frente a teoría de líneas | error complejo en S11 ≤ 0,012; A > 99 % a 10 GHz |
| Losa εr = 4 frente a Fabry–Pérot | error en S11 y S21 ≤ 0,013 |
| Comparación ciega con CST (3 celdas de anillo, malla por defecto) | resonancia −0,10 / −0,13 / −0,41 %, |ΔS| complejo máx. ≤ 0,026 (metal escalonado: −2,6…−3,7 %) |
| Incidencia oblicua: losa εr = 4 a θ = 30° (TE y TM, ambos planos) | |ΔS| máx. ≤ 0,017 frente a la teoría exacta; ángulo fijo ≤ 0,017; θ → 0 coincide con incidencia normal |
| Lámina de cobre (efecto pelicular) frente a la teoría de impedancia superficial | |S21| a 0,13 dB, ∠S21 a 4,5° (primer orden en Δt); el anillo de cobre absorbe más que el PEC |
| Fase geométrica (barra rotada 45°) | láminas conformes: −90 ± 2° (escalonado: −96,6°) |
| Paredes E/H frente a periódicas (celda simétrica) | idénticas (|ΔS| < 10⁻⁵) |
| Microstrip 50 Ω | |S11| < −20 dB y |S21| > −0,2 dB en 1–10 GHz |
| Guía WR-90 con losa εr = 2,2 frente a teoría exacta TE10 | S11 ≤ 0,007; S21 ≤ 0,025; potencia conservada (error 0,0000); S12 = S21 |
| Todas las plantillas | convergen y son pasivas (|S| < 1,01, A > −0,02) |
| Fuzzing (100 modelos aleatorios) | la comprobación nunca falla; si da el modelo por válido, la simulación compila |
| GPU frente a CPU | señales idénticas a 10⁻³ del pico |
Validar con CST y otras referencias
La validación se hace en capas: (1) teoría exacta (las pruebas automáticas de la tabla anterior), (2) comparación con otro solver como CST o HFSS, (3) convergencia de malla y (4) medidas. Huygens incluye la herramienta para (2)–(4): importa un Touchstone y compáralo.
Cómo comparar
- 1Simula el modelo en Huygens.
- 2En 1D Results → Validation pulsa ⇪ Import reference (.sNp) y elige el fichero (.s1p, .s2p, .s4p…). El número de puertos se toma de la extensión.
- 3Revisa la correspondencia de puertos (edit mapping). Por defecto, el puerto n de la referencia se asocia al mismo orden que usa nuestra exportación: discretos o de guía por número; Floquet en el orden Zmin(x), Zmin(y), Zmax(x), Zmax(y).
- 4La tabla da, por traza: error complejo máximo y RMS, error en dB, error medio de fase, desplazamiento de la resonancia y un veredicto. Las curvas de referencia aparecen en discontinuo en las gráficas de S y de fase.
| Veredicto | max |ΔS| | Desplazamiento de resonancia |
|---|---|---|
| excellent | < 0,05 | < 1 % |
| good | < 0,15 | < 3 % |
| fair | < 0,3 | < 6 % |
| poor | ≥ 0,3 | ≥ 6 % |
Protocolo para CST Studio Suite
Para que la comparación sea justa, ambos modelos deben ser el mismo problema:
- Geometría y unidades: mismas cotas (copia los valores de Parameter List) y mismas unidades.
- Materiales: mismo εr y tanδ. En láminas de espesor cero Huygens modela las pérdidas por efecto pelicular del cobre (Solver → pérdidas del conductor): usa cobre en ambos, o PEC en ambos. Para tanδ constante, elige en CST el mismo modelo (constante o ajuste de primer orden) o usa aquí el modelo de banda ancha o de polos.
- Celdas unidad: en CST, contorno Unit cell en x/y, puertos Floquet Zmin/Zmax con 2 modos (TE(0,0) y TM(0,0)) y el mismo ángulo de escaneo θ (plano xz o yz). Comprueba en la vista de modos de CST qué modo tiene E ∥ x y ajusta el mapping.
- Planos de referencia: los S de Huygens se refieren a las caras de la pila. En CST, los puertos Floquet están en el borde del dominio: pon Distance to reference plane = −(espacio de aire) en cada puerto para llevar el plano a la cara. Sin esto, las fases no coincidirán aunque los módulos sí.
- Guías de onda: puertos de guía en las mismas caras con 1 modo (TE10) y sin desplazamiento del plano de referencia.
- Puertos discretos: discrete face port con la misma Z0 y en la misma posición.
- Solver: Frequency Domain (recomendado para celdas) o Time Domain, con refinamiento adaptativo de malla hasta convergencia y la misma banda de frecuencias.
- Exportar: 1D Results → S-Parameters → File → Export → Touchstone, en formato RI o MA, sin renormalizar la impedancia.
Convergencia de malla
Exporta el Touchstone de Huygens, sube lines / λ y cells / feature un 50 % en Mesh, vuelve a simular e importa el primer fichero como referencia. Si el veredicto es excellent, la malla ya está convergida.
Limitaciones actuales
- Incidencia oblicua solo en el plano xz o yz (φ = 0°/90°); los ángulos fijos se interpolan a partir de unas pocas simulaciones de kt constante.
- Los dieléctricos «normales» con tanδ constante son exactos solo en la frecuencia central; usa el modelo de banda ancha o polos para bandas anchas.
- Las pérdidas del conductor se modelan en láminas metálicas de espesor cero (impedancia superficial); los sólidos metálicos gruesos son PEC sin pérdidas.
- Las láminas metálicas de espesor cero son conformes (subcelda); los metales gruesos y las interfaces dieléctricas siguen escalonados.
- Un plano de campo por simulación; sin campo lejano ni RCS.
- Sin importación STL/STEP y sin cuentas ni proyectos en la nube.
Solución de problemas
| Síntoma | Qué hacer |
|---|---|
| «WebGPU unavailable» en la cinta | Usa Chrome/Edge actualizados o Safari 26+, y activa la aceleración por hardware. Mientras tanto funciona el motor CPU (más lento). |
| «Not enough add-space…» | Aumenta air space en el constructor: la fuente y los planos de medida necesitan sitio por encima y por debajo de la pila. |
| «max steps reached» | Sube max steps en Solver; las resonancias muy agudas tardan en decaer. |
| Un detalle fino no aparece | Activa Mesh View sobre esa capa; sube cells / feature o añade una caja de refinamiento. |
| Resultados marcados «stale» | Cambiaste el modelo después de calcular: pulsa Start. |
| La vista 3D tarda en aparecer | La primera carga construye la geometría; espera unos segundos. |
| Error ⚠ en un campo | Pasa el ratón por encima: suele ser un parámetro inexistente o una dependencia circular. |
Atajos de teclado
| Atajo | Acción |
|---|---|
| ⌘/Ctrl + J o Alt + ⇧ + A | Abrir/cerrar el asistente de diseño |
| ⌘/Ctrl + S | Guardar el proyecto (con resultados) |
| ⌘/Ctrl + ⇧ + S | Guardar en un archivo .huygens |
| ⌘/Ctrl + O | Abrir un proyecto |
| ⌘/Ctrl + Z | Deshacer |
| ⌘/Ctrl + ⇧ + Z o Ctrl + Y | Rehacer |
| Enter | Confirmar un campo |
| Esc | Cancelar la edición de un campo o cerrar la biblioteca de materiales |
Glosario
| Término | Definición |
|---|---|
| Celda unidad | Periodo mínimo de una superficie periódica; se simula una y se supone repetida infinitamente. |
| Puerto Floquet | Puerto de onda plana de una estructura periódica; aquí, el modo fundamental TEM en incidencia normal. |
| Co / contrapolar | Componente del campo dispersado paralela / perpendicular a la polarización incidente. |
| PCR | Polarization conversion ratio: fracción de la potencia reflejada que cambia de polarización. |
| Fase geométrica (PB) | Fase 2θ que adquiere la onda circular al rotar θ un elemento anisótropo. |
| FDTD | Diferencias finitas en el dominio del tiempo sobre la malla de Yee. |
| CPML | Capa absorbente perfectamente adaptada que simula el espacio abierto. |
| PEC / PMC | Conductor eléctrico / magnético perfecto. |
| Δt / CFL | Paso de tiempo, limitado por la celda más pequeña (criterio de Courant). |
Huygens es software libre, creado por D.M.G. de la Sacristana. El nombre honra a Christiaan Huygens: cada punto de un frente de onda re-radia una ondícula secundaria, el principio de toda estructura radiante y exactamente lo que diseña una metasuperficie.