MPDOOps

Fortran module MPDOOps: September 2017 (dj)

Containing basic operations for matrix product density operators (MPDO)

Authors

    1. Jaschke

      1. Wall

Details

The error status can be decoded the following way

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

Procedure

include.f90

mpi.f90

omp.f90

copy

X

corr_init_mpdo

X

corr_init_l_mpdo

X

corr_meas_mpdo

X

corr_meas_l_mpdo

X

destroy

X

norm

X

ptm_left_mpdo

X

ptm_right_mpdo

X

purity

X

rho_kk

X

rhoij_init_mpdo

X

rhoij_meas_mpdo

X

setuplr

X

updatelr

X

MPDOOps_f90.check_rho_kk_mpdo()[source]

fortran-subroutine - October 2017 (dj) Run verbose checks on reduced density matrix.

Arguments

Rho_origTYPE(mpdo), in

Check the building of reduced density matrices for this MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.check_rho_kk_mpdoc()[source]

fortran-subroutine - October 2017 (dj) Run verbose checks on reduced density matrix.

Arguments

Rho_origTYPE(mpdoc), in

Check the building of reduced density matrices for this MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.check_rho_kk_qmpdo()[source]

fortran-subroutine - October 2017 (dj) Run verbose checks on reduced density matrix.

Arguments

Rho_origTYPE(qmpdo), in

Check the building of reduced density matrices for this MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.check_rho_kk_qmpdoc()[source]

fortran-subroutine - October 2017 (dj) Run verbose checks on reduced density matrix.

Arguments

Rho_origTYPE(qmpdoc), in

Check the building of reduced density matrices for this MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.rho_red_mpdo()[source]

fortran-subroutine - June 2018 (dj) Build a general reduced density matrix on multiple sites.

Arguments

RedTYPE(tensor), out

On exit the reduced density matrix with the sites specified. The first half of the indices corresponds to the kets on each site. The second half corresponds to the bra-indices.

RhoTYPE(mpdo), in

MPDO to build reduced density matrix from.

sitesINTEGER(*), in

List of sites for the reduced density matrix.

contLOGICAL, in

Indicator if sites are one continuous block of indices (true) or separated by indices to be traced out (false). Not accessed, kept for compliance with MPS interface.

truncREAL, in

Keep infidelity below trunc (infidelity is sum of squared discarded singular values for MPS). Not accessed, kept for compliance with MPS interface.

ncutINTEGER, in

Maximal bond dimension / number of singular values. Default is keeping all singular values. Not accessed, kept for compliance with MPS interface.

errREAL, out

Truncation error for tracking it from calling routine. No truncation introduced in MPDOs and thus zero by default.

Source Code

show / hide f90 code
MPDOOps_f90.rho_red_mpdoc()[source]

fortran-subroutine - June 2018 (dj) Build a general reduced density matrix on multiple sites.

Arguments

RedTYPE(tensorc), out

On exit the reduced density matrix with the sites specified. The first half of the indices corresponds to the kets on each site. The second half corresponds to the bra-indices.

RhoTYPE(mpdoc), in

MPDO to build reduced density matrix from.

sitesINTEGER(*), in

List of sites for the reduced density matrix.

contLOGICAL, in

Indicator if sites are one continuous block of indices (true) or separated by indices to be traced out (false). Not accessed, kept for compliance with MPS interface.

truncREAL, in

Keep infidelity below trunc (infidelity is sum of squared discarded singular values for MPS). Not accessed, kept for compliance with MPS interface.

ncutINTEGER, in

Maximal bond dimension / number of singular values. Default is keeping all singular values. Not accessed, kept for compliance with MPS interface.

errREAL, out

Truncation error for tracking it from calling routine. No truncation introduced in MPDOs and thus zero by default.

Source Code

show / hide f90 code
MPDOOps_f90.rho_red_qmpdo()[source]

fortran-subroutine - June 2018 (dj) Build a general reduced density matrix on multiple sites.

Arguments

RedTYPE(qtensor), out

On exit the reduced density matrix with the sites specified. The first half of the indices corresponds to the kets on each site. The second half corresponds to the bra-indices.

RhoTYPE(qmpdo), in

MPDO to build reduced density matrix from.

sitesINTEGER(*), in

List of sites for the reduced density matrix.

contLOGICAL, in

Indicator if sites are one continuous block of indices (true) or separated by indices to be traced out (false). Not accessed, kept for compliance with MPS interface.

truncREAL, in

Keep infidelity below trunc (infidelity is sum of squared discarded singular values for MPS). Not accessed, kept for compliance with MPS interface.

ncutINTEGER, in

Maximal bond dimension / number of singular values. Default is keeping all singular values. Not accessed, kept for compliance with MPS interface.

errREAL, out

Truncation error for tracking it from calling routine. No truncation introduced in MPDOs and thus zero by default.

Source Code

show / hide f90 code
MPDOOps_f90.rho_red_qmpdoc()[source]

fortran-subroutine - June 2018 (dj) Build a general reduced density matrix on multiple sites.

Arguments

RedTYPE(qtensorc), out

On exit the reduced density matrix with the sites specified. The first half of the indices corresponds to the kets on each site. The second half corresponds to the bra-indices.

RhoTYPE(qmpdoc), in

MPDO to build reduced density matrix from.

sitesINTEGER(*), in

List of sites for the reduced density matrix.

contLOGICAL, in

Indicator if sites are one continuous block of indices (true) or separated by indices to be traced out (false). Not accessed, kept for compliance with MPS interface.

truncREAL, in

Keep infidelity below trunc (infidelity is sum of squared discarded singular values for MPS). Not accessed, kept for compliance with MPS interface.

ncutINTEGER, in

Maximal bond dimension / number of singular values. Default is keeping all singular values. Not accessed, kept for compliance with MPS interface.

errREAL, out

Truncation error for tracking it from calling routine. No truncation introduced in MPDOs and thus zero by default.

Source Code

show / hide f90 code
MPDOOps_f90.copy_mpdo_mpdo()[source]

fortran-subroutine - September 2017 (dj) Copy an MPDO.

Arguments

RhooutTYPE(mpdo), inout

On exit, copy of Rhoin.

RhoinTYPE(mpdo), in

Make a copy of this MPDO.

scalarREAL, OPTIONAL, in

Scale the new MPDO Rhoout with a scalar.

Source Code

show / hide f90 code
MPDOOps_f90.copy_mpdoc_mpdo()[source]

fortran-subroutine - September 2017 (dj) Copy an MPDO.

Arguments

RhooutTYPE(mpdoc), inout

On exit, copy of Rhoin.

RhoinTYPE(mpdo), in

Make a copy of this MPDO.

scalarREAL, OPTIONAL, in

Scale the new MPDO Rhoout with a scalar.

Source Code

show / hide f90 code
MPDOOps_f90.copy_mpdoc_mpdoc()[source]

fortran-subroutine - September 2017 (dj) Copy an MPDO.

Arguments

RhooutTYPE(mpdoc), inout

On exit, copy of Rhoin.

RhoinTYPE(mpdoc), in

Make a copy of this MPDO.

scalarREAL, OPTIONAL, in

Scale the new MPDO Rhoout with a scalar.

Source Code

show / hide f90 code
MPDOOps_f90.copy_qmpdo_qmpdo()[source]

fortran-subroutine - September 2017 (dj) Copy an MPDO.

Arguments

RhooutTYPE(qmpdo), inout

On exit, copy of Rhoin.

RhoinTYPE(qmpdo), in

Make a copy of this MPDO.

scalarREAL, OPTIONAL, in

Scale the new MPDO Rhoout with a scalar.

Source Code

show / hide f90 code
MPDOOps_f90.copy_qmpdoc_qmpdo()[source]

fortran-subroutine - September 2017 (dj) Copy an MPDO.

Arguments

RhooutTYPE(qmpdoc), inout

On exit, copy of Rhoin.

RhoinTYPE(qmpdo), in

Make a copy of this MPDO.

scalarREAL, OPTIONAL, in

Scale the new MPDO Rhoout with a scalar.

Source Code

show / hide f90 code
MPDOOps_f90.copy_qmpdoc_qmpdoc()[source]

fortran-subroutine - September 2017 (dj) Copy an MPDO.

Arguments

RhooutTYPE(qmpdoc), inout

On exit, copy of Rhoin.

RhoinTYPE(qmpdoc), in

Make a copy of this MPDO.

scalarREAL, OPTIONAL, in

Scale the new MPDO Rhoout with a scalar.

Source Code

show / hide f90 code
MPDOOps_f90.copy_mpdo_mps()[source]

fortran-subroutine - September 2017 (dj) Copy an MPS into an MPDO.

Arguments

RhoTYPE(mpdo), inout

On exit, copy of Psi written as density matrix / MPDO.

PsiTYPE(mps), in

Make a copy of this MPS and write it as MPDO.

SlsiteTYPE(splitlink), in

Object defining spliting the local Hilbert space of an MPDO. Has to be passed, since it is based on the complete Hilbert space, which is not necessarily present in the state Psi passed to be converted.

scalarREAL, OPTIONAL, in

Scale the new MPDO Rho with a scalar.

Source Code

show / hide f90 code
MPDOOps_f90.copy_mpdoc_mps()[source]

fortran-subroutine - September 2017 (dj) Copy an MPS into an MPDO.

Arguments

RhoTYPE(mpdoc), inout

On exit, copy of Psi written as density matrix / MPDO.

PsiTYPE(mps), in

Make a copy of this MPS and write it as MPDO.

SlsiteTYPE(splitlink), in

Object defining spliting the local Hilbert space of an MPDO. Has to be passed, since it is based on the complete Hilbert space, which is not necessarily present in the state Psi passed to be converted.

scalarREAL, OPTIONAL, in

Scale the new MPDO Rho with a scalar.

Source Code

show / hide f90 code
MPDOOps_f90.copy_mpdoc_mpsc()[source]

fortran-subroutine - September 2017 (dj) Copy an MPS into an MPDO.

Arguments

RhoTYPE(mpdoc), inout

On exit, copy of Psi written as density matrix / MPDO.

PsiTYPE(mpsc), in

Make a copy of this MPS and write it as MPDO.

SlsiteTYPE(splitlink), in

Object defining spliting the local Hilbert space of an MPDO. Has to be passed, since it is based on the complete Hilbert space, which is not necessarily present in the state Psi passed to be converted.

scalarREAL, OPTIONAL, in

Scale the new MPDO Rho with a scalar.

