Dependencies
PhoXonic.jl uses the following packages:
Core Dependencies
| Package | Description |
|---|---|
| Brillouin.jl | Brillouin zone paths and symmetry |
| FFTW.jl | FFT for matrix-free operators (O(N log N) convolution) |
| StaticArrays.jl | Fixed-size arrays for vectors |
| LinearAlgebra | Standard linear algebra (stdlib) |
| LinearMaps.jl | Lazy linear operators |
Iterative Solvers
| Package | Description |
|---|---|
| KrylovKit.jl | Krylov subspace methods (Arnoldi, Lanczos) |
| Krylov.jl | CG, MINRES, and other Krylov methods |
| IterativeSolvers.jl | LOBPCG eigensolver |
Optional Extensions
| Package | Extension | Description |
|---|---|---|
| Plots.jl | PhoXonicPlotsExt | Band structure plotting |
| ReducedShiftedKrylov.jl | PhoXonicReducedShiftedKrylovExt | Matrix-free Green's function |
I/O
| Package | Description |
|---|---|
| JLD2.jl | Save/load band structures |