code: def _branch_flow_dc(self, branches, Bf, Pfinj, base_mva):
          
          # Indexes of constrained lines.
          il = array([i for i,l in enumerate(branches) if 0.0 < l.rate_a < 1e10])
          lpf = -Inf * ones(len(il))
          rate_a = array([l.rate_a / base_mva for l in branches])
          upf = rate_a[il] - Pfinj[il]
          upt = rate_a[il] + Pfinj[il]
  
          Pf = LinearConstraint("Pf",  Bf[il, :], lpf, upf, ["Va"])
          Pt = LinearConstraint("Pt", -Bf[il, :], lpf, upt, ["Va"])
  
          return Pf, Pt
docs: Returns the branch flow limit constraint.  The real power flows
          at the from end the lines are related to the bus voltage angles by
          Pf = Bf * Va + Pfinj.