Giter VIP home page Giter VIP logo

tetrahedra_integration's Introduction

Tetrahedra_Integration

A function that performs the tetrahedron method of integration in the Brillouin zone.

This function performs Brillouin zone integration of the energy bands to determine the total energy. An improved version of the tetrahedron method is used.

This function is an implementation of the algorithm proposed in "Improved tetrahedron method for Brillouin-zone integrations" by Peter E. Blöchl, O. Jepsen, and O. K. Andersen from Physical Review B 49, 16223 – Published 15 June 1994. It is modified in that the submesh vectors (grid_vecs) are not necessarily the reciprocal lattice vectors divided by an integer.

Args: r_lattice_vectors (NumPy array): the reciprocal lattice vectors. Each column of the array is one of the vectors. grid_vecs (NumPy array): the vectors used to create the grid of k points. All grid points are an integer combination of these vectors. Each column of the array is one of the vectors. grid (list of lists of floats): the coordinates of each k point in the reciprocal lattice unit cell at which calculations will be performed. PP (function): calculates the first n energy levels at a given k point using the pseudopotential method. PP has two arguments. For its first argument, PP takes a list of floats containing the coordinates of the k point to evaluate the energy levels at. For its second argument, PP takes the number of eigenvalues (equivalent to the number of energy levels) to return. It returns a sorted list (from least to greatest) of the first n eigenvalues (energy values) at that point. valence_electrons (int): the number of valence electrons possessed by the element in question. apply_weight_correction (bool): true if the integration weights should be corrected to take curvature into account, false otherwise.

Returns: E_Fermi (float): the calculated Fermi energy level. total_energy (float): the total calculated energy in the Brillouin zone, the result of the integration.

tetrahedra_integration's People

Contributors

kaceyleavitt avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.