KrylovOps

Fortran module KrylovOps: August 2017 (dj)

Contains the subroutines for propagating globally or locally the wave-function with the Krylov algorithm.

Authors

    1. Jaschke

      1. Wall

Details

Contains algorithms for Lanczos approach (Hamiltonians) and Arnoldi (Liouville operator for Lindblad master equation).

The following subroutines / functions are defined for the applicable data type

procedure

include.f90

mpi.f90

krylov_method

X

KrylovOps_f90.krylov_method_mpo_complex()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate the wave function Psi with the Krylov/Lanczos algorithm.

Arguments

PsiTYPE(mpsc), inout

This is the wave function to be propagated.

deltatcomplex, in

The time step for the evolution.

HamTYPE(mpo), inout

Evolve the wave function under this Hamiltonian.

convergedLOGICAL, out

On exit, it indicates if the algorithm is converged within then given tolerances.

cerrREAL, inout

The cumulated error. The error done during this subroutine is added to the incoming value.

CpTYPE(ConvParam), inout

Stores all the convergence parameters necessary for the algorithm.

init_randomCHARACTER, inout

Determines the initialization in the fit of H | psi >.

renormLOGICAL, in

Flag if state vector should be renormalized to 1 (true). ‘N’ : do not normalize (default); ‘M’ : normalize for MPS 1 / sqrt(norm);

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

Currently uses complete reorthogonalization for stability.

Source Code

show / hide f90 code
KrylovOps_f90.krylov_method_mpoc_complex()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate the wave function Psi with the Krylov/Lanczos algorithm.

Arguments

PsiTYPE(mpsc), inout

This is the wave function to be propagated.

deltatcomplex, in

The time step for the evolution.

HamTYPE(mpoc), inout

Evolve the wave function under this Hamiltonian.

convergedLOGICAL, out

On exit, it indicates if the algorithm is converged within then given tolerances.

cerrREAL, inout

The cumulated error. The error done during this subroutine is added to the incoming value.

CpTYPE(ConvParam), inout

Stores all the convergence parameters necessary for the algorithm.

init_randomCHARACTER, inout

Determines the initialization in the fit of H | psi >.

renormLOGICAL, in

Flag if state vector should be renormalized to 1 (true). ‘N’ : do not normalize (default); ‘M’ : normalize for MPS 1 / sqrt(norm);

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

Currently uses complete reorthogonalization for stability.

Source Code

show / hide f90 code
KrylovOps_f90.krylov_method_qmpo_complex()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate the wave function Psi with the Krylov/Lanczos algorithm.

Arguments

PsiTYPE(qmpsc), inout

This is the wave function to be propagated.

deltatcomplex, in

The time step for the evolution.

HamTYPE(qmpo), inout

Evolve the wave function under this Hamiltonian.

convergedLOGICAL, out

On exit, it indicates if the algorithm is converged within then given tolerances.

cerrREAL, inout

The cumulated error. The error done during this subroutine is added to the incoming value.

CpTYPE(ConvParam), inout

Stores all the convergence parameters necessary for the algorithm.

init_randomCHARACTER, inout

Determines the initialization in the fit of H | psi >.

renormLOGICAL, in

Flag if state vector should be renormalized to 1 (true). ‘N’ : do not normalize (default); ‘M’ : normalize for MPS 1 / sqrt(norm);

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

Currently uses complete reorthogonalization for stability.

Source Code

show / hide f90 code
KrylovOps_f90.krylov_method_qmpoc_complex()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate the wave function Psi with the Krylov/Lanczos algorithm.

Arguments

PsiTYPE(qmpsc), inout

This is the wave function to be propagated.

deltatcomplex, in

The time step for the evolution.

HamTYPE(qmpoc), inout

Evolve the wave function under this Hamiltonian.

convergedLOGICAL, out

On exit, it indicates if the algorithm is converged within then given tolerances.

cerrREAL, inout

