Zitao Ni

Ph.D. in Materials Science and Engineering

Learning Plan Snapshot: Ch4 Complete → Ch5 Start

Learning Plan Snapshot: Chapter 4 Complete → Chapter 5 Start

Snapshot Date: 2026-05-28
Completed: Chapter 4 (Full SPM Implementation & Voltage Coupling)
Next: Chapter 5 (SPMe — Single Particle Model with Electrolyte)
Overall Progress: 5/8 weeks of content completed (Chapters 1–4)


1. Overall Learning Roadmap

Chapter Topic Status
Chapter 1 Electrochemistry Basics & OCV ✅ Complete
Chapter 2 Diffusion Equation (Fick’s Second Law) ✅ Complete
Chapter 3 Butler-Volmer Kinetics ✅ Complete
Chapter 4 Full SPM Implementation & Voltage Coupling ✅ Complete ← Just finished
Chapter 5 SPMe Model ⏳ Next
Chapter 6 P2D Model
Chapter 7 Advanced Applications

2. Chapter 4 Completion Report

2.1 Knowledge Points Review

# Knowledge Point Mastery
4.1 step() four-step causal order (B→C→D→A) ✅ Understood voltage is result, not cause
4.2 Step 1 formula derivation (units + sign convention) ✅ Complete hand derivation
4.3 Initial concentration distribution (uniform, diffusion steady state) ✅ Corrected “center concentrated” misconception
4.4 Voltage coupling expansion V = U_p+η_p−U_n−η_n ✅ Sign verification
4.5 Write spm_my.py from skeleton (8 TODOs) ✅ Independently completed
4.6 Numerical verification vs model.py ✅ V diff = 0 nV
4.7 Discharge curve: OCV change 348mV + η 33mV ✅ Data conclusions
4.8 C-rate effect: η grows with current, share increases ✅ arcsinh sub-linearity
4.9 Fully-implicit coupling: intra-step iteration unnecessary ✅ Self-derived conclusion
4.10 np.full() usage ✅ Learned

2.2 Core Formulas

Formula Description
j = ±i_app/(a_s·L·F) Current→flux, sign determined by oxidation/reduction
η = BV(j, c_s_surf) Flux→overpotential (Chapter 3)
Implicit Euler diffusion c_old + j·dr/D boundary condition (Chapter 2)
V = U_p + η_p − U_n − η_n Voltage coupling (this chapter’s core)
Cross-step coupling, not intra-step SPM coupling nature

2.3 Code Produced

File Description Status
spm_my.py Independent SPM implementation (with TODO annotations preserved) ✅ 0 nV diff vs model.py
test_spm_my.py Verification script
visualize_discharge.py Discharge curve visualization
visualize_crate.py C-rate comparison visualization
analyze_voltage.py Voltage breakdown analysis

2.4 Figures Produced

Figure Content Status
spm_discharge.png 4-subplot: discharge curve + OCV evolution + η evolution + comparison
crate_comparison.png 4-subplot: multi C-rate curves + η contribution + η detail + bar chart
step_dataflow.png SPM dataflow diagram

2.5 Pitfalls Encountered

# Pitfall Correct Approach
1 Wrong parameter order in build_diffusion_matrix Signature is (N, D, dt, dr, r); dt is 3rd argument
2 Mistook diffusion matrix self._A_n for current i_app They are different variables
3 Added def when calling a function def is only for definition; call without it
4 self.alpha → self.p.alpha alpha lives in the parameter object
5 Used anode diffusion matrix for cathode Cathode uses self._A_p

3. Chapter 5 Preview

3.1 What Does SPMe Add on Top of SPM?

What SPM Has What SPMe Adds
Two spherical particles (one each for anode/cathode) Electrolyte concentration varies along electrode thickness
Solid-phase diffusion (Fick’s Second Law) Liquid-phase diffusion + electromigration
BV interface reaction Reaction distribution in porous electrode
Electrolyte concentration c_e = constant c_e(x) varies with position

3.2 Preview Questions

  1. SPM assumes c_e = 1000 mol/m³ (constant). In a real battery, lithium ions shuttle between anode and cathode, so the electrolyte concentration must have a gradient. If c_e near the anode differs from c_e near the cathode, how does this affect η on each side?
  2. The diffusion equation learned in Chapter 2 was in spherical coordinates. In SPMe, electrolyte concentration varies along one dimension (x, from anode to cathode) — what does this diffusion equation look like?
  3. “Porous electrode” means the electrode is not a solid block but a mixture of particles + pores. Electrolyte sits in the pores — what extra resistance does this create for ion transport? (Hint: Bruggeman correction)

3.3 Reading Materials

Reference Chapter Content
[Brett] Ch5 §5.6 Diffusion + migration
[Brett] Ch2 §2.8-2.9 Ion motion in solution
[Li-ion] Ch5 Electrolyte
[Rechargeable] Ch1 §1.2.2.4 Complete polarization loss formula

4. Chapter 4 Learning Experience

4.1 Teaching Corrections

Signal Response
“Teach first, code later — don’t look at model.py first” Corrected teaching order: concept→derivation→skeleton→fill→compare
“Zero coding background” Started from np.full() basics
“No teaching during validation phase” Added back arcsinh sub-linearity derivation and step-by-step C-rate effect analysis
“Summary didn’t let the user derive” Added back four-step Q&A derivation chain for fully-implicit coupling

4.2 Unique Discoveries in This Chapter

  1. In SPM, diffusion and BV do not mutually depend within a single step — diffusion doesn’t need η, and BV doesn’t need the entire c array. Coupling is cross-step.
  2. This means “fully-implicit coupling” iteration at the SPM level is not only unnecessary but mathematically impossible — there is no feedback loop.
  3. This “non-coupling” is precisely SPM’s advantage as a simplified model — low per-step computation, fast simulation.

5. How to Start Next Session

In the conversation, say:

“Please read learning/learning_notes_05_spme/session_05_background.md and begin Session 5 study.”

The AI will automatically read the background file and launch Chapter 5 in Q&A-guided teaching mode.


Plan snapshot end · Chapter 4 → Chapter 5

0%