Source Code

show / hide f90 code
MPDOOps_f90.copy_qmpdo_qmps()[source]

fortran-subroutine - September 2017 (dj) Copy an MPS into an MPDO.

Arguments

RhoTYPE(qmpdo), inout

On exit, copy of Psi written as density matrix / MPDO.

PsiTYPE(qmps), in

Make a copy of this MPS and write it as MPDO.

SlsiteTYPE(splitlink), in

Object defining spliting the local Hilbert space of an MPDO. Has to be passed, since it is based on the complete Hilbert space, which is not necessarily present in the state Psi passed to be converted.

scalarREAL, OPTIONAL, in

Scale the new MPDO Rho with a scalar.

Source Code

show / hide f90 code
MPDOOps_f90.copy_qmpdoc_qmps()[source]

fortran-subroutine - September 2017 (dj) Copy an MPS into an MPDO.

Arguments

RhoTYPE(qmpdoc), inout

On exit, copy of Psi written as density matrix / MPDO.

PsiTYPE(qmps), in

Make a copy of this MPS and write it as MPDO.

SlsiteTYPE(splitlink), in

Object defining spliting the local Hilbert space of an MPDO. Has to be passed, since it is based on the complete Hilbert space, which is not necessarily present in the state Psi passed to be converted.

scalarREAL, OPTIONAL, in

Scale the new MPDO Rho with a scalar.

Source Code

show / hide f90 code
MPDOOps_f90.copy_qmpdoc_qmpsc()[source]

fortran-subroutine - September 2017 (dj) Copy an MPS into an MPDO.

Arguments

RhoTYPE(qmpdoc), inout

On exit, copy of Psi written as density matrix / MPDO.

PsiTYPE(qmpsc), in

Make a copy of this MPS and write it as MPDO.

SlsiteTYPE(splitlink), in

Object defining spliting the local Hilbert space of an MPDO. Has to be passed, since it is based on the complete Hilbert space, which is not necessarily present in the state Psi passed to be converted.

scalarREAL, OPTIONAL, in

Scale the new MPDO Rho with a scalar.

Source Code

show / hide f90 code
MPDOOps_f90.corr_init_mpdo_tensor_tensor()[source]

fortran-subroutine - September 2017 (dj) Initialize a correlation measurement involving site kk. This is the right-moving version.

Arguments

TenskkTYPE(tensor), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(tensorlist), inout

Left-right overlap of the MPDO.

ThetaTYPE(tensor), out

On exit, the left overlap for the correlation measurement.

OpTYPE(tensor), inout

Operator for the correlation measurement on site kk.

kkINTEGER, in

Initialize the correlation measurement on site kk. Necessary to address LR.

Sl_leftTYPE(splitlink), in

Information how to split the link to the left of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.corr_init_mpdo_tensorc_tensor()[source]

fortran-subroutine - September 2017 (dj) Initialize a correlation measurement involving site kk. This is the right-moving version.

Arguments

TenskkTYPE(tensorc), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(tensorlistc), inout

Left-right overlap of the MPDO.

ThetaTYPE(tensorc), out

On exit, the left overlap for the correlation measurement.

OpTYPE(tensorc), inout

Operator for the correlation measurement on site kk.

kkINTEGER, in

Initialize the correlation measurement on site kk. Necessary to address LR.

Sl_leftTYPE(splitlink), in

Information how to split the link to the left of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.corr_init_mpdo_tensorc_tensorc()[source]

fortran-subroutine - September 2017 (dj) Initialize a correlation measurement involving site kk. This is the right-moving version.

Arguments

TenskkTYPE(tensorc), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(tensorlistc), inout

Left-right overlap of the MPDO.

ThetaTYPE(tensorc), out

On exit, the left overlap for the correlation measurement.

OpTYPE(tensorc), inout

Operator for the correlation measurement on site kk.

kkINTEGER, in

Initialize the correlation measurement on site kk. Necessary to address LR.

Sl_leftTYPE(splitlink), in

Information how to split the link to the left of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.corr_init_mpdo_qtensor_qtensor()[source]

fortran-subroutine - September 2017 (dj) Initialize a correlation measurement involving site kk. This is the right-moving version.

Arguments

TenskkTYPE(qtensor), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(qtensorlist), inout

Left-right overlap of the MPDO.

ThetaTYPE(qtensor), out

On exit, the left overlap for the correlation measurement.

OpTYPE(qtensor), inout

Operator for the correlation measurement on site kk.

kkINTEGER, in

Initialize the correlation measurement on site kk. Necessary to address LR.

Sl_leftTYPE(splitlink), in

Information how to split the link to the left of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.corr_init_mpdo_qtensorc_qtensor()[source]

fortran-subroutine - September 2017 (dj) Initialize a correlation measurement involving site kk. This is the right-moving version.

Arguments

TenskkTYPE(qtensorc), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(qtensorclist), inout

Left-right overlap of the MPDO.

ThetaTYPE(qtensorc), out

On exit, the left overlap for the correlation measurement.

OpTYPE(qtensorc), inout

Operator for the correlation measurement on site kk.

kkINTEGER, in

Initialize the correlation measurement on site kk. Necessary to address LR.

Sl_leftTYPE(splitlink), in

Information how to split the link to the left of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.corr_init_mpdo_qtensorc_qtensorc()[source]

fortran-subroutine - September 2017 (dj) Initialize a correlation measurement involving site kk. This is the right-moving version.

Arguments

TenskkTYPE(qtensorc), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(qtensorclist), inout

Left-right overlap of the MPDO.

ThetaTYPE(qtensorc), out

On exit, the left overlap for the correlation measurement.

OpTYPE(qtensorc), inout

Operator for the correlation measurement on site kk.

kkINTEGER, in

Initialize the correlation measurement on site kk. Necessary to address LR.

Sl_leftTYPE(splitlink), in

Information how to split the link to the left of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.corr_init_l_mpdo_tensor_tensor()[source]

fortran-subroutine - September 2017 (dj) Initialize a correlation measurement involving site kk. This is the left-moving version.

Arguments

TenskkTYPE(tensor), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(tensorlist), inout

Left-right overlap of the MPDO.

ThetaTYPE(tensor), out

On exit, the right overlap for the correlation measurement.

OpTYPE(tensor), inout

Operator for the correlation measurement on site kk.

kkINTEGER, in

Initialize the correlation measurement on site kk. Necessary to address LR.

llINTEGER, in

System size to address correct entry in LR.

Sl_rightTYPE(splitlink), in

Information how to split the link right of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.corr_init_l_mpdo_tensorc_tensor()[source]

fortran-subroutine - September 2017 (dj) Initialize a correlation measurement involving site kk. This is the left-moving version.

Arguments

TenskkTYPE(tensorc), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(tensorlistc), inout

Left-right overlap of the MPDO.

ThetaTYPE(tensorc), out

On exit, the right overlap for the correlation measurement.

OpTYPE(tensorc), inout

Operator for the correlation measurement on site kk.

kkINTEGER, in

Initialize the correlation measurement on site kk. Necessary to address LR.

llINTEGER, in

System size to address correct entry in LR.

Sl_rightTYPE(splitlink), in

Information how to split the link right of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.corr_init_l_mpdo_tensorc_tensorc()[source]

fortran-subroutine - September 2017 (dj) Initialize a correlation measurement involving site kk. This is the left-moving version.

Arguments

TenskkTYPE(tensorc), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(tensorlistc), inout

Left-right overlap of the MPDO.

ThetaTYPE(tensorc), out

On exit, the right overlap for the correlation measurement.

OpTYPE(tensorc), inout

Operator for the correlation measurement on site kk.

kkINTEGER, in

Initialize the correlation measurement on site kk. Necessary to address LR.

llINTEGER, in

System size to address correct entry in LR.

Sl_rightTYPE(splitlink), in

Information how to split the link right of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.corr_init_l_mpdo_qtensor_qtensor()[source]

fortran-subroutine - September 2017 (dj) Initialize a correlation measurement involving site kk. This is the left-moving version.

Arguments

TenskkTYPE(qtensor), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(qtensorlist), inout

Left-right overlap of the MPDO.

ThetaTYPE(qtensor), out

On exit, the right overlap for the correlation measurement.

OpTYPE(qtensor), inout

Operator for the correlation measurement on site kk.

kkINTEGER, in

Initialize the correlation measurement on site kk. Necessary to address LR.

llINTEGER, in

System size to address correct entry in LR.

Sl_rightTYPE(splitlink), in

Information how to split the link right of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.corr_init_l_mpdo_qtensorc_qtensor()[source]

fortran-subroutine - September 2017 (dj) Initialize a correlation measurement involving site kk. This is the left-moving version.

Arguments

TenskkTYPE(qtensorc), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(qtensorclist), inout

Left-right overlap of the MPDO.

ThetaTYPE(qtensorc), out

On exit, the right overlap for the correlation measurement.

OpTYPE(qtensorc), inout

Operator for the correlation measurement on site kk.

kkINTEGER, in

Initialize the correlation measurement on site kk. Necessary to address LR.

llINTEGER, in

System size to address correct entry in LR.

Sl_rightTYPE(splitlink), in

Information how to split the link right of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.corr_init_l_mpdo_qtensorc_qtensorc()[source]

fortran-subroutine - September 2017 (dj) Initialize a correlation measurement involving site kk. This is the left-moving version.

Arguments

TenskkTYPE(qtensorc), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(qtensorclist), inout

Left-right overlap of the MPDO.

ThetaTYPE(qtensorc), out

On exit, the right overlap for the correlation measurement.

OpTYPE(qtensorc), inout

Operator for the correlation measurement on site kk.

kkINTEGER, in

Initialize the correlation measurement on site kk. Necessary to address LR.

llINTEGER, in

System size to address correct entry in LR.

Sl_rightTYPE(splitlink), in

Information how to split the link right of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.corr_meas_mpdo_tensor_tensor()[source]

fortran-subroutine - September 2017 (dj) Measure correlation and propagate. Right-moving version.

Arguments

valsREAL, out

Outcome of the correlation measurement.

TenskkTYPE(tensor), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(tensorlist), inout

Left-right overlap of the MPDO.

kkINTEGER, in

Site for the measurement.

llINTEGER, in

System size.

ThetaTYPE(tensor), inout

Left overlap for the correlation measurement.

OpTYPE(tensor), inout

Operator for the correlation measurement.

PhaseOpTYPE(tensor), inout

Phase operator for propagation for the following correlation measurement.

