Safe Haskell | None |
---|---|
Language | Haskell98 |
- meshBZ :: Parameterized (Grid Wavevector)
- meshBigBZ :: Parameterized (Grid Wavevector)
- bzIntegral :: (Wavevector -> Parameterized Double) -> Parameterized Double
- bzIntegral' :: (Wavevector -> Parameterized Double) -> Parameterized (Double, Double)
- bzIntegral'' :: (Wavevector -> Parameterized Double) -> Parameterized Double
- kPath :: [Wavevector] -> Parameterized [Wavevector]
Documentation
meshBZ :: Parameterized (Grid Wavevector) Source
Returns a mesh of points within the n-parallelepiped subtended by the reciprocal lattice vectors. Covers the entire brillouin zone, though not in the shape you might expect, and not in a way that's pretty for graphing.
meshBigBZ :: Parameterized (Grid Wavevector) Source
As meshBZ
, but with parallelepipeds extending in each quadrant, octant...
n-ant of the reciprocal lattice basis. Should cover more than the entire
first Brillouin zone.
bzIntegral :: (Wavevector -> Parameterized Double) -> Parameterized Double Source
Integrates using a simple grid-sum.
bzIntegral' :: (Wavevector -> Parameterized Double) -> Parameterized (Double, Double) Source
As bzIntegral
, but also gives the absolute error as the second value
in the returned tuple.
bzIntegral'' :: (Wavevector -> Parameterized Double) -> Parameterized Double Source
Given a function defined on the Brillouin zone, evaluate it everywhere by doing nested single integrations and using Takahashi and Mori's Tanh-Sinh quadrature method. Should be robust against singularities and the like, and is properly set up for massive parallelization (via EdwardKmett's integration library, certainly not mine). Watch Dirac run this thing. Only implemented in 2D.
kPath :: [Wavevector] -> Parameterized [Wavevector] Source
Given a list of points in k-space, return a list of points that interpolates affine paths between them, in turn; a typical usage case might be
kPath [gammaPoint, kPoint, mPoint, gammaPoint]
which is used in the bandPlot
function. The spacing
between points on the interpolated path is determined by
the meshingData
parameter.