seemps.evolution.euler.euler2#
- seemps.evolution.euler.euler2(H, t_span, state, steps=1000, strategy=<seemps.state.core.Strategy object>, callback=None, itime=False)[source]#
Solve a Schrodinger equation using the 2nd order Euler method.
Implements a two-step integration method. In imaginary time this is .. math:
\xi(t_{n}) = 2 \psi(t_{n}) - i \delta t H \psi(t_{n}) \psi(t_{n+1}) = \psi(t_{n}) - (i \delta t/2) H \xi(t_{n})
The Euler algorithm is a very bad integrator and is offered only for illustrative purposes. See :function:`euler` to understand the parameters.
- Parameters:
- H
MPO
Hamiltonian in MPO form.
- t_span
float
|tuple
[float
,float
] |Vector
Integration interval, or sequence of time steps.
- state
MPS
Initial guess of the ground state.
- steps
int
,default
= 1000 Integration steps, if not defined by t_span.
- strategy
Strategy
,default
=DEFAULT_STRATEGY
Truncation strategy for MPO and MPS algebra.
- callback
Optional
[Callable
[[float
,MPS
],Any
]] A callable called after each iteration (defaults to None).
- itimebool,
default
=False
Whether to solve the imaginary time evolution problem.
- H