Learning Plan Snapshot: Ch 3 Complete → Ch 4 Start
Snapshot date: 2026-05-26
Completed: Chapter 3 (Butler-Volmer Kinetics)
Next: Chapter 4 (Full SPM Implementation & Voltage Coupling)
Overall progress: 4/8 weeks completed
1. Overall Learning Roadmap
| Chapter |
Topic |
Status |
| Ch 1 |
Electrochemistry Fundamentals & OCV |
✅ Complete |
| Ch 2 |
Diffusion Equation (Fick’s Second Law) |
✅ Complete |
| Ch 3 |
Butler-Volmer Kinetics |
✅ Complete |
| Ch 4 |
Full SPM Implementation & Verification |
← Current |
| Ch 5 |
SPMe Model |
⏳ |
| Ch 6 |
P2D Model |
⏳ |
| Ch 7 |
Advanced Applications |
⏳ |
2. Chapter 3 Completion Status
2.1 Knowledge Points Review
| # |
Knowledge Point |
Mastery |
| 3.1 |
Physical meaning of overpotential (interface energy barrier) |
✅ Customs analogy, understand why η is needed |
| 3.2 |
Dynamic equilibrium at balance (j₀ measures microscopic activity) |
✅ Understand net current=0 ≠ static |
| 3.3 |
η sign convention (oxidation/reduction) |
✅ Discharge: η_n>0, η_p<0 |
| 3.4 |
BV forward equation |
✅ j = j₀·[e^(αFη/RT) − e^(−(1−α)Fη/RT)] |
| 3.5 |
j₀ dependence (maximum at SOC=50%) |
✅ √x·√(1−x) → ∩ shaped curve |
| 3.6 |
Effect of k on battery performance |
✅ k↑10× → η↓10× |
| 3.7 |
arcsinh inversion (α=0.5) |
✅ Hand-derived full derivation chain |
| 3.8 |
Small-η linear approximation |
✅ sinh(x)≈x → η ≈ (RT/F)·j/j₀ |
| 3.9 |
Linear region boundary RT/F=25.7mV |
✅ <5mV error<0.2%, >50mV unusable |
| 3.10 |
α≠0.5 has no analytic solution |
✅ Asymmetric → not sinh → cannot arcsinh |
| 3.11 |
Newton iteration principle |
✅ f(η)=0, tangent approximation, quadratic convergence |
| 3.12 |
Independent BV implementation |
✅ bv_my.py, 0 nV difference vs model.py |
| Formula |
Description |
| j = j₀·[e^(αFη/RT) − e^(−(1−α)Fη/RT)] |
BV forward |
| j₀ = k·c_e^(1−α)·c_s^α·(c_max−c_s)^(1−α) |
Exchange current density |
| η = (2RT/F)·arcsinh(j/2j₀) |
arcsinh inversion (α=0.5) |
| η ≈ (RT/F)·(j/j₀) |
Linear approximation ( |
| η_new = η_old − f(η)/f’(η) |
Newton iteration |
2.3 Code Implementation
| File |
Function/Module |
Status |
bv_my.py |
bv_overpotential() |
✅ Self-written, difference = 0 nV |
visualize_linear_approximation.py |
Linear approximation visualization |
✅ |
visualize_newton_bv.py |
Newton iteration visualization |
✅ |
visualize_bv_overpotential.py |
BV three-subplot visualization |
✅ |
2.4 Visualization Outputs
| Figure |
Content |
linear_approximation.png |
sinh vs x comparison + j-η exact vs linear + error growth |
newton_bv_iteration.png |
Newton iteration trajectory + correction decay + α asymmetry |
bv_overpotential.png |
η→j (different SOC) + j→η (arcsinh) + j₀ vs SOC |
3. Chapter 4 Key Learning Points Overview
3.1 Learning Objectives
- Understand the four-step data flow in SPM
step() (current→flux→overpotential→diffusion→voltage)
- Master the voltage coupling equation V = U_p + η_p − U_n − η_n
- Understand the
simulate() loop structure and state management
- Run a full discharge simulation and plot the voltage curve
- Understand the effect of C-rate on discharge curves
3.2 Key Code
| Method |
File Location |
Role |
SPMModel.__init__() |
model.py:287 |
Grid, initial concentration, specific surface area, pre-build matrix |
SPMModel.step() |
model.py:345 |
Single time step: four equations executed sequentially |
SPMModel.simulate() |
model.py:433 |
Loop calls to step() + results recording |
3.3 Differences from Previous Chapters
Chapters 1–3 each independently studied one equation. Chapter 4 is the “glue” — assembling the parts into a machine.
New challenges:
- Multi-parameter interaction: changing current → affects j → affects η → affects diffusion → affects c_s_surf → affects η again
- Temporal coupling: concentration distribution from previous Δt is the initial condition for the next Δt
- Results interpretation: the voltage curve is the product of all four equations working together — need to decompose each contribution
3.4 Recommended Learning Sequence
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 4.1 Line-by-line walkthrough of step() (30 min) → Four-step data flow + variable tracking ↓ 4.2 Deep dive into voltage coupling (15 min) → V = U + η, sign convention verification ↓ 4.3 simulate() loop (15 min) → State management + results recording ↓ 4.4 Run simulation + visualization (30 min) → Discharge curve + voltage decomposition + SOC evolution ↓ 4.5 C-rate sensitivity analysis (15 min) → Comparison across different currents
|
4. Session 3 Output Inventory
| File |
Purpose |
learning_notes_03_kinetics/session_03_background.md |
Session entry point |
learning_notes_03_kinetics/learning_notes_03_kinetics.md |
Full notes |
learning_notes_03_kinetics/bv_my.py |
Independent BV implementation |
learning_notes_03_kinetics/visualize_linear_approximation.py |
Linear approximation script |
learning_notes_03_kinetics/visualize_newton_bv.py |
Newton iteration script |
learning_notes_03_kinetics/visualize_bv_overpotential.py |
BV three-subplot script |
learning_notes_03_kinetics/linear_approximation.png |
Linear approximation plot |
learning_notes_03_kinetics/newton_bv_iteration.png |
Newton iteration plot |
learning_notes_03_kinetics/bv_overpotential.png |
BV full visualization |
learning_notes_03_kinetics/learning_plan_03-04.md |
This file |
learning_notes_04_spm/session_04_background.md |
Chapter 4 entry point |
Snapshot ends · Next session: Session 4 · Full SPM Implementation & Voltage Coupling