TEBDOps

Fortran module TEBDOps: August 2017 (dj)

Contains the subroutines for the TEBD

Authors

    1. Jaschke

      1. Wall

Details

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

procedure

include.f90

mpi.f90

tebd2

X

tebd4

X

TEBDOps_f90.tebd2_mpsc_tensorlist_complex()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm. 2nd order implementation.

Arguments

PsiTYPE(mpsc), inout

Propagate this state in time.

deltatcomplex, in

Time step for evolution.

RsTYPE(MPORuleSet), in

Rule set for the construction of the Hamiltonian.

OpsTYPE(tensorlist), in

Operators needed to build the Hamiltonian.

HparamsTYPE(HamiltonianParameters)(*), in

The couplings for the terms in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

renormLOGICAL, in

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

mpo_is_hermitianLOGICAL, in

Flag if the MPO is hermitian, i.e. for Hamiltonian, or if it is a non-hermitian Liouville operator.

qtLOGICAL, in

Flag if quantum trajectories are used.

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Details

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

Source Code

show / hide f90 code
TEBDOps_f90.tebd2_mpsc_tensorlistc_complex()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm. 2nd order implementation.

Arguments

PsiTYPE(mpsc), inout

Propagate this state in time.

deltatcomplex, in

Time step for evolution.

RsTYPE(MPORuleSet), in

Rule set for the construction of the Hamiltonian.

OpsTYPE(tensorlistc), in

Operators needed to build the Hamiltonian.

HparamsTYPE(HamiltonianParameters)(*), in

The couplings for the terms in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

renormLOGICAL, in

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

mpo_is_hermitianLOGICAL, in

Flag if the MPO is hermitian, i.e. for Hamiltonian, or if it is a non-hermitian Liouville operator.

qtLOGICAL, in

Flag if quantum trajectories are used.

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Details

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

Source Code

show / hide f90 code
TEBDOps_f90.tebd2_qmpsc_qtensorlist_complex()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm. 2nd order implementation.

Arguments

PsiTYPE(qmpsc), inout

Propagate this state in time.

deltatcomplex, in

Time step for evolution.

RsTYPE(MPORuleSet), in

Rule set for the construction of the Hamiltonian.

OpsTYPE(qtensorlist), in

Operators needed to build the Hamiltonian.

HparamsTYPE(HamiltonianParameters)(*), in

The couplings for the terms in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

renormLOGICAL, in

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

mpo_is_hermitianLOGICAL, in

Flag if the MPO is hermitian, i.e. for Hamiltonian, or if it is a non-hermitian Liouville operator.

qtLOGICAL, in

Flag if quantum trajectories are used.

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Details

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

Source Code

show / hide f90 code
TEBDOps_f90.tebd2_qmpsc_qtensorclist_complex()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm. 2nd order implementation.

Arguments

PsiTYPE(qmpsc), inout

Propagate this state in time.

deltatcomplex, in

Time step for evolution.

RsTYPE(MPORuleSet), in

Rule set for the construction of the Hamiltonian.

OpsTYPE(qtensorclist), in

Operators needed to build the Hamiltonian.

HparamsTYPE(HamiltonianParameters)(*), in

The couplings for the terms in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

renormLOGICAL, in

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

mpo_is_hermitianLOGICAL, in

Flag if the MPO is hermitian, i.e. for Hamiltonian, or if it is a non-hermitian Liouville operator.

qtLOGICAL, in

Flag if quantum trajectories are used.

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Details

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

Source Code

show / hide f90 code
TEBDOps_f90.tebd2_mps_tensorlist_real()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm. 2nd order implementation.

Arguments

PsiTYPE(mps), inout

Propagate this state in time.

deltatreal, in

Time step for evolution.

RsTYPE(MPORuleSet), in

Rule set for the construction of the Hamiltonian.

OpsTYPE(tensorlist), in

Operators needed to build the Hamiltonian.

HparamsTYPE(HamiltonianParameters)(*), in

The couplings for the terms in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

renormLOGICAL, in

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

mpo_is_hermitianLOGICAL, in

Flag if the MPO is hermitian, i.e. for Hamiltonian, or if it is a non-hermitian Liouville operator.

qtLOGICAL, in

Flag if quantum trajectories are used.

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Details

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

Source Code

show / hide f90 code
TEBDOps_f90.tebd2_mpsc_tensorlistc_real()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm. 2nd order implementation.

Arguments

PsiTYPE(mpsc), inout

Propagate this state in time.

deltatreal, in

Time step for evolution.

RsTYPE(MPORuleSet), in

Rule set for the construction of the Hamiltonian.

OpsTYPE(tensorlistc), in

Operators needed to build the Hamiltonian.

HparamsTYPE(HamiltonianParameters)(*), in

The couplings for the terms in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

renormLOGICAL, in

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

mpo_is_hermitianLOGICAL, in

Flag if the MPO is hermitian, i.e. for Hamiltonian, or if it is a non-hermitian Liouville operator.

qtLOGICAL, in

Flag if quantum trajectories are used.

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Details

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