The cumulated error. The error done during this subroutine is added to the incoming value.

CpTYPE(ConvParam), inout

Stores all the convergence parameters necessary for the algorithm.

init_randomCHARACTER, inout

Determines the initialization in the fit of H | psi >.

renormLOGICAL, in

Flag if state vector should be renormalized to 1 (true). ‘N’ : do not normalize (default); ‘M’ : normalize for MPS 1 / sqrt(norm);

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

Currently uses complete reorthogonalization for stability.

Source Code

show / hide f90 code
KrylovOps_f90.krylov_method_mpo_real()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate the wave function Psi with the Krylov/Lanczos algorithm.

Arguments

PsiTYPE(mps), inout

This is the wave function to be propagated.

deltatreal, in

The time step for the evolution.

HamTYPE(mpo), inout

Evolve the wave function under this Hamiltonian.

convergedLOGICAL, out

On exit, it indicates if the algorithm is converged within then given tolerances.

cerrREAL, inout

The cumulated error. The error done during this subroutine is added to the incoming value.

CpTYPE(ConvParam), inout

Stores all the convergence parameters necessary for the algorithm.

init_randomCHARACTER, inout

Determines the initialization in the fit of H | psi >.

renormLOGICAL, in

Flag if state vector should be renormalized to 1 (true). ‘N’ : do not normalize (default); ‘M’ : normalize for MPS 1 / sqrt(norm);

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

Currently uses complete reorthogonalization for stability.

Source Code

show / hide f90 code
KrylovOps_f90.krylov_method_mpoc_real()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate the wave function Psi with the Krylov/Lanczos algorithm.

Arguments

PsiTYPE(mpsc), inout

This is the wave function to be propagated.

deltatreal, in

The time step for the evolution.

HamTYPE(mpoc), inout

Evolve the wave function under this Hamiltonian.

convergedLOGICAL, out

On exit, it indicates if the algorithm is converged within then given tolerances.

cerrREAL, inout

The cumulated error. The error done during this subroutine is added to the incoming value.

CpTYPE(ConvParam), inout

Stores all the convergence parameters necessary for the algorithm.

init_randomCHARACTER, inout

Determines the initialization in the fit of H | psi >.

renormLOGICAL, in

Flag if state vector should be renormalized to 1 (true). ‘N’ : do not normalize (default); ‘M’ : normalize for MPS 1 / sqrt(norm);

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

Currently uses complete reorthogonalization for stability.

Source Code

show / hide f90 code
KrylovOps_f90.krylov_method_qmpo_real()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate the wave function Psi with the Krylov/Lanczos algorithm.

Arguments

PsiTYPE(qmps), inout

This is the wave function to be propagated.

deltatreal, in

The time step for the evolution.

HamTYPE(qmpo), inout

Evolve the wave function under this Hamiltonian.

convergedLOGICAL, out

On exit, it indicates if the algorithm is converged within then given tolerances.

cerrREAL, inout

The cumulated error. The error done during this subroutine is added to the incoming value.

CpTYPE(ConvParam), inout

Stores all the convergence parameters necessary for the algorithm.

init_randomCHARACTER, inout

Determines the initialization in the fit of H | psi >.

renormLOGICAL, in

Flag if state vector should be renormalized to 1 (true). ‘N’ : do not normalize (default); ‘M’ : normalize for MPS 1 / sqrt(norm);

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

Currently uses complete reorthogonalization for stability.

Source Code

show / hide f90 code
KrylovOps_f90.krylov_method_qmpoc_real()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate the wave function Psi with the Krylov/Lanczos algorithm.

Arguments

PsiTYPE(qmpsc), inout

This is the wave function to be propagated.

deltatreal, in

The time step for the evolution.

HamTYPE(qmpoc), inout

Evolve the wave function under this Hamiltonian.

convergedLOGICAL, out

On exit, it indicates if the algorithm is converged within then given tolerances.

cerrREAL, inout

