Drift–diffusion 3D: resistor GaAs dopado
Este tutorial demuestra cómo pasar de una configuración rápida drift–diffusion 2D a una simulación eléctrica 3D completa para un dispositivo simple—pero muy instructivo—: un resistor de arseniuro de galio (GaAs) dopado. Es ideal para docencia y hojas de ejercicios: la física es limpia, la JV es casi lineal y las salidas ilustran bien cómo los potenciales y las corrientes se distribuyen en el espacio.
1. Crear el resistor GaAs 2D
- New simulation → GaAs demos → Doped wire / resistor.
- Geometría: comience en 2D con puntos de malla a lo largo de X y Y. (Mantenga Z desactivado por ahora; lo activaremos más adelante.)
- Dopado: defina un perfil de aceptores que aumente de izquierda→derecha (gradiente tipo p). El “wire” es simplemente un bloque rectangular de GaAs con este gradiente aplicado.
- Contactos: caras opuestas actúan como electrodos (superior/inferior o izquierda/derecha según su convención de ejes). Uno será barrido en voltaje mientras el otro se mantiene a 0 V.
- Recombinación: active SRH simple (forma analítica). No se requieren trampas dinámicas para esta demostración.
2. Ejecutar y comprobar coherencia (2D)
Haga clic en Run. En el log:
- Los tiempos de paso deberían ser de unos pocos ms cada uno (en un portátil modesto, del orden de 6–8 ms).
- Las corrientes de contacto coinciden (superior = inferior en estado estacionario). Si no coinciden, probablemente está en dominio temporal o no ha convergido.
- Los residuales (error total) deberían ser pequeños: ≲10−9 es excelente. Valores como 10−6…10−3 sugieren volver a comprobar configuración/malla.
Abra Output:
- Curva JV: comportamiento casi lineal como se espera para un resistor. Puede aparecer una ligera ondulación debido a carga espacial y dopado.
- Snapshots: represente EC (banda de conducción; a veces etiquetada como “LUMO” en la UI genérica), ϕ (potencial electrostático) y densidades de portadores (n, p) a medida que aumenta el sesgo.
3. Extender a 3D: malla y contactos
Active la dimensión Z en el editor de malla. Elija primero tamaños modestos:
Nx × Ny × Nz = 5 × 5 × 5. El tiempo de ejecución/la memoria escalan aproximadamente como
\( \mathcal{O}(N_x N_y N_z) \approx \mathcal{O}(N^3) \), por lo que
10×10×10 está bien en un portátil, pero 20×20×20 o más puede volverse pesado rápidamente.
En 3D, los contactos son objetos de área finita (no se extienden implícitamente por toda la cara como en 2D). Abra el Dimension/Contact editor y:
- Establezca el ancho/profundidad de cada contacto para que coincida con el dispositivo (para electrodos de cara completa) o elija dimensiones parciales (p. ej., 0.5×0.5 de la cara) para estudiar la dispersión de corriente.
- Ajuste los offsets para colocar las almohadillas donde desee (demuestra inyección/extracción asimétrica).
4. Ejecutar y analizar (3D)
Ejecute la simulación 3D (mantenga la malla modesta). Inspeccione:
- Curva JV: debería seguir siendo casi lineal (resistiva). Compárela con los valores 2D.
- Potencial ϕ en 3D: aplique pasos de sesgo y observe cómo evoluciona la distribución de potencial 3D. Utilice herramientas de corte/sección transversal para “cortar” a través del dispositivo y obtener una interpretación más clara.
- Corrientes: represente las seis componentes:
- Jn,x, Jn,y, Jn,z
- Jp,x, Jp,y, Jp,z
- Portadores: n(x,y,z,V), p
5. Consejos prácticos y problemas habituales
- Haga prototipos primero en 1D/2D. Valide la física y la numérica, y luego active Z solo cuando sea necesario.
- La economía de malla supera a la fuerza bruta. Más puntos ≠ más precisión si las EDP se resuelven con residuales ajustados entre nodos. Aumente la malla solo para capturar gradientes reales.
- Comprobaciones de convergencia: exija residuales pequeños (≲10−8), corrientes de contacto coincidentes y tiempos de paso estables. Si los residuales se estabilizan en 10−5…10−3, revise escalado, sesgos o malla.
- Elección de SRH: el SRH analítico simple es suficiente para esta demostración de resistor. Active trampas dinámicas solo cuando necesite cinética de trampas.
- Escalado de memoria: duplicar la malla a lo largo de cada eje ~8× incógnitas; vigile la RAM para
20×20×20y superiores.