Source Code

show / hide f90 code
TEBDOps_f90.tebd2_qmps_qtensorlist_real()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm. 2nd order implementation.

Arguments

PsiTYPE(qmps), inout

Propagate this state in time.

deltatreal, in

Time step for evolution.

RsTYPE(MPORuleSet), in

Rule set for the construction of the Hamiltonian.

OpsTYPE(qtensorlist), in

Operators needed to build the Hamiltonian.

HparamsTYPE(HamiltonianParameters)(*), in

The couplings for the terms in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

renormLOGICAL, in

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

mpo_is_hermitianLOGICAL, in

Flag if the MPO is hermitian, i.e. for Hamiltonian, or if it is a non-hermitian Liouville operator.

qtLOGICAL, in

Flag if quantum trajectories are used.

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Details

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

Source Code

show / hide f90 code
TEBDOps_f90.tebd2_qmpsc_qtensorclist_real()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm. 2nd order implementation.

Arguments

PsiTYPE(qmpsc), inout

Propagate this state in time.

deltatreal, in

Time step for evolution.

RsTYPE(MPORuleSet), in

Rule set for the construction of the Hamiltonian.

OpsTYPE(qtensorclist), in

Operators needed to build the Hamiltonian.

HparamsTYPE(HamiltonianParameters)(*), in

The couplings for the terms in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

renormLOGICAL, in

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

mpo_is_hermitianLOGICAL, in

Flag if the MPO is hermitian, i.e. for Hamiltonian, or if it is a non-hermitian Liouville operator.

qtLOGICAL, in

Flag if quantum trajectories are used.

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Details

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

Source Code

show / hide f90 code
TEBDOps_f90.tebd2_lptn_tensorlist_real()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm. 2nd order implementation.

Arguments

PsiTYPE(lptn), inout

Propagate this state in time.

deltatreal, in

Time step for evolution.

RsTYPE(MPORuleSet), in

Rule set for the construction of the Hamiltonian.

OpsTYPE(tensorlist), in

Operators needed to build the Hamiltonian.

HparamsTYPE(HamiltonianParameters)(*), in

The couplings for the terms in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

renormLOGICAL, in

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

mpo_is_hermitianLOGICAL, in

Flag if the MPO is hermitian, i.e. for Hamiltonian, or if it is a non-hermitian Liouville operator.

qtLOGICAL, in

Flag if quantum trajectories are used.

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Details

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

Source Code

show / hide f90 code
TEBDOps_f90.tebd2_lptnc_tensorlistc_real()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm. 2nd order implementation.

Arguments

PsiTYPE(lptnc), inout

Propagate this state in time.

deltatreal, in

Time step for evolution.

RsTYPE(MPORuleSet), in

Rule set for the construction of the Hamiltonian.

OpsTYPE(tensorlistc), in

Operators needed to build the Hamiltonian.

HparamsTYPE(HamiltonianParameters)(*), in

The couplings for the terms in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

renormLOGICAL, in

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

mpo_is_hermitianLOGICAL, in

Flag if the MPO is hermitian, i.e. for Hamiltonian, or if it is a non-hermitian Liouville operator.

qtLOGICAL, in

Flag if quantum trajectories are used.

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Details

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

Source Code

show / hide f90 code
TEBDOps_f90.tebd2_qlptn_qtensorlist_real()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm. 2nd order implementation.

Arguments

PsiTYPE(qlptn), inout

Propagate this state in time.

deltatreal, in

Time step for evolution.

RsTYPE(MPORuleSet), in

Rule set for the construction of the Hamiltonian.

OpsTYPE(qtensorlist), in

Operators needed to build the Hamiltonian.

HparamsTYPE(HamiltonianParameters)(*), in

The couplings for the terms in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

renormLOGICAL, in

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

mpo_is_hermitianLOGICAL, in

Flag if the MPO is hermitian, i.e. for Hamiltonian, or if it is a non-hermitian Liouville operator.

qtLOGICAL, in

Flag if quantum trajectories are used.

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Details

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

Source Code

show / hide f90 code
TEBDOps_f90.tebd2_qlptnc_qtensorclist_real()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm. 2nd order implementation.

Arguments

PsiTYPE(qlptnc), inout

Propagate this state in time.

deltatreal, in

Time step for evolution.

RsTYPE(MPORuleSet), in

Rule set for the construction of the Hamiltonian.

OpsTYPE(qtensorclist), in

Operators needed to build the Hamiltonian.

HparamsTYPE(HamiltonianParameters)(*), in

The couplings for the terms in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

renormLOGICAL, in

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

mpo_is_hermitianLOGICAL, in

Flag if the MPO is hermitian, i.e. for Hamiltonian, or if it is a non-hermitian Liouville operator.

qtLOGICAL, in

Flag if quantum trajectories are used.

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Details

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

Source Code

show / hide f90 code
TEBDOps_f90.tebd4_mpsc_tensorlist_complex()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm. 4th order implementation.

Arguments

PsiTYPE(mpsc), inout

Propagate this state in time.

