seemps.evolution.crank_nicolson.crank_nicolson#

seemps.evolution.crank_nicolson.crank_nicolson(H, t_span, state, steps=1000, tol_cgs=1e-14, maxiter_cgs=50, strategy=<seemps.state.core.Strategy object>, callback=None, itime=False)[source]#

Solve a Schrodinger equation using a fourth order Runge-Kutta method.

See :function:`seemps.evolution.euler` for a description of the function arguments.

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.

tol_cgs: float

Tolerance of the CGS algorithm.

maxiter_cgs: int

Maximum number of iterations of the CGS algorithm.

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.