starting_thickness

iadpython.start.starting_thickness(sample)[source]

Find the best starting thickness to start the doubling process.

The criterion is based on an assessment of the (1) round-off error, (2) the angular initialization error, and (3) the thickness initialization error. Wiscombe concluded that an optimal starting thickness depends on the smallest quadrature slab.nu, and recommends that when either the infinitesimal generator or diamond initialization methods are used then the initial thickness is optimal when type 2 and 3 errors are comparable, or when d ≈ µ.

Note that round-off is important when the starting thickness is less than 1e-4 for diamond initialization and less than 1e-8 for infinitesimal generator initialization assuming about 14 significant digits of accuracy.

Since the final thickness is determined by repeated doubling, the starting thickness is found by dividing by 2 until the starting thickness is less than ‘mu’. Also we make checks for a thinnest_layer with zero thickness and one that infinitely thick.