Julia BCDI Documentation
About
The BYU-CXI research group maintains a suite of Julia packages to solve the Bragg Coherent Diffraction Imaging (BCDI) problem in several different regimes and circumstance.
BcdiCore.jl (github repo) implements all of the Fourier transforms for the Julia BCDI packages. In addition, BcdiCore calculates the loss function used (either $L_2$ or the MLE estimator) and derivatives of these loss functions.
BcdiTrad.jl (github repo) implements projection-based BCDI algorithm. Currently, this is limited to ER, HIO, and shrinkwrap.
BcdiStrain.jl (github repo) implements a multi-peak BCDI algorithm developed by the BYU-CXI group. In addition to the alogrithms present in BcdiTrad, BcdiStrain also implements Mount, an operator that switches between peaks.
BcdiMeso.jl (github repo) implements a BCDI algorithm that solves in the mesoscale regime. Instead of using projections, this algorithm uses a gradient-based optimization scheme. Additionally, BcdiMeso does not assume a small measurement distance away from the peak.
BcdiAtomic.jl is an upcoming BCDI package that implements a BCDI algorithm that solves at the atomic scale.
BcdiMulti.jl is an upcoming BCDI package that implements a multiscale BCDI algorithm that solves at both the mesoscale and the atomic scale.
BcdiSimulate.jl (github repo) implements algorithms that simulate the BCDI problem. Currently, this is only implimented at the atomic scale.