tueniuu's picture
Upload 48 files
78fefe8 verified
from pydantic import BaseModel, Field
from typing import List
class CVInput(BaseModel):
cathode_name: str
V_start: float = Field(..., description="Starting voltage (V)")
V_switch: float = Field(..., description="Switch voltage (V)")
scan_rate: float = Field(..., description="Sweep rate (V/s)")
dt: float = Field(..., description="Time step (s)")
sigma: float = Field(..., description="Gaussian peak width (V)")
E0: float = Field(..., description="Redox mid‑potential (V)")
Ip: float = Field(..., description="Peak current magnitude (A)")
# EIS inputs
frequencies: List[float] = Field(..., description="Frequencies (Hz)")
Rs: float = Field(..., description="Solution resistance (Ohm)")
Rct: float = Field(..., description="Charge‐transfer resistance (Ohm)")
Cdl: float = Field(..., description="Double‐layer capacitance (F)")
sigma_w: float = Field(..., description="Warburg coefficient (Ω·s^(-1/2))")
# Q–V derivative inputs
V_qv: List[float] = Field(..., description="Voltage array for Q–V curve (monotonic)")
Q_qv: List[float] = Field(..., description="Capacity array aligned with V_qv")
window: int = Field(21, description="Savitzky–Golay window length (odd)")
poly: int = Field(3, description="Savitzky–Golay polynomial order")