The cumulated error. The error done during this subroutine is added to the incoming value.

CpTYPE(ConvParam), inout

Stores all the convergence parameters necessary for the algorithm.

init_randomCHARACTER, inout

Determines the initialization in the fit of H | psi >.

renormLOGICAL, in

Flag if state vector should be renormalized to 1 (true). ‘N’ : do not normalize (default); ‘M’ : normalize for MPS 1 / sqrt(norm);

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

Currently uses complete reorthogonalization for stability.

Source Code

show / hide f90 code
KrylovOps_f90.krylov_arnoldi_mpoc()[source]

fortran-subroutine - August 2017 (dj) Propagate Psi, possibly representing an MPDO, with the Arnoldi algorithm.

Arguments

PsiTYPE(mpsc), inout

Propagate this MPS under the Hamiltonian passed as MPO and its parameters.

deltatCOMPLEX, in

Time step for the evolution step (including -i)

HTYPE(mpoc), inout

MPO representing the Hamiltonian.

maxbonddINTEGER, inout

Maximal bond dimension \chi.

convergedLOGICAL, inout

Convergence flag of last subroutine called (FitMPS).

cerrREAL, inout

The cumulated error. The error done during this subroutine is added to the incoming value.

random_initCHARACTER, in

Flag for initial state of Fit_Hpsi.

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

Currently uses complete reorthogonalization for stability. (defined in TimeEvolutionOps_include.f90)

Source Code

show / hide f90 code
KrylovOps_f90.krylov_arnoldi_qmpoc()[source]

fortran-subroutine - August 2017 (dj) Propagate Psi, possibly representing an MPDO, with the Arnoldi algorithm.

Arguments

PsiTYPE(qmpsc), inout

Propagate this MPS under the Hamiltonian passed as MPO and its parameters.

deltatCOMPLEX, in

Time step for the evolution step (including -i)

HTYPE(qmpoc), inout

MPO representing the Hamiltonian.

maxbonddINTEGER, inout

Maximal bond dimension \chi.

convergedLOGICAL, inout

Convergence flag of last subroutine called (FitMPS).

cerrREAL, inout

The cumulated error. The error done during this subroutine is added to the incoming value.

random_initCHARACTER, in

Flag for initial state of Fit_Hpsi.

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

Currently uses complete reorthogonalization for stability. (defined in TimeEvolutionOps_include.f90)

Source Code

show / hide f90 code
KrylovOps_f90.krylov_full_local_tensor_complex()[source]

fortran-subroutine - September 2017 (dj, updated) Propagate 1 or 2 site Hamiltonian with LR-overlaps and Krylov.

Arguments

PsiTYPE(tensorc), inout

Tensor representing one or two sites of the MPS. Tensors is evolved under the MPO plus left-right-overlap.

LL, inout

Left overlap of MPS and MPO.

WmTYPE(sr_matrix_tensor), inout

The MPO matrix for one or two sites represented as sparse matrix.

RRTYPE(tensorlistc), inout

Right overlap of MPS and MPO.

deltatcomplex, inout

Time step for the evolution. Complex for real time evolution and real for imaginary time evolution.

leftmostLOGICAL, inout

Flag if subroutine is acting on the leftmost site.

rightmostLOGICAL, inout

Flag if subroutine is acting on the rightmost site.

CpTYPE(ConvParam), inout

Convergence parameters for the algorithm.

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

This version uses the Krylov-Lanczos algorithm for hermitian Hamiltonians building the tridiagonal matrix in the Krylov subspace.

Source Code

show / hide f90 code
KrylovOps_f90.krylov_full_local_tensorc_complex()[source]

fortran-subroutine - September 2017 (dj, updated) Propagate 1 or 2 site Hamiltonian with LR-overlaps and Krylov.

Arguments

PsiTYPE(tensorc), inout

Tensor representing one or two sites of the MPS. Tensors is evolved under the MPO plus left-right-overlap.

