script_210cvmn_210.py

49,00 

Modéliser et visualiser l’évolution temporelle des concentrations pour une réaction chimique consécutive de type Ak1​​Bk2​​C.

UGS : script_210cvmn_210.py Catégorie : Étiquette :

📄 Template de Fiche Descriptive — Script Python

🔷 INFORMATIONS GÉNÉRALES

Champ Détail

Nom du script script_210cvmn_210.py

Version 1.0.0

Date de création 22/05/2024

Auteur / Demandeur REFOIA JEREMY TECH

Objectif principal Modéliser et visualiser l’évolution temporelle des concentrations pour une réaction chimique consécutive de type Ak1​​Bk2​​C.

🎯 DESCRIPTION FONCTIONNELLE

📌 Que fait ce script ?

Le script définit une classe KineticSimulator qui résout numériquement un système d’équations différentielles ordinaires (EDO). Il calcule la disparition du réactif A, la formation puis la consommation de l’intermédiaire B, et l’accumulation du produit final C, tout en générant un graphique de synthèse.

📌 Problème résolu

Il permet d’étudier l’impact des constantes de vitesse (k1​ et k2​) sur le profil de concentration, facilitant la compréhension des phénomènes de régime stationnaire ou d’accumulation d’intermédiaires en cinétique chimique.

⚙️ SPÉCIFICATIONS TECHNIQUES

🐍 Environnement

Élément Valeur

Version Python 3.x

OS cible Tous (Windows / Linux / MacOS)

Mode d’exécution CLI / Script autonome

📦 Dépendances / Librairies

numpy : Manipulation des tableaux et génération d’intervalles de temps.

scipy (submodule integrate) : Utilisation de solve_ivp pour la résolution numérique.

matplotlib (submodule pyplot) : Génération des graphiques.

📥 ENTRÉES (INPUTS)

# Nom Type Obligatoire Description Exemple

1 k1 float ✅ Oui Constante de vitesse A→B 0.2

2 k2 float ✅ Oui Constante de vitesse B→C 0.1

3 initial_A float ❌ Non Concentration de départ de A (défaut=1.0) 10.0

4 t_span tuple ❌ Non Fenêtre de temps (tstart​,tend​) (0, 40)

📤 SORTIES (OUTPUTS)

# Nom Type Description Exemple

1 solution object Objet OdeResult de SciPy Contient les vecteurs t et y

2 Graphique Matplotlib Fenêtre interactive affichant les courbes de concentration (Fenêtre système)

🧱 STRUCTURE DU SCRIPT

script_210cvmn_210.py

├── 📌 IMPORTS (numpy, scipy, matplotlib)

├── 📌 CLASSE KineticSimulator

│ ├── __init__ → Initialisation des paramètres cinétiques

│ ├── ode_system → Définition des dérivées d[X]/dt

│ ├── simulate → Calcul numérique (RK45)

│ └── plot_results → Génération du rendu graphique

└── 📌 MAIN (Exemple d’exécution avec k1​=0.2 et k2​=0.1)

🔧 Détail des fonctions principales

Fonction Paramètres Retour Rôle

ode_system(t, y) t: float, y: list list Calcule les pentes à l’instant t pour A, B et C.

simulate(num_points) int object Lance l’intégrateur numérique sur l’intervalle donné.

plot_results() Aucun None Crée la figure et vérifie la conservation de la masse.

🔄 LOGIQUE / ALGORITHME

Initialisation : Définition des constantes de vitesse et des conditions initiales ([B]0​=[C]0​=0).

Résolution Numérique : solve_ivp utilise la méthode Runge-Kutta d’ordre 4/5 pour estimer les concentrations point par point.

Traitement : Extraction des vecteurs de résultats depuis l’objet de solution.

Vérification : Calcul de la somme [A]+[B]+[C] pour s’assurer qu’elle reste égale à [A]0​ (conservation de la masse).

Rendu : Tracé des courbes avec légendes et grille.

🚨 GESTION DES ERREURS

Cas d’erreur Type d’exception Comportement attendu

Appel de plot avant simulate AttributeError (géré par if) Affiche un message d’erreur textuel.

Paramètres k négatifs Non géré La simulation divergera ou donnera des résultats physiquement impossibles.

✅ CONTRAINTES & RÈGLES MÉTIER

Règle 1 : La somme des concentrations doit être constante à tout instant t (loi de conservation).

Règle 2 : Le système suit une cinétique de premier ordre (v=k⋅[C]).

Règle 3 : Le solveur utilise par défaut la méthode RK45, adaptée aux systèmes « non-raides » (non-stiff).

🧪 TESTS ATTENDUS

# Cas de test Entrée Résultat attendu Statut

1 Cas nominal k1=0.2,k2=0.1 B atteint un pic puis redescend. 🟢 OK

2 Réaction rapide k1=10,k2=0.1 A disparaît quasi instantanément. ⬜ À tester

3 Conservation Somme A+B+C Doit être une ligne droite horizontale. 🟢 OK

📝 EXEMPLE D’UTILISATION

▶️ Lancement direct

Bash

python script_210cvmn_210.py

💻 Exemple d’appel en tant que module

Python

from script_210cvmn_210 import KineticSimulator

# Créer une instance personnalisée

sim = KineticSimulator(k1=0.5, k2=0.05, initial_A=5.0)

sim.simulate(num_points=500)

sim.plot_results()

Avis

Il n’y a pas encore d’avis.

Soyez le premier à laisser votre avis sur “script_210cvmn_210.py”

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *