Beispiel #1
0
JList = np.linspace(0.05,0.1,2)

simDict = {'tipPos':0,'Gs':2.56e-7,'G':1.5e-9,'eta':0.5,'u':0.4}

fig,ax = plt.subplots(1,3,figsize=(12,4.5))
          
scaledtrans = transforms.ScaledTranslation(-0.55, -0.15, fig.dpi_scale_trans)
letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l']
for i,axis in enumerate(ax):
    axis.text(0, 1, letters[i], fontsize=14, fontweight="bold", va="bottom", ha="left",
           transform=axis.transAxes + scaledtrans)

for J in JList:
    struct1 = Structure(atoms=[Fe1,Fe2,Fe2,Fe3,], JDict={(0,1):J,(1,2):J,(2,3):J},Bz = 0.2,)
    struct2 = Structure(atoms=[Fe1,Fe2,Fe2,Fe3,], JDict={(0,1):J,(1,2):J,(2,3):J},Bz = 0.6,)
    lifeTimes1 = TemperatureVariation(struct1,T_rangeShort,**simDict).calcLifeTimesFullRates(V_bias)
    lifeTimes2 = TemperatureVariation(struct2,T_rangeShort,**simDict).calcLifeTimesFullRates(V_bias)
    label1 = 'J = ' + ("%.2f" % J) + ', meV Bz = 0.2 T' 
    label2 = 'J = ' + ("%.2f" % J) + ', meV Bz = 0.6 T' 
    
    v1 = struct1.getEigenStates()
    v2 = struct2.getEigenStates()
    #w = struct.getEnergies()
    print(label1)
    print(getHigestProbabillity(v1[:,0],3,2))
    print(label2)
    print(getHigestProbabillity(v2[:,0],3,2))
    
    avgLifetime1 = 2/(lifeTimes1[:,0]+lifeTimes1[:,1])
    avgLifetime2 = 2/(lifeTimes2[:,0]+lifeTimes2[:,1])
    davgdT1 = np.gradient(avgLifetime1,T_rangeShort)
Beispiel #2
0
    'tipPos': 0,
    'Gs': 1.452e-7,
    'G': 1.5e-9,
    'u': 0,
    'eta': 0,
}

