File size: 2,036 Bytes
78fefe8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from typing import List
from pydantic import BaseModel, Field

class AllBInput(BaseModel):
    cathode_name: str
    # ─── V–Q & dQ/dV inputs ───────────────────────────────────────
    V: List[float] = Field(..., description="Measured voltage at each time step (V)")
    I: float       = Field(..., description="Applied current (mA/g)")
    t: List[float] = Field(..., description="Time array matching V (h or s)")

    # ─── Rate capability inputs ───────────────────────────────────
    Q_nominal: float = Field(..., description="Nominal low‑rate capacity (mAh/g)") 
    C_rates: List[float] = Field(..., description="List of C‑rates (e.g. [0.1,0.5,1,2,5])")
    t_discharge: List[float] = Field(..., description="Discharge times at each C‑rate (hours)")

    # ─── CC–CV charge time inputs ────────────────────────────────
    Q_nominal_mAh: float = Field(..., description="Nominal cell capacity (mAh or Ah)")
    I_lim: float = Field(..., description="Constant current limit during CC (A or mA)")
    alpha: float = Field(..., description="Fraction of total capacity charged at CC (0.0–1.0)")
    I_end: float = Field(..., description="End‐of‐charge current for CV termination (A or mA)")
    tau: float = Field(..., description="Time constant for CV current decay (seconds)")

    # ─── GITT‑style diffusion inputs ───────────────────────────────
    L:               float       = Field(..., description="Diffusion length (cm)")
    tau_pulse:       float       = Field(..., description="Pulse duration Ο„ (s)")
    delta_E_tau:     List[float] = Field(..., description="Voltage change during pulse Ξ”EΟ„ (V)")
    delta_E_s:       List[float] = Field(..., description="Steady‑state voltage change Ξ”Es (V)")