hasphaseLOGICAL, in

Flag if the phase operator is contracted (.true.).

Sl_localTYPE(splitlink), in

Information how to split the local Hilbert space of the MPDO back into the (MPS) local Hilbert space.

Sl_rightTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.corr_meas_mpdo_tensorc_tensor()[source]

fortran-subroutine - September 2017 (dj) Measure correlation and propagate. Right-moving version.

Arguments

valsREAL, out

Outcome of the correlation measurement.

TenskkTYPE(tensorc), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(tensorlistc), inout

Left-right overlap of the MPDO.

kkINTEGER, in

Site for the measurement.

llINTEGER, in

System size.

ThetaTYPE(tensorc), inout

Left overlap for the correlation measurement.

OpTYPE(tensor), inout

Operator for the correlation measurement.

PhaseOpTYPE(tensor), inout

Phase operator for propagation for the following correlation measurement.

hasphaseLOGICAL, in

Flag if the phase operator is contracted (.true.).

Sl_localTYPE(splitlink), in

Information how to split the local Hilbert space of the MPDO back into the (MPS) local Hilbert space.

Sl_rightTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.corr_meas_mpdo_tensorc_tensorc()[source]

fortran-subroutine - September 2017 (dj) Measure correlation and propagate. Right-moving version.

Arguments

valsREAL, out

Outcome of the correlation measurement.

TenskkTYPE(tensorc), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(tensorlistc), inout

Left-right overlap of the MPDO.

kkINTEGER, in

Site for the measurement.

llINTEGER, in

System size.

ThetaTYPE(tensorc), inout

Left overlap for the correlation measurement.

OpTYPE(tensorc), inout

Operator for the correlation measurement.

PhaseOpTYPE(tensorc), inout

Phase operator for propagation for the following correlation measurement.

hasphaseLOGICAL, in

Flag if the phase operator is contracted (.true.).

Sl_localTYPE(splitlink), in

Information how to split the local Hilbert space of the MPDO back into the (MPS) local Hilbert space.

Sl_rightTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.corr_meas_mpdo_qtensor_qtensor()[source]

fortran-subroutine - September 2017 (dj) Measure correlation and propagate. Right-moving version.

Arguments

valsREAL, out

Outcome of the correlation measurement.

TenskkTYPE(qtensor), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(qtensorlist), inout

Left-right overlap of the MPDO.

kkINTEGER, in

Site for the measurement.

llINTEGER, in

System size.

ThetaTYPE(qtensor), inout

Left overlap for the correlation measurement.

OpTYPE(qtensor), inout

Operator for the correlation measurement.

PhaseOpTYPE(qtensor), inout

Phase operator for propagation for the following correlation measurement.

hasphaseLOGICAL, in

Flag if the phase operator is contracted (.true.).

Sl_localTYPE(splitlink), in

Information how to split the local Hilbert space of the MPDO back into the (MPS) local Hilbert space.

Sl_rightTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.corr_meas_mpdo_qtensorc_qtensor()[source]

fortran-subroutine - September 2017 (dj) Measure correlation and propagate. Right-moving version.

Arguments

valsREAL, out

Outcome of the correlation measurement.

TenskkTYPE(qtensorc), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(qtensorclist), inout

Left-right overlap of the MPDO.

kkINTEGER, in

Site for the measurement.

llINTEGER, in

System size.

ThetaTYPE(qtensorc), inout

Left overlap for the correlation measurement.

OpTYPE(qtensor), inout

Operator for the correlation measurement.

PhaseOpTYPE(qtensor), inout

Phase operator for propagation for the following correlation measurement.

hasphaseLOGICAL, in

Flag if the phase operator is contracted (.true.).

Sl_localTYPE(splitlink), in

Information how to split the local Hilbert space of the MPDO back into the (MPS) local Hilbert space.

Sl_rightTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.corr_meas_mpdo_qtensorc_qtensorc()[source]

fortran-subroutine - September 2017 (dj) Measure correlation and propagate. Right-moving version.

Arguments

valsREAL, out

Outcome of the correlation measurement.

TenskkTYPE(qtensorc), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(qtensorclist), inout

Left-right overlap of the MPDO.

kkINTEGER, in

Site for the measurement.

llINTEGER, in

System size.

ThetaTYPE(qtensorc), inout

Left overlap for the correlation measurement.

OpTYPE(qtensorc), inout

Operator for the correlation measurement.

PhaseOpTYPE(qtensorc), inout

Phase operator for propagation for the following correlation measurement.

hasphaseLOGICAL, in

Flag if the phase operator is contracted (.true.).

Sl_localTYPE(splitlink), in

Information how to split the local Hilbert space of the MPDO back into the (MPS) local Hilbert space.

Sl_rightTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.corr_meas_l_mpdo_tensor_tensor()[source]

fortran-subroutine - September 2017 (dj) Measure correlation and propagate. Left-moving version.

Arguments

valsREAL, out

Outcome of the correlation measurement.

TenskkTYPE(tensor), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(tensorlist), inout

Left-right overlap of the MPDO.

kkINTEGER, in

Site for the measurement.

llINTEGER, in

System size.

ThetaTYPE(tensor), inout

Right overlap for the correlation measurement.

OpTYPE(tensor), inout

Operator for the correlation measurement.

PhaseOpTYPE(tensor), inout

Phase operator for propagation for the following correlation measurement.

hasphaseLOGICAL, in

Flag if the phase operator is contracted (.true.).

Sl_localTYPE(splitlink), in

Information how to split the local Hilbert space of the MPDO back into the (MPS) local Hilbert space.

Sl_leftTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.corr_meas_l_mpdo_tensorc_tensor()[source]

fortran-subroutine - September 2017 (dj) Measure correlation and propagate. Left-moving version.

Arguments

valsREAL, out

Outcome of the correlation measurement.

TenskkTYPE(tensorc), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(tensorlistc), inout

Left-right overlap of the MPDO.

kkINTEGER, in

Site for the measurement.

llINTEGER, in

System size.

ThetaTYPE(tensorc), inout

Right overlap for the correlation measurement.

OpTYPE(tensor), inout

Operator for the correlation measurement.

PhaseOpTYPE(tensor), inout

Phase operator for propagation for the following correlation measurement.

hasphaseLOGICAL, in

Flag if the phase operator is contracted (.true.).

Sl_localTYPE(splitlink), in

Information how to split the local Hilbert space of the MPDO back into the (MPS) local Hilbert space.

Sl_leftTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.corr_meas_l_mpdo_tensorc_tensorc()[source]

fortran-subroutine - September 2017 (dj) Measure correlation and propagate. Left-moving version.

Arguments

valsREAL, out

Outcome of the correlation measurement.

TenskkTYPE(tensorc), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(tensorlistc), inout

Left-right overlap of the MPDO.

kkINTEGER, in

Site for the measurement.

llINTEGER, in

System size.

ThetaTYPE(tensorc), inout

Right overlap for the correlation measurement.

OpTYPE(tensorc), inout

Operator for the correlation measurement.

PhaseOpTYPE(tensorc), inout

Phase operator for propagation for the following correlation measurement.

hasphaseLOGICAL, in

Flag if the phase operator is contracted (.true.).

Sl_localTYPE(splitlink), in

Information how to split the local Hilbert space of the MPDO back into the (MPS) local Hilbert space.

Sl_leftTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.corr_meas_l_mpdo_qtensor_qtensor()[source]

fortran-subroutine - September 2017 (dj) Measure correlation and propagate. Left-moving version.

Arguments

valsREAL, out

Outcome of the correlation measurement.

TenskkTYPE(qtensor), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(qtensorlist), inout

Left-right overlap of the MPDO.

kkINTEGER, in

Site for the measurement.

llINTEGER, in

System size.

ThetaTYPE(qtensor), inout

Right overlap for the correlation measurement.

OpTYPE(qtensor), inout

Operator for the correlation measurement.

PhaseOpTYPE(qtensor), inout

Phase operator for propagation for the following correlation measurement.

hasphaseLOGICAL, in

Flag if the phase operator is contracted (.true.).

Sl_localTYPE(splitlink), in

Information how to split the local Hilbert space of the MPDO back into the (MPS) local Hilbert space.

Sl_leftTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.corr_meas_l_mpdo_qtensorc_qtensor()[source]

fortran-subroutine - September 2017 (dj) Measure correlation and propagate. Left-moving version.

Arguments

valsREAL, out

Outcome of the correlation measurement.

TenskkTYPE(qtensorc), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(qtensorclist), inout

Left-right overlap of the MPDO.

kkINTEGER, in

Site for the measurement.

llINTEGER, in

System size.

ThetaTYPE(qtensorc), inout

Right overlap for the correlation measurement.

OpTYPE(qtensor), inout

Operator for the correlation measurement.

PhaseOpTYPE(qtensor), inout

Phase operator for propagation for the following correlation measurement.

hasphaseLOGICAL, in

Flag if the phase operator is contracted (.true.).

Sl_localTYPE(splitlink), in

Information how to split the local Hilbert space of the MPDO back into the (MPS) local Hilbert space.

Sl_leftTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.corr_meas_l_mpdo_qtensorc_qtensorc()[source]

fortran-subroutine - September 2017 (dj) Measure correlation and propagate. Left-moving version.

Arguments

valsREAL, out

Outcome of the correlation measurement.

TenskkTYPE(qtensorc), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(qtensorclist), inout

Left-right overlap of the MPDO.

kkINTEGER, in

Site for the measurement.

llINTEGER, in

System size.

ThetaTYPE(qtensorc), inout

Right overlap for the correlation measurement.

OpTYPE(qtensorc), inout

Operator for the correlation measurement.

PhaseOpTYPE(qtensorc), inout

Phase operator for propagation for the following correlation measurement.

hasphaseLOGICAL, in

Flag if the phase operator is contracted (.true.).

Sl_localTYPE(splitlink), in

Information how to split the local Hilbert space of the MPDO back into the (MPS) local Hilbert space.

Sl_leftTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.destroy_mpdo()[source]

fortran-subroutine - September 2017 (dj) Deallocate all variables for an MPDO.

Arguments

RhoTYPE(mpdo), inout

MPDO to be deallocated.

Source Code

show / hide f90 code
MPDOOps_f90.destroy_mpdoc()[source]

fortran-subroutine - September 2017 (dj) Deallocate all variables for an MPDO.

Arguments

RhoTYPE(mpdoc), inout

MPDO to be deallocated.

Source Code

