Here you can find the matlab scripts used for discretization of regular sphere packings (of BCC, FCC, and SC types) in the work I co-authored. Here "discretization" means mapping of a geometry with analytical description onto a uniform cubic lattice:

The purpose of scripts is to reduce a scatter of output transport coefficients, drag force or permeability. The main routine is pack_discretization.m with documentation located in its comments. This routine calls binary2vector.m for initialization of sphere coordinates and calc_rad_scal_factor.m calculating radius for a given porosity value.

An optional routine isBoxBad.m helps to check the ratio between the edge *E* of a lattice and the number of unit cells *U* to be replicated along each Cartesian direction — both are input parameters for pack_discretization.m. If isBoxBad.m returns one for a given pair (*E*, *U*), other value of *E* should be taken, otherwise results of a flow simulation for the given lattice edge *E* can be obtained using smaller number of unit cells.