Fouling mitigation in tubular membranes by 3D-printed turbulence promoters