12#include "../src/slide.hpp"
20 constexpr double T_ENV = 15.0_degC;
22 std::string ID =
"PyBAMM_LP_SmallPack";
25 c.getStateObj().rDCn() = 0;
26 c.getStateObj().rDCp() = 0;
27 c.getStateObj().rDCcc() = 0;
28 c.setBlockDegAndTherm(
true);
33 auto module =
Module_p(
"SmallPack", T_ENV,
true,
false, std::size(cs), 1, 1);
34 module.setSUs(cs,
false);
37 auto cyc =
Cycler(&module, ID);
40 cyc.CC(2, 2.7, 5 * 60, 1, 10, th);
41 std::cout <<
"Finished " << ID <<
" in " << clk <<
".\n";
47 constexpr double T_ENV = 15.0_degC;
49 std::string ID =
"PyBAMM_LP_MediumPack";
52 c.getStateObj().rDCn() = 0;
53 c.getStateObj().rDCp() = 0;
54 c.getStateObj().rDCcc() = 0;
55 c.setBlockDegAndTherm(
true);
59 constexpr size_t ns = 10;
60 constexpr size_t np = 32;
61 constexpr bool checkCells =
true;
63 const double Rc_s = 1e-4;
64 const double Rc_p = 2e-4;
69 double Rc2[np], Rc3[ns];
70 for (
size_t is = 0; is < np; is++) {
71 for (
size_t ic = 0; ic < ns; ic++) {
75 auto mi = make<Module_s>(
"s" + std::to_string(is), T_ENV,
true,
false, ns, 1, 1);
77 mi->setSUs(CinM, checkCells,
true);
79 MinS[is] = std::move(mi);
83 auto module =
Module_p(
"MediumPack", T_ENV,
true,
false, ns * np, 1, 1);
84 module.setSUs(MinS,
false);
85 module.setRcontact(Rc2);
88 auto cyc =
Cycler(&module, ID);
91 cyc.CC(32, 2.7, 5 * 60, 1, 10, th);
92 std::cout <<
"Finished " << ID <<
" in " << clk <<
".\n";
98 constexpr double T_ENV = 15.0_degC;
99 std::string ID =
"PyBAMM_LP_LargePack";
102 c.getStateObj().rDCn() = 0;
103 c.getStateObj().rDCp() = 0;
104 c.getStateObj().rDCcc() = 0;
105 c.setBlockDegAndTherm(
true);
109 constexpr size_t ns = 10;
110 constexpr size_t np = 64;
111 constexpr bool checkCells =
true;
113 const double Rc_s = 1e-4;
114 const double Rc_p = 2e-4;
119 double Rc2[np], Rc3[ns];
120 for (
size_t is = 0; is < np; is++) {
121 for (
size_t ic = 0; ic < ns; ic++) {
125 auto mi = make<Module_s>(
"s" + std::to_string(is), T_ENV,
true,
false, ns, 1, 1);
127 mi->setSUs(CinM, checkCells,
true);
128 mi->setRcontact(Rc3);
129 MinS[is] = std::move(mi);
133 auto module =
Module_p(
"LargePack", T_ENV,
true,
false, ns * np, 1, 1);
134 module.setSUs(MinS,
false);
135 module.setRcontact(Rc2);
138 auto cyc =
Cycler(&module, ID);
141 cyc.CC(64, 2.7, 5 * 60, 1, 10, th);
142 std::cout <<
"Finished " << ID <<
" in " << clk <<
".\n";
148 constexpr double T_ENV = 15.0_degC;
149 std::string ID =
"PyBAMM_LP_LargePackLong";
152 c.getStateObj().rDCn() = 0;
153 c.getStateObj().rDCp() = 0;
154 c.getStateObj().rDCcc() = 0;
155 c.setBlockDegAndTherm(
true);
159 constexpr size_t ns = 10;
160 constexpr size_t np = 64;
161 constexpr bool checkCells =
true;
163 const double Rc_s = 1e-4;
164 const double Rc_p = 2e-4;
169 double Rc2[np], Rc3[ns];
170 for (
size_t is = 0; is < np; is++) {
171 for (
size_t ic = 0; ic < ns; ic++) {
175 auto mi = make<Module_s>(
"s" + std::to_string(is), T_ENV,
true,
false, ns, 1, 1);
177 mi->setSUs(CinM, checkCells,
true);
178 mi->setRcontact(Rc3);
179 MinS[is] = std::move(mi);
183 auto module =
Module_p(
"LargePackLong", T_ENV,
true,
false, ns * np, 1, 1);
184 module.setSUs(MinS,
false);
185 module.setRcontact(Rc2);
188 auto cyc =
Cycler(&module, ID);
191 for (
size_t i_repeat{}; i_repeat < 3; i_repeat++) {
192 cyc.CC(-64, 2.7, 20 * 60, 1, 10, th);
193 cyc.rest(15 * 60, 1, 10, th);
194 cyc.CC(64, 2.7, 20 * 60, 1, 10, th);
195 cyc.rest(30 * 60, 1, 10, th);
198 std::cout <<
"Finished " << ID <<
" in " << clk <<
".\n";
Definition: Cell_SPM.hpp:39
Definition: Cycler.hpp:19
Definition: Deep_ptr.hpp:23
Definition: Module_p.hpp:19
Definition: benchmark_Cell_ECM.hpp:16
void run_LP_case_MediumPack()
Definition: running_LP_cases.hpp:45
void run_LP_case_LargePack()
Definition: running_LP_cases.hpp:96
void run_LP_case_LargePackLong()
Definition: running_LP_cases.hpp:146
void run_LP_case_SmallPack()
Definition: running_LP_cases.hpp:18
Definition: timing.hpp:21