code: def flow_hagen(Diam, HeadLossFric, Length, Nu):
      
      #Checking input validity
      ut.check_range([Diam, ">0", "Diameter"], [Length, ">0", "Length"],
                     [HeadLossFric, ">=0", "Headloss due to friction"],
                     [Nu, ">0", "Nu"])
      return (np.pi*Diam**4) / (128*Nu) * gravity.magnitude * HeadLossFric / Length
docs: Return the flow rate for laminar flow with only major losses.