diff --git a/CHANGELOG.md b/CHANGELOG.md index f4ae91a093..6f382eae82 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ - Add a solver option to change `on_extrapolation` behavior to `"error"`, `"warn"`, or `"ignore"` on extrapolation events. ([#4993](https://github.com/pybamm-team/PyBaMM/pull/4993)) - Improve reliability of `CasadiAlgebraicSolver` and added an option for the `step_tol` of the Newton iteration. ([#4985](https://github.com/pybamm-team/PyBaMM/pull/4985)) - Speed up calculation of variable sensitivities in `ProcessedVariable` ([#5000](https://github.com/pybamm-team/PyBaMM/pull/5000)) +- Added `print names` for variables in `equivalent circuit model` to make `latexify` output more readable. ([#4898](https://github.com/pybamm-team/PyBaMM/pull/4898)) ## Bug fixes diff --git a/src/pybamm/models/submodels/equivalent_circuit_elements/ocv_element.py b/src/pybamm/models/submodels/equivalent_circuit_elements/ocv_element.py index 901b63cf74..ab93bb46df 100644 --- a/src/pybamm/models/submodels/equivalent_circuit_elements/ocv_element.py +++ b/src/pybamm/models/submodels/equivalent_circuit_elements/ocv_element.py @@ -28,9 +28,11 @@ def get_coupled_variables(self, variables): current = variables["Current [A]"] ocv = variables["Open-circuit voltage [V]"] + ocv.print_name = "OCV" T_cell = variables["Cell temperature [degC]"] dUdT = self.param.dUdT(ocv, T_cell) + dUdT.print_name = r"\frac{dU}{dT}" T_cell_kelvin = variables["Cell temperature [K]"] Q_rev = -current * T_cell_kelvin * dUdT diff --git a/src/pybamm/models/submodels/equivalent_circuit_elements/rc_element.py b/src/pybamm/models/submodels/equivalent_circuit_elements/rc_element.py index 557bc48a66..169b7e5f9d 100644 --- a/src/pybamm/models/submodels/equivalent_circuit_elements/rc_element.py +++ b/src/pybamm/models/submodels/equivalent_circuit_elements/rc_element.py @@ -24,6 +24,7 @@ def __init__(self, param, element_number, options=None): def get_fundamental_variables(self): vrc = pybamm.Variable(f"Element-{self.element_number} overpotential [V]") + vrc.print_name = "eta" variables = {f"Element-{self.element_number} overpotential [V]": vrc} return variables @@ -35,7 +36,11 @@ def get_coupled_variables(self, variables): r = self.param.rcr_element( f"R{self.element_number} [Ohm]", T_cell, current, soc ) - c = self.param.rcr_element(f"C{self.element_number} [F]", T_cell, current, soc) + r.print_name = "R_1" + c = self.param.rcr_element( + "Capacitance of RC network [F]", T_cell, current, soc + ) + c.print_name = "C_1" tau = r * c vrc = variables[f"Element-{self.element_number} overpotential [V]"] diff --git a/src/pybamm/models/submodels/equivalent_circuit_elements/resistor_element.py b/src/pybamm/models/submodels/equivalent_circuit_elements/resistor_element.py index 22f6cf6568..684dbdc468 100644 --- a/src/pybamm/models/submodels/equivalent_circuit_elements/resistor_element.py +++ b/src/pybamm/models/submodels/equivalent_circuit_elements/resistor_element.py @@ -23,6 +23,7 @@ def get_coupled_variables(self, variables): soc = variables["SoC"] r = self.param.rcr_element("R0 [Ohm]", T_cell, current, soc) + r.print_name = r"R_{0}" overpotential = -current * r Q_irr = current**2 * r diff --git a/src/pybamm/models/submodels/equivalent_circuit_elements/thermal.py b/src/pybamm/models/submodels/equivalent_circuit_elements/thermal.py index a5003ef615..ccf486e230 100644 --- a/src/pybamm/models/submodels/equivalent_circuit_elements/thermal.py +++ b/src/pybamm/models/submodels/equivalent_circuit_elements/thermal.py @@ -20,8 +20,9 @@ def __init__(self, param, options=None): def get_fundamental_variables(self): T_cell = pybamm.Variable("Cell temperature [degC]") + T_cell.print_name = "T_cell" T_jig = pybamm.Variable("Jig temperature [degC]") - + T_jig.print_name = "T_jig" # Note this is defined in deg C T_amb = self.param.T_amb(pybamm.t) diff --git a/src/pybamm/parameters/ecm_parameters.py b/src/pybamm/parameters/ecm_parameters.py index 4d5855c2fd..7e1829435c 100644 --- a/src/pybamm/parameters/ecm_parameters.py +++ b/src/pybamm/parameters/ecm_parameters.py @@ -4,6 +4,7 @@ class EcmParameters: def __init__(self): self.cell_capacity = pybamm.Parameter("Cell capacity [A.h]") + self.cell_capacity.print_name = "Q" self.tau_D = pybamm.Parameter("Diffusion time constant [s]") self._set_current_parameters() @@ -16,6 +17,7 @@ def _set_current_parameters(self): self.current_with_time = pybamm.FunctionParameter( "Current function [A]", {"Time [s]": pybamm.t} ) + self.current_with_time.print_name = "I" def _set_voltage_parameters(self): self.voltage_high_cut = pybamm.Parameter("Upper voltage cut-off [V]") @@ -23,10 +25,13 @@ def _set_voltage_parameters(self): def _set_thermal_parameters(self): self.cth_cell = pybamm.Parameter("Cell thermal mass [J/K]") + self.cth_cell.print_name = "m_cell" self.k_cell_jig = pybamm.Parameter("Cell-jig heat transfer coefficient [W/K]") - + self.k_cell_jig.print_name = r"h_{cj}" self.cth_jig = pybamm.Parameter("Jig thermal mass [J/K]") + self.cth_jig.print_name = "m_jig" self.k_jig_air = pybamm.Parameter("Jig-air heat transfer coefficient [W/K]") + self.k_jig_air.print_name = r"h_{ja}" def _set_compatibility_parameters(self): # These are parameters that for compatibility with @@ -39,8 +44,11 @@ def _set_compatibility_parameters(self): def _set_initial_condition_parameters(self): self.initial_soc = pybamm.Parameter("Initial SoC") + self.initial_soc.print_name = r"SoC_{0}" self.initial_T_cell = pybamm.Parameter("Initial temperature [K]") - 273.15 + self.initial_T_cell.print_name = "T_{init}" self.initial_T_jig = pybamm.Parameter("Initial temperature [K]") - 273.15 + self.initial_T_jig.print_name = "T_{init}" def T_amb(self, t): ambient_temperature_K = pybamm.FunctionParameter( @@ -57,7 +65,7 @@ def rcr_element(self, name, T_cell, current, soc): return pybamm.FunctionParameter(name, inputs) def initial_rc_overpotential(self, element_number): - return pybamm.Parameter(f"Element-{element_number} initial overpotential [V]") + return pybamm.Parameter("eta_0") def dUdT(self, ocv, T_cell): inputs = {"Open-circuit voltage [V]": ocv, "Cell temperature [degC]": T_cell}