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.
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 shared by meshes and is . 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 is | What to do |
|---|---|
| On the outside edge of the circuit, in one mesh only | No supermesh. It sets that mesh's current: , + if it points the same way as the mesh current. |
| Shared by two meshes | A supermesh: one KVL equation around both meshes, plus the constraint (in the direction the source points). |
| Several current sources that join meshes in a chain | One larger supermesh around all of them, with one constraint per source. |
How to solve a circuit with a supermesh
- Label the mesh currents , , ..., all clockwise. Each enclosed window of the circuit is one mesh.
- Find the current sources. One on the outside edge sets its mesh current. One shared by two meshes makes a supermesh.
- 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 flows through it, then .
- 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.
- Write KVL around the other meshes as usual.
- Solve. You have one equation per mesh current. Substitute the constraint, or solve them all as a matrix.
- 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 source is on the left, () is along the top of mesh 1, and a current source , pointing up, is in the branch between the two meshes. Mesh 2 has () along the top and () down the right. Find the mesh currents.
Step 1: label the mesh currents
flows clockwise around the left mesh and clockwise around the right one. In the middle branch, flows down and flows up.
Step 2: spot the supermesh
is shared by both meshes, so meshes 1 and 2 form a supermesh.
Step 3: write the constraint
points up, the same way as flows through it, so
Step 4: write KVL around the supermesh
Going clockwise around the outside of both meshes, up through (a rise of ), then through , and :
Step 5: solve
Substitute :
Step 6: check
The middle branch carries upwards, as says it should. Around the outside, drops , drops and drops , which adds up to the from .
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 current source , with a source , () and (). () is shared by meshes 2 and 3, and mesh 3 also has () along the top and () down the right.
Step 1: the supermesh and its constraint
is shared by meshes 1 and 2, so they form a supermesh, and as before
Step 2: KVL around the supermesh
Going clockwise around the outside of meshes 1 and 2: up through , through and , then down through , which is shared with mesh 3, so its current is :
Step 3: KVL around mesh 3
Mesh 3 has no current source in it, so it gets an ordinary KVL equation:
Step 4: solve
The mesh 3 equation simplifies to . Substituting that and into the supermesh equation:
As a matrix, with the constraint as the first row:
Step 5: check
The middle branch carries upwards, and carries downwards. Around the outside of the whole circuit, , , and drop , the same as .
Open Example 2 in Circuitsteps to see it solved step by step.
Common mistakes
- Writing KVL around each of a supermesh's meshes. Each would need the voltage across the current source, which you don't know. Write one equation around the outside of both.
- Forgetting the constraint equation. The supermesh's KVL equation has two unknown mesh currents in it, so you need the current source's equation as well.
- Getting the constraint's sign wrong. In the shared branch, the two clockwise mesh currents flow in opposite directions. The source's current is the one flowing its way minus the other.
- Including the current source's branch in KVL. The supermesh goes around it. Any resistor in series with the current source is left out too, as its current is fixed by the source.
- Making a supermesh out of an outside current source. A current source on the edge of the circuit is in one mesh only, so it just sets that mesh's current.
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.