Bonsoir à tous,

S'il y a parmi vous des physiciens habitués à utiliser Python, j'aimerais savoir si vous avez déjà rencontré un problème similaire à celui qui m'ennuie ces derniers jours. Je cherche à calculer les états propres de la bande de valence dans un puits quantique contraint en diagonalisant un Hamiltonien k.p à 6 bandes. Je l'ai déjà fait avec MATLAB et mon code marche bien, mais je souhaite passer sous Python pour des raisons pratiques, notamment le fait de ne pas avoir besoin de licence.

Or, en utilisant la boîte à outils de Scipy contenant le solver ARPACK pour matrices creuses, je me rends compte que non seulement les niveaux d'énergie ne sortent pas dans le bon ordre, mais que les fonctions d'onde ne le sont pas également tout en ne correspondant pas nécessairement au niveau d'énergie associé et rend fastidieux l'ordonnancement pour chaque vecteur d'onde. Et obtenir les niveaux d'énergie corrects ne me suffit pas, car j'ai besoin de calculer la probabilité de transition interbande pour chaque paire de sous-bandes permises (par exemple C1-HH1, C2-HH2 etc..) afin d'obtenir le spectre de gain.

Avez-vous déjà rencontré un problème similaire? Si cela ne peut se résoudre sans devoir utiliser des algorithmes de tri qui font vraiment usine à gaz, je pense laisser tomber Python et me mettre à un autre langage.

Merci de votre aide.