def radiusVsRate(folder="."):

    temperatures = list(range(120, 221, 5))
    plt.title("Average island growth")
    label = r'Average island radius growth rate  $ \sqrt{{ \dot{{r}} }}$'
    plt.ylabel(label)
    label = r'Time-averaged total rate $< R >_t }}$'
    plt.xlabel(label)
    plt.grid(True)

    currentResults = results.Results()
    sqrt = True
    interval = True

    print(folder)
    try:
        os.chdir(folder)
        oneResult = mk.getIslandDistribution(temperatures, sqrt, interval)
        currentResults.append(oneResult)
    except OSError:
        print("error changing to {}".format(folder))
        a = 0  #do nothing
    plt.loglog(currentResults.totalRatio(),
               currentResults.growthSlope(),
               label="growth" + folder)
    plt.loglog(currentResults.totalRatio(),
               currentResults.gyradius(),
               label="gyradius")
    plt.loglog(currentResults.totalRatio(),
               1000 / currentResults.perimeter(),
               label="perimeter")
    plt.legend(loc='upper left', prop={'size': 6})
示例#2
0
label = r'$\frac{s v_s}{r_g^2}$'
plt.ylabel(label)
label = r'R (total rate)'
plt.xlabel(label)
plt.grid(True)

workingPath = os.getcwd()

for f in i.getFluxes():
    folder = "flux3.5e" + str(i)
    print(folder)
    try:
        p = i.getInputParameters(glob.glob(f + "/*/output*")[0])
        os.chdir(f)
        temperatures = i.getTemperatures()
        meanValues = mk.getIslandDistribution(temperatures, False, False)
    except (OSError, IndexError):
        print("error changing to flux {}".format(f))
        continue
    os.chdir(workingPath)
    vs = meanValues.getGrowthSlope()
    s = (0.3 * 400 * 400) / meanValues.getIslandsAmount()
    vg = meanValues.getGyradiusSlope()
    rtt = mk.getRtt(temperatures)
    d = fun.fractalD(rtt / p.flux)
    rg = meanValues.getLastGyradius()
    print(len(d), len(s), len(rg))
    command = "d * ((s*vs)/rg**2)"
    y = eval(command)
    x = meanValues.getTotalRatio()
    print(len(x), len(y))
示例#3
0
plt.ylabel(label)
label = r'r_tt/F^0.33'
plt.xlabel(label)
plt.grid(True)

workingPath = os.getcwd()
temperatures = list(range(120, 321, 5))

for i in range(-6, 1):
    folder = "flux3.5e" + str(i)
    flux = float("3.5e" + str(i))
    print(folder)
    try:
        os.chdir(folder)
        meanValues = mk.getIslandDistribution(temperatures,
                                              sqrt=False,
                                              interval=False,
                                              growth=False)
    except OSError:
        print("error changing to {}".format(folder))
        a = 0  #do nothing
    os.chdir(workingPath)

    islands = meanValues.getIslandsAmount()
    indexes = np.where(islands > 0)
    islands = islands[indexes]
    v = (0.7 * flux * 400 * 400 / (islands)) / (flux**0.77)
    t = np.array(temperatures)[indexes]
    n = (flux**0.23) / (islands)
    r = np.array(mk.getRtt(t)) / (flux**0.33)
    plt.loglog(r, v, ".", label="N " + folder)
    if (i == -1):
示例#4
0
kb = 8.6173324e-5
maxCoverage = 50

for i in range(initFlux, endFlux):
    folder = "flux3.5e" + str(i)
    flux = float("3.5e" + str(i))
    sqrt = False
    interval = False
    growth = True
    verbose = False
    print(folder)
    try:
        os.chdir(folder)
        meanValues = mk.getIslandDistribution(temperatures, sqrt, interval,
                                              growth, verbose, flux,
                                              maxCoverage)
    except OSError:
        print("error changing to {}".format(folder))
        a = 0  #do nothing
    os.chdir(workingPath)

    rtt = mk.getRtt(temperatures)
    growthSlope = meanValues.getGrowthSlope()
    totalRatio = meanValues.getTotalRatio()
    fractalD = f.fractalD(rtt / flux**0.5)
    shapeF = mk.shapeFactorFunc(rtt / flux**0.5)
    gyradius = meanValues.getGyradiusSlope()
    n = meanValues.getIslandsAmount()
    perimeterSlopes = meanValues.getInnerPerimeterSlope()
    numberOfMonomers = meanValues.getMonomersAmount()
示例#5
0
label = r'Average island radius growth rate / $(v_g / F^{0.11})$'
plt.ylabel(label)
label = r'Time-averaged total rate $ < R >_t/F^{0.79} $'
plt.xlabel(label)
plt.grid(True)
temperatures = list(range(120, 321, 5))