show / hide f90 code
MPDOOps_f90.destroy_qmpdo()[source]

fortran-subroutine - September 2017 (dj) Deallocate all variables for an MPDO.

Arguments

RhoTYPE(qmpdo), inout

MPDO to be deallocated.

Source Code

show / hide f90 code
MPDOOps_f90.destroy_qmpdoc()[source]

fortran-subroutine - September 2017 (dj) Deallocate all variables for an MPDO.

Arguments

RhoTYPE(qmpdoc), inout

MPDO to be deallocated.

Source Code

show / hide f90 code
MPDOOps_f90.distance_mpdo_mps()[source]

fortran-function - September 2017 (dj) Measure the distance between an MPDO and an MPS.

Arguments

RhoTYPE(mpdo), inout

Density matrix for distance measure.

PsiTYPE(mps), in

Pure state in the distance measure.

dist_typeCHARACTER, OPTIONAL, in

Specify the distance to be calculated. Only option right now is ‘F’ (fidelity, default).

Source Code

show / hide f90 code
MPDOOps_f90.distance_mpdo_mpsc()[source]

fortran-function - September 2017 (dj) Measure the distance between an MPDO and an MPS.

Arguments

RhoTYPE(mpdo), inout

Density matrix for distance measure.

PsiTYPE(mpsc), in

Pure state in the distance measure.

dist_typeCHARACTER, OPTIONAL, in

Specify the distance to be calculated. Only option right now is ‘F’ (fidelity, default).

Source Code

show / hide f90 code
MPDOOps_f90.distance_mpdoc_mps()[source]

fortran-function - September 2017 (dj) Measure the distance between an MPDO and an MPS.

Arguments

RhoTYPE(mpdoc), inout

Density matrix for distance measure.

PsiTYPE(mps), in

Pure state in the distance measure.

dist_typeCHARACTER, OPTIONAL, in

Specify the distance to be calculated. Only option right now is ‘F’ (fidelity, default).

Source Code

show / hide f90 code
MPDOOps_f90.distance_mpdoc_mpsc()[source]

fortran-function - September 2017 (dj) Measure the distance between an MPDO and an MPS.

Arguments

RhoTYPE(mpdoc), inout

Density matrix for distance measure.

PsiTYPE(mpsc), in

Pure state in the distance measure.

dist_typeCHARACTER, OPTIONAL, in

Specify the distance to be calculated. Only option right now is ‘F’ (fidelity, default).

Source Code

show / hide f90 code
MPDOOps_f90.distance_qmpdo_qmps()[source]

fortran-function - September 2017 (dj) Measure the distance between an MPDO and an MPS.

Arguments

RhoTYPE(qmpdo), inout

Density matrix for distance measure.

PsiTYPE(qmps), in

Pure state in the distance measure.

dist_typeCHARACTER, OPTIONAL, in

Specify the distance to be calculated. Only option right now is ‘F’ (fidelity, default).

Source Code

show / hide f90 code
MPDOOps_f90.distance_qmpdo_qmpsc()[source]

fortran-function - September 2017 (dj) Measure the distance between an MPDO and an MPS.

Arguments

RhoTYPE(qmpdo), inout

Density matrix for distance measure.

PsiTYPE(qmpsc), in

Pure state in the distance measure.

dist_typeCHARACTER, OPTIONAL, in

Specify the distance to be calculated. Only option right now is ‘F’ (fidelity, default).

Source Code

show / hide f90 code
MPDOOps_f90.distance_qmpdoc_qmps()[source]

fortran-function - September 2017 (dj) Measure the distance between an MPDO and an MPS.

Arguments

RhoTYPE(qmpdoc), inout

Density matrix for distance measure.

PsiTYPE(qmps), in

Pure state in the distance measure.

dist_typeCHARACTER, OPTIONAL, in

Specify the distance to be calculated. Only option right now is ‘F’ (fidelity, default).

Source Code

show / hide f90 code
MPDOOps_f90.distance_qmpdoc_qmpsc()[source]

fortran-function - September 2017 (dj) Measure the distance between an MPDO and an MPS.

Arguments

RhoTYPE(qmpdoc), inout

Density matrix for distance measure.

PsiTYPE(qmpsc), in

Pure state in the distance measure.

dist_typeCHARACTER, OPTIONAL, in

Specify the distance to be calculated. Only option right now is ‘F’ (fidelity, default).

Source Code

show / hide f90 code
MPDOOps_f90.fidelity_mpdo_mps()[source]

fortran-function - November 2017 (dj) Calculate the fidelity between a density matrix (MPDO) \rho and a pure state \sigma defined as Tr \sqrt{\sqrt{\sigma} \rho \sqrt{\sigma}}.

Arguments

RhoTYPE(mpdo), in

Density Matrix represented as MPDO for the distance measurement.

PsiTYPE(mps), in

Pure state in the fidelity measurement represented as MPS.

Details

The MPS in converted into an MPDO and we calculate the overlap between the two superkets. This approach only works for a density matrix and a pure state.

Source Code

show / hide f90 code
MPDOOps_f90.fidelity_mpdo_mpsc()[source]

fortran-function - November 2017 (dj) Calculate the fidelity between a density matrix (MPDO) \rho and a pure state \sigma defined as Tr \sqrt{\sqrt{\sigma} \rho \sqrt{\sigma}}.

Arguments

RhoTYPE(mpdo), in

Density Matrix represented as MPDO for the distance measurement.

PsiTYPE(mpsc), in

Pure state in the fidelity measurement represented as MPS.

Details

The MPS in converted into an MPDO and we calculate the overlap between the two superkets. This approach only works for a density matrix and a pure state.

Source Code

show / hide f90 code
MPDOOps_f90.fidelity_mpdoc_mps()[source]

fortran-function - November 2017 (dj) Calculate the fidelity between a density matrix (MPDO) \rho and a pure state \sigma defined as Tr \sqrt{\sqrt{\sigma} \rho \sqrt{\sigma}}.

Arguments

RhoTYPE(mpdoc), in

Density Matrix represented as MPDO for the distance measurement.

PsiTYPE(mps), in

Pure state in the fidelity measurement represented as MPS.

Details

The MPS in converted into an MPDO and we calculate the overlap between the two superkets. This approach only works for a density matrix and a pure state.

Source Code

show / hide f90 code
MPDOOps_f90.fidelity_mpdoc_mpsc()[source]

fortran-function - November 2017 (dj) Calculate the fidelity between a density matrix (MPDO) \rho and a pure state \sigma defined as Tr \sqrt{\sqrt{\sigma} \rho \sqrt{\sigma}}.

Arguments

RhoTYPE(mpdoc), in

Density Matrix represented as MPDO for the distance measurement.

PsiTYPE(mpsc), in

Pure state in the fidelity measurement represented as MPS.

Details

The MPS in converted into an MPDO and we calculate the overlap between the two superkets. This approach only works for a density matrix and a pure state.

Source Code

show / hide f90 code
MPDOOps_f90.fidelity_qmpdo_qmps()[source]

fortran-function - November 2017 (dj) Calculate the fidelity between a density matrix (MPDO) \rho and a pure state \sigma defined as Tr \sqrt{\sqrt{\sigma} \rho \sqrt{\sigma}}.

Arguments

RhoTYPE(qmpdo), in

Density Matrix represented as MPDO for the distance measurement.

PsiTYPE(qmps), in

Pure state in the fidelity measurement represented as MPS.

Details

The MPS in converted into an MPDO and we calculate the overlap between the two superkets. This approach only works for a density matrix and a pure state.

Source Code

show / hide f90 code
MPDOOps_f90.fidelity_qmpdo_qmpsc()[source]

fortran-function - November 2017 (dj) Calculate the fidelity between a density matrix (MPDO) \rho and a pure state \sigma defined as Tr \sqrt{\sqrt{\sigma} \rho \sqrt{\sigma}}.

Arguments

RhoTYPE(qmpdo), in

Density Matrix represented as MPDO for the distance measurement.

PsiTYPE(qmpsc), in

Pure state in the fidelity measurement represented as MPS.

Details

The MPS in converted into an MPDO and we calculate the overlap between the two superkets. This approach only works for a density matrix and a pure state.

Source Code

show / hide f90 code
MPDOOps_f90.fidelity_qmpdoc_qmps()[source]

fortran-function - November 2017 (dj) Calculate the fidelity between a density matrix (MPDO) \rho and a pure state \sigma defined as Tr \sqrt{\sqrt{\sigma} \rho \sqrt{\sigma}}.

Arguments

RhoTYPE(qmpdoc), in

Density Matrix represented as MPDO for the distance measurement.

PsiTYPE(qmps), in

Pure state in the fidelity measurement represented as MPS.

Details

The MPS in converted into an MPDO and we calculate the overlap between the two superkets. This approach only works for a density matrix and a pure state.

Source Code

show / hide f90 code
MPDOOps_f90.fidelity_qmpdoc_qmpsc()[source]

fortran-function - November 2017 (dj) Calculate the fidelity between a density matrix (MPDO) \rho and a pure state \sigma defined as Tr \sqrt{\sqrt{\sigma} \rho \sqrt{\sigma}}.

Arguments

RhoTYPE(qmpdoc), in

Density Matrix represented as MPDO for the distance measurement.

PsiTYPE(qmpsc), in

Pure state in the fidelity measurement represented as MPS.

Details

The MPS in converted into an MPDO and we calculate the overlap between the two superkets. This approach only works for a density matrix and a pure state.

Source Code

show / hide f90 code
MPDOOps_f90.meas_mpo_mpdo_mpo()[source]

fortran-subroutine - November 2017 (dj) Compute the expectation value of an MPO on a MPDO.

Arguments

valREAL_OR_COMPLEX, out

Result of the measurement of the MPO applied to Psi.

HTYPE(mpo), inout

Representation of the MPO to be measured.

RhoTYPE(mpdo), inout

Measure this density matrix.

Source Code

show / hide f90 code
MPDOOps_f90.meas_mpo_mpdoc_mpo()[source]

fortran-subroutine - November 2017 (dj) Compute the expectation value of an MPO on a MPDO.

Arguments

valREAL_OR_COMPLEX, out

Result of the measurement of the MPO applied to Psi.

HTYPE(mpo), inout

Representation of the MPO to be measured.

RhoTYPE(mpdoc), inout

Measure this density matrix.

Source Code

show / hide f90 code
MPDOOps_f90.meas_mpo_mpdoc_mpoc()[source]