for i, J in enumerate(J_list):
    fourFe = Structure(atoms=[Fe1, Fe2, Fe2, Fe3],
                       JDict={
                           (0, 1): J,
                           (1, 2): J,
                           (2, 3): J
                       },
                       Bz=3)
    lifeTimes = TemperatureVariation(fourFe, T_rangeShort,
                                     **simDict).calcLifeTimesFullRates(V_bias)
    dIdV1 = DIdV(fourFe, V_range, tipPos=0, T=1).getdIdV()
    dIdV2 = DIdV(fourFe, V_range, tipPos=1, T=1).getdIdV()

    ax[0].semilogy(1 / T_rangeShort,
                   2 / (lifeTimes[:, 0] + lifeTimes[:, 1]),
                   '--s',
                   label='J = ' + str(J),
                   markerfacecolor='none')
    ax[1].plot(V_range / 1e-3,
               dIdV1 / dIdV1[0],
               '-' + colorString[i],
               label='J = ' + str(J),
               markerfacecolor='none')
    ax[1].plot(
        V_range / 1e-3,
#{'tipPos':2,'Gs':1.452e-7,'G':1.5e-9,'u':0,'eta':0.24},
#{'tipPos':3,'Gs':1.452e-7,'G':1.5e-9,'u':0,'eta':0.24},
#{'tipPos':0,'Gs':1.452e-8,'G':1.5e-9,'u':0,'eta':0.4},
#{'tipPos':1,'Gs':1.452e-8,'G':1.5e-9,'u':0,'eta':0.4},
#{'tipPos':2,'Gs':1.452e-8,'G':1.5e-9,'u':0,'eta':0.4},
#{'tipPos':3,'Gs':1.452e-8,'G':1.5e-9,'u':0,'eta':0.4},
#{'tipPos':0,'Gs':1.452e-9,'G':1.5e-9,'u':0,'eta':0.4},
#{'tipPos':1,'Gs':1.452e-9,'G':1.5e-9,'u':0,'eta':0.4},
#{'tipPos':2,'Gs':1.452e-9,'G':1.5e-9,'u':0,'eta':0.4},
#{'tipPos':3,'Gs':1.452e-9,'G':1.5e-9,'u':0,'eta':0.4},
#]

for simDict in simList:

    #lifeTimes4 = TemperatureVariation(fourFe,T_rangeShort,**simDict).calcLifeTimesFullRates(V_bias)
    lifeTimes6B = TemperatureVariation(
        sixFeB, T_rangeShort, **simDict).calcLifeTimesFullRates(V_bias)
    lifeTimes8 = TemperatureVariation(eightFe, T_rangeShort,
                                      **simDict).calcLifeTimesFullRates(V_bias)
    lifeTimes2x4 = TemperatureVariation(
        eightFe2x4, T_rangeShort, **simDict).calcLifeTimesFullRates(V_bias)

    plt.figure(figsize=(6, 4))
    #plt.semilogy(1/T_rangeShort,1/lifeTimes8[:,0],'*',label = '1x8 A')
    #plt.semilogy(1/T_rangeShort,1/lifeTimes2x4[:,0],'*',label = '2x4 A')
    #plt.semilogy(1/T_rangeShort,1/lifeTimes4[:,0],'*',label = '1x4 A')
    #plt.semilogy(1/T_rangeShort,1/lifeTimes6B[:,0],'*',label = '1x6 AB')
    plt.semilogy(1 / T_rangeShort,
                 2 / (lifeTimes6B[:, 0] + lifeTimes6B[:, 1]),
                 '--C0',
                 label='1x6')
    plt.semilogy(1 / T_rangeShort,
        'Gs': 1.452e-7,
        'G': 1.5e-9,
        'u': 1,
    },
    {
        'tipPos': 0,
        'Gs': 1.452e-7,
        'G': 1.5e-9,
        'u': 0,
        'b0': 0.75
    },
]

for i, structDict in enumerate(structList):
    struct = Structure(**structDict)
    lifeTime = TemperatureVariation(
        struct, T_rangeShort, **simList[0]).calcLifeTimesFullRates(V_bias)
    ax[0].semilogy(1 / T_rangeShort,
                   2 / (lifeTime[:, 0] + lifeTime[:, 1]),
                   linestArray[i],
                   markerfacecolor='none')

struct = Structure(**structList[0])

for i, simDict in enumerate(simList):
    lifeTime = TemperatureVariation(struct, T_rangeShort,
                                    **simDict).calcLifeTimesFullRates(V_bias)
    ax[1].semilogy(1 / T_rangeShort,
                   2 / (lifeTime[:, 0] + lifeTime[:, 1]),
                   linestArray[i],
                   markerfacecolor='none')
simDict = {'tipPos': 0, 'Gs': 2.56e-6, 'G': 1.5e-9, 'eta': 0, 'u': 0}
structDict = {
    'atoms': [Fe1, Fe2, Fe2, Fe3],
    'JDict': {
        (0, 1): J,
        (1, 2): J,
        (2, 3): J
    },
    'Bz': 3,
}

fourFe1 = Structure(**structDict)
fourFe2 = BigStructure(**structDict, n=5, k=625)
fourFe3 = BigStructure(**structDict, n=5, k=10)

lifeTimes1 = TemperatureVariation(fourFe1, T_rangeShort,
                                  **simDict).calcLifeTimesFullRates(V_bias)
lifeTimes2 = TemperatureVariation(fourFe2, T_rangeShort,
                                  **simDict).calcLifeTimesFullRates(V_bias)
lifeTimes3 = TemperatureVariation(fourFe3, T_rangeShort,
                                  **simDict).calcLifeTimesFullRates(V_bias)

avgLifetime1 = 2 / (lifeTimes1[:, 0] + lifeTimes1[:, 1])

for key in valueDict.keys():
    error = np.zeros((3, len(valueDict[key])))
    for j, value in enumerate(valueDict[key]):
        tempdict = structDict
        tempdict[key] = value
        structList = [
            BigStructure(**structDict, n=2),
            BigStructure(**structDict, n=10),