11#include "../types/data_storage/cell_data.hpp"
12#include "../utility/utility.hpp"
21 void getVall(std::span<double> Vall,
bool print =
true);
25 Module_p(std::string_view ID_,
double Ti,
bool print,
bool pari,
int Ncells_,
int coolControl,
int cooltype)
26 :
Module(ID_, Ti, print, pari, Ncells_, coolControl, cooltype) {}
41 Status setCurrent(
double Inew,
bool checkV =
true,
bool print =
true)
override;
42 Status setVoltage(
double Vnew,
bool checkI =
true,
bool print =
true)
override;
45 void timeStep_CC(
double dt,
int steps = 1)
override;
Definition: Module_p.hpp:19
double VMIN() const override
safety cut off
Definition: Module_p.hpp:30
double Vmax() const override
upper voltage limit of the cell
Definition: Module_p.hpp:31
double Vmin() const override
lower voltage limit of the cell
Definition: Module_p.hpp:29
Module_p * copy() override
copy this SU to a new object
Definition: Module_p.hpp:47
Status setVoltage(double Vnew, bool checkI=true, bool print=true) override
Definition: Module_p.cpp:151
double I() const override
the current is the sum of the current of each cell. Returns 0 if empty.
Definition: Module_p.hpp:34
double getOCV() override
Definition: Module_p.hpp:37
Module_p(std::string_view ID_, double Ti, bool print, bool pari, int Ncells_, int coolControl, int cooltype)
the voltage limits are the most constraining limits of all cells ie the highest Vmin of SUs is the Vm...
Definition: Module_p.hpp:25
Status setCurrent(double Inew, bool checkV=true, bool print=true) override
set a module current
Definition: Module_p.cpp:189
double getRtot() override
Calculate the total resistance of the module.
Definition: Module_p.cpp:33
void getVall(std::span< double > Vall, bool print=true)
get the voltage of all SUs while accounting for the contact resistance
Definition: Module_p.cpp:56
double V() override
print is an optional argument
Definition: Module_p.hpp:39
Module_p()
#TODO note this constructor should never be used. It can't determine which coolsystem to use
Definition: Module_p.hpp:24
double Cap() const override
module capacity (sum of cells)
Definition: Module_p.hpp:35
double VMAX() const override
safety cut off
Definition: Module_p.hpp:32
Status redistributeCurrent(bool checkV=true, bool print=true)
Redistribute the current among the SUs to balance the voltage.
Definition: Module_p.cpp:102
void timeStep_CC(double dt, int steps=1) override
Perform a time step at a constant current.
Definition: Module_p.cpp:289
Definition: Module.hpp:34
SUs_t SUs
Definition: Module.hpp:44
std::vector< double > Rcontact
array with the contact resistance for cell i
Definition: Module.hpp:45
Slide namespace contains all the types, classes, and functions for the simulation framework.
Definition: Cell.hpp:27
auto transform_mean(const auto &SUs, auto &function)
Definition: slide_algorithms.hpp:50
auto transform_min(const auto &SUs, auto &function)
Definition: slide_algorithms.hpp:37
auto transform_sum(const auto &SUs, auto &function)
Definition: slide_algorithms.hpp:17
Status
Definition: Status.hpp:15
auto transform_max(const auto &SUs, auto &function)
Definition: slide_algorithms.hpp:23