MPOState
class MPOState(*args, **kwargs)
Bases: MatrixProductOperator, State
Uma MPO aplicando o medidor Vidal.
Essa especialização da existência de quimb quimb.tensor.MatrixProductOperator existente do quimb impõe a bitola Vidal durante toda a sua existência. Isso garante um comportamento estável do algoritmo DynamicMPF ao usar o algoritmo TEBDEvolver.
Inicializar uma MPOState instância.
Todos os argumentos (posicionais e de palavra-chave) são simplesmente encaminhados para o quimb.tensor.MatrixProductOperator construtor. Além disso, o atributo vidal_singular_values é inicializado como uma lista de listas vazias de comprimento igual ao número de locais nesse MPO.
Parâmetros
- args - todos os argumentos posicionais serão encaminhados para o
quimb.tensor.MatrixProductStateconstrutor. - kwargs - todos os argumentos de palavras-chave serão encaminhados para o
quimb.tensor.MatrixProductStateconstrutor.
Atributos
vidal_singular_values
Tipo: list[list[float]]
Uma lista aninhada de valores singulares. A lista externa tem o mesmo comprimento que a própria MPO (quimb.tensor.TensorNetwork1D.L). Cada item é outra lista de todos os valores singulares para determinar o medidor Vidal naquele local.
Métodos
gate_split
gate_split(gate, where, inplace=False, conj=False, **split_opts)
Aplique um portão de dois locais e contrate-o de volta para a MPO.
O princípio básico desse método é o mesmo que o do quimb.tensor.MatrixProductState.gate_split(). No entanto, a implementação garante que a bitola de Vidal seja conservada.
Parâmetros
-
gate (ndarray) – o portão a ser aplicado ao MPO. Seu formato deve ser
(d**2, d**2)para uma dimensão física ded, ou uma versão remodelada do mesmo. -
where (tuple[int, int]) – os índices dos locais onde a porta deve ser aplicada.
-
inplace (bool) – se a aplicação da porta deve ser executada no local ou se deve retornar um novo
MPOStatecom a porta aplicada a ele. -
conj (bool) –
se o portão deve ser aplicado à parte inferior (
conj=False, o padrão,lower_ind()) ou superior (conj=True,upper_ind()) dos índices do MPO subjacente.NotaEssencialmente, é assim que o LHS e o RHS do
DynamicMPFsão diferenciados, passando sua propriedadeEvolver.conjugatepara esse argumento. -
split_opts - argumentos de palavras-chave adicionais que serão encaminhados para a
quimb.tensor.tensor_split()função. Eles podem ser usados para afetar o truncamento do tensor antes que ele seja contraído de volta para o MPO.
Retorna
O MPOState com o gate aplicado e contraído.
Tipo de retorno
gate_split_
gate_split_(gate, where, *, inplace=True, conj=False, **split_opts)
Parâmetros
Tipo de retorno
overlap
overlap(initial_state)
Calcule a sobreposição desse estado com o estado inicial fornecido.
Essa implementação suporta apenas instâncias de quimb.tensor.MatrixProductState para initial_state.
Parâmetros
initial_state (Any) – o estado inicial com o qual será calculada a sobreposição.
Aumentos
TypeError - se o estado inicial fornecido tiver um tipo incompatível.
Retorna
A sobreposição desse estado com o estado fornecido.
Tipo de retorno