fortran-subroutine - November 2017 (dj) Compute the expectation value of an MPO on a MPDO.

Arguments

valREAL_OR_COMPLEX, out

Result of the measurement of the MPO applied to Psi.

HTYPE(mpoc), inout

Representation of the MPO to be measured.

RhoTYPE(mpdoc), inout

Measure this density matrix.

Source Code

show / hide f90 code
MPDOOps_f90.meas_mpo_qmpdo_qmpo()[source]

fortran-subroutine - November 2017 (dj) Compute the expectation value of an MPO on a MPDO.

Arguments

valREAL_OR_COMPLEX, out

Result of the measurement of the MPO applied to Psi.

HTYPE(qmpo), inout

Representation of the MPO to be measured.

RhoTYPE(qmpdo), inout

Measure this density matrix.

Source Code

show / hide f90 code
MPDOOps_f90.meas_mpo_qmpdoc_qmpo()[source]

fortran-subroutine - November 2017 (dj) Compute the expectation value of an MPO on a MPDO.

Arguments

valREAL_OR_COMPLEX, out

Result of the measurement of the MPO applied to Psi.

HTYPE(qmpo), inout

Representation of the MPO to be measured.

RhoTYPE(qmpdoc), inout

Measure this density matrix.

Source Code

show / hide f90 code
MPDOOps_f90.meas_mpo_qmpdoc_qmpoc()[source]

fortran-subroutine - November 2017 (dj) Compute the expectation value of an MPO on a MPDO.

Arguments

valREAL_OR_COMPLEX, out

Result of the measurement of the MPO applied to Psi.

HTYPE(qmpoc), inout

Representation of the MPO to be measured.

RhoTYPE(qmpdoc), inout

Measure this density matrix.

Source Code

show / hide f90 code
MPDOOps_f90.norm_mpdo()[source]

fortran-function - September 2017 (dj) Calculate the norm of an MPDO, i.e., the trace.

Arguments

RhoTYPE(mpdo), inout

Calculate the trace of this density matrix.

LRTYPE(tensorlist), OPTIONAL, inout

If LR and kk given, the overlap can be used to speed-up the calculation of the norm.

kkINTEGER, OPTIONAL, in

The center of the LR overlap.

Source Code

show / hide f90 code
MPDOOps_f90.norm_mpdoc()[source]

fortran-function - September 2017 (dj) Calculate the norm of an MPDO, i.e., the trace.

Arguments

RhoTYPE(mpdoc), inout

Calculate the trace of this density matrix.

LRTYPE(tensorlistc), OPTIONAL, inout

If LR and kk given, the overlap can be used to speed-up the calculation of the norm.

kkINTEGER, OPTIONAL, in

The center of the LR overlap.

Source Code

show / hide f90 code
MPDOOps_f90.norm_qmpdo()[source]

fortran-function - September 2017 (dj) Calculate the norm of an MPDO, i.e., the trace.

Arguments

RhoTYPE(qmpdo), inout

Calculate the trace of this density matrix.

LRTYPE(qtensorlist), OPTIONAL, inout

If LR and kk given, the overlap can be used to speed-up the calculation of the norm.

kkINTEGER, OPTIONAL, in

The center of the LR overlap.

Source Code

show / hide f90 code
MPDOOps_f90.norm_qmpdoc()[source]

fortran-function - September 2017 (dj) Calculate the norm of an MPDO, i.e., the trace.

Arguments

RhoTYPE(qmpdoc), inout

Calculate the trace of this density matrix.

LRTYPE(qtensorclist), OPTIONAL, inout

If LR and kk given, the overlap can be used to speed-up the calculation of the norm.

kkINTEGER, OPTIONAL, in

The center of the LR overlap.

Source Code

show / hide f90 code
MPDOOps_f90.ptm_left_mpdo_tensor()[source]

fortran-subroutine - September 2017 (dj) Propagation of transfer matrix for MPDO, e.g. necessary for measurements. This is the left-moving version.

Arguments

MatTYPE(tensor), inout

On exit, new transfer matrix for the corresponding tensor. Tranfer matrix is actually a vector for MPDOs.

TensTYPE(tensor), inout

Represents the tensor of the corresponding site. It is a rank-3 tensor.

leftmostLOGICAL, in

Flag if the rightmost site is built (true), otherwise false.

Sl_localTYPE(splitlink), in

Information how to split the local Hilbert space of the MPDO back into the (MPS) local Hilbert space.

Sl_rightTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

MatinTYPE(tensor), OPTIONAL, inout

Transfer matrix of the previous site. Only referenced if not rightmost.

Source Code

show / hide f90 code
MPDOOps_f90.ptm_left_mpdo_tensorc()[source]

fortran-subroutine - September 2017 (dj) Propagation of transfer matrix for MPDO, e.g. necessary for measurements. This is the left-moving version.

Arguments

MatTYPE(tensorc), inout

On exit, new transfer matrix for the corresponding tensor. Tranfer matrix is actually a vector for MPDOs.

TensTYPE(tensorc), inout

Represents the tensor of the corresponding site. It is a rank-3 tensor.

leftmostLOGICAL, in

Flag if the rightmost site is built (true), otherwise false.

Sl_localTYPE(splitlink), in

Information how to split the local Hilbert space of the MPDO back into the (MPS) local Hilbert space.

Sl_rightTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

MatinTYPE(tensorc), OPTIONAL, inout

Transfer matrix of the previous site. Only referenced if not rightmost.

Source Code

show / hide f90 code
MPDOOps_f90.ptm_left_mpdo_qtensor()[source]

fortran-subroutine - September 2017 (dj) Propagation of transfer matrix for MPDO, e.g. necessary for measurements. This is the left-moving version.

Arguments

MatTYPE(qtensor), inout

On exit, new transfer matrix for the corresponding tensor. Tranfer matrix is actually a vector for MPDOs.

TensTYPE(qtensor), inout

Represents the tensor of the corresponding site. It is a rank-3 tensor.

leftmostLOGICAL, in

Flag if the rightmost site is built (true), otherwise false.

Sl_localTYPE(splitlink), in

Information how to split the local Hilbert space of the MPDO back into the (MPS) local Hilbert space.

Sl_rightTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

MatinTYPE(qtensor), OPTIONAL, inout

Transfer matrix of the previous site. Only referenced if not rightmost.

Source Code

show / hide f90 code
MPDOOps_f90.ptm_left_mpdo_qtensorc()[source]

fortran-subroutine - September 2017 (dj) Propagation of transfer matrix for MPDO, e.g. necessary for measurements. This is the left-moving version.

Arguments

MatTYPE(qtensorc), inout

On exit, new transfer matrix for the corresponding tensor. Tranfer matrix is actually a vector for MPDOs.

TensTYPE(qtensorc), inout

Represents the tensor of the corresponding site. It is a rank-3 tensor.

leftmostLOGICAL, in

Flag if the rightmost site is built (true), otherwise false.

Sl_localTYPE(splitlink), in

Information how to split the local Hilbert space of the MPDO back into the (MPS) local Hilbert space.

Sl_rightTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

MatinTYPE(qtensorc), OPTIONAL, inout

Transfer matrix of the previous site. Only referenced if not rightmost.

Source Code

show / hide f90 code
MPDOOps_f90.ptm_left_mpo_mpdo_tensor_tensor()[source]

fortran-subroutine - November 2017 (dj) Build the transfer matrix for a site between a density matrix represented as MPDO and an MPO.

Arguments

MatTYPE(tensorlist), inout

On exit, new transfer matrix. If ‘Matin’ is not given, this is treated as incoming transfer matrix.

TenskkTYPE(tensor), inout

Represents the density matrix of the MPDO on this site.

HmatTYPE(tensor), in

Represents the Hamiltonian on this site.

rightmostLOGICAL, in

Flag if this is the first site. If true, there is no transfer matrix on the right.

Sl_rightTYPE(splitlink), in

Contains the information to split the link to the right of the MPDO.

MatinTYPE(tensorlist), OPTIONAL, in

Transfer matrix of the site to the right. Not referenced if rightmost is true.

Source Code

show / hide f90 code
MPDOOps_f90.ptm_left_mpo_mpdo_tensorc_tensor()[source]

fortran-subroutine - November 2017 (dj) Build the transfer matrix for a site between a density matrix represented as MPDO and an MPO.

Arguments

MatTYPE(tensorlistc), inout

On exit, new transfer matrix. If ‘Matin’ is not given, this is treated as incoming transfer matrix.

TenskkTYPE(tensorc), inout

Represents the density matrix of the MPDO on this site.

HmatTYPE(tensorc), in

Represents the Hamiltonian on this site.

rightmostLOGICAL, in

Flag if this is the first site. If true, there is no transfer matrix on the right.

Sl_rightTYPE(splitlink), in

Contains the information to split the link to the right of the MPDO.

MatinTYPE(tensorlistc), OPTIONAL, in

Transfer matrix of the site to the right. Not referenced if rightmost is true.

Source Code

show / hide f90 code
MPDOOps_f90.ptm_left_mpo_mpdo_tensorc_tensorc()[source]

fortran-subroutine - November 2017 (dj) Build the transfer matrix for a site between a density matrix represented as MPDO and an MPO.

Arguments

MatTYPE(tensorlistc), inout

On exit, new transfer matrix. If ‘Matin’ is not given, this is treated as incoming transfer matrix.

TenskkTYPE(tensorc), inout

Represents the density matrix of the MPDO on this site.

HmatTYPE(tensorc), in

Represents the Hamiltonian on this site.

rightmostLOGICAL, in

Flag if this is the first site. If true, there is no transfer matrix on the right.

Sl_rightTYPE(splitlink), in

Contains the information to split the link to the right of the MPDO.

MatinTYPE(tensorlistc), OPTIONAL, in

Transfer matrix of the site to the right. Not referenced if rightmost is true.

Source Code

show / hide f90 code
MPDOOps_f90.ptm_left_mpo_mpdo_qtensor_qtensor()[source]

fortran-subroutine - November 2017 (dj) Build the transfer matrix for a site between a density matrix represented as MPDO and an MPO.

Arguments

MatTYPE(qtensorlist), inout

On exit, new transfer matrix. If ‘Matin’ is not given, this is treated as incoming transfer matrix.

TenskkTYPE(qtensor), inout

Represents the density matrix of the MPDO on this site.

HmatTYPE(qtensor), in

Represents the Hamiltonian on this site.

rightmostLOGICAL, in

