code: def _update_model(self, case, B, Bsrc, v_angle, p_srcinj, p_ref, ref_idx):
          
          iref = ref_idx
          base_mva = case.base_mva
          buses = case.connected_buses
          branches = case.online_branches
  
          p_from = (Bsrc * v_angle + p_srcinj) * base_mva
          p_to = -p_from
  
          for i, branch in enumerate(branches):
              branch.p_from = p_from[i]
              branch.p_to = p_to[i]
              branch.q_from = 0.0
              branch.q_to = 0.0
  
          for j, bus in enumerate(buses):
              bus.v_angle = v_angle[j] * (180 / pi)
              bus.v_magnitude = 1.0
  
          # Update Pg for swing generator.
          g_ref = [g for g in case.generators if g.bus == buses[iref]][0]
          # Pg = Pinj + Pload + Gs
          # newPg = oldPg + newPinj - oldPinj
          p_inj = (B[iref, :] * v_angle - p_ref) * base_mva
          g_ref.p += p_inj[0]
docs: Updates the case with values computed from the voltage phase
              angle solution.