Modelo de matriz de transferencia (TMM)
1. Introducción
El método de matriz de transferencia (TMM) es una técnica rápida y fiable para modelar la propagación de la luz en estructuras multicapa (“tipo sándwich”) bajo incidencia normal. Se utiliza ampliamente para dispositivos como células solares, filtros ópticos y sensores, donde es necesario cuantificar cómo la luz es absorbida, reflejada y transmitida a través de películas delgadas.
En comparación con solucionadores de onda completa como FDTD, el TMM logra conocimientos similares con un coste computacional que normalmente es órdenes de magnitud menor. Esto lo hace ideal para iteración rápida de diseño, barridos de parámetros y optimización de pilas multicapa, capturando al mismo tiempo los efectos clave de interferencia y de película delgada que gobiernan el comportamiento del dispositivo. Aunque el TMM es más directo para incidencia normal en pilas planas, puede extenderse a incidencia oblicua y a análisis dependientes de la polarización cuando sea necesario.
👉 ¿Quiere empezar a simular ahora?: Pruebe el tutorial de inicio rápido sobre el modelo de matriz de transferencia
2. Acceso a la herramienta TMM
La herramienta de simulación de matriz de transferencia puede accederse desde la cinta Optical de la ventana principal seleccionando Transfer matrix (véase Figura ??).
3. Ejecutar una simulación TMM
Al hacer clic en Run optical simulation (véase Figura ??) se calcula la distribución de la luz dentro de la estructura en función de la longitud de onda y la posición. En la parte superior de la ventana de simulación puede seleccionar entre varios modelos ópticos. Elegir Transfer matrix realiza una simulación óptica completa, mientras que las otras opciones proporcionan aproximaciones simplificadas que son útiles para explorar perfiles de generación alternativos.
Los modos de simulación disponibles son:
- Transfer matrix: Realiza un cálculo completo de matriz de transferencia, incluyendo reflexiones múltiples en las interfaces y pérdidas ópticas. Éste es el modelo más preciso (y recomendado), resolviendo la ecuación de onda 1D para obtener el perfil del campo óptico.
- Exponential profile: Aproxima la absorción de luz usando un decaimiento exponencial: \[I = I_{0} e^{-\alpha x} \label{efield2}\] La transmisión entre capas viene dada por: \[T = 1 - \frac{n_1 - n_0}{n_1 + n_0} \label{equ:transfermatrixreflection}\] En este modelo se descartan las reflexiones.
- Flat profile: Supone intensidad de luz uniforme dentro de cada capa, disminuyendo solo en las interfaces según la Ecuación ??. Útil para explorar la dinámica de portadores de carga sin variación espacial en la generación.
- From file: Importa perfiles de generación personalizados, normalmente producidos por solucionadores más avanzados como FDTD.
- Constant value: Le permite establecer una tasa de generación fija para cada capa mediante el menú adyacente. Esto se usa a menudo para estudios conceptuales o barridos de rendimiento, por ejemplo representando la tasa de generación frente a \(V_{oc}\).
La ventana de simulación óptica proporciona varias pestañas que permiten explorar cómo interactúa la luz con el dispositivo. Por ejemplo, ?? muestra la densidad de fotones dentro de la estructura, donde las reflexiones en las interfaces entre capas dan lugar a patrones claros de interferencia. ?? presenta los mismos datos que ??, pero mostrados como un diagrama de bandas. Esta vista alternativa se accede haciendo clic con el botón derecho en la ventana y ajustando las opciones del menú, y es especialmente útil para generar figuras de diagramas de bandas para publicaciones. Finalmente, ?? muestra la ventana de configuración del modelo óptico. Un parámetro clave aquí es la photon efficiency, que especifica cuántos pares electrón–hueco se crean por fotón absorbido. En dispositivos orgánicos, este parámetro tiene en cuenta la recombinación geminada, mientras que en sistemas inorgánicos o bien ordenados normalmente debería fijarse cerca de 1.0.
5. Archivos de salida
Resumen: Después de ejecutar una simulación óptica, puede verse una visión general de los resultados en la ventana de simulación óptica (??), como se describió anteriormente. Para un análisis más detallado, hay información adicional disponible en la pestaña Output de la ventana principal (??). En ?? son visibles dos iconos clave: optical_output y optical_snapshots. Al hacer doble clic en optical_output se abre la ventana de resultados ópticos (Figura ??), mientras que al hacer doble clic en optical_snapshots se abre la ventana Optical Snapshots (??). La ventana Optical Snapshots permite inspeccionar datos resueltos en longitud de onda como densidad de fotones, fotones absorbidos y distribuciones del campo eléctrico dentro del dispositivo. Dado que los resultados se almacenan para cada longitud de onda, esta herramienta proporciona una visión detallada del rendimiento del dispositivo a través del espectro óptico.
optical_output y optical_snapshots normalmente solo se generan cuando la simulación óptica se ejecuta directamente,
y no se escriben cuando el solucionador óptico se llama como parte de una simulación eléctrica acoplada.
Optical_snapshots: La carpeta optical_snapshots descrita arriba proporciona acceso a densidad de fotones, fotones absorbidos, y al campo eléctrico óptico en función de la longitud de onda cuando se visualiza a través de la interfaz gráfica. Sin embargo, es simplemente un directorio estándar y también puede explorarse directamente en un gestor de archivos. Como se muestra en Figura ??, la carpeta contiene subdirectorios numerados de 0 a 12, cada uno correspondiente a una única longitud de onda simulada. Abrir uno de estos subdirectorios (por ejemplo, el directorio 0) revela los archivos de salida mostrados en Figura ??.
Estos archivos incluyen datos como perfiles de absorción, campos eléctricos, densidades de fotones y tasas de generación, todos escritos en formato CSV de texto plano para facilitar la inspección o el postprocesado. La tabla siguiente resume el contenido de un directorio típico de longitud de onda:
photons_abs.csv, mostrando metadatos seguidos por etiquetas de ejes y valores de datos.
Dado que estas salidas son texto plano, pueden abrirse con cualquier editor. Como se muestra en Figura ??, la primera línea de cada CSV contiene metadatos para la representación gráfica, la segunda línea describe los ejes y las líneas restantes proporcionan los datos numéricos sin procesar.
| Nombre del archivo | Descripción |
|---|---|
alpha.csv |
posición y vs. absorción en la longitud de onda seleccionada |
data.json |
archivo de metadatos JSON que incluye el valor de la longitud de onda e información para la representación gráfica |
En.csv |
posición y (m) vs. campo eléctrico, componente negativa (V/m) |
Ep.csv |
posición y (m) vs. campo eléctrico, componente positiva (V/m) |
G.csv |
posición y (m) vs. tasa de generación (\(m^{-3}s^{-1}\)) |
n.csv |
posición y (m) vs. parte real del índice de refracción n |
photons.csv |
posición y (m) vs. densidad de fotones (\(m^{-3}\)) |
photons_abs.csv |
posición y (m) vs. fotones absorbidos (\(m^{-3}s^{-1}\)) |
La carpeta optical_output en profundidad:
Mientras que el directorio optical_snapshots almacena resultados resueltos en longitud de onda (una subcarpeta por cada longitud de onda simulada),
el directorio optical_output contiene datos integrados en longitud de onda en forma de mapas bidimensionales de
longitud de onda vs. posición.
Estas salidas proporcionan una visión general de cómo interactúa la luz con el dispositivo a lo largo del espectro completo, incluyendo magnitudes
clave como tasa de generación de portadores de carga, densidad de fotones, densidad de fotones normalizada, transmisión y reflexión.
El contenido del directorio se muestra en
Figura ??.
Los archivos listados en Figura ?? se describen en detalle en Tabla ??.
optical_output, que contiene archivos resumen integrados en longitud de onda generados por el solucionador de matriz de transferencia.
| Nombre del archivo | Descripción | Tipo de gráfica |
|---|---|---|
data.json |
Archivo de metadatos con los ajustes de simulación en formato JSON | 1D |
G_y.csv |
posición y (m) vs. tasa de generación de carga (\(m^{-3} s^{-1}\)) | 2D |
G_zxy.csv |
posición zxy (m) vs. tasa de generación de carga (\(m^{-3} s^{-1}\)) | 2D |
Htot_zxy.csv |
posición zxy (m) vs. generación de calor óptico (\(W m^{-3}\)) | 2D |
light_src_id_xxx.csv |
Longitud de onda (m) vs. intensidad de luz de una fuente especificada (\(W/m\)) | 2D |
photons_abs_yl.csv |
Longitud de onda (m) vs. posición y (m) vs. fotones absorbidos (\(m^{-3} s^{-1}\)) | 2D |
photons_yl.csv |
Longitud de onda (m) vs. posición y (m) vs. densidad de fotones (\(m^{-3}\)) | 2D |
photons_yl_norm.csv |
Longitud de onda (m) vs. posición y (m) vs. densidad de fotones normalizada (u.a.) | 2D |
reflect.csv |
Longitud de onda (m) vs. luz reflejada por la pila del dispositivo | 1D |
transmit.csv |
Longitud de onda (m) vs. luz transmitida a través de la pila del dispositivo | 1D |
6. Simulación de capas ópticamente gruesas (capas incoherentes)
Los dispositivos optoelectrónicos típicos tienen capas activas de entre 10 nm y 100 nm de espesor. Sin embargo, estos dispositivos suelen depositarse sobre sustratos de entre 10 mm y 1 cm de espesor. En muchos casos resulta útil simular no solo el propio dispositivo, sino también los efectos ópticos del sustrato. Esto requiere una herramienta de simulación que pueda abarcar escalas de longitud desde nanómetros hasta metros. Existen tres desafíos principales para hacerlo:
- Problema 1: Simular diferentes escalas de longitud – Los solucionadores numéricos tienen dificultades cuando manejan números muy grandes y muy pequeños en el mismo cálculo. Esto puede conducir a errores de redondeo y errores numéricos.
- Problema 2: Longitud de onda de la luz – Dado que la longitud de onda de la luz visible es mucho menor que 1 cm, simular una capa de espesor centimétrico requiere una malla espacial impracticablemente fina para capturar efectos de interferencia.
- Problema 3: Pérdida de coherencia – El modelo de matriz de transferencia supone que la luz entra con incidencia normal y que las capas están libres de defectos. En sustratos gruesos, la dispersión y las inhomogeneidades rompen estas suposiciones, y el campo luminoso se vuelve incoherente.
OghmaNano aborda estos problemas de dos maneras. En primer lugar, permite al usuario tratar una capa como incoherente, considerando solo la absorción y despreciando la información de fase. Este enfoque resuelve los Problemas 2 y 3. La opción puede establecerse en el editor de capas (Figura ??). En la columna etiquetada Solve optical problem, las capas marcadas como Yes – n/k incluyen tanto fase como absorción, mientras que las marcadas como Yes – k tienen en cuenta solo la atenuación, tratándolas efectivamente como capas incoherentes.
En segundo lugar, para manejar el Problema 1 (grandes diferencias en escala de longitud), OghmaNano permite asignar un espesor óptico efectivo a cualquier capa. Por ejemplo, un sustrato puede definirse como de 100 nm de espesor en el editor de capas pero asignársele una profundidad efectiva de 1 m. Internamente, esto se implementa escalando el coeficiente de absorción:
\[\alpha_{\text{effective}}(\lambda) = \alpha(\lambda)\,\frac{L_{\text{effective}}}{L_{\text{simulation}}}\]
donde \(\alpha_{\text{effective}}\) es la absorción escalada usada en la simulación, \(\alpha\) es el coeficiente de absorción del material, \(L_{\text{effective}}\) es el espesor efectivo deseado (por ejemplo 1 m), y \(L_{\text{simulation}}\) es el espesor real de la capa en el editor. Este enfoque reduce los problemas numéricos y también produce gráficas más útiles, donde el sustrato no domina los ejes y las capas del dispositivo siguen siendo claramente visibles.
Para utilizar esta característica, configure la estructura del dispositivo como se muestra en Figura ??. Luego, en la ventana de matriz de transferencia, haga clic en el botón Optical Thickness (Figura ??). Esto abre el cuadro de diálogo de configuración (Figura ??), donde puede especificarse el espesor óptico efectivo de cualquier capa. En el ejemplo mostrado, el sustrato de vidrio se fija en 1 m.
4. ¿Cuándo se ejecuta el TMM?
La simulación de matriz de transferencia puede ejecutarse de dos maneras. En primer lugar, puede lanzarse directamente haciendo clic en el botón Play. Alternativamente, el modelo óptico se ejecuta automáticamente siempre que se ejecuta una simulación eléctrica, sin requerir ninguna acción adicional del usuario.
La principal diferencia entre estos dos modos está en la salida. Cuando se ejecuta directamente, la simulación óptica genera un conjunto más completo de archivos de salida en disco. En cambio, cuando se invoca como parte de una simulación eléctrica, la salida se reduce solo a los datos esenciales, para evitar ralentizar el solucionador eléctrico.
👉 Teoría del TMM: Vaya a la siguiente sección para comprender la teoría de la matriz de transferencia.