LL, inout

Left overlap of MPS and MPO.

WmTYPE(sr_matrix_tensorc), inout

The MPO matrix for one or two sites represented as sparse matrix.

RRTYPE(tensorlistc), inout

Right overlap of MPS and MPO.

deltatcomplex, inout

Time step for the evolution. Complex for real time evolution and real for imaginary time evolution.

leftmostLOGICAL, inout

Flag if subroutine is acting on the leftmost site.

rightmostLOGICAL, inout

Flag if subroutine is acting on the rightmost site.

CpTYPE(ConvParam), inout

Convergence parameters for the algorithm.

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

This version uses the Krylov-Lanczos algorithm for hermitian Hamiltonians building the tridiagonal matrix in the Krylov subspace.

Source Code

show / hide f90 code
KrylovOps_f90.krylov_full_local_qtensor_complex()[source]

fortran-subroutine - September 2017 (dj, updated) Propagate 1 or 2 site Hamiltonian with LR-overlaps and Krylov.

Arguments

PsiTYPE(qtensorc), inout

Tensor representing one or two sites of the MPS. Tensors is evolved under the MPO plus left-right-overlap.

LL, inout

Left overlap of MPS and MPO.

WmTYPE(sr_matrix_qtensor), inout

The MPO matrix for one or two sites represented as sparse matrix.

RRTYPE(qtensorclist), inout

Right overlap of MPS and MPO.

deltatcomplex, inout

Time step for the evolution. Complex for real time evolution and real for imaginary time evolution.

leftmostLOGICAL, inout

Flag if subroutine is acting on the leftmost site.

rightmostLOGICAL, inout

Flag if subroutine is acting on the rightmost site.

CpTYPE(ConvParam), inout

Convergence parameters for the algorithm.

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

This version uses the Krylov-Lanczos algorithm for hermitian Hamiltonians building the tridiagonal matrix in the Krylov subspace.

Source Code

show / hide f90 code
KrylovOps_f90.krylov_full_local_qtensorc_complex()[source]

fortran-subroutine - September 2017 (dj, updated) Propagate 1 or 2 site Hamiltonian with LR-overlaps and Krylov.

Arguments

PsiTYPE(qtensorc), inout

Tensor representing one or two sites of the MPS. Tensors is evolved under the MPO plus left-right-overlap.

LL, inout

Left overlap of MPS and MPO.

WmTYPE(sr_matrix_qtensorc), inout

The MPO matrix for one or two sites represented as sparse matrix.

RRTYPE(qtensorclist), inout

Right overlap of MPS and MPO.

deltatcomplex, inout

Time step for the evolution. Complex for real time evolution and real for imaginary time evolution.

leftmostLOGICAL, inout

Flag if subroutine is acting on the leftmost site.

rightmostLOGICAL, inout

Flag if subroutine is acting on the rightmost site.

CpTYPE(ConvParam), inout

Convergence parameters for the algorithm.

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

This version uses the Krylov-Lanczos algorithm for hermitian Hamiltonians building the tridiagonal matrix in the Krylov subspace.

Source Code

show / hide f90 code
KrylovOps_f90.krylov_full_local_tensor_real()[source]

fortran-subroutine - September 2017 (dj, updated) Propagate 1 or 2 site Hamiltonian with LR-overlaps and Krylov.

Arguments

PsiTYPE(tensor), inout

Tensor representing one or two sites of the MPS. Tensors is evolved under the MPO plus left-right-overlap.

LL, inout

Left overlap of MPS and MPO.

WmTYPE(sr_matrix_tensor), inout

The MPO matrix for one or two sites represented as sparse matrix.

RRTYPE(tensorlist), inout

Right overlap of MPS and MPO.

deltatreal, inout

Time step for the evolution. Complex for real time evolution and real for imaginary time evolution.

leftmostLOGICAL, inout

Flag if subroutine is acting on the leftmost site.

