MPOState
class MPOState(*args, **kwargs)
Bases : MatrixProductOperator, State
Un MPO appliquant le gabarit Vidal.
Cette spécialisation de l'existant de Quimb quimb.tensor.MatrixProductOperator applique la jauge de Vidal tout au long de son existence. Cela garantit un comportement stable de l'algorithme DynamicMPF lors de l'utilisation de l'algorithme TEBDEvolver.
Initialiser une MPOState instance.
Tous les arguments (positionnels et mots-clés) sont simplement transmis au quimb.tensor.MatrixProductOperator constructeur. En outre, l'attribut vidal_singular_values est initialisé à une liste de listes vides d'une longueur égale au nombre de sites dans ce MPO.
Paramètres
- args - tous les arguments positionnels seront transmis au constructeur
quimb.tensor.MatrixProductStateconstructeur. - kwargs - tous les arguments de type mot-clé seront transmis au
quimb.tensor.MatrixProductStateconstructeur.
Attributs
vidal_singular_values
Type: list[list[float]]
Une liste imbriquée de valeurs singulières. La liste extérieure est de même longueur que le MPO lui-même (quimb.tensor.TensorNetwork1D.L). Chaque élément est une autre liste de toutes les valeurs singulières permettant de déterminer le calibre de Vidal à cet endroit.
Méthodes
gate_split
gate_split(gate, where, inplace=False, conj=False, **split_opts)
Appliquer un portail à deux sites et le réintégrer dans le MPO.
Le principe de base de cette méthode est le même que celui du quimb.tensor.MatrixProductState.gate_split(). Cependant, la mise en œuvre garantit que la jauge de Vidal est conservée.
Paramètres
-
gate (ndarray) – la porte à appliquer au MPO. Sa forme doit être soit
(d**2, d**2)pour une dimension physique ded, soit une version remodelée de celle-ci. -
where (tuple[int, int]) – les indices des sites où la porte doit être appliquée.
-
inplace (bool) – s'il convient d'appliquer la porte sur place ou de renvoyer un nouveau fichier
MPOStateauquel la porte a été appliquée. -
conj (bool) –
si la porte doit être appliquée à la partie inférieure (
conj=False, la valeur par défaut,lower_ind()) ou supérieur (conj=True,upper_ind()) du MPO sous-jacent.RemarqueC'est essentiellement de cette manière que les LHS et RHS de l'équation
DynamicMPFsont différenciées, en passant leur propriétéEvolver.conjugateà cet argument. -
split_opts - arguments de mots-clés supplémentaires qui seront transmis à la fonction
quimb.tensor.tensor_split()fonction. Ceux-ci peuvent être utilisés pour affecter la troncature du tenseur avant qu'il ne soit contracté à nouveau dans le MPO.
Retours
Les MPOState avec le gate appliqué et contracté.
Type de retour
gate_split_
gate_split_(gate, where, *, inplace=True, conj=False, **split_opts)
Paramètres
Type de retour
overlap
overlap(initial_state)
Calculer le chevauchement de cet état avec l'état initial fourni.
Cette mise en œuvre ne prend en charge que les instances de quimb.tensor.MatrixProductState pour initial_state.
Paramètres
initial_state (Any) – l'état initial avec lequel calculer le chevauchement.
Augmentations
TypeError - si l'état initial fourni a un type incompatible.
Retours
Le chevauchement de cet état avec l'état fourni.
Type de retour