qiskit.chemistry.components.variational_forms.UVCC
class UVCC(num_qubits, basis, degrees, reps=1, excitations=None, initial_state=None, qubit_mapping='direct', num_time_slices=1, shallow_circuit_concat=True)
This trial wavefunction is a Unitary Vibrational Coupled-Cluster Single and Double excitations variational form. For more information, see Ollitrault Pauline J., Chemical science 11 (2020): 6842-6855.
Parameters
- num_qubits (
int
) – number of qubits - basis (
List
[int
]) – Is a list defining the number of modals per mode. E.g. for a 3 modes system with 4 modals per mode basis = [4,4,4] - degrees (
List
[int
]) – degree of excitation to be included (for single and double excitations degrees=[0,1]) - reps (
int
) – number of replica of basic module - excitations (
Optional
[List
[List
[List
[int
]]]]) – The excitations to be included in the circuit. If not provided the default is to compute all singles and doubles. - initial_state (
Optional
[InitialState
]) – An initial state object. - qubit_mapping (
str
) – the qubits mapping type. Only ‘direct’ is supported at the moment. - num_time_slices (
int
) – parameters for dynamics. - shallow_circuit_concat (
bool
) – indicate whether to use shallow (cheap) mode for circuit concatenation
__init__
__init__(num_qubits, basis, degrees, reps=1, excitations=None, initial_state=None, qubit_mapping='direct', num_time_slices=1, shallow_circuit_concat=True)
Parameters
- num_qubits (
int
) – number of qubits - basis (
List
[int
]) – Is a list defining the number of modals per mode. E.g. for a 3 modes system with 4 modals per mode basis = [4,4,4] - degrees (
List
[int
]) – degree of excitation to be included (for single and double excitations degrees=[0,1]) - reps (
int
) – number of replica of basic module - excitations (
Optional
[List
[List
[List
[int
]]]]) – The excitations to be included in the circuit. If not provided the default is to compute all singles and doubles. - initial_state (
Optional
[InitialState
]) – An initial state object. - qubit_mapping (
str
) – the qubits mapping type. Only ‘direct’ is supported at the moment. - num_time_slices (
int
) – parameters for dynamics. - shallow_circuit_concat (
bool
) – indicate whether to use shallow (cheap) mode for circuit concatenation
Methods
__init__ (num_qubits, basis, degrees[, reps, …]) | type num_qubitsint |
compute_excitation_lists (basis, degrees) | Compute the list with all possible excitation for given orders |
construct_circuit (parameters[, q]) | Construct the variational form, given its parameters. |
excitations_in_qubit_format () | Gives the list of excitation indexes in terms of qubit indexes rather |
get_entangler_map (map_type, num_qubits[, offset]) | returns entangler map |
validate_entangler_map (entangler_map, num_qubits) | validate entangler map |
Attributes
num_parameters | Number of parameters of the variational form. |
num_qubits | Number of qubits of the variational form. |
parameter_bounds | Parameter bounds. |
preferred_init_points | Return preferred init points. |
setting | |
support_parameterized_circuit | Whether or not the sub-class support parameterized circuit. |
compute_excitation_lists
static compute_excitation_lists(basis, degrees)
Compute the list with all possible excitation for given orders
Parameters
- basis (
List
[int
]) – Is a list defining the number of modals per mode. E.g. for a 3 modes system with 4 modals per mode basis = [4,4,4] - degrees (
List
[int
]) – degree of excitation to be included (for single and double excitations degrees=[0,1])
Return type
List
[List
[int
]]
Returns
List of excitation indexes in terms of modes and modals
Raises
ValueError – If excitation degree is greater than size of basis
construct_circuit
construct_circuit(parameters, q=None)
Construct the variational form, given its parameters.
Parameters
- parameters (
Union
[ndarray
,List
[Parameter
],ParameterVector
]) – circuit parameters - q (
Optional
[QuantumRegister
]) – Quantum Register for the circuit.
Return type
QuantumCircuit
Returns
Quantum Circuit a quantum circuit with given parameters
Raises
- ValueError – the number of parameters is incorrect.
- ValueError – if num_qubits has not been set and is still None
excitations_in_qubit_format
excitations_in_qubit_format()
Gives the list of excitation indexes in terms of qubit indexes rather
than in modes and modals
Return type
List
[List
[int
]]
Returns
List of excitation indexes
get_entangler_map
static get_entangler_map(map_type, num_qubits, offset=0)
returns entangler map
num_parameters
Number of parameters of the variational form.
Returns
An integer indicating the number of parameters.
Return type
int
num_qubits
Number of qubits of the variational form.
Returns
An integer indicating the number of qubits.
Return type
int
parameter_bounds
Parameter bounds.
Returns
A list of pairs indicating the bounds, as (lower, upper). None indicates an unbounded parameter in the corresponding direction. If None is returned, problem is fully unbounded.
Return type
list
preferred_init_points
Return preferred init points.
If an initial state is provided then the variational form may provide back this set of parameters which when used on the variational form should result in the overall state being that defined by the initial state
setting
support_parameterized_circuit
Whether or not the sub-class support parameterized circuit.
Returns
indicate the sub-class support parameterized circuit
Return type
boolean
validate_entangler_map
static validate_entangler_map(entangler_map, num_qubits)
validate entangler map