Flag if this is the first site. If true, there is no transfer matrix on the right.

Sl_rightTYPE(splitlink), in

Contains the information to split the link to the right of the MPDO.

MatinTYPE(qtensorlist), OPTIONAL, in

Transfer matrix of the site to the right. Not referenced if rightmost is true.

Source Code

show / hide f90 code
MPDOOps_f90.ptm_left_mpo_mpdo_qtensorc_qtensor()[source]

fortran-subroutine - November 2017 (dj) Build the transfer matrix for a site between a density matrix represented as MPDO and an MPO.

Arguments

MatTYPE(qtensorclist), inout

On exit, new transfer matrix. If ‘Matin’ is not given, this is treated as incoming transfer matrix.

TenskkTYPE(qtensorc), inout

Represents the density matrix of the MPDO on this site.

HmatTYPE(qtensorc), in

Represents the Hamiltonian on this site.

rightmostLOGICAL, in

Flag if this is the first site. If true, there is no transfer matrix on the right.

Sl_rightTYPE(splitlink), in

Contains the information to split the link to the right of the MPDO.

MatinTYPE(qtensorclist), OPTIONAL, in

Transfer matrix of the site to the right. Not referenced if rightmost is true.

Source Code

show / hide f90 code
MPDOOps_f90.ptm_left_mpo_mpdo_qtensorc_qtensorc()[source]

fortran-subroutine - November 2017 (dj) Build the transfer matrix for a site between a density matrix represented as MPDO and an MPO.

Arguments

MatTYPE(qtensorclist), inout

On exit, new transfer matrix. If ‘Matin’ is not given, this is treated as incoming transfer matrix.

TenskkTYPE(qtensorc), inout

Represents the density matrix of the MPDO on this site.

HmatTYPE(qtensorc), in

Represents the Hamiltonian on this site.

rightmostLOGICAL, in

Flag if this is the first site. If true, there is no transfer matrix on the right.

Sl_rightTYPE(splitlink), in

Contains the information to split the link to the right of the MPDO.

MatinTYPE(qtensorclist), OPTIONAL, in

Transfer matrix of the site to the right. Not referenced if rightmost is true.

Source Code

show / hide f90 code
MPDOOps_f90.ptm_right_mpdo_tensor()[source]

fortran-subroutine - September 2017 (dj) Propagation of transfer matrix for MPDO, e.g. necessary for measurements. This is the right-moving version.

Arguments

MatTYPE(tensor), inout

On exit, new transfer matrix for the corresponding tensor. Tranfer matrix is actually a vector for MPDOs.

TensTYPE(tensor), inout

Represents the tensor of the corresponding site. It is a rank-3 tensor.

leftmostLOGICAL, in

Flag if the leftmost site is built (true), otherwise false.

Sl_localTYPE(splitlink), in

Information how to split the local Hilbert space of the MPDO back into the (MPS) local Hilbert space.

Sl_leftTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

MatinTYPE(tensor), OPTIONAL, inout

Transfer matrix of the previous site. Only referenced if not leftmost.

Source Code

show / hide f90 code
MPDOOps_f90.ptm_right_mpdo_tensorc()[source]

fortran-subroutine - September 2017 (dj) Propagation of transfer matrix for MPDO, e.g. necessary for measurements. This is the right-moving version.

Arguments

MatTYPE(tensorc), inout

On exit, new transfer matrix for the corresponding tensor. Tranfer matrix is actually a vector for MPDOs.

TensTYPE(tensorc), inout

Represents the tensor of the corresponding site. It is a rank-3 tensor.

leftmostLOGICAL, in

Flag if the leftmost site is built (true), otherwise false.

Sl_localTYPE(splitlink), in

Information how to split the local Hilbert space of the MPDO back into the (MPS) local Hilbert space.

Sl_leftTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

MatinTYPE(tensorc), OPTIONAL, inout

Transfer matrix of the previous site. Only referenced if not leftmost.

Source Code

show / hide f90 code
MPDOOps_f90.ptm_right_mpdo_qtensor()[source]

fortran-subroutine - September 2017 (dj) Propagation of transfer matrix for MPDO, e.g. necessary for measurements. This is the right-moving version.

Arguments

MatTYPE(qtensor), inout

On exit, new transfer matrix for the corresponding tensor. Tranfer matrix is actually a vector for MPDOs.

TensTYPE(qtensor), inout

Represents the tensor of the corresponding site. It is a rank-3 tensor.

leftmostLOGICAL, in

Flag if the leftmost site is built (true), otherwise false.

Sl_localTYPE(splitlink), in

Information how to split the local Hilbert space of the MPDO back into the (MPS) local Hilbert space.

Sl_leftTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

MatinTYPE(qtensor), OPTIONAL, inout

Transfer matrix of the previous site. Only referenced if not leftmost.

Source Code

show / hide f90 code
MPDOOps_f90.ptm_right_mpdo_qtensorc()[source]

fortran-subroutine - September 2017 (dj) Propagation of transfer matrix for MPDO, e.g. necessary for measurements. This is the right-moving version.

Arguments

MatTYPE(qtensorc), inout

On exit, new transfer matrix for the corresponding tensor. Tranfer matrix is actually a vector for MPDOs.

TensTYPE(qtensorc), inout

Represents the tensor of the corresponding site. It is a rank-3 tensor.

leftmostLOGICAL, in

Flag if the leftmost site is built (true), otherwise false.

Sl_localTYPE(splitlink), in

Information how to split the local Hilbert space of the MPDO back into the (MPS) local Hilbert space.

Sl_leftTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

MatinTYPE(qtensorc), OPTIONAL, inout

Transfer matrix of the previous site. Only referenced if not leftmost.

Source Code

show / hide f90 code
MPDOOps_f90.purity_mpdo()[source]

fortran-function - September 2017 (dj) Calculate the purity of a MPDO.

Arguments

RhoTYPE(mpdo), in

Calculate purity of this density matrix.

Source Code

show / hide f90 code
MPDOOps_f90.purity_mpdoc()[source]

fortran-function - September 2017 (dj) Calculate the purity of a MPDO.

Arguments

RhoTYPE(mpdoc), in

Calculate purity of this density matrix.

Source Code

show / hide f90 code
MPDOOps_f90.purity_qmpdo()[source]

fortran-function - September 2017 (dj) Calculate the purity of a MPDO.

Arguments

RhoTYPE(qmpdo), in

Calculate purity of this density matrix.

Source Code

show / hide f90 code
MPDOOps_f90.purity_qmpdoc()[source]

fortran-function - September 2017 (dj) Calculate the purity of a MPDO.

Arguments

RhoTYPE(qmpdoc), in

Calculate purity of this density matrix.

Source Code

show / hide f90 code
MPDOOps_f90.read_mpdo()[source]

fortran-subroutine - September 2017 (dj) Read an MPDO given a filename and a unit (assuming you know the type already).

Arguments

RhoTYPE(mpdo), in

Read MPDO in file to this MPDO

flnmCHARACTER(100), in

the MPDO is stored in this file.

unitINTEGER, in

open file on this unit

formCHARACTER, in

Binary (‘B’) or human readable (‘H’)

skipLOGICAL, OPTIONAL, in

.true. : the first two lines were already read somewhere. Do not read them here (those lines contain the information about the type of the MPDO in the file, real/complex, no symm/symmetries). Default to .false.

errflagINTEGER, out

0 : could read MPDO; 1 : type of MPDO does not correspond type of the MPDO in the file (only checked for skip1st2=false).

Details

Currently, it is just reading in the Superket-MPS.

Source Code

show / hide f90 code
MPDOOps_f90.read_mpdoc()[source]

fortran-subroutine - September 2017 (dj) Read an MPDO given a filename and a unit (assuming you know the type already).

Arguments

RhoTYPE(mpdoc), in

Read MPDO in file to this MPDO

flnmCHARACTER(100), in

the MPDO is stored in this file.

unitINTEGER, in

open file on this unit

formCHARACTER, in

Binary (‘B’) or human readable (‘H’)

skipLOGICAL, OPTIONAL, in

.true. : the first two lines were already read somewhere. Do not read them here (those lines contain the information about the type of the MPDO in the file, real/complex, no symm/symmetries). Default to .false.

errflagINTEGER, out

0 : could read MPDO; 1 : type of MPDO does not correspond type of the MPDO in the file (only checked for skip1st2=false).

Details

Currently, it is just reading in the Superket-MPS.

Source Code

show / hide f90 code
MPDOOps_f90.read_qmpdo()[source]

fortran-subroutine - September 2017 (dj) Read an MPDO given a filename and a unit (assuming you know the type already).

Arguments

RhoTYPE(qmpdo), in

Read MPDO in file to this MPDO

flnmCHARACTER(100), in

the MPDO is stored in this file.

unitINTEGER, in

open file on this unit

formCHARACTER, in

Binary (‘B’) or human readable (‘H’)

skipLOGICAL, OPTIONAL, in

.true. : the first two lines were already read somewhere. Do not read them here (those lines contain the information about the type of the MPDO in the file, real/complex, no symm/symmetries). Default to .false.

errflagINTEGER, out

0 : could read MPDO; 1 : type of MPDO does not correspond type of the MPDO in the file (only checked for skip1st2=false).

Details

Currently, it is just reading in the Superket-MPS.

Source Code

show / hide f90 code
MPDOOps_f90.read_qmpdoc()[source]

fortran-subroutine - September 2017 (dj) Read an MPDO given a filename and a unit (assuming you know the type already).

Arguments

RhoTYPE(qmpdoc), in

Read MPDO in file to this MPDO

flnmCHARACTER(100), in

the MPDO is stored in this file.

unitINTEGER, in

open file on this unit

formCHARACTER, in

Binary (‘B’) or human readable (‘H’)

skipLOGICAL, OPTIONAL, in

.true. : the first two lines were already read somewhere. Do not read them here (those lines contain the information about the type of the MPDO in the file, real/complex, no symm/symmetries). Default to .false.

errflagINTEGER, out

0 : could read MPDO; 1 : type of MPDO does not correspond type of the MPDO in the file (only checked for skip1st2=false).

Details

Currently, it is just reading in the Superket-MPS.

Source Code

show / hide f90 code
MPDOOps_f90.rho_kk_mpdo()[source]

fortran-subroutine - September 2017 (dj) Calculate the single-site reduced density matrix for an MPDO.

Arguments

RhokkTYPE(tensor), out

On exit, the reduced density matrix on site kk of the density matrix.

