Simulation · Études Paramétriques
Balayage Paramétrique
Étude systématique de l'impact d'un paramètre physique (épaisseur, dopage,
température, illumination) sur les performances du dispositif. Module
simulations/parametric.py, simulations/temperature.py et
simulations/illumination.py.
Types de sweeps disponibles
1. Balayage Générique (parametric_sweep)
Lance une simulation Sesame complète pour chaque valeur de la liste. La clé cible est spécifiée en notation pointée et peut cibler n'importe quelle feuille de la configuration JSON.
Pour chaque valeur v ∈ parametric.values :
config[parametric.parameter] ← v
→ simulate(config)
→ extraire (Jsc, Voc, FF, PCE)
2. Étude en Température (temperature_study)
Pour chaque température T, SPARC recalcule automatiquement les propriétés matériaux via les modèles :
Eg(T) = Eg(0) − α·T² / (T + β) [Varshni] Nc,Nv(T) ∝ T^1.5 μ(T) ∝ T^(−mu_Texp) puis limité par dopage [Masetti] τ(T) ∝ T^(−0.5)
Permet d'extraire le coefficient de température : dVoc/dT, dPCE/dT.
3. Étude en Illumination (variable_illumination)
Balayage de l'intensité lumineuse de 0.01 à plusieurs soleils. Utile pour les applications BIPV (faible lumière) ou CPV (lumière concentrée). Le flux photonique est mis à l'échelle linéairement.
4. Étude Spectrale (spectrum_study)
Évaluation des performances sous différents spectres (AM0 pour spatial, AM1.5G terrestre, spectre personnalisé). SPARC utilise la TMM pour calculer la génération spectrale G(x, λ) et intègre sur le spectre fourni.
Paramètres d'entrée
| Clé JSON | Type | Description |
|---|---|---|
parametric.parameter |
string | Clé cible en notation pointée (ex: "geometry.thickness_p") |
parametric.values |
list[float] | Liste des valeurs à simuler |
temperature.values |
list[float] | Températures en Kelvin (ex: [250, 300, 350, 400]) |
illumination.intensities |
list[float] | Intensités en soleils (ex: [0.1, 0.5, 1.0, 10.0]) |
spectrum.wavelengths |
list[float] | Grille spectrale en nm |
spectrum.irradiance |
list[float] | Irradiance spectrale en W/m²/nm |
Sorties
| Clé | Type | Description |
|---|---|---|
parameter_values |
list | Valeurs du paramètre balayé |
jsc_list |
list[float] | Jsc (mA/cm²) pour chaque point |
voc_list |
list[float] | Voc (V) pour chaque point |
ff_list |
list[float] | Facteur de remplissage pour chaque point |
efficiency_list |
list[float] | PCE (%) pour chaque point |
iv_curves |
list[dict] | Courbes J-V complètes de chaque simulation |
Exemple de configuration JSON
{
"simulation_name": "sweep_epaisseur_p",
"simulation_type": "parametric_sweep",
"materials": { "active": "Si" },
"geometry": {
"thickness_n": 1e-5,
"thickness_p": 2e-4,
"nx": 100
},
"doping": { "n_region": 1e18, "p_region": 1e15 },
"parametric": {
"parameter": "geometry.thickness_p",
"values": [5e-5, 1e-4, 2e-4, 5e-4, 1e-3]
},
"illumination": { "enabled": true, "photon_flux": 2.5e17, "absorption_coefficient": 1e4 },
"voltages": { "start": 0.0, "stop": 0.72, "points": 50 }
}
{
"simulation_name": "etude_temperature_si",
"simulation_type": "temperature_study",
"materials": { "active": "Si" },
"geometry": { "thickness_n": 1e-5, "thickness_p": 2e-4 },
"doping": { "n_region": 1e18, "p_region": 1e15 },
"temperature": {
"values": [250, 275, 300, 325, 350, 375, 400]
},
"illumination": { "enabled": true, "photon_flux": 2.5e17, "absorption_coefficient": 1e4 }
}
Différence avec le module Optimisation
Références
- Varshni, Y.P. (1967). Temperature dependence of the energy gap in semiconductors. Physica 34, 149.
- Masetti, G. et al. (1983). Modeling of carrier mobility against concentration in arsenic-, phosphorus-, and boron-doped silicon. IEEE TED 30, 764.