def prepare_materials(self, field, velo=1.0, diffusion=0.1, penalty=100): """ Crates material objects with data attribute, containing properly shaped data to pass to terms :param field: DGField :param velo: optional values for velocity a :param diffusion: optional value for diffusion tensor D :param penalty: optional value for diffusion penalty Cw :return: a, D, Cw """ a = Material('a', val=[velo]) a.data = nm.ones((field.n_cell, 1)) * velo D = Material('D', val=[diffusion]) D.data = nm.ones((field.n_cell, 1, 1)) * diffusion Cw = Material("Cw", values={".val": penalty}) Cw.data = penalty return a, D, Cw