rightmostLOGICAL, inout

Flag if subroutine is acting on the rightmost site.

CpTYPE(ConvParam), inout

Convergence parameters for the algorithm.

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

This version uses the Krylov-Lanczos algorithm for hermitian Hamiltonians building the tridiagonal matrix in the Krylov subspace.

Source Code

show / hide f90 code
KrylovOps_f90.krylov_full_local_tensorc_real()[source]

fortran-subroutine - September 2017 (dj, updated) Propagate 1 or 2 site Hamiltonian with LR-overlaps and Krylov.

Arguments

PsiTYPE(tensorc), inout

Tensor representing one or two sites of the MPS. Tensors is evolved under the MPO plus left-right-overlap.

LL, inout

Left overlap of MPS and MPO.

WmTYPE(sr_matrix_tensorc), inout

The MPO matrix for one or two sites represented as sparse matrix.

RRTYPE(tensorlistc), inout

Right overlap of MPS and MPO.

deltatreal, inout

Time step for the evolution. Complex for real time evolution and real for imaginary time evolution.

leftmostLOGICAL, inout

Flag if subroutine is acting on the leftmost site.

rightmostLOGICAL, inout

Flag if subroutine is acting on the rightmost site.

CpTYPE(ConvParam), inout

Convergence parameters for the algorithm.

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

This version uses the Krylov-Lanczos algorithm for hermitian Hamiltonians building the tridiagonal matrix in the Krylov subspace.

Source Code

show / hide f90 code
KrylovOps_f90.krylov_full_local_qtensor_real()[source]

fortran-subroutine - September 2017 (dj, updated) Propagate 1 or 2 site Hamiltonian with LR-overlaps and Krylov.

Arguments

PsiTYPE(qtensor), inout

Tensor representing one or two sites of the MPS. Tensors is evolved under the MPO plus left-right-overlap.

LL, inout

Left overlap of MPS and MPO.

WmTYPE(sr_matrix_qtensor), inout

The MPO matrix for one or two sites represented as sparse matrix.

RRTYPE(qtensorlist), inout

Right overlap of MPS and MPO.

deltatreal, inout

Time step for the evolution. Complex for real time evolution and real for imaginary time evolution.

leftmostLOGICAL, inout

Flag if subroutine is acting on the leftmost site.

rightmostLOGICAL, inout

Flag if subroutine is acting on the rightmost site.

CpTYPE(ConvParam), inout

Convergence parameters for the algorithm.

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

This version uses the Krylov-Lanczos algorithm for hermitian Hamiltonians building the tridiagonal matrix in the Krylov subspace.

Source Code

show / hide f90 code
KrylovOps_f90.krylov_full_local_qtensorc_real()[source]

fortran-subroutine - September 2017 (dj, updated) Propagate 1 or 2 site Hamiltonian with LR-overlaps and Krylov.

Arguments

PsiTYPE(qtensorc), inout

Tensor representing one or two sites of the MPS. Tensors is evolved under the MPO plus left-right-overlap.

LL, inout

Left overlap of MPS and MPO.

WmTYPE(sr_matrix_qtensorc), inout

The MPO matrix for one or two sites represented as sparse matrix.

RRTYPE(qtensorclist), inout

Right overlap of MPS and MPO.

deltatreal, inout

Time step for the evolution. Complex for real time evolution and real for imaginary time evolution.

leftmostLOGICAL, inout

Flag if subroutine is acting on the leftmost site.

rightmostLOGICAL, inout

Flag if subroutine is acting on the rightmost site.

CpTYPE(ConvParam), inout

Convergence parameters for the algorithm.

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

This version uses the Krylov-Lanczos algorithm for hermitian Hamiltonians building the tridiagonal matrix in the Krylov subspace.

Source Code

show / hide f90 code
KrylovOps_f90.krylov_arnoldi_full_local_tensor()[source]

fortran-subroutine - November 2017 (dj) Propagate 1 or 2 site Hamiltonian with LR-overlaps and Krylov-Arnoldi.