deltatcomplex, in

Time step for evolution.

RsTYPE(MPORuleSet), in

Rule set for the construction of the Hamiltonian.

OpsTYPE(tensorlist), in

Operators needed to build the Hamiltonian.

HparamsTYPE(HamiltonianParameters)(*), in

The couplings for the terms in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

renormLOGICAL, in

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

mpo_is_hermitianLOGICAL, in

Flag if the MPO is hermitian, i.e. for Hamiltonian, or if it is a non-hermitian Liouville operator.

qtLOGICAL, in

Flag if quantum trajectories are used.

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Details

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

Source Code

show / hide f90 code
TEBDOps_f90.tebd4_mpsc_tensorlistc_complex()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm. 4th order implementation.

Arguments

PsiTYPE(mpsc), inout

Propagate this state in time.

deltatcomplex, in

Time step for evolution.

RsTYPE(MPORuleSet), in

Rule set for the construction of the Hamiltonian.

OpsTYPE(tensorlistc), in

Operators needed to build the Hamiltonian.

HparamsTYPE(HamiltonianParameters)(*), in

The couplings for the terms in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

renormLOGICAL, in

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

mpo_is_hermitianLOGICAL, in

Flag if the MPO is hermitian, i.e. for Hamiltonian, or if it is a non-hermitian Liouville operator.

qtLOGICAL, in

Flag if quantum trajectories are used.

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Details

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

Source Code

show / hide f90 code
TEBDOps_f90.tebd4_qmpsc_qtensorlist_complex()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm. 4th order implementation.

Arguments

PsiTYPE(qmpsc), inout

Propagate this state in time.

deltatcomplex, in

Time step for evolution.

RsTYPE(MPORuleSet), in

Rule set for the construction of the Hamiltonian.

OpsTYPE(qtensorlist), in

Operators needed to build the Hamiltonian.

HparamsTYPE(HamiltonianParameters)(*), in

The couplings for the terms in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

renormLOGICAL, in

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

mpo_is_hermitianLOGICAL, in

Flag if the MPO is hermitian, i.e. for Hamiltonian, or if it is a non-hermitian Liouville operator.

qtLOGICAL, in

Flag if quantum trajectories are used.

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Details

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

Source Code

show / hide f90 code
TEBDOps_f90.tebd4_qmpsc_qtensorclist_complex()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm. 4th order implementation.

Arguments

PsiTYPE(qmpsc), inout

Propagate this state in time.

deltatcomplex, in

Time step for evolution.

RsTYPE(MPORuleSet), in

Rule set for the construction of the Hamiltonian.

OpsTYPE(qtensorclist), in

Operators needed to build the Hamiltonian.

HparamsTYPE(HamiltonianParameters)(*), in

The couplings for the terms in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

renormLOGICAL, in

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

mpo_is_hermitianLOGICAL, in

Flag if the MPO is hermitian, i.e. for Hamiltonian, or if it is a non-hermitian Liouville operator.

qtLOGICAL, in

Flag if quantum trajectories are used.

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Details

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

Source Code

show / hide f90 code
TEBDOps_f90.tebd4_mps_tensorlist_real()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm. 4th order implementation.

Arguments

PsiTYPE(mps), inout

Propagate this state in time.

deltatreal, in

Time step for evolution.

RsTYPE(MPORuleSet), in

Rule set for the construction of the Hamiltonian.

OpsTYPE(tensorlist), in

Operators needed to build the Hamiltonian.

HparamsTYPE(HamiltonianParameters)(*), in

The couplings for the terms in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

renormLOGICAL, in

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

mpo_is_hermitianLOGICAL, in

Flag if the MPO is hermitian, i.e. for Hamiltonian, or if it is a non-hermitian Liouville operator.

qtLOGICAL, in

Flag if quantum trajectories are used.

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Details

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

Source Code

show / hide f90 code
TEBDOps_f90.tebd4_mpsc_tensorlistc_real()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm. 4th order implementation.

Arguments

PsiTYPE(mpsc), inout

Propagate this state in time.

deltatreal, in

Time step for evolution.

RsTYPE(MPORuleSet), in

Rule set for the construction of the Hamiltonian.

OpsTYPE(tensorlistc), in

Operators needed to build the Hamiltonian.

HparamsTYPE(HamiltonianParameters)(*), in

The couplings for the terms in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

renormLOGICAL, in

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

mpo_is_hermitianLOGICAL, in

Flag if the MPO is hermitian, i.e. for Hamiltonian, or if it is a non-hermitian Liouville operator.

qtLOGICAL, in

Flag if quantum trajectories are used.

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Details

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

Source Code

show / hide f90 code
TEBDOps_f90.tebd4_qmps_qtensorlist_real()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm. 4th order implementation.

Arguments

PsiTYPE(qmps), inout

Propagate this state in time.

deltatreal, in

Time step for evolution.

RsTYPE(MPORuleSet), in

Rule set for the construction of the Hamiltonian.

OpsTYPE(qtensorlist), in

Operators needed to build the Hamiltonian.

