Expand description
§embedded-schrodinger
Solveur de l’équation de Schrödinger indépendante du temps en 1D conçu
pour les systèmes embarqués (no_std, sans libm, sans liaison C,
sans unsafe).
§Méthode numérique
La résolution repose sur la méthode de tir (shooting method) :
- Pour une énergie candidate
E, la fonction d’ondeψest propagée de gauche à droite via la relation de récurrence des différences finies centrées :
ψᵢ₊₁ = 2ψᵢ − ψᵢ₋₁ − (2m·dx²/ħ²)(E − V(xᵢ))ψᵢ- Une dichotomie binaire (30 itérations) ajuste
Ejusqu’à ce queψ(xₙ) ≈ 0(condition aux limites du puits infini). La logique de signe est la suivante :ψ(xₙ) > 0→Eest trop faible → on relèvee_minψ(xₙ) < 0→Eest trop élevé → on abaissee_max
- La fonction d’onde convergée est normalisée :
∫|ψ|² dx = 1.
§Caractéristiques
| Propriété | Valeur |
|---|---|
no_std | ✅ oui |
libm | ❌ aucun recours |
| Liaison C | ❌ aucune |
unsafe | ❌ #![forbid(unsafe_code)] |
| Racine carrée | Newton-Raphson via embedded-f32-sqrt |
| Précision | f32 (IEEE 754 simple précision) |
| Cibles validées | Cortex-M33, Cortex-M4F et hôte |
§Installation
Dans votre Cargo.toml :
[dependencies]
embedded-schrodinger = "0.1"§Exemple rapide
use embedded_schrodinger::SchrodingerSolver;
const N: usize = 200;
// Puits de potentiel infini (V = 0 à l'intérieur)
let potential = [0.0f32; N];
// Unités atomiques : ħ = 1, m = 1, dx = L/N avec L = 1
let solver = SchrodingerSolver::new(potential, 1.0 / N as f32, 1.0, 1.0);
let mut psi = [0.0f32; N];
let energy = solver
.find_eigenstate(1.0, 15.0, &mut psi)
.expect("Aucune solution dans l'intervalle donné");
// E₁ = π²/2 ≈ 4.935 en unités atomiques pour L = 1
println!("Énergie fondamentale : {:.4}", energy);§Dépendances
| Crate | Rôle |
|---|---|
embedded-f32-sqrt | Racine carrée f32 Newton-Raphson, no_std |
Aucune autre dépendance. Aucun accès au système d’exploitation.
§Licence
Ce logiciel est distribué sous les termes de la GNU General Public License version 2 (GPL-2.0-only).
Voir https://www.gnu.org/licenses/old-licenses/gpl-2.0.html pour le texte complet de la licence.
Copyright (C) 2025 Jorge Andre Castro.
Structs§
- Schrodinger
Solver - Solveur de l’équation de Schrödinger indépendante du temps en 1D.