|
|
from pydantic import BaseModel, Field |
|
|
|
|
|
class NPCalcInput(BaseModel): |
|
|
cathode_name: str |
|
|
Q_anode_raw: float = Field(..., description="Specific capacity of anode (mAh/g)") |
|
|
m_anode: float = Field(..., description="Anode active mass (g or mg/cm²)") |
|
|
SEI_loss_fraction: float = Field(..., description="Fractional SEI loss (e.g. 0.1 for 10%)") |
|
|
Q_cathode_raw: float = Field(..., description="Specific capacity of cathode (mAh/g)") |
|
|
m_cathode: float = Field(..., description="Cathode active mass (g or mg/cm²)") |
|
|
vacancy_loss_fraction: float = Field(..., description="Fractional vacancy loss in cathode") |
|
|
|
|
|
|
|
|
Q_areal: float = Field(..., description="Target full‑cell areal capacity (mAh/cm²)") |
|
|
|
|
|
|
|
|
Q_charge_anode: float = Field(..., description="Anode charge capacity (mAh)") |
|
|
Q_discharge_anode: float = Field(..., description="Anode discharge capacity (mAh)") |
|
|
Q_charge_cathode: float = Field(..., description="Cathode charge capacity (mAh)") |
|
|
Q_discharge_cathode: float = Field(..., description="Cathode discharge capacity (mAh)") |
|
|
Q_charge_full: float = Field(..., description="Full‑cell charge capacity (mAh)") |
|
|
Q_discharge_full: float = Field(..., description="Full‑cell discharge capacity (mAh)") |
|
|
|