HparamsTYPE(HamiltonianParameters)(*), in

The couplings for the terms in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

renormLOGICAL, in

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

mpo_is_hermitianLOGICAL, in

Flag if the MPO is hermitian, i.e. for Hamiltonian, or if it is a non-hermitian Liouville operator.

qtLOGICAL, in

Flag if quantum trajectories are used.

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Details

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

Source Code

show / hide f90 code
TEBDOps_f90.tebd4_qmpsc_qtensorclist_real()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm. 4th order implementation.

Arguments

PsiTYPE(qmpsc), inout

Propagate this state in time.

deltatreal, in

Time step for evolution.

RsTYPE(MPORuleSet), in

Rule set for the construction of the Hamiltonian.

OpsTYPE(qtensorclist), in

Operators needed to build the Hamiltonian.

HparamsTYPE(HamiltonianParameters)(*), in

The couplings for the terms in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

renormLOGICAL, in

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

mpo_is_hermitianLOGICAL, in

Flag if the MPO is hermitian, i.e. for Hamiltonian, or if it is a non-hermitian Liouville operator.

qtLOGICAL, in

Flag if quantum trajectories are used.

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Details

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

Source Code

show / hide f90 code
TEBDOps_f90.tebd4_lptn_tensorlist_real()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm. 4th order implementation.

Arguments

PsiTYPE(lptn), inout

Propagate this state in time.

deltatreal, in

Time step for evolution.

RsTYPE(MPORuleSet), in

Rule set for the construction of the Hamiltonian.

OpsTYPE(tensorlist), in

Operators needed to build the Hamiltonian.

HparamsTYPE(HamiltonianParameters)(*), in

The couplings for the terms in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

renormLOGICAL, in

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

mpo_is_hermitianLOGICAL, in

Flag if the MPO is hermitian, i.e. for Hamiltonian, or if it is a non-hermitian Liouville operator.

qtLOGICAL, in

Flag if quantum trajectories are used.

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Details

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

Source Code

show / hide f90 code
TEBDOps_f90.tebd4_lptnc_tensorlistc_real()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm. 4th order implementation.

Arguments

PsiTYPE(lptnc), inout

Propagate this state in time.

deltatreal, in

Time step for evolution.

RsTYPE(MPORuleSet), in

Rule set for the construction of the Hamiltonian.

OpsTYPE(tensorlistc), in

Operators needed to build the Hamiltonian.

HparamsTYPE(HamiltonianParameters)(*), in

The couplings for the terms in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

renormLOGICAL, in

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

mpo_is_hermitianLOGICAL, in

Flag if the MPO is hermitian, i.e. for Hamiltonian, or if it is a non-hermitian Liouville operator.

qtLOGICAL, in

Flag if quantum trajectories are used.

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Details

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

Source Code

show / hide f90 code
TEBDOps_f90.tebd4_qlptn_qtensorlist_real()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm. 4th order implementation.

Arguments

PsiTYPE(qlptn), inout

Propagate this state in time.

deltatreal, in

Time step for evolution.

RsTYPE(MPORuleSet), in

Rule set for the construction of the Hamiltonian.

OpsTYPE(qtensorlist), in

Operators needed to build the Hamiltonian.

HparamsTYPE(HamiltonianParameters)(*), in

The couplings for the terms in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

renormLOGICAL, in

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

mpo_is_hermitianLOGICAL, in

Flag if the MPO is hermitian, i.e. for Hamiltonian, or if it is a non-hermitian Liouville operator.

qtLOGICAL, in

Flag if quantum trajectories are used.

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Details

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

Source Code

show / hide f90 code
TEBDOps_f90.tebd4_qlptnc_qtensorclist_real()[source]

fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm. 4th order implementation.

Arguments

PsiTYPE(qlptnc), inout

Propagate this state in time.

deltatreal, in

Time step for evolution.

RsTYPE(MPORuleSet), in

Rule set for the construction of the Hamiltonian.

OpsTYPE(qtensorclist), in

Operators needed to build the Hamiltonian.

HparamsTYPE(HamiltonianParameters)(*), in

The couplings for the terms in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

renormLOGICAL, in

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

mpo_is_hermitianLOGICAL, in

Flag if the MPO is hermitian, i.e. for Hamiltonian, or if it is a non-hermitian Liouville operator.

qtLOGICAL, in

Flag if quantum trajectories are used.

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Details

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

Source Code

show / hide f90 code
TEBDOps_f90.tebd_method_mpsc_tensor_complex()[source]

fortran-subroutine - Arguments

loopINTEGER(*, *), in

Defines the loops of the decomposition. The second dimension corresponds to the number of loops. The first dimension is always of size three and contains the first site in the loop, the final site in the loop, and the increment of the loop, in this order.

CpTYPE(ConvParam), in

Specifies the convergence parameters for the algorithms.

convergedLOGICAL, out

Flag if TEBD step converged.

cerrREAL, inout

Cumulative truncation error.

pbcLOGICAL, in

Flag if PBC are used (then true).

Source Code

