コード例 #1
0
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)
コード例 #2
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")
コード例 #3
0
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")
コード例 #4
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")
コード例 #5
0
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")
コード例 #6
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")
コード例 #7
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")
コード例 #8
0
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")
コード例 #9
0
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")
コード例 #10
0
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")
コード例 #11
0
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")