AutoBZCore.jl

AutoBZCoreModule

A package providing a common interface to integration algorithms intended for applications including Brillouin-zone integration and Wannier interpolation. Its design is influenced by high-level libraries like Integrals.jl to implement the CommonSolve.jl interface, and it makes use of Julia's multiple dispatch to provide the same interface for integrands with optimized inplace, batched, and Fourier series evaluation.

Quickstart

As a first example, we integrate sine over [0,1] as a function of its period.

julia> using AutoBZCore

julia> prob = IntegralProblem((x,p) -> sin(p*x), (0, 1), 0.3);

julia> solve(prob, QuadGKJL()).value # solves the integral of sin(p*x) over [0,1] with p=0.3
0.14887836958131329

Notice that we construct an IntegralProblem object that we can solve at with a choice of algorithm. For more examples, see the documentation.

Features

Special integrand interfaces

Quadrature algorithms:

Meta-Algorithms:

Extended help

If you experience issues with AutoBZCore.jl, please report a bug on the GitHub page to contact the developers.