Skip to content

Python Library for Lebedev Quadrature points and weights

License

Notifications You must be signed in to change notification settings

ifilot/pylebedev

Repository files navigation

PyLebedev

C/C++ CI C/C++ CI codecov Anaconda-Server Badge PyPI License: GPL v3

Purpose

PyLebedev is a python package that stores Lebedev quadrature coefficients for integration over the unit sphere.

Installation

Anaconda

Anaconda Version Anaconda Platforms Anaconda Downloads

Open Anaconda prompt and type

conda install -c ifilot pylebedev

PyPi

PyPI PyPI - Downloads PyPI - Python Version

Open a terminal and type

pip install pylebedev

Usage

from pylebedev import PyLebedev
import numpy as np

def main():
    """
    Test Lebedev quadrature for probe function
    """
    # build library
    leblib = PyLebedev()
    
    # exact answer to function "testfunc"
    exact = 216.0 * np.pi / 35.0
    r,w = leblib.get_points_and_weights(9)
    integral = 4.0 * np.pi * np.sum(w * tfunc(r[:,0], r[:,1], r[:,2]))
    
    print('Integral: %f vs Exact: %f' % (integral, exact))

def tfunc(x,y,z):
    """
    Trial function to test
    
    Adapted from: https://cbeentjes.github.io/files/Ramblings/QuadratureSphere.pdf
    
    This function has the exact result upon integration over a unit sphere
    of 216/35 * pi
    """
    return 1 + x + y**2 + x**2*y + x**4 + y**5 + x**2*y**2*z**2

if __name__ == '__main__':
    main()