show / hide f90 code
TEBDOps_f90.tebd_method_mpsc_tensorc_complex()[source]

fortran-subroutine - Arguments

loopINTEGER(*, *), in

Defines the loops of the decomposition. The second dimension corresponds to the number of loops. The first dimension is always of size three and contains the first site in the loop, the final site in the loop, and the increment of the loop, in this order.

CpTYPE(ConvParam), in

Specifies the convergence parameters for the algorithms.

convergedLOGICAL, out

Flag if TEBD step converged.

cerrREAL, inout

Cumulative truncation error.

pbcLOGICAL, in

Flag if PBC are used (then true).

Source Code

show / hide f90 code
TEBDOps_f90.tebd_method_qmpsc_qtensor_complex()[source]

fortran-subroutine - Arguments

loopINTEGER(*, *), in

Defines the loops of the decomposition. The second dimension corresponds to the number of loops. The first dimension is always of size three and contains the first site in the loop, the final site in the loop, and the increment of the loop, in this order.

CpTYPE(ConvParam), in

Specifies the convergence parameters for the algorithms.

convergedLOGICAL, out

Flag if TEBD step converged.

cerrREAL, inout

Cumulative truncation error.

pbcLOGICAL, in

Flag if PBC are used (then true).

Source Code

show / hide f90 code
TEBDOps_f90.tebd_method_qmpsc_qtensorc_complex()[source]

fortran-subroutine - Arguments

loopINTEGER(*, *), in

Defines the loops of the decomposition. The second dimension corresponds to the number of loops. The first dimension is always of size three and contains the first site in the loop, the final site in the loop, and the increment of the loop, in this order.

CpTYPE(ConvParam), in

Specifies the convergence parameters for the algorithms.

convergedLOGICAL, out

Flag if TEBD step converged.

cerrREAL, inout

Cumulative truncation error.

pbcLOGICAL, in

Flag if PBC are used (then true).

Source Code

show / hide f90 code
TEBDOps_f90.tebd_method_mps_tensor_real()[source]

fortran-subroutine - Arguments

loopINTEGER(*, *), in

Defines the loops of the decomposition. The second dimension corresponds to the number of loops. The first dimension is always of size three and contains the first site in the loop, the final site in the loop, and the increment of the loop, in this order.

CpTYPE(ConvParam), in

Specifies the convergence parameters for the algorithms.

convergedLOGICAL, out

Flag if TEBD step converged.

cerrREAL, inout

Cumulative truncation error.

pbcLOGICAL, in

Flag if PBC are used (then true).

Source Code

show / hide f90 code
TEBDOps_f90.tebd_method_mpsc_tensorc_real()[source]

fortran-subroutine - Arguments

loopINTEGER(*, *), in

Defines the loops of the decomposition. The second dimension corresponds to the number of loops. The first dimension is always of size three and contains the first site in the loop, the final site in the loop, and the increment of the loop, in this order.

CpTYPE(ConvParam), in

Specifies the convergence parameters for the algorithms.

convergedLOGICAL, out

Flag if TEBD step converged.

cerrREAL, inout

Cumulative truncation error.

pbcLOGICAL, in

Flag if PBC are used (then true).

Source Code

show / hide f90 code
TEBDOps_f90.tebd_method_qmps_qtensor_real()[source]

fortran-subroutine - Arguments

loopINTEGER(*, *), in

Defines the loops of the decomposition. The second dimension corresponds to the number of loops. The first dimension is always of size three and contains the first site in the loop, the final site in the loop, and the increment of the loop, in this order.

CpTYPE(ConvParam), in

Specifies the convergence parameters for the algorithms.

convergedLOGICAL, out

Flag if TEBD step converged.

cerrREAL, inout

Cumulative truncation error.

pbcLOGICAL, in

Flag if PBC are used (then true).

Source Code

show / hide f90 code
TEBDOps_f90.tebd_method_qmpsc_qtensorc_real()[source]

fortran-subroutine - Arguments

loopINTEGER(*, *), in

Defines the loops of the decomposition. The second dimension corresponds to the number of loops. The first dimension is always of size three and contains the first site in the loop, the final site in the loop, and the increment of the loop, in this order.

CpTYPE(ConvParam), in

Specifies the convergence parameters for the algorithms.

convergedLOGICAL, out

Flag if TEBD step converged.

cerrREAL, inout

Cumulative truncation error.

pbcLOGICAL, in

Flag if PBC are used (then true).

Source Code

show / hide f90 code
TEBDOps_f90.tebd_method_lptn_tensor_real()[source]

fortran-subroutine - October 2017 (dj)

Arguments

loopINTEGER(*, *), in

Defines the loops of the decomposition. The second dimension corresponds to the number of loops. The first dimension is always of size three and contains the first site in the loop, the final site in the loop, and the increment of the loop, in this order.

CpTYPE(ConvParam), in

Specifies the convergence parameters for the algorithms.

convergedLOGICAL, out

Flag if TEBD step converged.

cerrREAL, inout

Cumulative truncation error.

pbcLOGICAL, in

Flag if PBC are used (then true).