RhoTYPE(mpdo), out

The complete density matrix represented as MPDO.

LRTYPE(tensorlist), out

The overlaps of the MPDO. They are needed, as their is no gauge useful for calculating the reduced density matrices.

kkINTEGER, out

Calculate reduced density matrix for this site. Must be the center of the LR overlaps.

Source Code

show / hide f90 code
MPDOOps_f90.rho_kk_mpdoc()[source]

fortran-subroutine - September 2017 (dj) Calculate the single-site reduced density matrix for an MPDO.

Arguments

RhokkTYPE(tensorc), out

On exit, the reduced density matrix on site kk of the density matrix.

RhoTYPE(mpdoc), out

The complete density matrix represented as MPDO.

LRTYPE(tensorlistc), out

The overlaps of the MPDO. They are needed, as their is no gauge useful for calculating the reduced density matrices.

kkINTEGER, out

Calculate reduced density matrix for this site. Must be the center of the LR overlaps.

Source Code

show / hide f90 code
MPDOOps_f90.rho_kk_qmpdo()[source]

fortran-subroutine - September 2017 (dj) Calculate the single-site reduced density matrix for an MPDO.

Arguments

RhokkTYPE(qtensor), out

On exit, the reduced density matrix on site kk of the density matrix.

RhoTYPE(qmpdo), out

The complete density matrix represented as MPDO.

LRTYPE(qtensorlist), out

The overlaps of the MPDO. They are needed, as their is no gauge useful for calculating the reduced density matrices.

kkINTEGER, out

Calculate reduced density matrix for this site. Must be the center of the LR overlaps.

Source Code

show / hide f90 code
MPDOOps_f90.rho_kk_qmpdoc()[source]

fortran-subroutine - September 2017 (dj) Calculate the single-site reduced density matrix for an MPDO.

Arguments

RhokkTYPE(qtensorc), out

On exit, the reduced density matrix on site kk of the density matrix.

RhoTYPE(qmpdoc), out

The complete density matrix represented as MPDO.

LRTYPE(qtensorclist), out

The overlaps of the MPDO. They are needed, as their is no gauge useful for calculating the reduced density matrices.

kkINTEGER, out

Calculate reduced density matrix for this site. Must be the center of the LR overlaps.

Source Code

show / hide f90 code
MPDOOps_f90.rhoij_init_mpdo_tensor()[source]

fortran-subroutine - September 2017 (dj) Initialize the measurement for the two-site reduced density matrix. It builds the left overlap leaving the local Hilbert space uncontracted and as a single link.

Arguments

TenskkTYPE(tensor), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(tensor), inout

LR is the left-right overlap of the MPDO.

kkINTEGER, in

Site index of the first site of the reduced density matrix. Necessary to address the correct LR overlap. kk must be the center of the LR overlap.

ThetaTYPE(tensor), inout

On exit, contraction of the tensor on site kk with the LR overlap.

Sl_leftTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.rhoij_init_mpdo_tensorc()[source]

fortran-subroutine - September 2017 (dj) Initialize the measurement for the two-site reduced density matrix. It builds the left overlap leaving the local Hilbert space uncontracted and as a single link.

Arguments

TenskkTYPE(tensorc), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(tensorc), inout

LR is the left-right overlap of the MPDO.

kkINTEGER, in

Site index of the first site of the reduced density matrix. Necessary to address the correct LR overlap. kk must be the center of the LR overlap.

ThetaTYPE(tensorc), inout

On exit, contraction of the tensor on site kk with the LR overlap.

Sl_leftTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.rhoij_init_mpdo_qtensor()[source]

fortran-subroutine - September 2017 (dj) Initialize the measurement for the two-site reduced density matrix. It builds the left overlap leaving the local Hilbert space uncontracted and as a single link.

Arguments

TenskkTYPE(qtensor), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(qtensor), inout

LR is the left-right overlap of the MPDO.

kkINTEGER, in

Site index of the first site of the reduced density matrix. Necessary to address the correct LR overlap. kk must be the center of the LR overlap.

ThetaTYPE(qtensor), inout

On exit, contraction of the tensor on site kk with the LR overlap.

Sl_leftTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.rhoij_init_mpdo_qtensorc()[source]

fortran-subroutine - September 2017 (dj) Initialize the measurement for the two-site reduced density matrix. It builds the left overlap leaving the local Hilbert space uncontracted and as a single link.

Arguments

TenskkTYPE(qtensorc), inout

Rank-3 tensor representing site kk in the superket of the MPDO.

LRTYPE(qtensorc), inout

LR is the left-right overlap of the MPDO.

kkINTEGER, in

Site index of the first site of the reduced density matrix. Necessary to address the correct LR overlap. kk must be the center of the LR overlap.

ThetaTYPE(qtensorc), inout

On exit, contraction of the tensor on site kk with the LR overlap.

Sl_leftTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

Source Code

show / hide f90 code
MPDOOps_f90.rhoij_meas_mpdo_tensor_tensor()[source]

fortran-subroutine - September 2017 (dj) Measure two-site reduced density matrix for sites i and j and propagate for the next measurement.

Arguments

RhosijTYPE(tensor)(*, *), inout

Matrix containing two-site density matrices.

TensjjTYPE(tensor), inout

Rank-3 tensor representing site jj in the superket of the MPDO.

LRTYPE(tensorlist), inout

Left-right overlap of the MPDO.

iiINTEGER, inout

Index of the left site of the density matrix kept in Theta.

jjINTEGER, inout

Index of the tensors Tensjj.

llINTEGER, inout

Number of sites in the system, used to detect when propagation is stopped.

ThetaTYPE(tensor), inout

Tensor containing the contractions from the left part of the system.

PhaseOpTYPE(tensor), inout

Phase operator to be contracted within the propagation.

hasphaseLOGICAL, inout

Flag if phase operator is present (.true.).

Sl_localTYPE(splitlink), in

Defines the splitting of the local dimension link in the MPDO.

Sl_rightTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

skipLOGICAL, OPTIONAL, inout

If present and true, the measurement of the density matrix is skiped and it is only propagated.

Source Code

show / hide f90 code
MPDOOps_f90.rhoij_meas_mpdo_tensorc_tensor()[source]

fortran-subroutine - September 2017 (dj) Measure two-site reduced density matrix for sites i and j and propagate for the next measurement.

Arguments

RhosijTYPE(tensorc)(*, *), inout

Matrix containing two-site density matrices.

TensjjTYPE(tensorc), inout

Rank-3 tensor representing site jj in the superket of the MPDO.

LRTYPE(tensorlistc), inout

Left-right overlap of the MPDO.

iiINTEGER, inout

Index of the left site of the density matrix kept in Theta.

jjINTEGER, inout

Index of the tensors Tensjj.

llINTEGER, inout

Number of sites in the system, used to detect when propagation is stopped.

ThetaTYPE(tensorc), inout

Tensor containing the contractions from the left part of the system.

PhaseOpTYPE(tensor), inout

Phase operator to be contracted within the propagation.

hasphaseLOGICAL, inout

Flag if phase operator is present (.true.).

Sl_localTYPE(splitlink), in

Defines the splitting of the local dimension link in the MPDO.

Sl_rightTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

skipLOGICAL, OPTIONAL, inout

If present and true, the measurement of the density matrix is skiped and it is only propagated.

Source Code

show / hide f90 code
MPDOOps_f90.rhoij_meas_mpdo_tensorc_tensorc()[source]

fortran-subroutine - September 2017 (dj) Measure two-site reduced density matrix for sites i and j and propagate for the next measurement.

Arguments

RhosijTYPE(tensorc)(*, *), inout

Matrix containing two-site density matrices.

TensjjTYPE(tensorc), inout

Rank-3 tensor representing site jj in the superket of the MPDO.

LRTYPE(tensorlistc), inout

Left-right overlap of the MPDO.

iiINTEGER, inout

Index of the left site of the density matrix kept in Theta.

jjINTEGER, inout

Index of the tensors Tensjj.

llINTEGER, inout

Number of sites in the system, used to detect when propagation is stopped.

ThetaTYPE(tensorc), inout

Tensor containing the contractions from the left part of the system.

PhaseOpTYPE(tensorc), inout

Phase operator to be contracted within the propagation.

hasphaseLOGICAL, inout

Flag if phase operator is present (.true.).

Sl_localTYPE(splitlink), in

Defines the splitting of the local dimension link in the MPDO.

Sl_rightTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

skipLOGICAL, OPTIONAL, inout

If present and true, the measurement of the density matrix is skiped and it is only propagated.

Source Code

show / hide f90 code
MPDOOps_f90.rhoij_meas_mpdo_qtensor_qtensor()[source]

fortran-subroutine - September 2017 (dj) Measure two-site reduced density matrix for sites i and j and propagate for the next measurement.

Arguments

RhosijTYPE(qtensor)(*, *), inout

Matrix containing two-site density matrices.

TensjjTYPE(qtensor), inout

Rank-3 tensor representing site jj in the superket of the MPDO.

LRTYPE(qtensorlist), inout

Left-right overlap of the MPDO.

iiINTEGER, inout

Index of the left site of the density matrix kept in Theta.

jjINTEGER, inout

Index of the tensors Tensjj.

llINTEGER, inout

Number of sites in the system, used to detect when propagation is stopped.

ThetaTYPE(qtensor), inout

Tensor containing the contractions from the left part of the system.

PhaseOpTYPE(qtensor), inout

Phase operator to be contracted within the propagation.

hasphaseLOGICAL, inout

Flag if phase operator is present (.true.).

Sl_localTYPE(splitlink), in

Defines the splitting of the local dimension link in the MPDO.

Sl_rightTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

skipLOGICAL, OPTIONAL, inout

If present and true, the measurement of the density matrix is skiped and it is only propagated.

Source Code

show / hide f90 code
MPDOOps_f90.rhoij_meas_mpdo_qtensorc_qtensor()[source]

fortran-subroutine - September 2017 (dj) Measure two-site reduced density matrix for sites i and j and propagate for the next measurement.

Arguments

RhosijTYPE(qtensorc)(*, *), inout

Matrix containing two-site density matrices.

TensjjTYPE(qtensorc), inout

Rank-3 tensor representing site jj in the superket of the MPDO.

LRTYPE(qtensorclist), inout

Left-right overlap of the MPDO.

iiINTEGER, inout

Index of the left site of the density matrix kept in Theta.

jjINTEGER, inout

Index of the tensors Tensjj.

llINTEGER, inout

