LayerwiseEvolver
class LayerwiseEvolver(evolution_state, layers, *args, **kwargs)
Bases: TEBDEvolver
Um caso especial do TEBDEvolver baseado em modelos de evolução em camadas.
Como também explicado em tenpy_layersesta implementação extrai as atualizações alternadas de títulos pares/ímpares implementadas dentro da versão original do TEBDEngine original para se tornar responsabilidade do usuário final. Ele faz isso substituindo o único Hamiltoniano fornecido à instância TEBDEvolver por uma sequência de instâncias LayerModel instâncias. Cada instância dessas codifica uma única camada de interações. Eles devem impor as atualizações alternadas de ligações pares e ímpares da rede de tensores subjacente.
A motivação para essa interface mais complicada é que ela oferece muito mais flexibilidade e permite que os usuários definam fórmulas personalizadas de produtos Trotter em vez de ficarem limitados às implementadas diretamente pelo site TeNPy.
Inicializar uma LayerwiseEvolver instância.
Parâmetros
- evolution_state (tenpy_tebd.MPOState) – encaminhado para
TEBDEvolver. Consulte sua documentação para obter mais detalhes. - layers (list[LayerModel]) – a lista de modelos que descrevem camadas únicas de interações. Veja acima, bem como as explicações fornecidas em
tenpy_layers. - args - quaisquer outros argumentos posicionais serão encaminhados para o
TEBDEvolverconstrutor. - kwargs - qualquer outro argumento de palavra-chave será encaminhado para o
TEBDEvolverconstrutor.
Atributos
layers
As camadas de interações usadas para implementar a evolução temporal.
dt
O intervalo de tempo a ser usado por essa instância de evolução temporal.
Métodos
calc_U
calc_U(order, delta_t, type_evo='real', E_offset=None)
Calcula as atualizações de títulos locais.
Isso se adapta calc_U() para trabalhar com a implementação em camadas.
Parâmetros
- order (int) – isso está sendo ignorado.
- delta_t (float) – a etapa de tempo a ser usada.
- type_evo (str) – o tipo de evolução temporal. A evolução imaginária do tempo não é suportada no momento.
- E_offset (list[float] | None) – uma compensação de energia constante a ser aplicada.
Tipo de retorno
Nenhum
evolve
evolve(N_steps, dt)
Execute uma única etapa de tempo do TEBD.
Parâmetros
- N_steps (int) – deve ser sempre
1para esse time-evolver, caso contrário, será gerado um erro (veja abaixo). - dt (float) – a etapa de tempo a ser usada.
Retorna
O erro de truncamento.
Aumentos
RuntimeError - se N_steps não for igual a 1.
Tipo de retorno
suzuki_trotter_decomposition
static suzuki_trotter_decomposition(order, N_steps)
Retorna uma lista vazia.
Esse método não está definido para essa subclasse, mas não podemos gerar um erro ao chamá-lo devido ao fluxo interno do algoritmo. Em vez disso, a decomposição de Trotter nessa classe é codificada diretamente no layers.
Parâmetros
Retorna
uma lista vazia.
Tipo de retorno
suzuki_trotter_time_steps
static suzuki_trotter_time_steps(order)
Retorna uma lista vazia.
Esse método não está definido para essa subclasse, mas não podemos gerar um erro ao chamá-lo devido ao fluxo interno do algoritmo. Em vez disso, a decomposição de Trotter nessa classe é codificada diretamente no layers.
Parâmetros
order (int) – está sendo ignorado.
Retorna
uma lista vazia.
Tipo de retorno