Details

The Hamiltonian is assumed to be hermitian. Effective Hamiltonian does not make sense on a density matrix and Lindblad master equation would be evolved with Kraus operators.

Source Code

show / hide f90 code
TEBDOps_f90.tebd_method_lptnc_tensorc_real()[source]

fortran-subroutine - October 2017 (dj)

Arguments

loopINTEGER(*, *), in

Defines the loops of the decomposition. The second dimension corresponds to the number of loops. The first dimension is always of size three and contains the first site in the loop, the final site in the loop, and the increment of the loop, in this order.

CpTYPE(ConvParam), in

Specifies the convergence parameters for the algorithms.

convergedLOGICAL, out

Flag if TEBD step converged.

cerrREAL, inout

Cumulative truncation error.

pbcLOGICAL, in

Flag if PBC are used (then true).

Details

The Hamiltonian is assumed to be hermitian. Effective Hamiltonian does not make sense on a density matrix and Lindblad master equation would be evolved with Kraus operators.

Source Code

show / hide f90 code
TEBDOps_f90.tebd_method_qlptn_qtensor_real()[source]

fortran-subroutine - October 2017 (dj)

Arguments

loopINTEGER(*, *), in

Defines the loops of the decomposition. The second dimension corresponds to the number of loops. The first dimension is always of size three and contains the first site in the loop, the final site in the loop, and the increment of the loop, in this order.

CpTYPE(ConvParam), in

Specifies the convergence parameters for the algorithms.

convergedLOGICAL, out

Flag if TEBD step converged.

cerrREAL, inout

Cumulative truncation error.

pbcLOGICAL, in

Flag if PBC are used (then true).

Details

The Hamiltonian is assumed to be hermitian. Effective Hamiltonian does not make sense on a density matrix and Lindblad master equation would be evolved with Kraus operators.

Source Code

show / hide f90 code
TEBDOps_f90.tebd_method_qlptnc_qtensorc_real()[source]

fortran-subroutine - October 2017 (dj)

Arguments

loopINTEGER(*, *), in

Defines the loops of the decomposition. The second dimension corresponds to the number of loops. The first dimension is always of size three and contains the first site in the loop, the final site in the loop, and the increment of the loop, in this order.

CpTYPE(ConvParam), in

Specifies the convergence parameters for the algorithms.

convergedLOGICAL, out

Flag if TEBD step converged.

cerrREAL, inout

Cumulative truncation error.

pbcLOGICAL, in

Flag if PBC are used (then true).

Details

The Hamiltonian is assumed to be hermitian. Effective Hamiltonian does not make sense on a density matrix and Lindblad master equation would be evolved with Kraus operators.

Source Code

show / hide f90 code
TEBDOps_f90.tebd_method_lptn_tensorc_real()[source]

fortran-subroutine - October 2017 (dj) Dummy interface for Liouville space evolution on LPTN/MPS.

Arguments

loopINTEGER(*, *), in

Defines the loops of the decomposition. The second dimension corresponds to the number of loops. The first dimension is always of size three and contains the first site in the loop, the final site in the loop, and the increment of the loop, in this order.

CpTYPE(ConvParam), in

Specifies the convergence parameters for the algorithms.

convergedLOGICAL, out

Flag if TEBD step converged.

cerrREAL, inout

Cumulative truncation error.

pbcLOGICAL, in

Flag if PBC are used (then true).

Details

The Hamiltonian is assumed to be hermitian. Effective Hamiltonian does not make sense on a density matrix and Lindblad master equation would be evolved with Kraus operators.

Source Code

show / hide f90 code
TEBDOps_f90.tebd_method_qlptn_qtensorc_real()[source]

fortran-subroutine - October 2017 (dj) Dummy interface for Liouville space evolution on LPTN/MPS.

Arguments

loopINTEGER(*, *), in

Defines the loops of the decomposition. The second dimension corresponds to the number of loops. The first dimension is always of size three and contains the first site in the loop, the final site in the loop, and the increment of the loop, in this order.

CpTYPE(ConvParam), in

Specifies the convergence parameters for the algorithms.

convergedLOGICAL, out

Flag if TEBD step converged.

cerrREAL, inout

Cumulative truncation error.

pbcLOGICAL, in

Flag if PBC are used (then true).

Details

The Hamiltonian is assumed to be hermitian. Effective Hamiltonian does not make sense on a density matrix and Lindblad master equation would be evolved with Kraus operators.

Source Code

show / hide f90 code
TEBDOps_f90.tebd_method_mps_tensorc_real()[source]

fortran-subroutine - October 2017 (dj) Dummy interface for Liouville space evolution on LPTN/MPS.

Arguments

loopINTEGER(*, *), in

Defines the loops of the decomposition. The second dimension corresponds to the number of loops. The first dimension is always of size three and contains the first site in the loop, the final site in the loop, and the increment of the loop, in this order.

CpTYPE(ConvParam), in

Specifies the convergence parameters for the algorithms.

convergedLOGICAL, out

Flag if TEBD step converged.

cerrREAL, inout

