Dependencies

PhoXonic.jl uses the following packages:

Core Dependencies

PackageDescription
Brillouin.jlBrillouin zone paths and symmetry
FFTW.jlFFT for matrix-free operators (O(N log N) convolution)
StaticArrays.jlFixed-size arrays for vectors
LinearAlgebraStandard linear algebra (stdlib)
LinearMaps.jlLazy linear operators

Iterative Solvers

PackageDescription
KrylovKit.jlKrylov subspace methods (Arnoldi, Lanczos)
Krylov.jlCG, MINRES, and other Krylov methods
IterativeSolvers.jlLOBPCG eigensolver

Optional Extensions

PackageExtensionDescription
Plots.jlPhoXonicPlotsExtBand structure plotting
ReducedShiftedKrylov.jlPhoXonicReducedShiftedKrylovExtMatrix-free Green's function

I/O

PackageDescription
JLD2.jlSave/load band structures