MPDOOps¶
Fortran module MPDOOps: September 2017 (dj)
Containing basic operations for matrix product density operators (MPDO)
Authors
Jaschke
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) and a pure state defined as .
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) and a pure state defined as .
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) and a pure state defined as .
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) and a pure state defined as .
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) and a pure state defined as .
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) and a pure state defined as .
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) and a pure state defined as .
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) and a pure state defined as .
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