Cumulative truncation error.

pbcLOGICAL, in

Flag if PBC are used (then true).

Details

The Hamiltonian is assumed to be hermitian. Effective Hamiltonian does not make sense on a density matrix and Lindblad master equation would be evolved with Kraus operators.

Source Code

show / hide f90 code
TEBDOps_f90.tebd_method_qmps_qtensorc_real()[source]

fortran-subroutine - October 2017 (dj) Dummy interface for Liouville space evolution on LPTN/MPS.

Arguments

loopINTEGER(*, *), in

Defines the loops of the decomposition. The second dimension corresponds to the number of loops. The first dimension is always of size three and contains the first site in the loop, the final site in the loop, and the increment of the loop, in this order.

CpTYPE(ConvParam), in

Specifies the convergence parameters for the algorithms.

convergedLOGICAL, out

Flag if TEBD step converged.

cerrREAL, inout

Cumulative truncation error.

pbcLOGICAL, in

Flag if PBC are used (then true).

Details

The Hamiltonian is assumed to be hermitian. Effective Hamiltonian does not make sense on a density matrix and Lindblad master equation would be evolved with Kraus operators.

Source Code

show / hide f90 code
TEBDOps_f90.tebd2_22122_tensorlist()[source]

fortran-subroutine - October 2017 (dj) Evolve an LPTN under a second order TEBD decomposition. This is the “local Lindblads only” version.

Arguments

