예제 #1
0
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")
예제 #2
0
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")
예제 #3
0
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")
예제 #4
0
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")
예제 #5
0
def test005(testDir, dirDict, pflag):
    """ LFP homog """
    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", "2")
    P_s.set("Sim Params", "Nvol_s", "2")
    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")
        cmpr.bulkpf(testDir, dirDict, "c")