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:
HMPO

Hamiltonian in MPO form.

t_spanfloat | tuple[float, float] | Vector

Integration interval, or sequence of time steps.

stateMPS

Initial guess of the ground state.

stepsint, default = 1000

Integration steps, if not defined by t_span.

strategyStrategy, default = DEFAULT_STRATEGY

Truncation strategy for MPO and MPS algebra.

callbackOptional[Callable[[float, MPS], Any]]

A callable called after each iteration (defaults to None).

itimebool, default = False

Whether to solve the imaginary time evolution problem.