Arguments

PsiTYPE(tensorc), inout

Tensor representing one or two sites of the MPS. Tensors is evolved under the MPO plus left-right-overlap.

LL, inout

Left overlap of MPS and MPO.

WmTYPE(sr_matrix_tensor), inout

The MPO matrix for one or two sites represented as sparse matrix.

RRTYPE(tensorlistc), inout

Right overlap of MPS and MPO.

deltatDT_TYPE, inout

Time step for the evolution. Complex for real time evolution and real for imaginary time evolution.

leftmostLOGICAL, inout

Flag if subroutine is acting on the leftmost site.

rightmostLOGICAL, inout

Flag if subroutine is acting on the rightmost site.

CpTYPE(ConvParam), inout

Convergence parameters for the algorithm.

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

This version uses the Krylov-Arnoldi algorithm for general operators building the upper Hessenberg matrix in the Krylov subspace.

Source Code

show / hide f90 code
KrylovOps_f90.krylov_arnoldi_full_local_tensorc()[source]

fortran-subroutine - November 2017 (dj) Propagate 1 or 2 site Hamiltonian with LR-overlaps and Krylov-Arnoldi.

Arguments

PsiTYPE(tensorc), inout

Tensor representing one or two sites of the MPS. Tensors is evolved under the MPO plus left-right-overlap.

LL, inout

Left overlap of MPS and MPO.

WmTYPE(sr_matrix_tensorc), inout

The MPO matrix for one or two sites represented as sparse matrix.

RRTYPE(tensorlistc), inout

Right overlap of MPS and MPO.

deltatDT_TYPE, inout

Time step for the evolution. Complex for real time evolution and real for imaginary time evolution.

leftmostLOGICAL, inout

Flag if subroutine is acting on the leftmost site.

rightmostLOGICAL, inout

Flag if subroutine is acting on the rightmost site.

CpTYPE(ConvParam), inout

Convergence parameters for the algorithm.

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

This version uses the Krylov-Arnoldi algorithm for general operators building the upper Hessenberg matrix in the Krylov subspace.

Source Code

show / hide f90 code
KrylovOps_f90.krylov_arnoldi_full_local_qtensor()[source]

fortran-subroutine - November 2017 (dj) Propagate 1 or 2 site Hamiltonian with LR-overlaps and Krylov-Arnoldi.

Arguments

PsiTYPE(qtensorc), inout

Tensor representing one or two sites of the MPS. Tensors is evolved under the MPO plus left-right-overlap.

LL, inout

Left overlap of MPS and MPO.

WmTYPE(sr_matrix_qtensor), inout

The MPO matrix for one or two sites represented as sparse matrix.

RRTYPE(qtensorclist), inout

Right overlap of MPS and MPO.

deltatDT_TYPE, inout

Time step for the evolution. Complex for real time evolution and real for imaginary time evolution.

leftmostLOGICAL, inout

Flag if subroutine is acting on the leftmost site.

rightmostLOGICAL, inout

Flag if subroutine is acting on the rightmost site.

CpTYPE(ConvParam), inout

Convergence parameters for the algorithm.

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

This version uses the Krylov-Arnoldi algorithm for general operators building the upper Hessenberg matrix in the Krylov subspace.

Source Code

show / hide f90 code
KrylovOps_f90.krylov_arnoldi_full_local_qtensorc()[source]

fortran-subroutine - November 2017 (dj) Propagate 1 or 2 site Hamiltonian with LR-overlaps and Krylov-Arnoldi.

Arguments

PsiTYPE(qtensorc), inout

Tensor representing one or two sites of the MPS. Tensors is evolved under the MPO plus left-right-overlap.

LL, inout

Left overlap of MPS and MPO.

WmTYPE(sr_matrix_qtensorc), inout

The MPO matrix for one or two sites represented as sparse matrix.