Number of sites in the system, used to detect when propagation is stopped.

ThetaTYPE(qtensorc), inout

Tensor containing the contractions from the left part of the system.

PhaseOpTYPE(qtensor), inout

Phase operator to be contracted within the propagation.

hasphaseLOGICAL, inout

Flag if phase operator is present (.true.).

Sl_localTYPE(splitlink), in

Defines the splitting of the local dimension link in the MPDO.

Sl_rightTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

skipLOGICAL, OPTIONAL, inout

If present and true, the measurement of the density matrix is skiped and it is only propagated.

Source Code

show / hide f90 code
MPDOOps_f90.rhoij_meas_mpdo_qtensorc_qtensorc()[source]

fortran-subroutine - September 2017 (dj) Measure two-site reduced density matrix for sites i and j and propagate for the next measurement.

Arguments

RhosijTYPE(qtensorc)(*, *), inout

Matrix containing two-site density matrices.

TensjjTYPE(qtensorc), inout

Rank-3 tensor representing site jj in the superket of the MPDO.

LRTYPE(qtensorclist), inout

Left-right overlap of the MPDO.

iiINTEGER, inout

Index of the left site of the density matrix kept in Theta.

jjINTEGER, inout

Index of the tensors Tensjj.

llINTEGER, inout

Number of sites in the system, used to detect when propagation is stopped.

ThetaTYPE(qtensorc), inout

Tensor containing the contractions from the left part of the system.

PhaseOpTYPE(qtensorc), inout

Phase operator to be contracted within the propagation.

hasphaseLOGICAL, inout

Flag if phase operator is present (.true.).

Sl_localTYPE(splitlink), in

Defines the splitting of the local dimension link in the MPDO.

Sl_rightTYPE(splitlink), in

Information how to split the link to the right of the MPDO.

skipLOGICAL, OPTIONAL, inout

If present and true, the measurement of the density matrix is skiped and it is only propagated.

Source Code

show / hide f90 code
MPDOOps_f90.setuplr_mpdo()[source]

fortran-subroutine - September 2017 (dj) Initialize the left-right overlap of an MPDO.

Arguments

LRTYPE(tensorlist), inout

List of overlaps for the MPDO.

RhoTYPE(mpdo), inout

The MPDO to build the overlaps for.

kkINTEGER, OPTIONAL, inout

The center of the overlaps, default to 1.

Source Code

show / hide f90 code
MPDOOps_f90.setuplr_mpdoc()[source]

fortran-subroutine - September 2017 (dj) Initialize the left-right overlap of an MPDO.

Arguments

LRTYPE(tensorlistc), inout

List of overlaps for the MPDO.

RhoTYPE(mpdoc), inout

The MPDO to build the overlaps for.

kkINTEGER, OPTIONAL, inout

The center of the overlaps, default to 1.

Source Code

show / hide f90 code
MPDOOps_f90.setuplr_qmpdo()[source]

fortran-subroutine - September 2017 (dj) Initialize the left-right overlap of an MPDO.

Arguments

LRTYPE(qtensorlist), inout

List of overlaps for the MPDO.

RhoTYPE(qmpdo), inout

The MPDO to build the overlaps for.

kkINTEGER, OPTIONAL, inout

The center of the overlaps, default to 1.

Source Code

show / hide f90 code
MPDOOps_f90.setuplr_qmpdoc()[source]

fortran-subroutine - September 2017 (dj) Initialize the left-right overlap of an MPDO.

Arguments

LRTYPE(qtensorclist), inout

List of overlaps for the MPDO.

RhoTYPE(qmpdoc), inout

The MPDO to build the overlaps for.

kkINTEGER, OPTIONAL, inout

The center of the overlaps, default to 1.

Source Code

show / hide f90 code
MPDOOps_f90.transposed_mpdo()[source]

fortran-subroutine - June 2018 (dj) Permute the local Hilbert spaces.

Arguments

RhoTYPE(MPS_TYPE), inout

Permute MPDO sites in-place. Error can be introduced due to SVDs.

permINTEGER(*), in

Permutation array has length equal to the number of sites L in the MPS with unique entries 1 to L.

truncREAL, OPTIONAL, in

Keep infidelity below trunc (infidelity is sum of squared discarded singular values for MPS). Default does not truncate.

ncutINTEGER, OPTIONAL, in

Maximal bond dimension / number of singular values. Default is keeping all singular values.

cerrREAL, OPTIONAL, inout

Cumulative error from SVDs.

Source Code

show / hide f90 code
MPDOOps_f90.transposed_mpdoc()[source]

fortran-subroutine - June 2018 (dj) Permute the local Hilbert spaces.

Arguments

RhoTYPE(MPS_TYPE), inout

Permute MPDO sites in-place. Error can be introduced due to SVDs.

permINTEGER(*), in

Permutation array has length equal to the number of sites L in the MPS with unique entries 1 to L.

truncREAL, OPTIONAL, in

Keep infidelity below trunc (infidelity is sum of squared discarded singular values for MPS). Default does not truncate.

ncutINTEGER, OPTIONAL, in

Maximal bond dimension / number of singular values. Default is keeping all singular values.

cerrREAL, OPTIONAL, inout

Cumulative error from SVDs.

Source Code

show / hide f90 code
MPDOOps_f90.transposed_qmpdo()[source]

fortran-subroutine - June 2018 (dj) Permute the local Hilbert spaces.

Arguments

RhoTYPE(MPS_TYPE), inout

Permute MPDO sites in-place. Error can be introduced due to SVDs.

permINTEGER(*), in

Permutation array has length equal to the number of sites L in the MPS with unique entries 1 to L.

truncREAL, OPTIONAL, in

Keep infidelity below trunc (infidelity is sum of squared discarded singular values for MPS). Default does not truncate.

ncutINTEGER, OPTIONAL, in

Maximal bond dimension / number of singular values. Default is keeping all singular values.

cerrREAL, OPTIONAL, inout

Cumulative error from SVDs.

Source Code

show / hide f90 code
MPDOOps_f90.transposed_qmpdoc()[source]

fortran-subroutine - June 2018 (dj) Permute the local Hilbert spaces.

Arguments

RhoTYPE(MPS_TYPE), inout

Permute MPDO sites in-place. Error can be introduced due to SVDs.

permINTEGER(*), in

Permutation array has length equal to the number of sites L in the MPS with unique entries 1 to L.

truncREAL, OPTIONAL, in

Keep infidelity below trunc (infidelity is sum of squared discarded singular values for MPS). Default does not truncate.

ncutINTEGER, OPTIONAL, in

Maximal bond dimension / number of singular values. Default is keeping all singular values.

cerrREAL, OPTIONAL, inout

Cumulative error from SVDs.

Source Code

show / hide f90 code
MPDOOps_f90.updatelr_mpdo()[source]

fortran-subroutine - September 2017 (dj) Shift the left right overlap by one site.

Arguments

LRTYPE(tensorlist), inout

The list of overlaps for the MPDO.

RhoTYPE(mpdo), inout

The MPDO to update the overlap.

kkINTEGER, in

New center for the left-right overlap.

senseINTEGER, in

Move center of the left-right overlap to the right for sense > 0 and to the left for sense < 0.

Source Code

show / hide f90 code
MPDOOps_f90.updatelr_mpdoc()[source]

fortran-subroutine - September 2017 (dj) Shift the left right overlap by one site.

Arguments

LRTYPE(tensorlistc), inout

The list of overlaps for the MPDO.

RhoTYPE(mpdoc), inout

The MPDO to update the overlap.

kkINTEGER, in

New center for the left-right overlap.

senseINTEGER, in

Move center of the left-right overlap to the right for sense > 0 and to the left for sense < 0.

Source Code

show / hide f90 code
MPDOOps_f90.updatelr_qmpdo()[source]

fortran-subroutine - September 2017 (dj) Shift the left right overlap by one site.

Arguments

LRTYPE(qtensorlist), inout

The list of overlaps for the MPDO.

RhoTYPE(qmpdo), inout

The MPDO to update the overlap.

kkINTEGER, in

New center for the left-right overlap.

senseINTEGER, in

Move center of the left-right overlap to the right for sense > 0 and to the left for sense < 0.

Source Code

show / hide f90 code
MPDOOps_f90.updatelr_qmpdoc()[source]

fortran-subroutine - September 2017 (dj) Shift the left right overlap by one site.

Arguments

LRTYPE(qtensorclist), inout

The list of overlaps for the MPDO.

RhoTYPE(qmpdoc), inout

The MPDO to update the overlap.

kkINTEGER, in

New center for the left-right overlap.

senseINTEGER, in

Move center of the left-right overlap to the right for sense > 0 and to the left for sense < 0.

Source Code

show / hide f90 code
MPDOOps_f90.write_mpdo()[source]

fortran-subroutine - September 2017 (dj) Write an MPDO to file.

Arguments

RhoTYPE(mpdo), in

save this MPDO

unitINTEGER, in

open file on this unit

formCHARACTER, in

Binary (‘B’), human readable (‘H’), or user-friendly (“6”).

Details

For details see the description of the order which the information is written, please see read_mpdo

Source Code

show / hide f90 code
MPDOOps_f90.write_mpdoc()[source]

fortran-subroutine - September 2017 (dj) Write an MPDO to file.

Arguments

RhoTYPE(mpdoc), in

save this MPDO

unitINTEGER, in

open file on this unit

formCHARACTER, in

Binary (‘B’), human readable (‘H’), or user-friendly (“6”).

Details

For details see the description of the order which the information is written, please see read_mpdoc

Source Code

show / hide f90 code
MPDOOps_f90.write_qmpdo()[source]

fortran-subroutine - September 2017 (dj) Write an MPDO to file.

Arguments

RhoTYPE(qmpdo), in

save this MPDO

unitINTEGER, in

open file on this unit

formCHARACTER, in

Binary (‘B’), human readable (‘H’), or user-friendly (“6”).

Details

For details see the description of the order which the information is written, please see read_qmpdo

Source Code

show / hide f90 code
MPDOOps_f90.write_qmpdoc()[source]

fortran-subroutine - September 2017 (dj) Write an MPDO to file.

Arguments

RhoTYPE(qmpdoc), in

save this MPDO

unitINTEGER, in

open file on this unit

formCHARACTER, in

Binary (‘B’), human readable (‘H’), or user-friendly (“6”).

Details

For details see the description of the order which the information is written, please see read_qmpdoc

Source Code

show / hide f90 code