Supermesh analysis, step by step

Updated

A supermesh is what you use in mesh analysis when a current source is shared by two meshes. You can't write KVL around either mesh on its own, because the voltage across a current source is unknown. Instead, you join the two meshes into one: write a single KVL equation around the outside of both, skipping the current source, and use the source as a constraint between the two mesh currents.

The circuit below is the first worked example on this page. You can edit it, or draw your own, then solve it step by step.

Example 1: a current source shared by two meshes
Example 1: a current source shared by two meshes Solve this circuit step by step →

What is a supermesh?

A supermesh is two meshes that share a current source, treated as one larger loop that goes around the outside of both and leaves the shared branch out. It isn't a real mesh, and it doesn't have a mesh current of its own: each of its meshes keeps its own current.

The problem it solves is this. Mesh analysis writes the voltage across every component in terms of mesh currents: the voltage across a resistor RR shared by meshes aa and bb is R(Ia−Ib)R(I_a - I_b). That doesn't work for a current source, whose voltage can be anything the rest of the circuit needs. A supermesh goes around it, so the unknown voltage never appears in a KVL equation.

Where the current source isWhat to do
On the outside edge of the circuit, in one mesh onlyNo supermesh. It sets that mesh's current: Ia=±IsI_a = \pm I_s, + if it points the same way as the mesh current.
Shared by two meshesA supermesh: one KVL equation around both meshes, plus the constraint Ib−Ia=IsI_b - I_a = I_s (in the direction the source points).
Several current sources that join meshes in a chainOne larger supermesh around all of them, with one constraint per source.

How to solve a circuit with a supermesh

  1. Label the mesh currents I1I_1, I2I_2, ..., all clockwise. Each enclosed window of the circuit is one mesh.
  2. Find the current sources. One on the outside edge sets its mesh current. One shared by two meshes makes a supermesh.
  3. Write the constraint equation. In the shared branch, the two mesh currents flow in opposite directions, so the source's current is the difference between them. If the source points the same way as IbI_b flows through it, then Ib−Ia=IsI_b - I_a = I_s.
  4. Write KVL around the supermesh. Go around the outside of both meshes, adding up the voltage across every component you pass, and set the total to zero. Leave out the current source's branch, and anything in series with it.
  5. Write KVL around the other meshes as usual.
  6. Solve. You have one equation per mesh current. Substitute the constraint, or solve them all as a matrix.
  7. Check your answer by making sure the shared branch carries the source's current.

A supermesh needs two equations because it covers two unknown mesh currents. KVL around the outside gives one of them, and the current source (which is really KCL at one of its ends) gives the other.

Example 1: a current source shared by two meshes

In the circuit at the top of the page, a 24 V24\,\text{V} source V1V1 is on the left, R1R1 (2 Ω2\,\Omega) is along the top of mesh 1, and a 2 A2\,\text{A} current source I1I1, pointing up, is in the branch between the two meshes. Mesh 2 has R2R2 (2 Ω2\,\Omega) along the top and R3R3 (4 Ω4\,\Omega) down the right. Find the mesh currents.

Step 1: label the mesh currents

I1I_1 flows clockwise around the left mesh and I2I_2 clockwise around the right one. In the middle branch, I1I_1 flows down and I2I_2 flows up.

Step 2: spot the supermesh

I1I1 is shared by both meshes, so meshes 1 and 2 form a supermesh.

Step 3: write the constraint

I1I1 points up, the same way as I2I_2 flows through it, so

I2−I1=2I_2 - I_1 = 2

Step 4: write KVL around the supermesh

Going clockwise around the outside of both meshes, up through V1V1 (a rise of 24 V24\,\text{V}), then through R1R1, R2R2 and R3R3:

−24+2I1+2I2+4I2=0-24 + 2I_1 + 2I_2 + 4I_2 = 0

Step 5: solve

Substitute I2=I1+2I_2 = I_1 + 2:

2I1+6(I1+2)=24⇒8I1=122I_1 + 6(I_1 + 2) = 24 \quad\Rightarrow\quad 8I_1 = 12
I1=1.5 A,I2=3.5 AI_1 = 1.5\,\text{A}, \qquad I_2 = 3.5\,\text{A}

Step 6: check

The middle branch carries I2−I1=2 AI_2 - I_1 = 2\,\text{A} upwards, as I1I1 says it should. Around the outside, R1R1 drops 3 V3\,\text{V}, R2R2 drops 7 V7\,\text{V} and R3R3 drops 14 V14\,\text{V}, which adds up to the 24 V24\,\text{V} from V1V1.

Open Example 1 in Circuitsteps to see every step, including the matrix and the current through each component.

Example 2: a supermesh next to an ordinary mesh

This circuit has three meshes. Meshes 1 and 2 are the same shape as in Example 1, sharing a 2 A2\,\text{A} current source I1I1, with a 32 V32\,\text{V} source V1V1, R1R1 (2 Ω2\,\Omega) and R2R2 (4 Ω4\,\Omega). R3R3 (6 Ω6\,\Omega) is shared by meshes 2 and 3, and mesh 3 also has R4R4 (3 Ω3\,\Omega) along the top and R5R5 (3 Ω3\,\Omega) down the right.

Example 2: a supermesh next to an ordinary mesh
Example 2: a supermesh next to an ordinary mesh Solve this circuit step by step →

Step 1: the supermesh and its constraint

I1I1 is shared by meshes 1 and 2, so they form a supermesh, and as before

I2−I1=2I_2 - I_1 = 2

Step 2: KVL around the supermesh

Going clockwise around the outside of meshes 1 and 2: up through V1V1, through R1R1 and R2R2, then down through R3R3, which is shared with mesh 3, so its current is I2−I3I_2 - I_3:

−32+2I1+4I2+6(I2−I3)=0-32 + 2I_1 + 4I_2 + 6(I_2 - I_3) = 0

Step 3: KVL around mesh 3

Mesh 3 has no current source in it, so it gets an ordinary KVL equation:

6(I3−I2)+3I3+3I3=06(I_3 - I_2) + 3I_3 + 3I_3 = 0

Step 4: solve

The mesh 3 equation simplifies to I3=I22I_3 = \frac{I_2}{2}. Substituting that and I2=I1+2I_2 = I_1 + 2 into the supermesh equation:

2I1+7(I1+2)=32⇒9I1=182I_1 + 7(I_1 + 2) = 32 \quad\Rightarrow\quad 9I_1 = 18
I1=2 A,I2=4 A,I3=2 AI_1 = 2\,\text{A}, \qquad I_2 = 4\,\text{A}, \qquad I_3 = 2\,\text{A}

As a matrix, with the constraint as the first row:

[−110210−60−612][I1I2I3]=[2320]\begin{bmatrix} -1 & 1 & 0 \\ 2 & 10 & -6 \\ 0 & -6 & 12 \end{bmatrix}\begin{bmatrix} I_1 \\ I_2 \\ I_3 \end{bmatrix} = \begin{bmatrix} 2 \\ 32 \\ 0 \end{bmatrix}

Step 5: check

The middle branch carries I2−I1=2 AI_2 - I_1 = 2\,\text{A} upwards, and R3R3 carries I2−I3=2 AI_2 - I_3 = 2\,\text{A} downwards. Around the outside of the whole circuit, R1R1, R2R2, R4R4 and R5R5 drop 4+16+6+6=32 V4 + 16 + 6 + 6 = 32\,\text{V}, the same as V1V1.

Open Example 2 in Circuitsteps to see it solved step by step.

Common mistakes

Supermesh or supernode?

A supermesh is mesh analysis's way of handling a current source shared by two meshes. Nodal analysis has the same idea for voltage sources: a voltage source between two nodes makes a supernode. If a circuit has lots of current sources, nodal analysis may need fewer equations. Circuitsteps can solve a circuit both ways, so try the mesh analysis calculator and the nodal analysis calculator to compare. If the current source is a dependent one, see mesh analysis with dependent sources.

Frequently asked questions

What is a supermesh?

A supermesh is two meshes that share a current source, treated as one loop in mesh analysis. You write one KVL equation around the outside of both meshes, leaving out the current source's branch, and use the current source as a constraint between the two mesh currents.

When do you use a supermesh?

Whenever a current source, independent or dependent, is in a branch shared by two meshes. If the current source is on the outside edge of the circuit, there's no supermesh: it just sets the current of the one mesh it's in.

How many equations does a supermesh give?

Two: one KVL equation around the supermesh, and one constraint equation from the current source, which says the difference between the two mesh currents equals the source's current.

What happens to a resistor in series with the current source?

Leave it out of the supermesh's KVL equation. Its current is set by the current source, and the supermesh goes around that whole branch.

Can Circuitsteps solve circuits with supermeshes?

Yes. Draw the circuit and choose mesh analysis, and Circuitsteps finds the supermeshes itself, then shows the constraint, the supermesh's KVL equation, the matrix and every mesh current.

Stuck on a circuit? Get the full step-by-step solution.Solve it now →