workingPath = os.getcwd()
results = results.Results()
for i in range(-6, 1):
    folder = "flux3.5e" + str(i)
    flux = float("3.5e" + str(i))
    print(folder)
    try:
        os.chdir(folder)
        results.append(mk.getIslandDistribution(temperatures, False, False))
    except OSError:
        print("error changing to {}".format(folder))
    os.chdir(workingPath)
    vs = results.growthSlope()
    vg = results.gyradius()
    y = vs / (vg / flux**0.11)
    x = results.totalRatio() / flux**0.79
    plt.loglog(x, y, label=folder)
    plt.legend(loc='upper left', prop={'size': 6})
    plt.savefig("vsVgVsRate.png")

plt.close()

print("Good bye!")
示例#6
0
label = r'Number of islands (N)/F^0.23'
plt.ylabel(label)
plt.figure(num=None, figsize=(5,5), dpi=80, facecolor='w', edgecolor='k')
label = r'r_tt/F^0.33'
plt.xlabel(label)
plt.grid(True)

workingPath = os.getcwd()

coverage = int(sys.argv[1])
for f in i.getFluxes():
    try:
        p = i.getInputParameters(glob.glob(f+"/*/output*")[0])
        os.chdir(f)
        temperatures = i.getTemperatures()
        meanValues = mk.getIslandDistribution(temperatures, sqrt=False, interval=False, growth=False, verbose = False, flux=-1, maxCoverage=coverage)
    except (OSError, IndexError):
        print ("error changing to {}".format(f))
        continue
    os.chdir(workingPath)

    v = 0.82*400*400/meanValues.getIslandsAmount()*(p.flux**0.21)
    n = meanValues.getIslandsAmount()/(p.flux**0.23)
    r = np.array(mk.getRtt(temperatures))/(p.flux**0.33)
    plt.loglog(r, n, "-", label="N "+f+" "+str(coverage))
    if (i == 0):
        x = r
        c = []
        exponent = []
        for i in temperatures:
            if (i > 250):
示例#7
0
plt.ylabel(label)
label = r'Time-averaged total rate $\frac{{ < R >_t }}{{ F ^{{ {} }} }}$'.format(
    xPower)
plt.xlabel(label)
plt.grid(True)

sqrt = True
workingPath = os.getcwd()
temperatures = list(range(120, 221, 5))
for i in range(-6, 5):
    folder = "flux3.5e" + str(i)
    flux = float("3.5e" + str(i))
    print(folder)
    try:
        os.chdir(folder)
        meanValues = mk.getIslandDistribution(temperatures, sqrt)
    except OSError:
        print("error changing to {}".format(folder))
        a = 0  #do nothing
    os.chdir(workingPath)
    plt.loglog(meanValues.getTotalRatio() / flux**xPower,
               meanValues.getGrowthSlope() / flux**yPower,
               label=folder)
    plt.loglog(meanValues.getTotalRatio() / flux**xPower,
               meanValues.getGyradiusSlope() / flux**yPower,
               '--',
               label="gyradius " + str(flux))
    plt.legend(loc='upper left', prop={'size': 6})
    plt.savefig("radiusVsModifiedRate.png")

plt.close()
示例#8
0
#plt.figure(num=None, figsize=(4,4), dpi=80, facecolor='w', edgecolor='k')
#plt.figure(num=2, figsize=(4,4), dpi=80, facecolor='b', edgecolor='k')
plt.grid(True)
temperatures = np.array(list(range(120, 321, 5)))

workingPath = os.getcwd()
kb = 8.6173324e-5
for i in range(-3, 1):
    folder = "flux3.5e" + str(i)
    flux = float("3.5e" + str(i))
    print(folder)
    try:
        os.chdir(folder)
        meanValues = mk.getIslandDistribution(temperatures,
                                              sqrt=False,
                                              interval=False,
                                              growth=True,
                                              verbose=False,
                                              flux=flux)
    except OSError:
        print("error changing to flux {}".format(folder))

    os.chdir(workingPath)
    vs = meanValues.getGrowthSlope()
    vsM = meanValues.growthSlopes
    fs = meanValues.getFluctuationSizes()
    vsPrime = np.maximum(vs, (1 + fs**(4 / 3)) * flux**1.08)
    N = (0.3 * 400 * 400) / meanValues.getIslandsAmount()
    N = meanValues.getIslandsAmount()
    N2 = meanValues.getIslandsAmount2()
    n = meanValues.getMonomersAmount()
    fn = meanValues.getFluctuationMonomers()