---
title: BaseQGT (v0.46)
description: API reference for qiskit.algorithms.gradients.BaseQGT in qiskit v0.46
source: https://eu-de.quantum.cloud.ibm.com/docs/en/api/qiskit/0.46/qiskit.algorithms.gradients.BaseQGT
---

# BaseQGT

*class* `qiskit.algorithms.gradients.BaseQGT(estimator, phase_fix=True, derivative_type=DerivativeType.COMPLEX, options=None)`

[GitHub](https://github.com/qiskit/qiskit/tree/stable/0.46/qiskit/algorithms/gradients/base/base_qgt.py)

Bases: [`ABC`](https://docs.python.org/3/library/abc.html#abc.ABC)

Base class to computes the Quantum Geometric Tensor (QGT) given a pure, parameterized quantum state. QGT is defined as:

$$
\mathrm{QGT}_{ij}= \langle \partial_i \psi | \partial_j \psi \rangle
- \langle\partial_i \psi | \psi \rangle \langle\psi | \partial_j \psi \rangle.
$$

**Parameters**

- **estimator** ([*BaseEstimator*](/docs/api/qiskit/0.46/qiskit.primitives.BaseEstimator "qiskit.primitives.BaseEstimator")) – The estimator used to compute the QGT.

- **phase\_fix** ([*bool*](https://docs.python.org/3/library/functions.html#bool)) – Whether to calculate the second term (phase fix) of the QGT, which is $\langle\partial_i \psi | \psi \rangle \langle\psi | \partial_j \psi \rangle$. Defaults to `True`.

- **derivative\_type** (*DerivativeType*) –

  The type of derivative. Can be either `DerivativeType.REAL` `DerivativeType.IMAG`, or `DerivativeType.COMPLEX`. Defaults to `DerivativeType.REAL`.

  - `DerivativeType.REAL` computes

$$
\mathrm{Re(QGT)}_{ij}= \mathrm{Re}[\langle \partial_i \psi | \partial_j \psi \rangle
- \langle\partial_i \psi | \psi \rangle \langle\psi | \partial_j \psi \rangle].
$$

- `DerivativeType.IMAG` computes

$$
\mathrm{Im(QGT)}_{ij}= \mathrm{Im}[\langle \partial_i \psi | \partial_j \psi \rangle
- \langle\partial_i \psi | \psi \rangle \langle\psi | \partial_j \psi \rangle].
$$

- `DerivativeType.COMPLEX` computes

$$
\mathrm{QGT}_{ij}= [\langle \partial_i \psi | \partial_j \psi \rangle
- \langle\partial_i \psi | \psi \rangle \langle\psi | \partial_j \psi \rangle].
$$

- **options** ([*Options*](/docs/api/qiskit/0.46/qiskit.providers.Options "qiskit.providers.Options") *| None*) – Backend runtime options used for circuit execution. The order of priority is: options in `run` method > QGT’s default options > primitive’s default setting. Higher priority setting overrides lower priority setting.

## Attributes

### derivative\_type

The derivative type.

### options

Return the union of estimator options setting and QGT default options, where, if the same field is set in both, the QGT’s default options override the primitive’s default setting.

**Returns**

The QGT default + estimator options.

## Methods

### run

`run(circuits, parameter_values, parameters=None, **options)`

Run the job of the QGTs on the given circuits.

**Parameters**

- **circuits** (*Sequence\[*[*QuantumCircuit*](/docs/api/qiskit/0.46/qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit")*]*) – The list of quantum circuits to compute the QGTs.
- **parameter\_values** (*Sequence\[Sequence\[*[*float*](https://docs.python.org/3/library/functions.html#float)*]]*) – The list of parameter values to be bound to the circuit.
- **parameters** (*Sequence\[Sequence\[*[*Parameter*](/docs/api/qiskit/0.46/qiskit.circuit.Parameter "qiskit.circuit.Parameter")*] | None] | None*) – The sequence of parameters to calculate only the QGTs of the specified parameters. Each sequence of parameters corresponds to a circuit in `circuits`. Defaults to None, which means that the QGTs of all parameters in each circuit are calculated.
- **options** – Primitive backend runtime options used for circuit execution. The order of priority is: options in `run` method > QGT’s default options > primitive’s default setting. Higher priority setting overrides lower priority setting.

**Returns**

The job object of the QGTs of the expectation values. The i-th result corresponds to `circuits[i]` evaluated with parameters bound as `parameter_values[i]`.

**Raises**

[**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError) – Invalid arguments are given.

**Return type**

[AlgorithmJob](/docs/api/qiskit/0.46/qiskit.algorithms.AlgorithmJob "qiskit.algorithms.AlgorithmJob")

### update\_default\_options

`update_default_options(**options)`

Update the gradient’s default options setting.

**Parameters**

**\*\*options** – The fields to update the default options.
