Ejemplo n.º 1
0
def main():
    from materials import CZTS, Cu2S_low, ZnS_zincblende, SnS, S2
    import numpy as np

    # Surface model from ab initio calcs and NIST data

    T = np.linspace(573.15, 873.15, 100)  # K
    P = np.array(np.logspace(-8, 2, 100), ndmin=2).transpose()  # Pa

    D_mu = CZTS.mu_kJ(T, P) - (Cu2S_low.mu_kJ(T, P) + ZnS_zincblende.mu_kJ(
        T, P) + SnS.mu_kJ(T, P) + 0.5 * S2.mu_kJ(T, P))

    D_mu_label = '$\Delta G_f$ / kJ mol$^{-1}$'
    scale_range = [-50, 70]

    # Stability lines from figure 5, J. J. Scragg et al., Chem. Mater. (2011) 23 4625-4633
    kinetic_data = np.genfromtxt('jscragg_2011.csv',
                                 delimiter=',',
                                 skip_header=1)
    # Convert log pressure to absolute pressure in mbar
    kinetic_data[:, 1:] = np.power(10, kinetic_data[:, 1:])
    # Columnwise conversion to SI units from deg C and mbar
    kinetic_data_si = (kinetic_data + [273.15, 0., 0.]) * [1., 100., 100.]

    plot_potential(T,
                   P,
                   D_mu,
                   D_mu_label,
                   scale_range,
                   filename='plots/DG_CZTS_SnS_Scragg.png',
                   T_units='K',
                   P_units='Pa',
                   overlay=kinetic_data_si)
Ejemplo n.º 2
0
def main():
    from materials import CZTS, Cu2S_low, ZnS_zincblende, SnS, S2
    import numpy as np

    # Surface model from ab initio calcs and NIST data

    T = np.linspace(573.15,873.15,100)    # K
    P = np.array( np.logspace(-8,2,100),ndmin=2).transpose() # Pa
    
    D_mu = CZTS.mu_kJ(T,P) - (Cu2S_low.mu_kJ(T,P) +
                              ZnS_zincblende.mu_kJ(T,P) +
                              SnS.mu_kJ(T,P) +
                              0.5*S2.mu_kJ(T,P) )
    
    D_mu_label = '$\Delta G_f$ / kJ mol$^{-1}$'
    scale_range = [-50,70]

    # Stability lines from figure 5, J. J. Scragg et al., Chem. Mater. (2011) 23 4625-4633
    kinetic_data = np.genfromtxt('jscragg_2011.csv',delimiter=',',skip_header=1)
    # Convert log pressure to absolute pressure in mbar
    kinetic_data[:,1:] = np.power(10,kinetic_data[:,1:])
    # Columnwise conversion to SI units from deg C and mbar
    kinetic_data_si = (kinetic_data + [273.15, 0., 0.]) * [1., 100., 100.]
    
    plot_potential(T,P,D_mu,D_mu_label,scale_range, filename='plots/DG_CZTS_SnS_Scragg.png',
                   T_units='K', P_units='Pa', overlay=kinetic_data_si)
Ejemplo n.º 3
0
def main():
    from materials import CZTS, Cu2S_low, ZnS_zincblende, SnS, S2
    import numpy as np

    from DG_CZTS_S8 import plot_potential

    T = np.linspace(100,1500,100)    # K
    P = np.array( np.logspace(1,7,100),ndmin=2).transpose() # Pa
    
    D_mu = CZTS.mu_kJ(T,P) - (Cu2S_low.mu_kJ(T,P) +
                              ZnS_zincblende.mu_kJ(T,P) +
                              SnS.mu_kJ(T,P) +
                              0.5*S2.mu_kJ(T,P) )
    
    D_mu_label = '$\Delta G_f$ / kJ mol$^{-1}$'
    scale_range = [-300,100]
    
    plot_potential(T,P,D_mu,D_mu_label,scale_range, filename='plots/DG_CZTS_SnS.png')
Ejemplo n.º 4
0
def main():
    from materials import CZTS, Cu, Zn, Sn, S2
    import numpy as np

    from DG_CZTS_S8 import plot_potential

    T = np.linspace(100,1500,100)    # K
    P = np.array( np.logspace(1,7,100),ndmin=2).transpose() # Pa
    
    D_mu = CZTS.mu_kJ(T,P) - (2*Cu.mu_kJ(T,P) +
                                    Zn.mu_kJ(T,P) +
                                    Sn.mu_kJ(T,P) +
                                    2*S2.mu_kJ(T,P)
        )
    
    D_mu_label = '$\Delta G_f$ / kJ mol$^{-1}$'
    scale_range = [-650,50]
    
    plot_potential(T,P,D_mu,D_mu_label,scale_range, filename='plots/DG_CZTS_S2.png')