You should use the QuantumCircuit.save_statevector()
method whenever you wish to take a "screenshot" of the system's statevector. This modification of your code would do the job:
from qiskit import QuantumCircuit, transpile, Aer
simulator = Aer.get_backend('aer_simulator_statevector')
circuit = QuantumCircuit(2)
circuit.h(0)
circuit.cnot(0, 1)
circuit.save_statevector()
result = simulator.run(transpile(circuit, simulator)).result()
psi = result.get_statevector(circuit)
Also note that if you wish to take multuiple "screenshots" of the statevector in different places along the circuit that is possible, while the requirement is to label each shot with a unique name. For example this code:
from qiskit import QuantumCircuit, transpile, Aer
simulator = Aer.get_backend('aer_simulator')
circuit = QuantumCircuit(2)
circuit.h(0)
circuit.save_statevector('psi1')
circuit.cnot(0, 1)
circuit.save_statevector('psi2')
result = simulator.run(transpile(circuit, simulator)).result()
data = result.data()
psi1 = data['psi1']
psi2 = data['psi2']
display(psi1.draw(output = 'latex'))
display(psi2.draw(output = 'latex'))
Gives this output:
$$\frac{\sqrt{2}}{2} |00\rangle+\frac{\sqrt{2}}{2} |01\rangle \\ \frac{\sqrt{2}}{2} |00\rangle+\frac{\sqrt{2}}{2} |11\rangle$$
One more option (which I personally prefer the most) is using the Statevector
class in order to easily take "screenshots" of the system's statevector whenever we desire. The following code produces the same output as the last one:
from qiskit import QuantumCircuit, transpile, Aer
from qiskit.quantum_info import Statevector
simulator = Aer.get_backend('aer_simulator')
circuit = QuantumCircuit(2)
circuit.h(0)
psi1 = Statevector(circuit)
circuit.cnot(0, 1)
psi2 = Statevector(circuit)
display(psi1.draw(output = 'latex'))
display(psi2.draw(output = 'latex'))