# Compose circuit of different size

Hi !

I wanted to know if it is possible to compose circuits of different size in Pennylane.

For example I have two circuit, one of size 2 (the small one), and one of size 4 (the large one).

I want to construct the large one based on multiple repetition of the small one, but put on different wires.

``````@qml.qnode(dev)  ##2-qubits circuit
def small_circuit(phi):
qml.RZ(- np.pi, wires=1)
qml.CNOT([1, 0])
return [qml.expval(qml.PauliZ(j)) for j in range(2)]

@qml.qnode(dev) ##4-qubits circuit
def circuit(phi):
#small_circuit(phi)(wires=0)
#small_circuit(phi)(wires=3)
# ...
return [qml.expval(qml.PauliZ(j)) for j in range(4)]
``````

So that the large circuit is a composition of the small one.

How is it possible ?

Thank you very much

You make two devices:

``````dev4 = qml.device("default.qubit", wires=4)
dev2 = qml.device("default.qubit", wires=2)
``````

Then make output from 4 qubit gate go to the 2 qubit gate twice. This sould work, unless you are worry about 2 vs 4 qubit entangelment.

1 Like

Hey @Maelle_T! Welcome to the forum You can totally do this in PennyLane, but how I would recommend doing it is slightly different. You can make use of quantum functions (basically python functions that aren’t decorated with `@qml.qnode`).

Here’s an example:

``````import pennylane as qml

def quantum_function(wires):
qml.RX(0.1, wires)
``````

I can then use `quantum_function` inside QNodes!

``````dev = qml.qnode("default.qubit", wires=4)

@qml.qnode(dev)
def qnode():
quantum_function([0, 1])
quantum_function([2, 3])
return [qml.expval(qml.PauliZ(i)) for i in range(4)]
``````

Essentially, you can think of quantum functions as building blocks just like PennyLane gates, layers, templates, etc., but you define them how you want!

Hope this helps!

1 Like

How this is awesome !!
Thank you very much for your help !

1 Like

Awesome! Glad I could help . If you don’t mind, could you mark my post as the solution to your question? It helps future people on the forum get the answer they need a little quicker Sure, it’s done !
Thanks 1 Like

Thank you! Have a great day!

1 Like

Thank you, I did not know that this was possible.

2 Likes