Skip to content

Generating zone plates for simulation

Sajid Ali edited this page Sep 23, 2020 · 5 revisions

Preface:

This wiki page is intended to be used as an accompaniment to this release for the purpose of computational reproducibility and as a resource for anyone looking to implement similar methods.

Zone plate generation workflow

The folder xwp_petsc/zp_database/4096x4096/ has a set of ipython notebooks that generate a 4096x4096 zone plate and subsequently convert it to hdf5 input files for wave propagation simulation. The zone plate generation is based upon earlier work, code for which is available here. Generating zone plates with different grid sizes is a straightforward task of changing the parameters. An alternative to using the Henke et.al. database is xraylib.

The additional notebooks present here are : zp_hdf5_dmda.ipynb and zp_hdf5_ms.ipynb. These take the zone plate pattern (stored in .npy format), perform some pre-processing and store the data as hdf5 files for parallel reading by the respective simulation routines.

Miscellaneous info

A conda environment file is provided (at xwp_petsc/zp_database/py3.yml) to ensure reproducibility.