RRTYPE(qtensorclist), inout

Right overlap of MPS and MPO.

deltatDT_TYPE, inout

Time step for the evolution. Complex for real time evolution and real for imaginary time evolution.

leftmostLOGICAL, inout

Flag if subroutine is acting on the leftmost site.

rightmostLOGICAL, inout

Flag if subroutine is acting on the rightmost site.

CpTYPE(ConvParam), inout

Convergence parameters for the algorithm.

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

This version uses the Krylov-Arnoldi algorithm for general operators building the upper Hessenberg matrix in the Krylov subspace.

Source Code

show / hide f90 code
KrylovOps_f90.krylov_local_tensor_complex()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate a local two-site Hamiltonian with the Krylov algorithm. This version does not consider the left-right overlap.

Arguments

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

This version uses the two-site Hamiltonian in its tensor representation. Scaling is chi^2 d^4 for each Krylov step, and an additional d^4 kappa to build the two site Hamiltonian for this subroutine. Using the MPO representation, might speed things up to 2 chi^2 d^2 kappa. (kappa bond dimension of the MPO.)

Source Code

show / hide f90 code
KrylovOps_f90.krylov_local_tensorc_complex()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate a local two-site Hamiltonian with the Krylov algorithm. This version does not consider the left-right overlap.

Arguments

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

This version uses the two-site Hamiltonian in its tensor representation. Scaling is chi^2 d^4 for each Krylov step, and an additional d^4 kappa to build the two site Hamiltonian for this subroutine. Using the MPO representation, might speed things up to 2 chi^2 d^2 kappa. (kappa bond dimension of the MPO.)

Source Code

show / hide f90 code
KrylovOps_f90.krylov_local_qtensor_complex()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate a local two-site Hamiltonian with the Krylov algorithm. This version does not consider the left-right overlap.

Arguments

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

This version uses the two-site Hamiltonian in its tensor representation. Scaling is chi^2 d^4 for each Krylov step, and an additional d^4 kappa to build the two site Hamiltonian for this subroutine. Using the MPO representation, might speed things up to 2 chi^2 d^2 kappa. (kappa bond dimension of the MPO.)

Source Code

show / hide f90 code
KrylovOps_f90.krylov_local_qtensorc_complex()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate a local two-site Hamiltonian with the Krylov algorithm. This version does not consider the left-right overlap.

Arguments

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

This version uses the two-site Hamiltonian in its tensor representation. Scaling is chi^2 d^4 for each Krylov step, and an additional d^4 kappa to build the two site Hamiltonian for this subroutine. Using the MPO representation, might speed things up to 2 chi^2 d^2 kappa. (kappa bond dimension of the MPO.)

Source Code

show / hide f90 code
KrylovOps_f90.krylov_local_tensor_real()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate a local two-site Hamiltonian with the Krylov algorithm. This version does not consider the left-right overlap.

Arguments

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

This version uses the two-site Hamiltonian in its tensor representation. Scaling is chi^2 d^4 for each Krylov step, and an additional d^4 kappa to build the two site Hamiltonian for this subroutine. Using the MPO representation, might speed things up to 2 chi^2 d^2 kappa. (kappa bond dimension of the MPO.)

Source Code

show / hide f90 code
KrylovOps_f90.krylov_local_tensorc_real()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate a local two-site Hamiltonian with the Krylov algorithm. This version does not consider the left-right overlap.

Arguments

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

This version uses the two-site Hamiltonian in its tensor representation. Scaling is chi^2 d^4 for each Krylov step, and an additional d^4 kappa to build the two site Hamiltonian for this subroutine. Using the MPO representation, might speed things up to 2 chi^2 d^2 kappa. (kappa bond dimension of the MPO.)

Source Code

show / hide f90 code
KrylovOps_f90.krylov_local_qtensor_real()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate a local two-site Hamiltonian with the Krylov algorithm. This version does not consider the left-right overlap.

Arguments

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

