Example #1
0
            emin = mu
        else:
            emax = mu

    return mu

def _get_number_of_electrons(energies, weights, chemical_potential, temperature):
    T = temperature
    g = 3 - len(energies)
    mu = chemical_potential
    n = 0
    for energies_spin in energies:
        for E, w in zip(np.array(energies_spin), weights):
            n += np.sum(1.0 / (1 + np.exp((E - mu) / T))) * w
    return n * g

if __name__ == '__main__':
    from cogue.interface.vasp_io import Vasprunxml
    import sys
    
    T = 0.4
    print("Temperature %f K (%f eV)" % (T / Kb, T))

    vasprun = Vasprunxml(sys.argv[1])
    succeeded = vasprun.parse_eigenvalues()
    eigvals = vasprun.get_eigenvalues()
    kpoints, weights = vasprun.get_kpoints()
    mu = get_chemical_potential(eigvals, weights, T, 16)
    print("Chemical potential: %f" % mu)
    print("Entropy (T*S): %f" % get_entropy(eigvals, weights, mu, T) * T)
Example #2
0
    return mu


def _get_number_of_electrons(energies, weights, chemical_potential,
                             temperature):
    T = temperature
    g = 3 - len(energies)
    mu = chemical_potential
    n = 0
    for energies_spin in energies:
        for E, w in zip(np.array(energies_spin), weights):
            n += np.sum(1.0 / (1 + np.exp((E - mu) / T))) * w
    return n * g


if __name__ == '__main__':
    from cogue.interface.vasp_io import Vasprunxml
    import sys

    T = 0.4
    print "Temperature %f K (%f eV)" % (T / Kb, T)

    vasprun = Vasprunxml(sys.argv[1])
    succeeded = vasprun.parse_eigenvalues()
    eigvals = vasprun.get_eigenvalues()
    kpoints, weights = vasprun.get_kpoints()
    mu = get_chemical_potential(eigvals, weights, T, 16)
    print "Chemical potential:", mu
    print "Entropy (T*S):", get_entropy(eigvals, weights, mu, T) * T
Example #3
0
 def test_Vasprunxml(self):
     vxml = Vasprunxml("vasprun-energy.xml")
     vxml.parse_calculation()
     vxml.parse_eigenvalues()
     print "Forces:"
     print vxml.get_forces()
     print "Stress:"
     print vxml.get_stress()
     print "Lattice:"
     print vxml.get_lattice()
     print "Atomic points:"
     print vxml.get_points()
     print "Energy:"
     print vxml.get_energies()
     print "Eigenvalues:"
     print vxml.get_eigenvalues()
     print "Kpoints:"
     print vxml.get_kpoints()
     print "Occupancies:"
     print vxml.get_occupancies()
     print "Born charges"
     print vxml.get_born_charges()
     print "Epsilon"
     print vxml.get_epsilon()