Simulation · Défauts & Microstructure
Défauts & Joints de Grains
Modélisation avancée des non-idéalités : pièges ponctuels SRH, distributions
continues de défauts (Gaussian, Urbach, Uniforme) et joints de grains colonnaires 2D. Modules
simulations/defects.py et simulations/grain_boundary_2d.py.
Trois modes de simulation
1. Défauts Ponctuels Discrets (simulate_with_defects)
Chaque défaut est décrit par sa position spatiale, son énergie dans le gap, sa densité et ses
sections efficaces de capture. SPARC les transmet directement à sesame.add_defects().
R_SRH = (np − ni²) / [τp(n + n1) + τn(p + p1)] n1 = ni·exp(Et / kT) p1 = ni·exp(-Et / kT)
2. Distribution Continue de Défauts (simulate_with_continuous_defects)
SPARC discrétise une distribution d'états dans le gap en n_levels niveaux distincts
(défaut : 15). Quatre distributions sont disponibles :
| Type | Formule des poids | Usage typique |
|---|---|---|
"gaussian" |
exp(−0.5·((E−Ec)/σ)²) | Défauts d'impuretés, centres de recombinaison localisés |
"urbach_cb" |
exp(−(Ec−E)/E₀) | Queues de bande conduction (silicium amorphe, perovskites) |
"urbach_vb" |
exp(−(E−Ev)/E₀) | Queues de bande valence |
"uniform" |
constante sur [Ec±w/2] | Distribution plate, étude paramétrique |
3. Joints de Grains 2D (analyze_grain_boundaries)
Extension en 2D du maillage Sesame (sesame.Builder(x, y) avec 41 nœuds en Y). Un joint
de grain colonnaire est placé à y = Ly/2 comme une ligne de défauts d'interface
(sesame.add_defects() avec location = [(0, Ly/2), (Lx, Ly/2)]). Cette
approche permet de capturer les puits de potentiel latéraux et la réduction de mobilité effective
dans les couches minces polycristallines (CdTe, CIGS, Si polycristallin).
Paramètres d'entrée
| Clé JSON / Argument | Type | Unité | Description |
|---|---|---|---|
defects[].density |
float | cm⁻² ou cm⁻³ | Densité de pièges (interface ou volume) |
defects[].energy |
float | eV | Niveau énergétique depuis le milieu du gap |
defects[].sigma_e |
float | cm² | Section efficace capture électrons |
defects[].sigma_h |
float | cm² | Section efficace capture trous |
defects[].location |
list | cm | [(x1,y1),(x2,y2)] pour défauts d'interface, None pour volume |
trap_distribution.type |
string | — | "gaussian" | "urbach_cb" | "urbach_vb" | "uniform" |
trap_distribution.total_density |
float | cm⁻³ | Densité totale intégrée |
trap_distribution.energy_center |
float | eV | Centre de la distribution (depuis milieu gap) |
trap_distribution.width |
float | eV | σ (Gaussien) ou E₀ (Urbach) ou demi-largeur (uniforme) |
trap_distribution.n_levels |
int | — | Nombre de niveaux discrets (défaut: 15) |
grain_boundaries.density |
float | cm⁻² | Densité de défauts au joint de grain |
grain_boundaries.grain_size |
float | cm | Taille du grain (dimension latérale Ly) |
Sorties clés
| Clé | Description |
|---|---|
current_density |
Courbe J(V) avec impact des défauts sur Jsc, Voc et FF |
defect_config |
Configuration complète des défauts utilisée |
trap_distribution_config |
(Mode continu) Type, densité, niveaux discrets générés |
quasi_fermi_levels |
Niveaux quasi-Fermi extraits à V≈0 |
solution |
Solution de l'équation de Poisson (pour visualisation des cartes 2D) |
Exemple de configuration JSON (défauts discrets)
{
"simulation_name": "si_avec_defauts",
"simulation_type": "with_defects",
"materials": { "active": "Si" },
"geometry": {
"thickness_n": 1e-5,
"thickness_p": 2e-4,
"doping_n": 1e18,
"doping_p": 1e15,
"defect_regions": [
{
"density": 5e14,
"energy": 0.0,
"sigma_e": 1e-15,
"sigma_h": 1e-15,
"location": null
}
]
},
"voltages": { "start": 0.0, "stop": 0.72, "points": 50 },
"illumination": { "enabled": true, "photon_flux": 2.5e17, "absorption_coefficient": 1e4 }
}
Exemple : Distribution continue (queues de bande Urbach)
{
"simulation_type": "continuous_defects",
"materials": { "active": "a-Si" },
"trap_distribution": {
"type": "urbach_cb",
"total_density": 1e16,
"energy_center": 0.3,
"width": 0.05,
"n_levels": 20,
"sigma_e": 1e-15,
"sigma_h": 1e-16,
"region": "bulk"
}
}
Mises en garde
simulate_with_continuous_defects,
le paramètre region: "interface" modélise les pièges comme une couche mince autour de
la jonction (plus robuste numériquement en 1D que l'appel direct à add_defects).
Références
- Shockley, W. & Read, W.T. (1952). Statistics of the recombinations of holes and electrons. Phys. Rev. 87, 835.
- Hall, R.N. (1952). Electron-hole recombination in germanium. Phys. Rev. 87, 387.
- Taretto, K. & Rau, U. (2008). Grain boundary effects in polycrystalline thin films. J. Appl. Phys.