This version uses the two-site Hamiltonian in its tensor representation. Scaling is chi^2 d^4 for each Krylov step, and an additional d^4 kappa to build the two site Hamiltonian for this subroutine. Using the MPO representation, might speed things up to 2 chi^2 d^2 kappa. (kappa bond dimension of the MPO.)

Source Code

show / hide f90 code
KrylovOps_f90.krylov_local_qtensorc_real()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate a local two-site Hamiltonian with the Krylov algorithm. This version does not consider the left-right overlap.

Arguments

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

This version uses the two-site Hamiltonian in its tensor representation. Scaling is chi^2 d^4 for each Krylov step, and an additional d^4 kappa to build the two site Hamiltonian for this subroutine. Using the MPO representation, might speed things up to 2 chi^2 d^2 kappa. (kappa bond dimension of the MPO.)

Source Code

show / hide f90 code
KrylovOps_f90.krylov_arnoldi_local_tensor_complex()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate an MPDO with the two-site Krylov-Arnoldi algorithm.

Arguments

PsiTYPE(tensorc), inout

Represents the wave function of the tensor network. Has to contain the orthogonality center.

HamTYPE(tensor), inout

The operator of which the exponential should be applied to the state Psi. Must be two-site Hamiltonian.

deltatCOMPLEX, in

Time step for the time evolution.

CpTYPE(ConvParam), in

Contains the convergence parameters for the algorithm. Subroutine accesses lanczos_tol and max_num_lanczos_iter.

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

The Krylov-Arnoldi algorithm allows to propagate with non-hermitian two-site operators.

Source Code

show / hide f90 code
KrylovOps_f90.krylov_arnoldi_local_tensorc_complex()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate an MPDO with the two-site Krylov-Arnoldi algorithm.

Arguments

PsiTYPE(tensorc), inout

Represents the wave function of the tensor network. Has to contain the orthogonality center.

HamTYPE(tensorc), inout

The operator of which the exponential should be applied to the state Psi. Must be two-site Hamiltonian.

deltatCOMPLEX, in

Time step for the time evolution.

CpTYPE(ConvParam), in

Contains the convergence parameters for the algorithm. Subroutine accesses lanczos_tol and max_num_lanczos_iter.

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

The Krylov-Arnoldi algorithm allows to propagate with non-hermitian two-site operators.

Source Code

show / hide f90 code
KrylovOps_f90.krylov_arnoldi_local_qtensor_complex()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate an MPDO with the two-site Krylov-Arnoldi algorithm.

Arguments

PsiTYPE(qtensorc), inout

Represents the wave function of the tensor network. Has to contain the orthogonality center.

HamTYPE(qtensor), inout

The operator of which the exponential should be applied to the state Psi. Must be two-site Hamiltonian.

deltatCOMPLEX, in

Time step for the time evolution.

CpTYPE(ConvParam), in

Contains the convergence parameters for the algorithm. Subroutine accesses lanczos_tol and max_num_lanczos_iter.

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

The Krylov-Arnoldi algorithm allows to propagate with non-hermitian two-site operators.

Source Code

show / hide f90 code
KrylovOps_f90.krylov_arnoldi_local_qtensorc_complex()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate an MPDO with the two-site Krylov-Arnoldi algorithm.

Arguments

PsiTYPE(qtensorc), inout

Represents the wave function of the tensor network. Has to contain the orthogonality center.

HamTYPE(qtensorc), inout

The operator of which the exponential should be applied to the state Psi. Must be two-site Hamiltonian.

deltatCOMPLEX, in

Time step for the time evolution.

CpTYPE(ConvParam), in

Contains the convergence parameters for the algorithm. Subroutine accesses lanczos_tol and max_num_lanczos_iter.

pbcLOGICAL, in

If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.

Details

The Krylov-Arnoldi algorithm allows to propagate with non-hermitian two-site operators.

Source Code

show / hide f90 code