RhoTYPE(MP, inout

Density matrix to be evolved.

deltatCOMPLEX, in

Time step for this step.

RsTYPE(MPORuleSet), in

The rule set for the Lindblad master equation.

OpsTYPE(tensorlist), in

Contains the operators necessary to build the Lindblad equation.

HparamsTYPE(HamiltonianParameters), in

Contains the coupling constants for each term in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

Details

We first use a second order Trotter decomposition on the Hamiltonian H and dissipative part D of the system leading to epx(H + D) = exp(H / 2) exp(D) exp(H / 2). We apply the usual Sornborger second order decomposition to the exp(H / 2) term.

Source Code

show / hide f90 code
TEBDOps_f90.tebd2_22122_tensorlistc()[source]

fortran-subroutine - October 2017 (dj) Evolve an LPTN under a second order TEBD decomposition. This is the “local Lindblads only” version.

Arguments

RhoTYPE(MP, inout

Density matrix to be evolved.

deltatCOMPLEX, in

Time step for this step.

RsTYPE(MPORuleSet), in

The rule set for the Lindblad master equation.

OpsTYPE(tensorlistc), in

Contains the operators necessary to build the Lindblad equation.

HparamsTYPE(HamiltonianParameters), in

Contains the coupling constants for each term in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

Details

We first use a second order Trotter decomposition on the Hamiltonian H and dissipative part D of the system leading to epx(H + D) = exp(H / 2) exp(D) exp(H / 2). We apply the usual Sornborger second order decomposition to the exp(H / 2) term.

Source Code

show / hide f90 code
TEBDOps_f90.tebd2_22122_qtensorlist()[source]

fortran-subroutine - October 2017 (dj) Evolve an LPTN under a second order TEBD decomposition. This is the “local Lindblads only” version.

Arguments

RhoTYPE(MP, inout

Density matrix to be evolved.

deltatCOMPLEX, in

Time step for this step.

RsTYPE(MPORuleSet), in

The rule set for the Lindblad master equation.

OpsTYPE(qtensorlist), in

Contains the operators necessary to build the Lindblad equation.

HparamsTYPE(HamiltonianParameters), in

Contains the coupling constants for each term in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

Details

We first use a second order Trotter decomposition on the Hamiltonian H and dissipative part D of the system leading to epx(H + D) = exp(H / 2) exp(D) exp(H / 2). We apply the usual Sornborger second order decomposition to the exp(H / 2) term.

Source Code

show / hide f90 code
TEBDOps_f90.tebd2_22122_qtensorclist()[source]

fortran-subroutine - October 2017 (dj) Evolve an LPTN under a second order TEBD decomposition. This is the “local Lindblads only” version.

Arguments

RhoTYPE(MP, inout

Density matrix to be evolved.

deltatCOMPLEX, in

Time step for this step.

RsTYPE(MPORuleSet), in

The rule set for the Lindblad master equation.

OpsTYPE(qtensorclist), in

Contains the operators necessary to build the Lindblad equation.

HparamsTYPE(HamiltonianParameters), in

Contains the coupling constants for each term in the Hamiltonian.

iopINTEGER, in

Position of the identity operator in the list of operators Ops.

convergedLOGICAL, out

Not referenced, only to provide equal interface.

cerrREAL, inout

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

CpTYPE(ConvParam), in

Contains the convergence parameters for the simulation.

Details

We first use a second order Trotter decomposition on the Hamiltonian H and dissipative part D of the system leading to epx(H + D) = exp(H / 2) exp(D) exp(H / 2). We apply the usual Sornborger second order decomposition to the exp(H / 2) term.

Source Code

show / hide f90 code
TEBDOps_f90.tebd_method_lptnc_TENSOR_HTYPE()[source]

fortran-subroutine - September 2017 (dj) Apply Trotter decomposition to an LPTN tensor network.

Arguments

RhoTYPE(lptnc), inout

Density matrix to be propagated as LPTN.

PtsTYPE(tensorc)(*, *), inout

The 2-site propagators containing the unitary part of the time evolution. The first dimension runs of the sites, the second index over different weights.

KsTYPE(tensorc)(*, *), inout

Contains the local Kraus operators. The first dimension runs again over the sites, the second index over different weights in the Trotter decomposition.

loopINTEGER(*, *), in

Defines the loops of the decomposition. The second dimension corresponds to the number of loops. The first dimension is always of size three and contains the first site in the loop, the final site in the loop, and the increment of the loop, in this order.

idxsINTEGER(*), in

Defines for each loop which second dimension is accessed in Pts and Ks.

termCHARACTER(*), in

Specifies if 2-site propagator of the Hamiltonian or Kraus operator is applied.

CpTYPE(ConvParam), in

Specifies the convergence parameters for the algorithms.

convergedLOGICAL, out

Flag if TEBD step converged.

cerrREAL, inout

Cumulative truncation error.

pbcLOGICAL, in

Flag if PBC are used (then true).

Source Code

show / hide f90 code
TEBDOps_f90.tebd_method_qlptnc_TENSOR_HTYPE()[source]

fortran-subroutine - September 2017 (dj) Apply Trotter decomposition to an LPTN tensor network.

Arguments

RhoTYPE(qlptnc), inout

Density matrix to be propagated as LPTN.

PtsTYPE(qtensorc)(*, *), inout

The 2-site propagators containing the unitary part of the time evolution. The first dimension runs of the sites, the second index over different weights.

KsTYPE(qtensorc)(*, *), inout

Contains the local Kraus operators. The first dimension runs again over the sites, the second index over different weights in the Trotter decomposition.

loopINTEGER(*, *), in

Defines the loops of the decomposition. The second dimension corresponds to the number of loops. The first dimension is always of size three and contains the first site in the loop, the final site in the loop, and the increment of the loop, in this order.

idxsINTEGER(*), in

Defines for each loop which second dimension is accessed in Pts and Ks.

termCHARACTER(*), in

Specifies if 2-site propagator of the Hamiltonian or Kraus operator is applied.

CpTYPE(ConvParam), in

Specifies the convergence parameters for the algorithms.

convergedLOGICAL, out

Flag if TEBD step converged.

cerrREAL, inout

Cumulative truncation error.

pbcLOGICAL, in

Flag if PBC are used (then true).

Source Code

show / hide f90 code
TEBDOps_f90.prepare_op2_tensor()[source]

fortran-subroutine - September 2017 (dj) Build all two-site operators.

Arguments

mpo_is_hermitianLOGICAL, in

Flag if term in the exponential is hermitian.

qtLOGICAL, in

Flag if quantum trajectories are used.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Source Code

show / hide f90 code
TEBDOps_f90.prepare_op2_tensorc()[source]

fortran-subroutine - September 2017 (dj) Build all two-site operators.

Arguments

mpo_is_hermitianLOGICAL, in

Flag if term in the exponential is hermitian.

qtLOGICAL, in

Flag if quantum trajectories are used.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Source Code

show / hide f90 code
TEBDOps_f90.prepare_op2_qtensor()[source]

fortran-subroutine - September 2017 (dj) Build all two-site operators.

Arguments

mpo_is_hermitianLOGICAL, in

Flag if term in the exponential is hermitian.

qtLOGICAL, in

Flag if quantum trajectories are used.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Source Code

show / hide f90 code
TEBDOps_f90.prepare_op2_qtensorc()[source]

fortran-subroutine - September 2017 (dj) Build all two-site operators.

Arguments

mpo_is_hermitianLOGICAL, in

Flag if term in the exponential is hermitian.

qtLOGICAL, in

Flag if quantum trajectories are used.

finitetLOGICAL, in

Flag if finitet simulation. If .true., the Liouville propagator of the Hamiltonian is returned. Must be hermitian then.

Source Code

show / hide f90 code
TEBDOps_f90.init_permarrays_pbc()[source]

fortran-subroutine - February 2019 (dj) Destroys permutation arrays for PBC.

Arguments

pbcLOGICAL, in

Flag if PBC are used (true) or not used (false).

permaINTEGER(*), in

Allocated and initialized on exit.

permbINTEGER(*), in

Allocated and initialized on exit.

llINTEGER, in

Number of sites in the system.

Source Code

show / hide f90 code
TEBDOps_f90.finalize_permarrays_pbc()[source]

fortran-subroutine - February 2019 (dj) Destroys permutation arrays for PBC.

Arguments

pbcLOGICAL, in

Flag if PBC are used (true) or not used (false).

permaINTEGER(*), inout

Deallocated on exit.

permbINTEGER(*), inout

Deallocated on exit.

Source Code

show / hide f90 code