def testAnalytCylDifn(testDir, dirDict): """ Analytical test for diffusion in a cylinder """ shutil.copy(osp.join(dirDict["baseConfig"], "params_system.cfg"), testDir) shutil.copy(osp.join(dirDict["baseConfig"], "params_c.cfg"), testDir) psys = osp.join(testDir, "params_system.cfg") ptrode = osp.join(testDir, "params_c.cfg") P_s = IO.get_config(psys) P_s.set("Sim Params", "profileType", "CV") P_s.set("Sim Params", "Vset", "0.10") P_s.set("Sim Params", "tend", "1e+6") P_s.set("Sim Params", "tsteps", "1800") P_s.set("Sim Params", "relTol", "1e-7") P_s.set("Sim Params", "tramp", "1e-6") P_s.set("Particles", "mean_c", "100e-9") P_s.set("Particles", "mean_c", "100e-9") P_s.set("Particles", "cs0_c", "0.5") IO.write_config_file(P_s, psys) P = IO.get_config(ptrode) P.set("Particles", "type", "diffn") P.set("Particles", "discretization", "3e-10") P.set("Particles", "shape", "cylinder") P.set("Material", "muRfunc", "testIS_ss") P.set("Material", "D", "1e-20") P.set("Reactions", "rxnType", "BV_raw") P.set("Reactions", "k0", "1e+1") IO.write_config_file(P, ptrode) main.main(psys, keepArchive=False) shutil.move(dirDict["simOut"], testDir)
def test017(testDir, dirDict, pflag): """ test CV continuation """ shutil.copy(osp.join(dirDict["baseConfig"], "params_system.cfg"), testDir) shutil.copy(osp.join(dirDict["baseConfig"], "params_c.cfg"), testDir) psys = osp.join(testDir, "params_system.cfg") ptrode = osp.join(testDir, "params_c.cfg") P_s = IO.get_config(psys) P_s.set("Sim Params", "profileType", "CV") P_s.set("Sim Params", "Vset", "3.45") P_s.set("Sim Params", "tend", "3e3") P_s.set("Sim Params", "Nvol_c", "3") P_s.set("Sim Params", "Npart_c", "3") test008dir = str(osp.join(testDir, "..", "test008", "sim_output")) P_s.set("Sim Params", "prevDir", test008dir) IO.write_config_file(P_s, psys) P = IO.get_config(ptrode) P.set("Particles", "type", "homog_sdn") P.set("Material", "muRfunc", "LiFePO4") IO.write_config_file(P, ptrode) main.main(psys, keepArchive=False) shutil.move(dirDict["simOut"], testDir) if pflag: corePlots(testDir, dirDict) elytePlots(testDir, dirDict) electrodePlots(testDir, dirDict, "c") cmpr.bulkpf(testDir, dirDict, "c")
def test011(testDir, dirDict, pflag): """ Graphite-2param CHR sphere """ shutil.copy(osp.join(dirDict["baseConfig"], "params_system.cfg"), testDir) shutil.copy(osp.join(dirDict["baseConfig"], "params_c.cfg"), testDir) psys = osp.join(testDir, "params_system.cfg") ptrode = osp.join(testDir, "params_c.cfg") P_s = IO.get_config(psys) P_s.set("Sim Params", "Crate", "1e-2") P_s.set("Sim Params", "relTol", "1e-7") P_s.set("Sim Params", "absTol", "1e-7") IO.write_config_file(P_s, psys) P = IO.get_config(ptrode) P.set("Particles", "type", "CHR2") P.set("Particles", "discretization", "2e-9") P.set("Particles", "shape", "sphere") P.set("Material", "muRfunc", "LiC6") P.set("Material", "Dfunc", "lattice") P.set("Material", "B", "0.1e9") P.set("Material", "kappa", "2.5e-10") IO.write_config_file(P, ptrode) main.main(psys, keepArchive=False) shutil.move(dirDict["simOut"], testDir) if pflag: corePlots(testDir, dirDict) electrodePlots(testDir, dirDict, "c")
def test015(testDir, dirDict, pflag): """ testRS homog with CVsegments, bulkCond, partCond """ shutil.copy(osp.join(dirDict["baseConfig"], "params_system.cfg"), testDir) shutil.copy(osp.join(dirDict["baseConfig"], "params_c.cfg"), testDir) psys = osp.join(testDir, "params_system.cfg") ptrode = osp.join(testDir, "params_c.cfg") P_s = IO.get_config(psys) P_s.set("Sim Params", "profileType", "CVsegments") P_s.set("Sim Params", "Npart_c", "3") P_s.set("Sim Params", "Nvol_c", "3") P_s.set("Sim Params", "segments", "[(-0.3, 25), (0., 10), (0.3, 30)]") P_s.set("Sim Params", "tramp", "1e+0") P_s.set("Sim Params", "absTol", "1e-5") P_s.set("Conductivity", "simBulkCond_c", "true") P_s.set("Conductivity", "sigma_s_c", "1e-2") P_s.set("Conductivity", "simPartCond_c", "true") P_s.set("Conductivity", "G_mean_c", "1e-14") IO.write_config_file(P_s, psys) P = IO.get_config(ptrode) P.set("Particles", "type", "homog") P.set("Material", "muRfunc", "testRS") P.set("Reactions", "rxnType", "BV_raw") IO.write_config_file(P, ptrode) main.main(psys, keepArchive=False) shutil.move(dirDict["simOut"], testDir) if pflag: corePlots(testDir, dirDict) elytePlots(testDir, dirDict) electrodePlots(testDir, dirDict, "c") cmpr.bulkpf(testDir, dirDict, "c")
def test001(testDir, dirDict, pflag): """ LFP ACR C3 """ shutil.copy(osp.join(dirDict["baseConfig"], "params_system.cfg"), testDir) shutil.copy(osp.join(dirDict["baseConfig"], "params_c.cfg"), testDir) psys = osp.join(testDir, "params_system.cfg") ptrode = osp.join(testDir, "params_c.cfg") P_s = IO.get_config(psys) P_s.set("Sim Params", "Crate", "1e-2") IO.write_config_file(P_s, psys) P = IO.get_config(ptrode) P.set("Particles", "type", "ACR") P.set("Material", "muRfunc", "LiFePO4") IO.write_config_file(P, ptrode) main.main(psys, keepArchive=False) shutil.move(dirDict["simOut"], testDir) if pflag: corePlots(testDir, dirDict) electrodePlots(testDir, dirDict, "c")
def test013(testDir, dirDict, pflag): """ Solid solution, diffn cylinder, homog, testIS_ss, LiMn2O4_ss2 Marcus, BV_raw cathode + separator + anode """ shutil.copy(osp.join(dirDict["baseConfig"], "params_system.cfg"), testDir) shutil.copy(osp.join(dirDict["baseConfig"], "params_c.cfg"), testDir) shutil.copy(osp.join(dirDict["baseConfig"], "params_a.cfg"), testDir) psys = osp.join(testDir, "params_system.cfg") ptrodec = osp.join(testDir, "params_c.cfg") ptrodea = osp.join(testDir, "params_a.cfg") P_s = IO.get_config(psys) P_s.set("Sim Params", "profileType", "CV") P_s.set("Sim Params", "Vset", "3.8") P_s.set("Sim Params", "tsteps", "25") P_s.set("Sim Params", "Nvol_c", "2") P_s.set("Sim Params", "Nvol_s", "2") P_s.set("Sim Params", "Nvol_a", "2") P_s.set("Particles", "cs0_c", "0.2") P_s.set("Particles", "cs0_a", "0.95") P_s.set("Electrolyte", "elyteModelType", "dilute") IO.write_config_file(P_s, psys) P = IO.get_config(ptrodec) P.set("Particles", "type", "homog") P.set("Particles", "shape", "sphere") P.set("Material", "muRfunc", "LiMn2O4_ss2") P.set("Reactions", "rxnType", "Marcus") IO.write_config_file(P, ptrodec) P = IO.get_config(ptrodea) P.set("Particles", "discretization", "2.5e-9") P.set("Particles", "shape", "cylinder") P.set("Material", "muRfunc", "testIS_ss") P.set("Reactions", "rxnType", "BV_raw") IO.write_config_file(P, ptrodea) main.main(psys, keepArchive=False) shutil.move(dirDict["simOut"], testDir) if pflag: corePlots(testDir, dirDict) elytePlots(testDir, dirDict) electrodePlots(testDir, dirDict, "c") cmpr.bulkpf(testDir, dirDict, "c") electrodePlots(testDir, dirDict, "a") cmpr.bulkpf(testDir, dirDict, "a")
def test012(testDir, dirDict, pflag): """ Solid solution, diffn sphere, homog, LiC6_coke_ss2, LiMn2O4_ss2 BV_mod01, BV_mod02 cathode + anode """ shutil.copy(osp.join(dirDict["baseConfig"], "params_system.cfg"), testDir) shutil.copy(osp.join(dirDict["baseConfig"], "params_c.cfg"), testDir) shutil.copy(osp.join(dirDict["baseConfig"], "params_a.cfg"), testDir) psys = osp.join(testDir, "params_system.cfg") ptrodec = osp.join(testDir, "params_c.cfg") ptrodea = osp.join(testDir, "params_a.cfg") P_s = IO.get_config(psys) P_s.set("Sim Params", "Crate", "1e-2") P_s.set("Sim Params", "capFrac", "0.67") P_s.set("Sim Params", "tsteps", "25") P_s.set("Sim Params", "Nvol_c", "2") P_s.set("Sim Params", "Nvol_a", "2") P_s.set("Sim Params", "Vmin", "2e0") P_s.set("Particles", "cs0_c", "0.2") P_s.set("Particles", "cs0_a", "0.495") P_s.set("Electrolyte", "elyteModelType", "SM") IO.write_config_file(P_s, psys) P = IO.get_config(ptrodec) P.set("Particles", "type", "homog") P.set("Particles", "shape", "cylinder") P.set("Material", "muRfunc", "LiMn2O4_ss2") P.set("Reactions", "rxnType", "BV_mod01") IO.write_config_file(P, ptrodec) P = IO.get_config(ptrodea) P.set("Particles", "discretization", "2.5e-9") P.set("Particles", "shape", "sphere") P.set("Material", "muRfunc", "LiC6_coke_ss2") P.set("Reactions", "rxnType", "BV_mod02") IO.write_config_file(P, ptrodea) main.main(psys, keepArchive=False) shutil.move(dirDict["simOut"], testDir) if pflag: corePlots(testDir, dirDict) elytePlots(testDir, dirDict) electrodePlots(testDir, dirDict, "c") cmpr.bulkpf(testDir, dirDict, "c") electrodePlots(testDir, dirDict, "a") cmpr.bulkpf(testDir, dirDict, "a")
def test019(testDir, dirDict, pflag): """ SM electrolyte with LFP homog, sep + cathode, significant elyte polarization """ shutil.copy(osp.join(dirDict["baseConfig"], "params_system.cfg"), testDir) shutil.copy(osp.join(dirDict["baseConfig"], "params_c.cfg"), testDir) psys = osp.join(testDir, "params_system.cfg") ptrode = osp.join(testDir, "params_c.cfg") P_s = IO.get_config(psys) P_s.set("Sim Params", "Nvol_c", "3") P_s.set("Sim Params", "Nvol_s", "3") P_s.set("Geometry", "L_c", "120e-6") P_s.set("Geometry", "L_s", "90e-6") P_s.set("Electrolyte", "elyteModelType", "SM") IO.write_config_file(P_s, psys) P = IO.get_config(ptrode) P.set("Particles", "type", "homog") P.set("Material", "muRfunc", "LiFePO4") IO.write_config_file(P, ptrode) main.main(psys, keepArchive=False) shutil.move(dirDict["simOut"], testDir) if pflag: corePlots(testDir, dirDict) elytePlots(testDir, dirDict) electrodePlots(testDir, dirDict, "c")
def test014(testDir, dirDict, pflag): """ LFP homog with CCsegments, MHC, Rser """ shutil.copy(osp.join(dirDict["baseConfig"], "params_system.cfg"), testDir) shutil.copy(osp.join(dirDict["baseConfig"], "params_c.cfg"), testDir) psys = osp.join(testDir, "params_system.cfg") ptrode = osp.join(testDir, "params_c.cfg") P_s = IO.get_config(psys) P_s.set("Sim Params", "profileType", "CCsegments") P_s.set("Sim Params", "segments", "[(1., 25), (-2., 10), (0., 30)]") P_s.set("Sim Params", "tramp", "1e+0") P_s.set("Sim Params", "Rser", "1e-3") IO.write_config_file(P_s, psys) P = IO.get_config(ptrode) P.set("Particles", "type", "homog") P.set("Material", "muRfunc", "LiFePO4") P.set("Reactions", "rxnType", "MHC") IO.write_config_file(P, ptrode) main.main(psys, keepArchive=False) shutil.move(dirDict["simOut"], testDir) if pflag: corePlots(testDir, dirDict) electrodePlots(testDir, dirDict, "c")
def test004(testDir, dirDict, pflag): """ LFP CHR sphere with noise """ shutil.copy(osp.join(dirDict["baseConfig"], "params_system.cfg"), testDir) shutil.copy(osp.join(dirDict["baseConfig"], "params_c.cfg"), testDir) psys = osp.join(testDir, "params_system.cfg") ptrode = osp.join(testDir, "params_c.cfg") P_s = IO.get_config(psys) P_s.set("Sim Params", "Crate", "1e-2") IO.write_config_file(P_s, psys) P = IO.get_config(ptrode) P.set("Particles", "type", "CHR") P.set("Particles", "discretization", "2e-9") P.set("Particles", "shape", "sphere") P.set("Material", "muRfunc", "LiFePO4") P.set("Material", "noise", "true") P.set("Material", "numnoise", "100") P.set("Material", "Dfunc", "lattice") P.set("Material", "dgammadc", "-2e-30") IO.write_config_file(P, ptrode) main.main(psys, keepArchive=False) shutil.move(dirDict["simOut"], testDir) if pflag: corePlots(testDir, dirDict) electrodePlots(testDir, dirDict, "c")
def test008(testDir, dirDict, pflag): """ LFP homog_sdn """ shutil.copy(osp.join(dirDict["baseConfig"], "params_system.cfg"), testDir) shutil.copy(osp.join(dirDict["baseConfig"], "params_c.cfg"), testDir) psys = osp.join(testDir, "params_system.cfg") ptrode = osp.join(testDir, "params_c.cfg") P_s = IO.get_config(psys) P_s.set("Sim Params", "Crate", "1e-2") P_s.set("Sim Params", "Nvol_c", "3") P_s.set("Sim Params", "Npart_c", "3") P_s.set("Particles", "stddev_c", "25e-9") P_s.set("Sim Params", "capFrac", "0.6") IO.write_config_file(P_s, psys) P = IO.get_config(ptrode) P.set("Particles", "type", "homog_sdn") P.set("Material", "muRfunc", "LiFePO4") IO.write_config_file(P, ptrode) main.main(psys, keepArchive=False) shutil.move(dirDict["simOut"], testDir) if pflag: corePlots(testDir, dirDict) elytePlots(testDir, dirDict) electrodePlots(testDir, dirDict, "c") cmpr.bulkpf(testDir, dirDict, "c")