Esta sección recoge los modelos que MatLens aplica a espectros Raman e IR: líneas base, búsqueda y ajuste de picos, razones de intensidad en carbonos (D/G, 2D/G), tamaño de cristalito L_a, densidad de defectos, relaciones empíricas para materiales 2D (hBN, TMD) y el análisis de grupo factor de los modos en Γ.
Líneas base
Código: matlens/core/spectra.py::baseline y las funciones baseline_*.
ALS: mínimos cuadrados asimétricos (matlens/core/spectra.py::baseline_als). Se minimiza
- z: línea base.
- D: matriz de segundas diferencias.
- \lambda: parámetro de suavizado, 10^5 por defecto.
- w_i: pesos, que se recalculan en cada una de las 10 iteraciones: w_i = p si y_i > z_i y w_i = 1 - p si y_i < z_i, con p = 0.01.
Nota (diferencia con la literatura): un punto con y_i = z_i exactamente recibe peso 0.
arPLS (matlens/core/spectra.py::baseline_arpls; es el método por defecto). Resuelve el mismo sistema lineal que ALS, con los pesos
- \mu^-, \sigma^-: media y desviación típica de los d_i < 0.
Se detiene cuando \lVert w - w' \rVert / \lVert w \rVert < 10^{-6}, o tras 50 iteraciones. Si no se indica \lambda, baseline usa \lambda = 10^5\max\!\left(1, (N/1000)^2\right) para que una banda ancha (por ejemplo, D/G de GO) no se absorba en la línea base.
SNIP (matlens/core/spectra.py::baseline_snip). Con la transformación LLS:
Para k = 1, \dots, K se aplica
y al final se deshace la transformación con y = \left(e^{e^{v}-1}-1\right)^2 - 1. El número de iteraciones K (40 por defecto) es aproximadamente la semianchura, en puntos, del pico más ancho.
Polinomio iterativo (matlens/core/spectra.py::baseline_poly). Se ajusta un polinomio de grado 3 sobre x normalizado y en cada iteración se recortan los datos al mínimo entre dato y ajuste. Se detiene por convergencia o tras 100 iteraciones.
Shirley (matlens/core/spectra.py::baseline_shirley). Usa la misma iteración que en XPS, pero con los extremos y_0 e y_{N-1} (un solo punto en cada lado), 50 iteraciones como máximo y tolerancia 10^{-6}\,|y_{N-1} - y_0|.
Lineal. Recta entre las medias de los primeros y los últimos \max(1, \lfloor N/50 \rfloor) puntos.
Sonneveld–Visser (matlens/core/spectra.py::baseline_sonneveld). Se toma 1 de cada g puntos (g = 20). Durante 30 iteraciones, cada punto interior que cumple b_i > \tfrac{1}{2}(b_{i-1} + b_{i+1}) + c se sustituye por esa media, con
donde \beta es el parámetro de curvatura (bending). Al final se interpola linealmente al eje completo.
Nota (diferencia con la literatura): el término de curvatura se escala con \sqrt{\text{cuentas}} (sigma de Poisson) y por 0.1. Es una normalización propia de MatLens.
La línea base es un cálculo determinista y no aporta incertidumbre a los resultados.
Referencias (citadas en el código): Eilers y Boelens (2005), ALS; Baek et al., Analyst 140 (2015) 250, arPLS; Ryan et al., NIM B 34 (1988) 396, y Morháč et al. (1997), SNIP; Lieber y Mahadevan-Jansen (2003), polinomio modificado; Shirley, Phys. Rev. B 5 (1972) 4709; Sonneveld y Visser, J. Appl. Cryst. 8 (1975) 1.
Significado de \lambda y p. En ALS/arPLS el primer término ata la línea base a los datos y el segundo penaliza su curvatura; \lambda fija la escala de suavidad (cuanto mayor, más ancha puede ser una banda sin que la línea base la siga), por eso \lambda se escala con N^2 en baseline. La asimetría (p \ll 1 o los pesos logísticos de arPLS) hace que los puntos por encima de la línea base (picos) casi no tiren de ella. Todas las líneas base fallan cuando una banda es más ancha que la escala de suavidad (luminiscencia frente a bandas anchas de carbono amorfo): el resultado depende entonces del método y debe comprobarse visualmente.
Ejemplo resuelto
Espectro sintético de 3001 puntos (200–3200 cm⁻¹): fondo 300 + 0.05(x-200) + 80\,e^{-((x-1800)/900)^2}, dos lorentzianas (1000 cm⁻¹, altura 500, FWHM 12; 1600 cm⁻¹, altura 300, FWHM 20) y ruido gaussiano σ = 3 (semilla fija). Error de la línea base estimada por baseline con los parámetros por defecto de cada método (arPLS con \lambda = 10^5\max(1,(N/1000)^2) = 9.006e+05):
| método | RMS (cuentas) | error máximo (cuentas) |
|---|---|---|
| arpls | 2.26 | 8.51 |
| als | 6.5 | 22.9 |
| snip | 6.8 | 9.72 |
| poly | 15.8 | 38.9 |
El error de la línea base no entra en la incertidumbre de los parámetros ajustados después.
Búsqueda de picos
Código: matlens/core/spectra.py::find_peaks.
Los picos se detectan por prominencia topográfica (scipy.signal.find_peaks), con un umbral igual a una fracción del rango de la señal (2 % por defecto). La FWHM se mide a media prominencia y se convierte con el paso mediano \delta x. El área es una estimación gaussiana:
- h: altura del pico.
- w: FWHM.
Referencia: implementación propia.
Ajuste multipico
Código: matlens/core/spectra.py::fit_peaks, matlens/core/materials2d.py::fit_bands.
Modelo. Se ajusta un fondo (lineal, constante, cuadrático o ninguno) más una suma de perfiles de lmfit:
- Gauss: w = 2\sqrt{2\ln 2}\,\sigma \approx 2.3548\,\sigma.
- Lorentz: w = 2\sigma.
- Pseudo-Voigt: (1-\eta)\,G + \eta\,L, con G y L de igual FWHM.
- Voigt: este perfil solo está disponible en
fit_peaks.
En todos los perfiles, el parámetro amplitude es el área integrada.
Función objetivo. Mínimos cuadrados sin pesos, \sum_i \left(y_i - \hat{y}_i\right)^2, resueltos con lmfit (Levenberg–Marquardt).
Valores iniciales y restricciones en fit_peaks:
- FWHM inicial: w_0 = \mathrm{span}/(10\,N_\mathrm{picos}), salvo que se indique otra.
- Área inicial: 1.064\,h\,w_0.
- Centro: dentro de \pm\max(2w_0, 0.01\,\mathrm{span}) de su valor inicial.
- \sigma: entre w_0/50 y el span.
- Área: no negativa.
- Pseudo-Voigt: \eta = 0.5 inicial, en [0, 1] y compartido entre picos por defecto.
- Opcionalmente, todos los picos comparten la misma FWHM.
Valores iniciales y restricciones en fit_bands:
- Cada banda tiene un intervalo [\mathrm{lo}, \mathrm{hi}] para su centro y una FWHM máxima.
- La FWHM mínima es \max(1.5\,\delta x,\ 0.3).
- Área inicial: 1.2\,h\,w_0.
- Pseudo-Voigt: \eta = 0.7 inicial.
Incertidumbre (k = 1). Los errores estándar de centro, FWHM y área salen de la matriz de covarianza de lmfit, escalada por \sqrt{\chi^2_\nu}. Las razones que se derivan de ellos (D/G, etc.) se informan sin propagar incertidumbre. La calidad del ajuste se resume con R^2 = 1 - \mathrm{SS}_\mathrm{res}/\mathrm{SS}_\mathrm{tot}.
Referencia: implementación propia.
Bandas de carbono y razones de intensidad
Código: matlens/core/materials2d.py::carbon_specs, matlens/core/materials2d.py::second_order_specs, matlens/core/materials2d.py::analyze_carbon_raman.
Las posiciones iniciales dependen de la energía del láser E_L = hc/\lambda_L (eV), con hc = 1239.84198 eV·nm:
Las posiciones \omega están en cm⁻¹.
Modelo basic. Tres bandas:
- D: libre ±40 cm⁻¹ alrededor de \omega_D^0.
- G: 1583 cm⁻¹, en [1560, 1605].
- D′: 1620 cm⁻¹, en [1608, 1645].
Modelo five (Sadezky). Cinco bandas:
- D4: 1200 cm⁻¹, perfil de Lorentz.
- D: alrededor de \omega_D^0.
- D3: 1510 cm⁻¹, perfil de Gauss.
- G: 1583 cm⁻¹.
- D′ (D2): 1620 cm⁻¹.
El orden 2 (2D y D+D′) se ajusta en la ventana de 2400 a 3300 cm⁻¹.
- h: altura de la banda ajustada.
- A: área de la banda ajustada.
ratio="height" (por defecto) usa I_D/I_G|_h para L_a y para los defectos; ratio="area" usa I_D/I_G|_A. Ambas razones se informan siempre. Las alturas h_D, h_G y la posición de G son los máximos de la envolvente ajustada sin fondo (suma de las bandas) en \omega_D \pm 60 y 1530–1680 cm⁻¹: en carbonos desordenados G y D′ no se resuelven y el «pico G» medido es la banda fusionada (Ferrari y Robertson 2000); la razón de las componentes individuales se conserva como ID_IG_h_fit. Si en una de las dos ventanas el máximo del espectro medido sin fondo, suavizado con Savitzky–Golay (orden 2, ventana ≈ FWHM mínima/4), se aparta del de la envolvente más de 3\sigma_s (\sigma_s: ruido de un punto suavizado; \sigma = 1.4826·MAD de las primeras diferencias /\sqrt2), el modelo no reproduce el techo de la banda (banda D no lorentziana o asimétrica, G dividida en G⁻/G⁺ en nanotubos, G+D′) y esa altura se lee en el espectro medido (matlens/core/materials2d.py::band_top_heights): I_D/I_G se define con las intensidades de pico del espectro (Tuinstra y Koenig 1970; Ferrari y Robertson 2000), no con las de un modelo. Si el modelo ajusta dentro del ruido se conserva la envolvente, que no sesga el máximo hacia arriba por el ruido. Se informan ID_IG_h_env (solo envolvente) y ID_IG_h_method (lectura usada en D y en G).
Validez: si el ajuste D/G no converge, el resultado no es válido; si R^2 < 0.9, se emite un aviso. Si en el modelo basic la FWHM de G supera 70 cm⁻¹ y h_D/h_G > 0.5, se sugiere el modelo de 5 bandas.
Referencias: Sadezky et al., Carbon 43 (2005) 1731; Ferrari et al., Phys. Rev. Lett. 97 (2006) 187401.
Algoritmo completo de analyze_carbon_raman. (1) Ventana de primer orden 1000–1800 cm⁻¹; error si tiene menos de 30 puntos o no cubre 1250–1650 cm⁻¹. (2) fit_bands con las bandas de carbon_specs (modelo, perfil, láser). (3) Aviso de G ancha (modelo basic). (4) Si los datos cubren 2500–2800 cm⁻¹ y la ventana 2400–3300 tiene al menos 30 puntos, ajuste de 2D y D+D′ (fondo lineal si se pidió none). (5) Razones de alturas y áreas; lectura de alturas sobre la envolvente o sobre el espectro suavizado (band_top_heights). (6) L_a con las dos convenciones; se informa la de ratio. (7) Defectos con defects_cancado(..., "auto", FWHM_G). (8) Si L_a < 10 nm, nota (no aviso de validez) y L_a de Ferrari–Robertson. (9) Etapa de amorfización y número de capas.
Incertidumbre. Las razones I_D/I_G, L_a, L_D y n_D se informan sin incertidumbre. Las esd de lmfit de alturas y áreas existen, pero no se propagan; tampoco se incluye el error de la línea base, la elección del modelo de bandas (3 frente a 5) ni la incertidumbre de los prefactores empíricos (±0.5 sobre 1.8 en Cançado 2011), que domina el resultado.
Ejemplo resuelto
Espectro sintético de carbono (láser 532 nm, 1000–3300 cm⁻¹, paso 1 cm⁻¹): lorentzianas D (1345 cm⁻¹, altura 800, FWHM 45), G (1585, 1000, 30), D′ (1620, 150, 25), 2D (2690, 400, 60) y D+D′ (2930, 80, 70), fondo lineal 50 + 0.02(x-1000) y ruido gaussiano σ = 5 (semilla fija). Resultado de analyze_carbon_raman con los valores por defecto (basic, lorentziana, fondo lineal, ratio="height"):
| magnitud | valor |
|---|---|
| posición D / G (cm⁻¹) | 1344.99 / 1585 |
| FWHM D / G (cm⁻¹) | 44.81 / 30.09 |
| I_D/I_G alturas (ajuste) | 0.7997 |
| I_D/I_G alturas (usada) | 0.7858 (D:envelope, G:envelope) |
| I_D/I_G áreas | 1.191 |
| I_D/I_D′ | 5.253 |
| I_2D/I_G | 0.3984 |
| FWHM 2D (cm⁻¹) | 60.62 |
| L_a Tuinstra–Koenig, alturas (nm) | 6.307 |
| L_a Cançado, áreas (nm) | 16.14 |
| régimen de defectos | low |
| L_D (nm) | 13.55 |
| n_D (cm⁻²) | 1.766e+11 |
| número de capas (2D) | pocas capas (≈3–5) |
| etapa Ferrari–Robertson | 1 |
| L_a Ferrari–Robertson (nm) | 1.123 |
| R² del ajuste D/G | 0.99943 |
| validez | ok |
Notas emitidas: La < 10 nm: la relación de Cançado (2006) pierde validez (I_D/I_G ∝ La² en carbonos nanocristalinos); úsala sólo como índice relativo.
La razón de alturas de las componentes verdaderas es 0.8; la de áreas 800\cdot45/(1000\cdot30) = 1.2. La envolvente de G incluye la cola de D′, por lo que la razón leída sobre ella difiere de la de las componentes.
Tamaño de cristalito en el plano, L_a
Código: matlens/core/materials2d.py::cancado_la, matlens/core/materials2d.py::tuinstra_koenig_la, matlens/core/materials2d.py::ferrari_robertson_la.
Cançado (2006), que se aplica con la razón de áreas:
Tuinstra–Koenig, que se aplica con la razón de alturas:
C(514.5) = 4.38 nm es la constante original de Tuinstra–Koenig (4.4 nm); fuera de 400–700 nm no se calcula (NaN). La ley \lambda^4 de Cançado corresponde a la razón de áreas y no se aplica a la constante de alturas.
Ferrari–Robertson, etapa 2, que solo se calcula cuando L_a < 10 nm:
C'(514\ \mathrm{nm}) = 0.0055 Å⁻² es el valor de Ferrari y Robertson, obtenido haciendo coincidir ambos regímenes hacia L_a \approx 2 nm; para otro láser se escala con la misma C(\lambda_L) de Tuinstra–Koenig.
- \lambda_L: longitud de onda del láser (nm), 532 nm por defecto.
matlens/core/materials2d.py::laser_from_namepuede leerla del nombre del archivo. - L_a: tamaño de cristalito en el plano (nm).
- Si I_D/I_G \le 0, se devuelve L_a = \infty.
Nota (diferencia con la literatura): el escalado de C' con \lambda_L por continuidad con Tuinstra–Koenig sigue el razonamiento de Ferrari y Robertson, que solo dan el valor a 514 nm.
Validez: la fórmula de Cançado y la de Tuinstra–Koenig valen para L_a \gtrsim 10 nm; por debajo, MatLens añade un aviso y calcula además la estimación de Ferrari–Robertson. Esta última solo es aplicable para L_a \lesssim 2 nm.
Referencias: Cançado et al., Appl. Phys. Lett. 88 (2006) 163106; Ferrari y Robertson, Phys. Rev. B 61 (2000) 14095; Tuinstra y Koenig, J. Chem. Phys. 53 (1970) 1126; Matthews, Pimenta, Dresselhaus y Endo, Phys. Rev. B 59 (1999) R6585.
Densidad de defectos y distancia entre defectos (grafeno)
Código: matlens/core/materials2d.py::defects_cancado, matlens/core/materials2d.py::defect_model_idig.
Régimen de bajo defecto (L_D \gtrsim 4 nm):
Régimen de alto defecto. Se invierte numéricamente la rama creciente del modelo de activación local, evaluado en una malla de 4000 puntos para L_D \in [0.5, 10] nm:
- L_D: distancia media entre defectos (nm).
- n_D: densidad de defectos (cm⁻²).
- r_A = 3 nm: radio de la región activada.
- r_S = 1 nm: radio de la región estructuralmente dañada.
- C_S = 0.87 (adimensional).
- C_A = 4.2\,(514.5/\lambda_L)^4 (adimensional).
Elección del régimen. Con regime="auto" se usa el régimen de alto defecto si la FWHM de G supera 40 cm⁻¹, y el de bajo defecto en otro caso.
Validez:
- En el régimen de bajo defecto, si L_D < 4 nm el resultado se marca como no válido.
- En el régimen de alto defecto, si I_D/I_G supera el máximo del modelo, el resultado no es invertible y se devuelve NaN.
- Ambos regímenes son estrictamente válidos para grafeno con defectos puntuales; en rGO y otros carbonos el resultado es solo un índice relativo.
En el régimen de bajo defecto n_D se calcula con la expresión publicada por Cançado et al. (2011), 1.8\times10^{22}\,\lambda_L^{-4}\,(I_D/I_G); difiere de 10^{14}/(\pi L_D^2) en torno al 2 %, dentro de la incertidumbre de \pm0.5 de los prefactores 1.8. En el de alto defecto se usa n_D = 10^{14}/(\pi L_D^2).
Tipo de defecto (matlens/core/materials2d.py::defect_type_from_id_idp), según la razón de alturas I_D/I_{D'}:
- \ge 10: defectos sp³ (valor típico ≈ 13).
- de 5 a 10: vacantes (≈ 7).
- de 2.5 a 5: bordes de grano (≈ 3.5).
- menos de 2.5: resultado poco fiable.
Referencias: Cançado et al., Nano Lett. 11 (2011) 3190; Lucchese et al., Carbon 48 (2010) 1592; Eckmann et al., Nano Lett. 12 (2012) 3925.
Nota (comportamiento del código): en el régimen de alto defecto la inversión usa numpy.interp sobre la rama creciente de la malla L_D \in [0.5, 10] nm, que satura en el extremo inferior: si I_D/I_G es menor que el valor del modelo en L_D = 0.5 nm, se devuelve L_D = 0.5 nm (y n_D \approx 1.27\times10^{14} cm⁻²) marcado como válido, sin aviso. Ese caso corresponde físicamente a la rama de bajo defecto; con regime="auto" solo ocurre si la FWHM de G supera 40 cm⁻¹ con una razón pequeña. El ejemplo siguiente lo muestra en las dos primeras filas.
Ejemplo resuelto
Funciones tuinstra_koenig_la, cancado_la y defects_cancado evaluadas a \lambda_L = 532 nm para varios valores de I_D/I_G (la misma razón se pasa a las dos fórmulas de L_a solo para comparar; en el flujo real cada una recibe su propia razón, de alturas o de áreas). C(532) = 4.956 nm.
| I_D/I_G | L_a TK (nm) | L_a Cançado (nm) | L_D bajo (nm) | válido (L_D ≥ 4) | L_D alto (nm) | n_D alto (cm⁻²) |
|---|---|---|---|---|---|---|
| 0.05 | 99.12 | 384.5 | 53.7 | sí | 0.5 | 1.273e+14 |
| 0.3 | 16.52 | 64.08 | 21.92 | sí | 0.5 | 1.273e+14 |
| 1.0 | 4.956 | 19.22 | 12.01 | sí | 0.9843 | 3.286e+13 |
| 2.5 | 1.982 | 7.69 | 7.594 | sí | 2.111 | 7.143e+12 |
Trayectoria de amorfización (Ferrari–Robertson)
Código: matlens/core/materials2d.py::ferrari_robertson_stage.
Asigna de forma heurística la etapa 1, 2 o 3 de la trayectoria de amorfización a partir de tres datos: la posición de G, la FWHM de G y I_D/I_G. Los umbrales son:
- Si I_D/I_G < 0.05 o no hay banda D (se considera que hay D si h_D > 0.03\,h_G): etapa 3 si G está por debajo de 1575 cm⁻¹; etapa 1 en otro caso.
- Etapa 1: G en 1585 cm⁻¹ o más, I_D/I_G \ge 0.1 y FWHM de G menor que 80 cm⁻¹.
- Etapa 3: G por debajo de 1570 cm⁻¹ e I_D/I_G < 1.
- Etapa 2: G por debajo de 1585 cm⁻¹, FWHM de G mayor que 60 cm⁻¹ e I_D/I_G < 0.8.
- Frontera entre las etapas 1 y 2: G en 1585 cm⁻¹ o más y FWHM de G de 80 cm⁻¹ o más.
Se trata de una pista cualitativa; no es una medida.
Referencia: Ferrari y Robertson, Phys. Rev. B 61 (2000) 14095.
Número de capas de grafeno
Código: matlens/core/materials2d.py::graphene_layers.
Clasificación empírica a partir de la FWHM de 2D (en cm⁻¹) y de I_{2D}/I_G (razón de alturas):
- FWHM ≤ 38 e I_{2D}/I_G \ge 2: monocapa.
- FWHM ≤ 45 e I_{2D}/I_G \ge 1: monocapa o multicapa turbostrática.
- FWHM ≤ 62 y 0.6 \le I_{2D}/I_G < 1.6: bicapa.
- FWHM ≤ 75 e I_{2D}/I_G \ge 0.25: de 3 a 5 capas.
- Cualquier otro caso: multicapa, grafito o rGO.
La estimación depende del dopaje, la tensión, el apilamiento y el láser, y no es aplicable a rGO.
Referencia: Ferrari et al., Phys. Rev. Lett. 97 (2006) 187401. El código cita además a Graf (2007) sin referencia completa.
hBN: modo E2g
Código: matlens/core/materials2d.py::analyze_hbn_raman, matlens/core/materials2d.py::hbn_layers_hint.
Ajuste. El modo E2g se ajusta con un pseudo-Voigt en la ventana de 1280 a 1460 cm⁻¹, con el centro en [1350, 1385] cm⁻¹. El corrimiento respecto al valor masivo es
Número de capas, según la posición:
- 1369 cm⁻¹ o más: monocapa o bicapa.
- de 1367.3 a 1369 cm⁻¹: de 2 a 6 capas.
- de 1364.5 a 1367.3 cm⁻¹: multicapa o bulk.
- por debajo de 1364.5 cm⁻¹: posición anómala.
Calidad cristalina, según la FWHM:
- 11 cm⁻¹ o menos: alta cristalinidad.
- de 11 a 22 cm⁻¹: polvo o nanohojas.
- de 22 a 40 cm⁻¹: material defectuoso.
- más de 40 cm⁻¹: BN turbostrático o amorfo.
Modo de cizalla. Si los datos cubren la región, se busca el modo de cizalla en torno a 52.5 cm⁻¹ (ventana de 30 a 95 cm⁻¹). Se acepta solo si cumple tres condiciones: altura mayor que 5 veces el ruido, estimado como 1.4826\cdot\mathrm{MAD} de los residuos; FWHM menor que 25 cm⁻¹; y centro entre 46 y 60 cm⁻¹.
Referencias: Gorbachev et al., Small 7 (2011) 465; Nemanich, Solin y Guerard, Phys. Rev. B 23 (1981) 6348; Reich et al., Phys. Rev. B 71 (2005) 205201.
TMD: separación A1g − E¹2g y fotoluminiscencia
Código: matlens/core/materials2d.py::analyze_tmd_raman, matlens/core/materials2d.py::tmd_layers, matlens/core/materials2d.py::analyze_tmd_pl.
- \Delta: separación entre los dos modos (cm⁻¹). Ambos modos se ajustan con perfil de Lorentz; en WS₂ se añade la banda 2LA(M), centrada en 352 cm⁻¹.
Número de capas en MoS₂:
- \Delta < 20.5 cm⁻¹: 1 capa.
- \Delta < 22.7 cm⁻¹: 2 capas.
- \Delta < 23.6 cm⁻¹: 3 capas.
- \Delta < 24.4 cm⁻¹: 4 capas.
- \Delta \ge 24.4 cm⁻¹: 5 o más capas.
Número de capas en WS₂:
- \Delta < 63.0 cm⁻¹: 1 capa.
- \Delta < 64.7 cm⁻¹: 2 capas.
- \Delta \ge 64.7 cm⁻¹: 3 o más capas.
Fotoluminiscencia. El excitón A se ajusta con un pseudo-Voigt. Si la mediana del eje es mayor que 100, se interpreta en nm y se convierte a eV con E = 1239.84198/\lambda. El espectro se considera propio de monocapa si el excitón A cae entre 1.80 y 1.92 eV (MoS₂) o entre 1.93 y 2.07 eV (WS₂).
Referencias: Lee et al., ACS Nano 4 (2010) 2695 (MoS₂); Berkdemir et al., Sci. Rep. 3 (2013) 1755 (WS₂).
Significado. Al aumentar el número de capas, el modo fuera del plano A_{1g} se endurece (interacción de van der Waals entre capas) y el modo en el plano E^1_{2g} se ablanda (atribuido por Lee et al. al apantallamiento dieléctrico de las interacciones de largo alcance), de modo que \Delta crece hasta el valor de bulk. La tensión, el dopaje y el sustrato desplazan cada modo ≈ 1 cm⁻¹, del orden de la diferencia entre 3 y 4 capas; la confianza devuelta es «media» para MoS₂ con 17 \le \Delta \le 27 cm⁻¹ y «baja» en los demás casos (siempre «baja» en WS₂).
Ejemplo resuelto
Clasificación de tmd_layers para separaciones \Delta de ejemplo:
| material | A1g (cm⁻¹) | E¹2g (cm⁻¹) | Δ (cm⁻¹) | resultado |
|---|---|---|---|---|
| MoS2 | 403.2 | 384.4 | 18.8 | monocapa |
| MoS2 | 407.8 | 382.9 | 24.9 | ≥5 capas / bulk |
| WS2 | 418.0 | 355.6 | 62.4 | monocapa |
Análisis de grupo factor: modos Raman e IR en Γ
Código: matlens/core/symmetry_modes.py::factor_group_analysis, matlens/core/symmetry_modes.py::_reduce, matlens/core/symmetry_modes.py::_activities.
Representación de desplazamientos. Su carácter es
Reducción a representaciones irreducibles:
Modos ópticos:
Actividad. Una representación irreducible j es IR activa si aparece en \Gamma_\mathrm{vec}, y Raman activa si aparece en el cuadrado simétrico, cuyo carácter es
En ambos casos el criterio es que la multiplicidad sea mayor que 0.5.
- R = (W, t): un representante de clase lateral por cada parte rotacional W del grupo factor.
- n_\mathrm{inv}(R): número de átomos que R deja invariantes, salvo traslaciones de la red primitiva (incluidas las de centrado). Se divide entre el número de vectores de centrado para contar una sola celda primitiva.
- \chi_j: caracteres de la tabla del grupo puntual. Las 32 tablas están almacenadas en el código; en los grupos con pares complejos conjugados, cada par se combina en una representación E.
Comprobaciones. El resultado se rechaza si alguna multiplicidad no es entera (tolerancia 10^{-6}) o es negativa, si \sum n_j\,d_j \ne 3N, o si el orden del grupo o la asignación de clases no coinciden. La simetría se determina con spglib (symprec = 0.01 Å por defecto).
Validez:
- Las ocupaciones parciales se tratan como completas.
- Las posiciones desdobladas se cuentan como átomos distintos.
- Las etiquetas B1/B2 dependen de la orientación estándar que elige spglib.
Referencia: Rousseau, Bauman y Porto, J. Raman Spectrosc. 10 (1981) 253, citado en el código junto con el programa SAM de Bilbao.
Referencias con DOI
- Baek et al., Analyst 140 (2015) 250, doi:10.1039/C4AN01061B (arPLS).
- Ryan et al., Nucl. Instrum. Methods B 34 (1988) 396, doi:10.1016/0168-583X(88)90063-8 (SNIP).
- Lieber y Mahadevan-Jansen, Appl. Spectrosc. 57 (2003) 1363, doi:10.1366/000370203322554518.
- Shirley, Phys. Rev. B 5 (1972) 4709, doi:10.1103/PhysRevB.5.4709.
- Sonneveld y Visser, J. Appl. Cryst. 8 (1975) 1, doi:10.1107/S0021889875009417.
- Tuinstra y Koenig, J. Chem. Phys. 53 (1970) 1126, doi:10.1063/1.1674108.
- Ferrari y Robertson, Phys. Rev. B 61 (2000) 14095, doi:10.1103/PhysRevB.61.14095.
- Cançado et al., Appl. Phys. Lett. 88 (2006) 163106, doi:10.1063/1.2196057.
- Cançado et al., Nano Lett. 11 (2011) 3190, doi:10.1021/nl201432g.
- Lucchese et al., Carbon 48 (2010) 1592, doi:10.1016/j.carbon.2009.12.057.
- Eckmann et al., Nano Lett. 12 (2012) 3925, doi:10.1021/nl300901a.
- Ferrari et al., Phys. Rev. Lett. 97 (2006) 187401, doi:10.1103/PhysRevLett.97.187401.
- Sadezky et al., Carbon 43 (2005) 1731, doi:10.1016/j.carbon.2005.02.018.
- Matthews et al., Phys. Rev. B 59 (1999) R6585, doi:10.1103/PhysRevB.59.R6585.
- Gorbachev et al., Small 7 (2011) 465, doi:10.1002/smll.201001628.
- Nemanich, Solin y Guerard, Phys. Rev. B 23 (1981) 6348, doi:10.1103/PhysRevB.23.6348.
- Reich et al., Phys. Rev. B 71 (2005) 205201, doi:10.1103/PhysRevB.71.205201.
- Lee et al., ACS Nano 4 (2010) 2695, doi:10.1021/nn1003937.
- Berkdemir et al., Sci. Rep. 3 (2013) 1755, doi:10.1038/srep01755.
- Rousseau, Bauman y Porto, J. Raman Spectrosc. 10 (1981) 253, doi:10.1002/jrs.1250100152.
- Sin DOI: Eilers y Boelens (2005, informe técnico), Morháč et al. (1997, sin referencia completa en el código), Graf (2007, sin referencia completa en el código).