MPOOps

Fortran module MPOOps: May 2017 (dj, udpated)

The matrix product operators (MPO) represent the Hamiltonian of the system. Its basic subroutines are defined in this module.

Authors

    1. Jaschke

      1. Wall

MPOOps_f90.copy_hamiltonianparameters()[source]

fortran-subroutine - August 2017 (dj, updated) Copy the TYPE(HamiltonianParameters) from source Objin to Objout. Recall indices start at zero.

Arguments

ObjoutTYPE(HamiltonianParameters)(*), inout

Target of copy.

ObjinTYPE(HamiltonianParameters)(*), in

Source of copy.

Source Code

show / hide f90 code
MPOOps_f90.read_hamiltonianparameters()[source]

fortran-subroutine - August 2017 (dj, updated) Read/initialize the Hamiltonian parameters. (The corresponding python function should be WriteHparams in the module tools.py.)

Arguments

HparamsTYPE(HamiltonianParameters)(*), inout

to be filled with the Hamiltonian parameters for a simulation/model The array runs from zero.

filestubCHARACTER(*), in

filename

unitINTEGER, in

Open file on this unit.

Source Code

show / hide f90 code
MPOOps_f90.update_hamiltonianparameter()[source]

fortran-subroutine - August 2017 (dj, updated) Read/Update the Hamiltonian parameters, e.g. for time-dependent evolutions. (The corresponding python function should be WriteDynamics in the module Dynamics.)

Arguments

HparamsTYPE(HamiltoniansParameters), POINTER, in

contains the Hamiltonian parameters

fileidINTEGER, in

This file-unit is open to read the parameters.

whichHparamsINTEGER(*), in

list of indices to update in Hparams

Source Code

show / hide f90 code
MPOOps_f90.destroy_hamiltonianparameters()[source]

fortran-subroutine - August 2017 (dj, updated) Delete/deallocate all the Hamiltonian parameters.

Arguments

HparamsTYPE(HamiltonianParameters)(*), inout

Hamiltonian parameters to be deleted

filestubCHARACTER(*), in

filename.

unitINTEGER, in

Available unit to open file for deleting.

clearfileLOGICAL, OPTIONAL, in

.TRUE. : delete .dat-file as well .FALSE. : leave .dat-file on hard disk (default)

Source Code

show / hide f90 code
MPOOps_f90.ReadOperators_tensorlist()[source]

fortran-subroutine - August 2017 (dj, updated) Read Operators from the Python input file

Arguments

filestubCHARACTER(*), inout

filename containing operators.

OperatorsTYPE(tensorlist), inout

List of operators to be filled during the subroutine.

Details

(template defined in MPOOps_include.f90)

Source Code

show / hide f90 code
MPOOps_f90.ReadOperators_tensorlistc()[source]

fortran-subroutine - August 2017 (dj, updated) Read Operators from the Python input file

Arguments

filestubCHARACTER(*), inout

filename containing operators.

OperatorsTYPE(tensorlistc), inout

List of operators to be filled during the subroutine.

Details

(template defined in MPOOps_include.f90)

Source Code

show / hide f90 code
MPOOps_f90.ReadOperators_qtensorlist()[source]

fortran-subroutine - August 2017 (dj, updated) Read Operators from the Python input file.

Arguments

fileStubCHARACTER(*), inout

filename containing the operators.

OperatorsTYPE(qtensorlist), inout

List with operators is filled according the input file fileStub generated of the python front-end.

nqsINTEGER, in

Number of conserved quantities / symmetries in the definition of the operators.

Source Code

show / hide f90 code
MPOOps_f90.ReadOperators_qtensorclist()[source]

fortran-subroutine - August 2017 (dj, updated) Read Operators from the Python input file.

Arguments

fileStubCHARACTER(*), inout

filename containing the operators.

OperatorsTYPE(qtensorclist), inout

List with operators is filled according the input file fileStub generated of the python front-end.

nqsINTEGER, in

Number of conserved quantities / symmetries in the definition of the operators.

Source Code

show / hide f90 code
MPOOps_f90.DeallocateOperators_tensorlist()[source]

fortran-subroutine - August 2017 (dj, updated) Deallocate the operators used by the Python interface.

Arguments

fileStubCHARACTER(*), inout

Filename. This is only used when deleting the file.

OperatorsTYPE(tensorlist), inout

Contains the operator alphabet for the simulation which is deleted during this subroutine

clearfileLOGICAL, OPTIONAL, in

T : delete input file for operators as well F : keep input file and only delete matrix list Default if not given: F

Source Code

show / hide f90 code
MPOOps_f90.DeallocateOperators_tensorlistc()[source]

fortran-subroutine - August 2017 (dj, updated) Deallocate the operators used by the Python interface.

Arguments

fileStubCHARACTER(*), inout

Filename. This is only used when deleting the file.

OperatorsTYPE(tensorlistc), inout

Contains the operator alphabet for the simulation which is deleted during this subroutine

clearfileLOGICAL, OPTIONAL, in

T : delete input file for operators as well F : keep input file and only delete matrix list Default if not given: F

Source Code

show / hide f90 code
MPOOps_f90.DeallocateOperators_qtensorlist()[source]

fortran-subroutine - August 2017 (dj, updated) Deallocate the operators used by the Python interface.

Arguments

fileStubCHARACTER(*), inout

Filename. This is only used when deleting the file.

OperatorsTYPE(qtensorlist), inout

Contains the operator alphabet for the simulation which is deleted during this subroutine

clearfileLOGICAL, OPTIONAL, in

T : delete input file for operators as well F : keep input file and only delete matrix list Default if not given: F

Source Code

show / hide f90 code
MPOOps_f90.DeallocateOperators_qtensorclist()[source]

fortran-subroutine - August 2017 (dj, updated) Deallocate the operators used by the Python interface.

Arguments

fileStubCHARACTER(*), inout

Filename. This is only used when deleting the file.

OperatorsTYPE(qtensorclist), inout

Contains the operator alphabet for the simulation which is deleted during this subroutine

clearfileLOGICAL, OPTIONAL, in

T : delete input file for operators as well F : keep input file and only delete matrix list Default if not given: F

Source Code

show / hide f90 code
MPOOps_f90.has_lindblads()[source]

fortran-function - August 2017 (dj) Check if a rule set has any Lindblad terms in it.

Arguments

RsTYPE(MPORuleSet), in

Check this rule set for Lindblad terms.

Source Code

show / hide f90 code
MPOOps_f90.get_coupl()[source]

fortran-function - May 2017 (dj) Extract the coupling.

Arguments

HparamsTYPE(HamiltonianParameters), in

Contains the coupling for the each parameters in the Hamiltonian.

idxINTEGER, in

Position of the parameter in the list.

xxINTEGER, in

Site index in case the coupling is site dependent.

Source Code

show / hide f90 code
MPOOps_f90.fuse_sparse_row_tensor()[source]

fortran-subroutine - September 2017 (dj) Fuse the operators from a rank-4 to a rank-2 tensor.

Arguments

RowTYPE(sparse_row_tensor), inout

The row of a sparse matrix. The operators are reduced from rank-4 to rank-2 on exit.

Source Code

show / hide f90 code
MPOOps_f90.fuse_sparse_row_tensorc()[source]

fortran-subroutine - September 2017 (dj) Fuse the operators from a rank-4 to a rank-2 tensor.

Arguments

RowTYPE(sparse_row_tensorc), inout

The row of a sparse matrix. The operators are reduced from rank-4 to rank-2 on exit.

Source Code

show / hide f90 code
MPOOps_f90.fuse_sparse_row_qtensor()[source]

fortran-subroutine - September 2017 (dj) Fuse the operators from a rank-4 to a rank-2 tensor.

Arguments

RowTYPE(sparse_row_qtensor), inout

The row of a sparse matrix. The operators are reduced from rank-4 to rank-2 on exit.

Source Code

show / hide f90 code
MPOOps_f90.fuse_sparse_row_qtensorc()[source]

fortran-subroutine - September 2017 (dj) Fuse the operators from a rank-4 to a rank-2 tensor.

Arguments

RowTYPE(sparse_row_qtensorc), inout

The row of a sparse matrix. The operators are reduced from rank-4 to rank-2 on exit.

Source Code

show / hide f90 code
MPOOps_f90.fuse_sr_matrix_tensor()[source]

fortran-subroutine - September 2017 (dj) Fuse the operators from a rank-4 to a rank-2 tensor.

Arguments

MatTYPE(sr_matrix_tensor), inout

A sparse matrix. The operators are reduced from rank-4 to rank-2 on exit.

Source Code

show / hide f90 code
MPOOps_f90.fuse_sr_matrix_tensorc()[source]

fortran-subroutine - September 2017 (dj) Fuse the operators from a rank-4 to a rank-2 tensor.

Arguments

MatTYPE(sr_matrix_tensorc), inout

A sparse matrix. The operators are reduced from rank-4 to rank-2 on exit.

Source Code

show / hide f90 code
MPOOps_f90.fuse_sr_matrix_qtensor()[source]

fortran-subroutine - September 2017 (dj) Fuse the operators from a rank-4 to a rank-2 tensor.

Arguments

MatTYPE(sr_matrix_qtensor), inout

A sparse matrix. The operators are reduced from rank-4 to rank-2 on exit.

Source Code

show / hide f90 code
MPOOps_f90.fuse_sr_matrix_qtensorc()[source]

fortran-subroutine - September 2017 (dj) Fuse the operators from a rank-4 to a rank-2 tensor.

Arguments

MatTYPE(sr_matrix_qtensorc), inout

A sparse matrix. The operators are reduced from rank-4 to rank-2 on exit.

Source Code

show / hide f90 code
MPOOps_f90.sdot_sr_matrix_tensor()[source]

fortran-subroutine - May 2017 (dj) Dot product / matrix-matrix multiplication between to sparse matrices.

Arguments

MatcTYPE(sr_matrix_tensor), inout

The outcome of the matrix-matrix multiplication. The entries are combined with the outer product or Kronecker product leading to rank-4 tensors.

MataTYPE(sr_matrix_tensor), in

The left sparse matrix in the matrix-matrix multiplications.

MatbTYPE(sr_matrix_tensor), in

The left sparse matrix in the matrix-matrix multiplications.

Source Code

show / hide f90 code
MPOOps_f90.sdot_sr_matrix_tensorc()[source]

fortran-subroutine - May 2017 (dj) Dot product / matrix-matrix multiplication between to sparse matrices.

Arguments

MatcTYPE(sr_matrix_tensorc), inout

The outcome of the matrix-matrix multiplication. The entries are combined with the outer product or Kronecker product leading to rank-4 tensors.

MataTYPE(sr_matrix_tensorc), in

The left sparse matrix in the matrix-matrix multiplications.

MatbTYPE(sr_matrix_tensorc), in

The left sparse matrix in the matrix-matrix multiplications.

Source Code

show / hide f90 code
MPOOps_f90.sdot_sr_matrix_qtensor()[source]

fortran-subroutine - May 2017 (dj) Dot product / matrix-matrix multiplication between to sparse matrices.

Arguments

MatcTYPE(sr_matrix_qtensor), inout

The outcome of the matrix-matrix multiplication. The entries are combined with the outer product or Kronecker product leading to rank-4 tensors.

MataTYPE(sr_matrix_qtensor), in

The left sparse matrix in the matrix-matrix multiplications.

MatbTYPE(sr_matrix_qtensor), in

The left sparse matrix in the matrix-matrix multiplications.

Source Code

show / hide f90 code
MPOOps_f90.sdot_sr_matrix_qtensorc()[source]

fortran-subroutine - May 2017 (dj) Dot product / matrix-matrix multiplication between to sparse matrices.

Arguments

MatcTYPE(sr_matrix_qtensorc), inout

The outcome of the matrix-matrix multiplication. The entries are combined with the outer product or Kronecker product leading to rank-4 tensors.

MataTYPE(sr_matrix_qtensorc), in

The left sparse matrix in the matrix-matrix multiplications.

MatbTYPE(sr_matrix_qtensorc), in

The left sparse matrix in the matrix-matrix multiplications.

Source Code

show / hide f90 code
MPOOps_f90.set_hash_sparse_row_qtensor()[source]

fortran-subroutine - October 2017 (dj) Set the hashes for all operators in a row of a sparse matrix.

Arguments

RowTYPE(sparse_row_qtensor), inout

The row of a sparse matrix. The operators are hashed according to their quantum numbers and the given index.

idxsINTEGER(*), in

Specify indices to be hashed in regard to the legs of the tensor.

Source Code

show / hide f90 code
MPOOps_f90.set_hash_sparse_row_qtensorc()[source]

fortran-subroutine - October 2017 (dj) Set the hashes for all operators in a row of a sparse matrix.

Arguments

RowTYPE(sparse_row_qtensorc), inout

The row of a sparse matrix. The operators are hashed according to their quantum numbers and the given index.

idxsINTEGER(*), in

Specify indices to be hashed in regard to the legs of the tensor.

Source Code

show / hide f90 code
MPOOps_f90.set_hash_sr_matrix_qtensor()[source]

fortran-subroutine - October 2017 (dj) Set the hashes for all operators in a sparse matrix.

Arguments

MatTYPE(sr_matrix_qtensor), inout

A sparse matrix. The operators are hashed according to their quantum numbers and the given indices.

idxsINTEGER(*), in

Specify indices to be hashed in regard to the legs of the tensor.

Source Code

show / hide f90 code
MPOOps_f90.set_hash_sr_matrix_qtensorc()[source]

fortran-subroutine - October 2017 (dj) Set the hashes for all operators in a sparse matrix.

Arguments

MatTYPE(sr_matrix_qtensorc), inout

A sparse matrix. The operators are hashed according to their quantum numbers and the given indices.

idxsINTEGER(*), in

Specify indices to be hashed in regard to the legs of the tensor.

Source Code

show / hide f90 code
MPOOps_f90.set_hash_sr_matrix_tensor()[source]

fortran-subroutine - October 2017 (dj) Dummy interface to supply interface for usual tensors without symmetries.

Arguments

MatTYPE(sr_matrix_tensor), inout

A sparse matrix. The operators are hashed according to their quantum numbers and the given indices.

idxsINTEGER(*), in

Specify indices to be hashed in regard to the legs of the tensor.

Source Code

show / hide f90 code
MPOOps_f90.set_hash_sr_matrix_tensorc()[source]

fortran-subroutine - October 2017 (dj) Dummy interface to supply interface for usual tensors without symmetries.

Arguments

MatTYPE(sr_matrix_tensorc), inout

A sparse matrix. The operators are hashed according to their quantum numbers and the given indices.

idxsINTEGER(*), in

Specify indices to be hashed in regard to the legs of the tensor.

Source Code

show / hide f90 code
MPOOps_f90.shift_sr_matrix_tensor()[source]

fortran-subroutine - Construct the sparse MPO matrix representing (H - shift)

Arguments

MatTYPE(sr_matrix_tensor), inout

On exit, this is the shifted MPO.

shftREAL, in

The value for the shift.

Source Code

show / hide f90 code
MPOOps_f90.shift_sr_matrix_tensorc()[source]

fortran-subroutine - Construct the sparse MPO matrix representing (H - shift)

Arguments

MatTYPE(sr_matrix_tensorc), inout

On exit, this is the shifted MPO.

shftREAL, in

The value for the shift.

Source Code

show / hide f90 code
MPOOps_f90.shift_sr_matrix_qtensor()[source]

fortran-subroutine - Construct the sparse MPO matrix representing (H - shift)

Arguments

MatTYPE(sr_matrix_qtensor), inout

On exit, this is the shifted MPO.

shftREAL, in

The value for the shift.

Source Code

show / hide f90 code
MPOOps_f90.shift_sr_matrix_qtensorc()[source]

fortran-subroutine - Construct the sparse MPO matrix representing (H - shift)

Arguments

MatTYPE(sr_matrix_qtensorc), inout

On exit, this is the shifted MPO.

shftREAL, in

The value for the shift.

Source Code

show / hide f90 code
MPOOps_f90.shiftandsquare_sparse_row_tensor()[source]

fortran-subroutine - May 2017 (dj, updated) Shift and calculate the square for an MPO for one row.

Arguments

RowsqTYPE(MPO_ROW_TYPE), inout

Contains on exit on row of the shifted and squared MPO.

RowiTYPE(MPO_ROW_TYPE), inout

The left row in the sparse matrix to be shifted and squared. Intent(out) is to allow for possible transformations.

RowjTYPE(MPO_ROW_TYPE), inout

The right row in the sparse matrix to be shifted and squared. Intent(out) is to allow for possible transformations.

ilrLOGICAL, in

Flag if the left row equals to the last row in the original matrix.

jlrLOGICAL, in

Flag if the right row equals to the last row in the original matrix.

cbdINTEGER, in

Number of columns in the original matrix.

ShTYPE(MATRIX_TYPE), in

Contains - shift x Id, where Id is the identity matrix.

Source Code

show / hide f90 code
MPOOps_f90.shiftandsquare_sparse_row_tensorc()[source]

fortran-subroutine - May 2017 (dj, updated) Shift and calculate the square for an MPO for one row.

Arguments

RowsqTYPE(MPO_ROW_TYPE), inout

Contains on exit on row of the shifted and squared MPO.

RowiTYPE(MPO_ROW_TYPE), inout

The left row in the sparse matrix to be shifted and squared. Intent(out) is to allow for possible transformations.

RowjTYPE(MPO_ROW_TYPE), inout

The right row in the sparse matrix to be shifted and squared. Intent(out) is to allow for possible transformations.

ilrLOGICAL, in

Flag if the left row equals to the last row in the original matrix.

jlrLOGICAL, in

Flag if the right row equals to the last row in the original matrix.

cbdINTEGER, in

Number of columns in the original matrix.

ShTYPE(MATRIX_TYPE), in

Contains - shift x Id, where Id is the identity matrix.

Source Code

show / hide f90 code
MPOOps_f90.shiftandsquare_sparse_row_qtensor()[source]

fortran-subroutine - May 2017 (dj, updated) Shift and calculate the square for an MPO for one row.

Arguments

RowsqTYPE(MPO_ROW_TYPE), inout

Contains on exit on row of the shifted and squared MPO.

RowiTYPE(MPO_ROW_TYPE), inout

The left row in the sparse matrix to be shifted and squared. Intent(out) is to allow for possible transformations.

RowjTYPE(MPO_ROW_TYPE), inout

The right row in the sparse matrix to be shifted and squared. Intent(out) is to allow for possible transformations.

ilrLOGICAL, in

Flag if the left row equals to the last row in the original matrix.

jlrLOGICAL, in

Flag if the right row equals to the last row in the original matrix.

cbdINTEGER, in

Number of columns in the original matrix.

ShTYPE(MATRIX_TYPE), in

Contains - shift x Id, where Id is the identity matrix.

Source Code

show / hide f90 code
MPOOps_f90.shiftandsquare_sparse_row_qtensorc()[source]

fortran-subroutine - May 2017 (dj, updated) Shift and calculate the square for an MPO for one row.

Arguments

RowsqTYPE(MPO_ROW_TYPE), inout

Contains on exit on row of the shifted and squared MPO.

RowiTYPE(MPO_ROW_TYPE), inout

The left row in the sparse matrix to be shifted and squared. Intent(out) is to allow for possible transformations.

RowjTYPE(MPO_ROW_TYPE), inout

The right row in the sparse matrix to be shifted and squared. Intent(out) is to allow for possible transformations.

ilrLOGICAL, in

Flag if the left row equals to the last row in the original matrix.

jlrLOGICAL, in

Flag if the right row equals to the last row in the original matrix.

cbdINTEGER, in

Number of columns in the original matrix.

ShTYPE(MATRIX_TYPE), in

Contains - shift x Id, where Id is the identity matrix.

Source Code

show / hide f90 code
MPOOps_f90.shiftandsquare_sr_matrix_tensor()[source]

fortran-subroutine - May 2017 (dj, updated) Find a representation of a shifted and squared MPO matrix using the matrix direct product.

Arguments

MatsqTYPE(sr_matrix_tensor), inout

On exit, the shifted square of the original MPO matrix.

MatTYPE(sr_matrix_tensor), inout

The MPO matrix to be shifted and squared.

shiftREAL, in

The shift as scalar.

Source Code

show / hide f90 code
MPOOps_f90.shiftandsquare_sr_matrix_tensorc()[source]

fortran-subroutine - May 2017 (dj, updated) Find a representation of a shifted and squared MPO matrix using the matrix direct product.

Arguments

MatsqTYPE(sr_matrix_tensorc), inout

On exit, the shifted square of the original MPO matrix.

MatTYPE(sr_matrix_tensorc), inout

The MPO matrix to be shifted and squared.

shiftREAL, in

The shift as scalar.

Source Code

show / hide f90 code
MPOOps_f90.shiftandsquare_sr_matrix_qtensor()[source]

fortran-subroutine - May 2017 (dj, updated) Find a representation of a shifted and squared MPO matrix using the matrix direct product.

Arguments

MatsqTYPE(sr_matrix_qtensor), inout

On exit, the shifted square of the original MPO matrix.

MatTYPE(sr_matrix_qtensor), inout

The MPO matrix to be shifted and squared.

shiftREAL, in

The shift as scalar.

Source Code

show / hide f90 code
MPOOps_f90.shiftandsquare_sr_matrix_qtensorc()[source]

fortran-subroutine - May 2017 (dj, updated) Find a representation of a shifted and squared MPO matrix using the matrix direct product.

Arguments

MatsqTYPE(sr_matrix_qtensorc), inout

On exit, the shifted square of the original MPO matrix.

MatTYPE(sr_matrix_qtensorc), inout

The MPO matrix to be shifted and squared.

shiftREAL, in

The shift as scalar.

Source Code

show / hide f90 code
MPOOps_f90.square_sparse_row_tensor()[source]

fortran-subroutine - May 2017 (dj, updated) Calculate the square of an MPO for one row.

Arguments

RowsqTYPE(sparse_row_tensor), inout

Contains on exit the sparse matrix necessary for squaring an MPO.

Rowito, inout

allow for possible transformations.

Rowjto, inout

allow for possible transformations.

cbdINTEGER, in

Number of columns in the sparse matrix to be squared.

trafolCHARACTER, OPTIONAL, inout

Transformation on the left matrix.

traforCHARACTER, OPTIONAL, inout

Transformation on the right matrix.

Source Code

show / hide f90 code
MPOOps_f90.square_sparse_row_tensorc()[source]

fortran-subroutine - May 2017 (dj, updated) Calculate the square of an MPO for one row.

Arguments

RowsqTYPE(sparse_row_tensorc), inout

Contains on exit the sparse matrix necessary for squaring an MPO.

Rowito, inout

allow for possible transformations.

Rowjto, inout

allow for possible transformations.

cbdINTEGER, in

Number of columns in the sparse matrix to be squared.

trafolCHARACTER, OPTIONAL, inout

Transformation on the left matrix.

traforCHARACTER, OPTIONAL, inout

Transformation on the right matrix.

Source Code

show / hide f90 code
MPOOps_f90.square_sparse_row_qtensor()[source]

fortran-subroutine - May 2017 (dj, updated) Calculate the square of an MPO for one row.

Arguments

RowsqTYPE(sparse_row_qtensor), inout

Contains on exit the sparse matrix necessary for squaring an MPO.

Rowito, inout

allow for possible transformations.

Rowjto, inout

allow for possible transformations.

cbdINTEGER, in

Number of columns in the sparse matrix to be squared.

trafolCHARACTER, OPTIONAL, inout

Transformation on the left matrix.

traforCHARACTER, OPTIONAL, inout

Transformation on the right matrix.

Source Code

show / hide f90 code
MPOOps_f90.square_sparse_row_qtensorc()[source]

fortran-subroutine - May 2017 (dj, updated) Calculate the square of an MPO for one row.

Arguments

RowsqTYPE(sparse_row_qtensorc), inout

Contains on exit the sparse matrix necessary for squaring an MPO.

Rowito, inout

allow for possible transformations.

Rowjto, inout

allow for possible transformations.

cbdINTEGER, in

Number of columns in the sparse matrix to be squared.

trafolCHARACTER, OPTIONAL, inout

Transformation on the left matrix.

traforCHARACTER, OPTIONAL, inout

Transformation on the right matrix.

Source Code

show / hide f90 code
MPOOps_f90.square_sr_matrix_tensor()[source]

fortran-subroutine - May 2017 (dj, updated) Find a sparse MPOm representation of the square of H using the matrix direct product.

Arguments

MatsqTYPE(sr_matrix_tensor), inout

On exit, the square of the original MPO matrix.

MatTYPE(sr_matrix_tensor), inout

The MPO matrix to be squared.

trafolCHARACTER, OPTIONAL, inout

Transformation on the left matrix.

traforCHARACTER, OPTIONAL, inout

Transformation on the right matrix.

Source Code

show / hide f90 code
MPOOps_f90.square_sr_matrix_tensorc()[source]

fortran-subroutine - May 2017 (dj, updated) Find a sparse MPOm representation of the square of H using the matrix direct product.

Arguments

MatsqTYPE(sr_matrix_tensorc), inout

On exit, the square of the original MPO matrix.

MatTYPE(sr_matrix_tensorc), inout

The MPO matrix to be squared.

trafolCHARACTER, OPTIONAL, inout

Transformation on the left matrix.

traforCHARACTER, OPTIONAL, inout

Transformation on the right matrix.

Source Code

show / hide f90 code
MPOOps_f90.square_sr_matrix_qtensor()[source]

fortran-subroutine - May 2017 (dj, updated) Find a sparse MPOm representation of the square of H using the matrix direct product.

Arguments

MatsqTYPE(sr_matrix_qtensor), inout

On exit, the square of the original MPO matrix.

MatTYPE(sr_matrix_qtensor), inout

The MPO matrix to be squared.

trafolCHARACTER, OPTIONAL, inout

Transformation on the left matrix.

traforCHARACTER, OPTIONAL, inout

Transformation on the right matrix.

Source Code

show / hide f90 code
MPOOps_f90.square_sr_matrix_qtensorc()[source]

fortran-subroutine - May 2017 (dj, updated) Find a sparse MPOm representation of the square of H using the matrix direct product.

Arguments

MatsqTYPE(sr_matrix_qtensorc), inout

On exit, the square of the original MPO matrix.

MatTYPE(sr_matrix_qtensorc), inout

The MPO matrix to be squared.

trafolCHARACTER, OPTIONAL, inout

Transformation on the left matrix.

traforCHARACTER, OPTIONAL, inout

Transformation on the right matrix.

Source Code

show / hide f90 code
MPOOps_f90.construct_two_site_mpo_matrix_mpo()[source]

fortran-subroutine - July 2017 (dj) Construct all nearest-neighbor two site MPO matrices.

Arguments

HtsTYPE(sr_matrix_tensor)(*), inout

On exit allocated array of (ll - 1) nearest-neighbor two-site MPO matrices.

HamTYPE(mpo), inout

Ham represents the MPO from which the two site MPO matrices are built.

Source Code

show / hide f90 code
MPOOps_f90.construct_two_site_mpo_matrix_mpoc()[source]

fortran-subroutine - July 2017 (dj) Construct all nearest-neighbor two site MPO matrices.

Arguments

HtsTYPE(sr_matrix_tensorc)(*), inout

On exit allocated array of (ll - 1) nearest-neighbor two-site MPO matrices.

HamTYPE(mpoc), inout

Ham represents the MPO from which the two site MPO matrices are built.

Source Code

show / hide f90 code
MPOOps_f90.construct_two_site_mpo_matrix_qmpo()[source]

fortran-subroutine - July 2017 (dj) Construct all nearest-neighbor two site MPO matrices.

Arguments

HtsTYPE(sr_matrix_qtensor)(*), inout

On exit allocated array of (ll - 1) nearest-neighbor two-site MPO matrices.

HamTYPE(qmpo), inout

Ham represents the MPO from which the two site MPO matrices are built.

Source Code

show / hide f90 code
MPOOps_f90.construct_two_site_mpo_matrix_qmpoc()[source]

fortran-subroutine - July 2017 (dj) Construct all nearest-neighbor two site MPO matrices.

Arguments

HtsTYPE(sr_matrix_qtensorc)(*), inout

On exit allocated array of (ll - 1) nearest-neighbor two-site MPO matrices.

HamTYPE(qmpoc), inout

Ham represents the MPO from which the two site MPO matrices are built.

Source Code

show / hide f90 code
MPOOps_f90.destroy_two_site_mpo_matrix_mpo()[source]

fortran-subroutine - July 2017 (dj) Destroy all two site MPO matrices.

Arguments

HtsTYPE(sr_matrix_tensor)(*), inout

Deallocate array of (ll - 1) nearest-neighbor two-site MPO matrices.

Source Code

show / hide f90 code
MPOOps_f90.destroy_two_site_mpo_matrix_mpoc()[source]

fortran-subroutine - July 2017 (dj) Destroy all two site MPO matrices.

Arguments

HtsTYPE(sr_matrix_tensorc)(*), inout

Deallocate array of (ll - 1) nearest-neighbor two-site MPO matrices.

Source Code

show / hide f90 code
MPOOps_f90.destroy_two_site_mpo_matrix_qmpo()[source]

fortran-subroutine - July 2017 (dj) Destroy all two site MPO matrices.

Arguments

HtsTYPE(sr_matrix_qtensor)(*), inout

Deallocate array of (ll - 1) nearest-neighbor two-site MPO matrices.

Source Code

show / hide f90 code
MPOOps_f90.destroy_two_site_mpo_matrix_qmpoc()[source]

fortran-subroutine - July 2017 (dj) Destroy all two site MPO matrices.

Arguments

HtsTYPE(sr_matrix_qtensorc)(*), inout

Deallocate array of (ll - 1) nearest-neighbor two-site MPO matrices.

Source Code

show / hide f90 code
MPOOps_f90.destroy_mpo()[source]

fortran-subroutine - May 2017 (dj, updated) Deallocate/destroy an MPO.

Arguments

ObjTYPE(mpo), inout

On exit, all variables are deallocated.

Source Code

show / hide f90 code
MPOOps_f90.destroy_mpoc()[source]

fortran-subroutine - May 2017 (dj, updated) Deallocate/destroy an MPO.

Arguments

ObjTYPE(mpoc), inout

On exit, all variables are deallocated.

Source Code

show / hide f90 code
MPOOps_f90.destroy_qmpo()[source]

fortran-subroutine - May 2017 (dj, updated) Deallocate/destroy an MPO.

Arguments

ObjTYPE(qmpo), inout

On exit, all variables are deallocated.

Source Code

show / hide f90 code
MPOOps_f90.destroy_qmpoc()[source]

fortran-subroutine - May 2017 (dj, updated) Deallocate/destroy an MPO.

Arguments

ObjTYPE(qmpoc), inout

On exit, all variables are deallocated.

Source Code

show / hide f90 code
MPOOps_f90.set_hash_mpo()[source]

fortran-subroutine - October 2017 (dj) Set the hashes in an MPO iff it has symmetries according to the given indices.

Arguments

ObjTYPE(mpo), inout

Is MPO. On exit, the hashes will be set on each operator with symmetries in the complete MPO.

idxsINTEGER(*), in

Specify indices to be hashed in regard to the legs of the tensor.

Source Code

show / hide f90 code
MPOOps_f90.set_hash_mpoc()[source]

fortran-subroutine - October 2017 (dj) Set the hashes in an MPO iff it has symmetries according to the given indices.

Arguments

ObjTYPE(mpoc), inout

Is MPO. On exit, the hashes will be set on each operator with symmetries in the complete MPO.

idxsINTEGER(*), in

Specify indices to be hashed in regard to the legs of the tensor.

Source Code

show / hide f90 code
MPOOps_f90.set_hash_qmpo()[source]

fortran-subroutine - October 2017 (dj) Set the hashes in an MPO iff it has symmetries according to the given indices.

Arguments

ObjTYPE(qmpo), inout

Is MPO. On exit, the hashes will be set on each operator with symmetries in the complete MPO.

idxsINTEGER(*), in

Specify indices to be hashed in regard to the legs of the tensor.

Source Code

show / hide f90 code
MPOOps_f90.set_hash_qmpoc()[source]

fortran-subroutine - October 2017 (dj) Set the hashes in an MPO iff it has symmetries according to the given indices.

Arguments

ObjTYPE(qmpoc), inout

Is MPO. On exit, the hashes will be set on each operator with symmetries in the complete MPO.

idxsINTEGER(*), in

Specify indices to be hashed in regard to the legs of the tensor.

Source Code

show / hide f90 code
MPOOps_f90.set_timpo_pointers_mpo()[source]

fortran-subroutine - May 2017 (dj, updated) Set the pointers for the MPO-matrix of each site for a translational invariant MPO.

Arguments

ObjTYPE(mpo), inout

Set the pointers in this MPO.

Source Code

show / hide f90 code
MPOOps_f90.shift_mpo()[source]

fortran-subroutine - May 2017 (dj, updated) Transform the MPO H to the representation (H - shift).

Arguments

ObjTYPE(mpo), inout

MPO to be shifted. Shifted on exit.

shREAL, in

Apply this shift sh to the MPO.

Source Code

show / hide f90 code
MPOOps_f90.shiftandsquare_mpo()[source]

fortran-subroutine - May 2017 (dj, updated) Find a sparse MPO representation of the square of (H - shift) using the matrix direct product.

Arguments

ObjsqTYPE(mpo), inout

On exit, the MPO shifted and squared.

ObjTYPE(mpo), inout

MPO to be shifted and squared.

shREAL, in

The negative shift sh applied to the MPO.

Source Code

show / hide f90 code
MPOOps_f90.square_mpo()[source]

fortran-subroutine - May 2017 (dj, updated) Square an MPO. The bond dimension on each link squares as well.

Arguments

ObjsqTYPE(mpo), inout

On exit, the squared MPO of Obj using the direct product.

ObjTYPE(mpo), inout

MPO to be squared.

trafolCHARACTER, OPTIONAL, inout

Transformation on the left matrix.

traforCHARACTER, OPTIONAL, inout

Transformation on the right matrix.

Source Code

show / hide f90 code
MPOOps_f90.set_timpo_pointers_mpoc()[source]

fortran-subroutine - May 2017 (dj, updated) Set the pointers for the MPO-matrix of each site for a translational invariant MPO.

Arguments

ObjTYPE(mpoc), inout

Set the pointers in this MPO.

Source Code

show / hide f90 code
MPOOps_f90.shift_mpoc()[source]

fortran-subroutine - May 2017 (dj, updated) Transform the MPO H to the representation (H - shift).

Arguments

ObjTYPE(mpoc), inout

MPO to be shifted. Shifted on exit.

shREAL, in

Apply this shift sh to the MPO.

Source Code

show / hide f90 code
MPOOps_f90.shiftandsquare_mpoc()[source]

fortran-subroutine - May 2017 (dj, updated) Find a sparse MPO representation of the square of (H - shift) using the matrix direct product.

Arguments

ObjsqTYPE(mpoc), inout

On exit, the MPO shifted and squared.

ObjTYPE(mpoc), inout

MPO to be shifted and squared.

shREAL, in

The negative shift sh applied to the MPO.

Source Code

show / hide f90 code
MPOOps_f90.square_mpoc()[source]

fortran-subroutine - May 2017 (dj, updated) Square an MPO. The bond dimension on each link squares as well.

Arguments

ObjsqTYPE(mpoc), inout

On exit, the squared MPO of Obj using the direct product.

ObjTYPE(mpoc), inout

MPO to be squared.

trafolCHARACTER, OPTIONAL, inout

Transformation on the left matrix.

traforCHARACTER, OPTIONAL, inout

Transformation on the right matrix.

Source Code

show / hide f90 code
MPOOps_f90.set_timpo_pointers_qmpo()[source]

fortran-subroutine - May 2017 (dj, updated) Set the pointers for the MPO-matrix of each site for a translational invariant MPO.

Arguments

ObjTYPE(qmpo), inout

Set the pointers in this MPO.

Source Code

show / hide f90 code
MPOOps_f90.shift_qmpo()[source]

fortran-subroutine - May 2017 (dj, updated) Transform the MPO H to the representation (H - shift).

Arguments

ObjTYPE(qmpo), inout

MPO to be shifted. Shifted on exit.

shREAL, in

Apply this shift sh to the MPO.

Source Code

show / hide f90 code
MPOOps_f90.shiftandsquare_qmpo()[source]

fortran-subroutine - May 2017 (dj, updated) Find a sparse MPO representation of the square of (H - shift) using the matrix direct product.

Arguments

ObjsqTYPE(qmpo), inout

On exit, the MPO shifted and squared.

ObjTYPE(qmpo), inout

MPO to be shifted and squared.

shREAL, in

The negative shift sh applied to the MPO.

Source Code

show / hide f90 code
MPOOps_f90.square_qmpo()[source]

fortran-subroutine - May 2017 (dj, updated) Square an MPO. The bond dimension on each link squares as well.

Arguments

ObjsqTYPE(qmpo), inout

On exit, the squared MPO of Obj using the direct product.

ObjTYPE(qmpo), inout

MPO to be squared.

trafolCHARACTER, OPTIONAL, inout

Transformation on the left matrix.

traforCHARACTER, OPTIONAL, inout

Transformation on the right matrix.

Source Code

show / hide f90 code
MPOOps_f90.set_timpo_pointers_qmpoc()[source]

fortran-subroutine - May 2017 (dj, updated) Set the pointers for the MPO-matrix of each site for a translational invariant MPO.

Arguments

ObjTYPE(qmpoc), inout

Set the pointers in this MPO.

Source Code

show / hide f90 code
MPOOps_f90.shift_qmpoc()[source]

fortran-subroutine - May 2017 (dj, updated) Transform the MPO H to the representation (H - shift).

Arguments

ObjTYPE(qmpoc), inout

MPO to be shifted. Shifted on exit.

shREAL, in

Apply this shift sh to the MPO.

Source Code

show / hide f90 code
MPOOps_f90.shiftandsquare_qmpoc()[source]

fortran-subroutine - May 2017 (dj, updated) Find a sparse MPO representation of the square of (H - shift) using the matrix direct product.

Arguments

ObjsqTYPE(qmpoc), inout

On exit, the MPO shifted and squared.

ObjTYPE(qmpoc), inout

MPO to be shifted and squared.

shREAL, in

The negative shift sh applied to the MPO.

Source Code

show / hide f90 code
MPOOps_f90.square_qmpoc()[source]

fortran-subroutine - May 2017 (dj, updated) Square an MPO. The bond dimension on each link squares as well.

Arguments

ObjsqTYPE(qmpoc), inout

On exit, the squared MPO of Obj using the direct product.

ObjTYPE(qmpoc), inout

MPO to be squared.

trafolCHARACTER, OPTIONAL, inout

Transformation on the left matrix.

traforCHARACTER, OPTIONAL, inout

Transformation on the right matrix.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_ham_2site_tensorlist_tensor()[source]

fortran-subroutine - May 2017 (dj, update) Extract the 2-site Hamiltonian for a Trotter decomposition from the Rule Set.

Arguments

HamTYPE(tensor), out

Contains on exit the two-site Hamiltonian as rank four tensor. The weight of the local Hamiltonians is equally 0.5 for PBC and on sites 2 .. (ll-1) for the bulk in OBC. Sites 1 and ll have weight 1.0 in OPC.

xxINTEGER, in

Get hamiltonian for sites xx, xx+1

RsTYPE(MPORuleSet), in

Contains the rule set to build up the MPO. For the 2-site Hamiltonian only site-rules and bond-rules are considered.

OpsTYPE(tensorlist), in

List containing all operators for the evolution

HparamsTYPE(HamiltonianParameters), in

containing the couplings for each operator

iopINTEGER, in

The index of the identity in the operator list.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_ham_2site_tensorlist_tensorc()[source]

fortran-subroutine - May 2017 (dj, update) Extract the 2-site Hamiltonian for a Trotter decomposition from the Rule Set.

Arguments

HamTYPE(tensorc), out

Contains on exit the two-site Hamiltonian as rank four tensor. The weight of the local Hamiltonians is equally 0.5 for PBC and on sites 2 .. (ll-1) for the bulk in OBC. Sites 1 and ll have weight 1.0 in OPC.

xxINTEGER, in

Get hamiltonian for sites xx, xx+1

RsTYPE(MPORuleSet), in

Contains the rule set to build up the MPO. For the 2-site Hamiltonian only site-rules and bond-rules are considered.

OpsTYPE(tensorlist), in

List containing all operators for the evolution

HparamsTYPE(HamiltonianParameters), in

containing the couplings for each operator

iopINTEGER, in

The index of the identity in the operator list.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_ham_2site_tensorlistc_tensorc()[source]

fortran-subroutine - May 2017 (dj, update) Extract the 2-site Hamiltonian for a Trotter decomposition from the Rule Set.

Arguments

HamTYPE(tensorc), out

Contains on exit the two-site Hamiltonian as rank four tensor. The weight of the local Hamiltonians is equally 0.5 for PBC and on sites 2 .. (ll-1) for the bulk in OBC. Sites 1 and ll have weight 1.0 in OPC.

xxINTEGER, in

Get hamiltonian for sites xx, xx+1

RsTYPE(MPORuleSet), in

Contains the rule set to build up the MPO. For the 2-site Hamiltonian only site-rules and bond-rules are considered.

OpsTYPE(tensorlistc), in

List containing all operators for the evolution

HparamsTYPE(HamiltonianParameters), in

containing the couplings for each operator

iopINTEGER, in

The index of the identity in the operator list.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_ham_2site_qtensorlist_qtensor()[source]

fortran-subroutine - May 2017 (dj, update) Extract the 2-site Hamiltonian for a Trotter decomposition from the Rule Set.

Arguments

HamTYPE(qtensor), out

Contains on exit the two-site Hamiltonian as rank four tensor. The weight of the local Hamiltonians is equally 0.5 for PBC and on sites 2 .. (ll-1) for the bulk in OBC. Sites 1 and ll have weight 1.0 in OPC.

xxINTEGER, in

Get hamiltonian for sites xx, xx+1

RsTYPE(MPORuleSet), in

Contains the rule set to build up the MPO. For the 2-site Hamiltonian only site-rules and bond-rules are considered.

OpsTYPE(qtensorlist), in

List containing all operators for the evolution

HparamsTYPE(HamiltonianParameters), in

containing the couplings for each operator

iopINTEGER, in

The index of the identity in the operator list.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_ham_2site_qtensorlist_qtensorc()[source]

fortran-subroutine - May 2017 (dj, update) Extract the 2-site Hamiltonian for a Trotter decomposition from the Rule Set.

Arguments

HamTYPE(qtensorc), out

Contains on exit the two-site Hamiltonian as rank four tensor. The weight of the local Hamiltonians is equally 0.5 for PBC and on sites 2 .. (ll-1) for the bulk in OBC. Sites 1 and ll have weight 1.0 in OPC.

xxINTEGER, in

Get hamiltonian for sites xx, xx+1

RsTYPE(MPORuleSet), in

Contains the rule set to build up the MPO. For the 2-site Hamiltonian only site-rules and bond-rules are considered.

OpsTYPE(qtensorlist), in

List containing all operators for the evolution

HparamsTYPE(HamiltonianParameters), in

containing the couplings for each operator

iopINTEGER, in

The index of the identity in the operator list.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_ham_2site_qtensorclist_qtensorc()[source]

fortran-subroutine - May 2017 (dj, update) Extract the 2-site Hamiltonian for a Trotter decomposition from the Rule Set.

Arguments

HamTYPE(qtensorc), out

Contains on exit the two-site Hamiltonian as rank four tensor. The weight of the local Hamiltonians is equally 0.5 for PBC and on sites 2 .. (ll-1) for the bulk in OBC. Sites 1 and ll have weight 1.0 in OPC.

xxINTEGER, in

Get hamiltonian for sites xx, xx+1

RsTYPE(MPORuleSet), in

Contains the rule set to build up the MPO. For the 2-site Hamiltonian only site-rules and bond-rules are considered.

OpsTYPE(qtensorclist), in

List containing all operators for the evolution

HparamsTYPE(HamiltonianParameters), in

containing the couplings for each operator

iopINTEGER, in

The index of the identity in the operator list.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_effham_2site_tensorlist()[source]

fortran-subroutine - May 2017 (dj, update) Extract the 2-site effective Hamiltonian for a Trotter decomposition from the Rule Set for quantum trajectories.

Arguments

HamTYPE(tensorc), out

Contains on exit the two-site effective Hamiltonian as rank four tensor. The weight of the local Hamiltonians is equally 0.5 for PBC and on sites 2 .. (ll-1) for the bulk in OBC. Sites 1 and ll have weight 1.0 in OPC.

xxINTEGER, in

Get hamiltonian for sites xx, xx+1

RsTYPE(MPORuleSet), in

Contains the rule set to build up the MPO. For the 2-site Hamiltonian only site-rules and bond-rules are considered. The dissipative part includes the local Lindblad terms.

OpsTYPE(tensorlist), inout

List containing all operators for the evolution

HparamsTYPE(HamiltonianParameters), in

containing the couplings for each operator

iopINTEGER, in

The index of the identity in the operator list.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_effham_2site_tensorlistc()[source]

fortran-subroutine - May 2017 (dj, update) Extract the 2-site effective Hamiltonian for a Trotter decomposition from the Rule Set for quantum trajectories.

Arguments

HamTYPE(tensorc), out

Contains on exit the two-site effective Hamiltonian as rank four tensor. The weight of the local Hamiltonians is equally 0.5 for PBC and on sites 2 .. (ll-1) for the bulk in OBC. Sites 1 and ll have weight 1.0 in OPC.

xxINTEGER, in

Get hamiltonian for sites xx, xx+1

RsTYPE(MPORuleSet), in

Contains the rule set to build up the MPO. For the 2-site Hamiltonian only site-rules and bond-rules are considered. The dissipative part includes the local Lindblad terms.

OpsTYPE(tensorlistc), inout

List containing all operators for the evolution

HparamsTYPE(HamiltonianParameters), in

containing the couplings for each operator

iopINTEGER, in

The index of the identity in the operator list.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_effham_2site_qtensorlist()[source]

fortran-subroutine - May 2017 (dj, update) Extract the 2-site effective Hamiltonian for a Trotter decomposition from the Rule Set for quantum trajectories.

Arguments

HamTYPE(qtensorc), out

Contains on exit the two-site effective Hamiltonian as rank four tensor. The weight of the local Hamiltonians is equally 0.5 for PBC and on sites 2 .. (ll-1) for the bulk in OBC. Sites 1 and ll have weight 1.0 in OPC.

xxINTEGER, in

Get hamiltonian for sites xx, xx+1

RsTYPE(MPORuleSet), in

Contains the rule set to build up the MPO. For the 2-site Hamiltonian only site-rules and bond-rules are considered. The dissipative part includes the local Lindblad terms.

OpsTYPE(qtensorlist), inout

List containing all operators for the evolution

HparamsTYPE(HamiltonianParameters), in

containing the couplings for each operator

iopINTEGER, in

The index of the identity in the operator list.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_effham_2site_qtensorclist()[source]

fortran-subroutine - May 2017 (dj, update) Extract the 2-site effective Hamiltonian for a Trotter decomposition from the Rule Set for quantum trajectories.

Arguments

HamTYPE(qtensorc), out

Contains on exit the two-site effective Hamiltonian as rank four tensor. The weight of the local Hamiltonians is equally 0.5 for PBC and on sites 2 .. (ll-1) for the bulk in OBC. Sites 1 and ll have weight 1.0 in OPC.

xxINTEGER, in

Get hamiltonian for sites xx, xx+1

RsTYPE(MPORuleSet), in

Contains the rule set to build up the MPO. For the 2-site Hamiltonian only site-rules and bond-rules are considered. The dissipative part includes the local Lindblad terms.

OpsTYPE(qtensorclist), inout

List containing all operators for the evolution

HparamsTYPE(HamiltonianParameters), in

containing the couplings for each operator

iopINTEGER, in

The index of the identity in the operator list.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_clliou_2site_tensor_tensorlist()[source]

fortran-subroutine - September 2017 (dj) Build a two-site Liouville operator for Liouville space (closed system, Hamiltonian only).

Arguments

LiouTYPE(tensor), inout

On exit, the Liouville operator as rank-4 tensor.

xxINTEGER, in

Get Liouville operator for sites xx, xx+1

RsTYPE(MPORuleSet), in

Contains the rule set to build up the MPO.

OpsTYPE(tensorlist), in

List containing all operators for the evolution

HparamsTYPE(HamiltonianParameters), in

containing the couplings for each operator

iopINTEGER, in

The index of the identity in the operator list.

is_initLOGICAL, OPTIONAL, out

If true, Liou has already been initialized. If false, no terms were added up to now.

scconjspaceREAL, OPTIONAL, in

Scalar to be multplied with conjugate space. Default to 1.0 for imaginary time evolution. Set to -1.0 for Hamiltonian evolution.

Details

The following rules are considered : site rules for the Hamiltonian, bond rules for the Hamiltonian, site rules for Lindblad operators.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_clliou_2site_tensorc_tensorlist()[source]

fortran-subroutine - September 2017 (dj) Build a two-site Liouville operator for Liouville space (closed system, Hamiltonian only).

Arguments

LiouTYPE(tensorc), inout

On exit, the Liouville operator as rank-4 tensor.

xxINTEGER, in

Get Liouville operator for sites xx, xx+1

RsTYPE(MPORuleSet), in

Contains the rule set to build up the MPO.

OpsTYPE(tensorlist), in

List containing all operators for the evolution

HparamsTYPE(HamiltonianParameters), in

containing the couplings for each operator

iopINTEGER, in

The index of the identity in the operator list.

is_initLOGICAL, OPTIONAL, out

If true, Liou has already been initialized. If false, no terms were added up to now.

scconjspaceREAL, OPTIONAL, in

Scalar to be multplied with conjugate space. Default to 1.0 for imaginary time evolution. Set to -1.0 for Hamiltonian evolution.

Details

The following rules are considered : site rules for the Hamiltonian, bond rules for the Hamiltonian, site rules for Lindblad operators.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_clliou_2site_tensorc_tensorlistc()[source]

fortran-subroutine - September 2017 (dj) Build a two-site Liouville operator for Liouville space (closed system, Hamiltonian only).

Arguments

LiouTYPE(tensorc), inout

On exit, the Liouville operator as rank-4 tensor.

xxINTEGER, in

Get Liouville operator for sites xx, xx+1

RsTYPE(MPORuleSet), in

Contains the rule set to build up the MPO.

OpsTYPE(tensorlistc), in

List containing all operators for the evolution

HparamsTYPE(HamiltonianParameters), in

containing the couplings for each operator

iopINTEGER, in

The index of the identity in the operator list.

is_initLOGICAL, OPTIONAL, out

If true, Liou has already been initialized. If false, no terms were added up to now.

scconjspaceREAL, OPTIONAL, in

Scalar to be multplied with conjugate space. Default to 1.0 for imaginary time evolution. Set to -1.0 for Hamiltonian evolution.

Details

The following rules are considered : site rules for the Hamiltonian, bond rules for the Hamiltonian, site rules for Lindblad operators.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_clliou_2site_qtensor_qtensorlist()[source]

fortran-subroutine - September 2017 (dj) Build a two-site Liouville operator for Liouville space (closed system, Hamiltonian only).

Arguments

LiouTYPE(qtensor), inout

On exit, the Liouville operator as rank-4 tensor.

xxINTEGER, in

Get Liouville operator for sites xx, xx+1

RsTYPE(MPORuleSet), in

Contains the rule set to build up the MPO.

OpsTYPE(qtensorlist), in

List containing all operators for the evolution

HparamsTYPE(HamiltonianParameters), in

containing the couplings for each operator

iopINTEGER, in

The index of the identity in the operator list.

is_initLOGICAL, OPTIONAL, out

If true, Liou has already been initialized. If false, no terms were added up to now.

scconjspaceREAL, OPTIONAL, in

Scalar to be multplied with conjugate space. Default to 1.0 for imaginary time evolution. Set to -1.0 for Hamiltonian evolution.

Details

The following rules are considered : site rules for the Hamiltonian, bond rules for the Hamiltonian, site rules for Lindblad operators.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_clliou_2site_qtensorc_qtensorlist()[source]

fortran-subroutine - September 2017 (dj) Build a two-site Liouville operator for Liouville space (closed system, Hamiltonian only).

Arguments

LiouTYPE(qtensorc), inout

On exit, the Liouville operator as rank-4 tensor.

xxINTEGER, in

Get Liouville operator for sites xx, xx+1

RsTYPE(MPORuleSet), in

Contains the rule set to build up the MPO.

OpsTYPE(qtensorlist), in

List containing all operators for the evolution

HparamsTYPE(HamiltonianParameters), in

containing the couplings for each operator

iopINTEGER, in

The index of the identity in the operator list.

is_initLOGICAL, OPTIONAL, out

If true, Liou has already been initialized. If false, no terms were added up to now.

scconjspaceREAL, OPTIONAL, in

Scalar to be multplied with conjugate space. Default to 1.0 for imaginary time evolution. Set to -1.0 for Hamiltonian evolution.

Details

The following rules are considered : site rules for the Hamiltonian, bond rules for the Hamiltonian, site rules for Lindblad operators.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_clliou_2site_qtensorc_qtensorclist()[source]

fortran-subroutine - September 2017 (dj) Build a two-site Liouville operator for Liouville space (closed system, Hamiltonian only).

Arguments

LiouTYPE(qtensorc), inout

On exit, the Liouville operator as rank-4 tensor.

xxINTEGER, in

Get Liouville operator for sites xx, xx+1

RsTYPE(MPORuleSet), in

Contains the rule set to build up the MPO.

OpsTYPE(qtensorclist), in

List containing all operators for the evolution

HparamsTYPE(HamiltonianParameters), in

containing the couplings for each operator

iopINTEGER, in

The index of the identity in the operator list.

is_initLOGICAL, OPTIONAL, out

If true, Liou has already been initialized. If false, no terms were added up to now.

scconjspaceREAL, OPTIONAL, in

Scalar to be multplied with conjugate space. Default to 1.0 for imaginary time evolution. Set to -1.0 for Hamiltonian evolution.

Details

The following rules are considered : site rules for the Hamiltonian, bond rules for the Hamiltonian, site rules for Lindblad operators.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_liou_2site_tensorlist()[source]

fortran-subroutine - September 2017 (dj) Build a two-site Liouville operator for a Lindblad master equation.

Arguments

LiouTYPE(tensorc), inout

On exit, the Liouville operator as rank-4 tensor.

xxINTEGER, in

Get Liouville operator for sites xx, xx+1

RsTYPE(MPORuleSet), in

Contains the rule set to build up the MPO.

OpsTYPE(tensorlist), inout

List containing all operators for the evolution

HparamsTYPE(HamiltonianParameters), in

containing the couplings for each operator

iopINTEGER, in

The index of the identity in the operator list.

Details

The following rules are considered : site rules for the Hamiltonian, bond rules for the Hamiltonian, site rules for Lindblad operators.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_liou_2site_tensorlistc()[source]

fortran-subroutine - September 2017 (dj) Build a two-site Liouville operator for a Lindblad master equation.

Arguments

LiouTYPE(tensorc), inout

On exit, the Liouville operator as rank-4 tensor.

xxINTEGER, in

Get Liouville operator for sites xx, xx+1

RsTYPE(MPORuleSet), in

Contains the rule set to build up the MPO.

OpsTYPE(tensorlistc), inout

List containing all operators for the evolution

HparamsTYPE(HamiltonianParameters), in

containing the couplings for each operator

iopINTEGER, in

The index of the identity in the operator list.

Details

The following rules are considered : site rules for the Hamiltonian, bond rules for the Hamiltonian, site rules for Lindblad operators.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_liou_2site_qtensorlist()[source]

fortran-subroutine - September 2017 (dj) Build a two-site Liouville operator for a Lindblad master equation.

Arguments

LiouTYPE(qtensorc), inout

On exit, the Liouville operator as rank-4 tensor.

xxINTEGER, in

Get Liouville operator for sites xx, xx+1

RsTYPE(MPORuleSet), in

Contains the rule set to build up the MPO.

OpsTYPE(qtensorlist), inout

List containing all operators for the evolution

HparamsTYPE(HamiltonianParameters), in

containing the couplings for each operator

iopINTEGER, in

The index of the identity in the operator list.

Details

The following rules are considered : site rules for the Hamiltonian, bond rules for the Hamiltonian, site rules for Lindblad operators.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_liou_2site_qtensorclist()[source]

fortran-subroutine - September 2017 (dj) Build a two-site Liouville operator for a Lindblad master equation.

Arguments

LiouTYPE(qtensorc), inout

On exit, the Liouville operator as rank-4 tensor.

xxINTEGER, in

Get Liouville operator for sites xx, xx+1

RsTYPE(MPORuleSet), in

Contains the rule set to build up the MPO.

OpsTYPE(qtensorclist), inout

List containing all operators for the evolution

HparamsTYPE(HamiltonianParameters), in

containing the couplings for each operator

iopINTEGER, in

The index of the identity in the operator list.

Details

The following rules are considered : site rules for the Hamiltonian, bond rules for the Hamiltonian, site rules for Lindblad operators.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_ham_mpo_tensorlist_mpo()[source]

fortran-subroutine - May 2017 (dj, updated) Construct an MPO from a set of rules, an alphabet of operators, and a set of hamiltonian parameters (obtained from Python frontend)

Arguments

HamTYPE(Fmpo), inout

initialized during this subroutine.

RsTYPE(MPORuleSet), inout

Rule set for simulation

llINTEGER, inout

number of sites in the system.

OpsTYPE(tensorlist), inout

Operator alphabet contain all operators to build MPO.

HparamsTYPE(HamiltonianParameters)(*), POINTER, in

Hamiltonian parameters contain coupling etc.

iopINTEGER, in

The index of the identity in the operator list.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_ham_mpo_tensorlist_mpoc()[source]

fortran-subroutine - May 2017 (dj, updated) Construct an MPO from a set of rules, an alphabet of operators, and a set of hamiltonian parameters (obtained from Python frontend)

Arguments

HamTYPE(Fmpoc), inout

initialized during this subroutine.

RsTYPE(MPORuleSet), inout

Rule set for simulation

llINTEGER, inout

number of sites in the system.

OpsTYPE(tensorlist), inout

Operator alphabet contain all operators to build MPO.

HparamsTYPE(HamiltonianParameters)(*), POINTER, in

Hamiltonian parameters contain coupling etc.

iopINTEGER, in

The index of the identity in the operator list.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_ham_mpo_tensorlistc_mpoc()[source]

fortran-subroutine - May 2017 (dj, updated) Construct an MPO from a set of rules, an alphabet of operators, and a set of hamiltonian parameters (obtained from Python frontend)

Arguments

HamTYPE(Fmpoc), inout

initialized during this subroutine.

RsTYPE(MPORuleSet), inout

Rule set for simulation

llINTEGER, inout

number of sites in the system.

OpsTYPE(tensorlistc), inout

Operator alphabet contain all operators to build MPO.

HparamsTYPE(HamiltonianParameters)(*), POINTER, in

Hamiltonian parameters contain coupling etc.

iopINTEGER, in

The index of the identity in the operator list.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_ham_mpo_qtensorlist_qmpo()[source]

fortran-subroutine - May 2017 (dj, updated) Construct an MPO from a set of rules, an alphabet of operators, and a set of hamiltonian parameters (obtained from Python frontend)

Arguments

HamTYPE(Fqmpo), inout

initialized during this subroutine.

RsTYPE(MPORuleSet), inout

Rule set for simulation

llINTEGER, inout

number of sites in the system.

OpsTYPE(qtensorlist), inout

Operator alphabet contain all operators to build MPO.

HparamsTYPE(HamiltonianParameters)(*), POINTER, in

Hamiltonian parameters contain coupling etc.

iopINTEGER, in

The index of the identity in the operator list.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_ham_mpo_qtensorlist_qmpoc()[source]

fortran-subroutine - May 2017 (dj, updated) Construct an MPO from a set of rules, an alphabet of operators, and a set of hamiltonian parameters (obtained from Python frontend)

Arguments

HamTYPE(Fqmpoc), inout

initialized during this subroutine.

RsTYPE(MPORuleSet), inout

Rule set for simulation

llINTEGER, inout

number of sites in the system.

OpsTYPE(qtensorlist), inout

Operator alphabet contain all operators to build MPO.

HparamsTYPE(HamiltonianParameters)(*), POINTER, in

Hamiltonian parameters contain coupling etc.

iopINTEGER, in

The index of the identity in the operator list.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_ham_mpo_qtensorclist_qmpoc()[source]

fortran-subroutine - May 2017 (dj, updated) Construct an MPO from a set of rules, an alphabet of operators, and a set of hamiltonian parameters (obtained from Python frontend)

Arguments

HamTYPE(Fqmpoc), inout

initialized during this subroutine.

RsTYPE(MPORuleSet), inout

Rule set for simulation

llINTEGER, inout

number of sites in the system.

OpsTYPE(qtensorclist), inout

Operator alphabet contain all operators to build MPO.

HparamsTYPE(HamiltonianParameters)(*), POINTER, in

Hamiltonian parameters contain coupling etc.

iopINTEGER, in

The index of the identity in the operator list.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_effham_mpo_tensorlist_mpoc()[source]

fortran-subroutine - May 2017 (dj, updated) Construct an MPO from a set of rules, an alphabet of operators, and a set of hamiltonian parameters (obtained from Python frontend) This subroutine generates an effective Hamiltonian.

Arguments

HamTYPE(Fmpoc), inout

initialized during this subroutine.

RsTYPE(MPORuleSet), inout

Rule set for simulation

llINTEGER, inout

number of sites in the system.

OpsTYPE(tensorlist), inout

Operator alphabet contain all operators to build MPO.

HparamsTYPE(HamiltonianParameters)(*), POINTER, in

Hamiltonian parameters contain coupling etc.

iopINTEGER, in

The index of the identity in the operator list.

Details

In order to allow for more complicated Lindblad terms, we build the MPO from scratch and do not copy the closed system MPO and modify it.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_effham_mpo_tensorlistc_mpoc()[source]

fortran-subroutine - May 2017 (dj, updated) Construct an MPO from a set of rules, an alphabet of operators, and a set of hamiltonian parameters (obtained from Python frontend) This subroutine generates an effective Hamiltonian.

Arguments

HamTYPE(Fmpoc), inout

initialized during this subroutine.

RsTYPE(MPORuleSet), inout

Rule set for simulation

llINTEGER, inout

number of sites in the system.

OpsTYPE(tensorlistc), inout

Operator alphabet contain all operators to build MPO.

HparamsTYPE(HamiltonianParameters)(*), POINTER, in

Hamiltonian parameters contain coupling etc.

iopINTEGER, in

The index of the identity in the operator list.

Details

In order to allow for more complicated Lindblad terms, we build the MPO from scratch and do not copy the closed system MPO and modify it.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_effham_mpo_qtensorlist_qmpoc()[source]

fortran-subroutine - May 2017 (dj, updated) Construct an MPO from a set of rules, an alphabet of operators, and a set of hamiltonian parameters (obtained from Python frontend) This subroutine generates an effective Hamiltonian.

Arguments

HamTYPE(Fqmpoc), inout

initialized during this subroutine.

RsTYPE(MPORuleSet), inout

Rule set for simulation

llINTEGER, inout

number of sites in the system.

OpsTYPE(qtensorlist), inout

Operator alphabet contain all operators to build MPO.

HparamsTYPE(HamiltonianParameters)(*), POINTER, in

Hamiltonian parameters contain coupling etc.

iopINTEGER, in

The index of the identity in the operator list.

Details

In order to allow for more complicated Lindblad terms, we build the MPO from scratch and do not copy the closed system MPO and modify it.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_effham_mpo_qtensorclist_qmpoc()[source]

fortran-subroutine - May 2017 (dj, updated) Construct an MPO from a set of rules, an alphabet of operators, and a set of hamiltonian parameters (obtained from Python frontend) This subroutine generates an effective Hamiltonian.

Arguments

HamTYPE(Fqmpoc), inout

initialized during this subroutine.

RsTYPE(MPORuleSet), inout

Rule set for simulation

llINTEGER, inout

number of sites in the system.

OpsTYPE(qtensorclist), inout

Operator alphabet contain all operators to build MPO.

HparamsTYPE(HamiltonianParameters)(*), POINTER, in

Hamiltonian parameters contain coupling etc.

iopINTEGER, in

The index of the identity in the operator list.

Details

In order to allow for more complicated Lindblad terms, we build the MPO from scratch and do not copy the closed system MPO and modify it.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_liou_mpo_tensorlist_mpoc()[source]

fortran-subroutine - May 2017 (dj, updated) Construct an MPO from a set of rules, an alphabet of operators, and a set of hamiltonian parameters (obtained from Python frontend). This subroutine is the open quantum system version constructing the Liouville operator.

Arguments

HamTYPE(Fmpoc), inout

initialized during this subroutine.

RsTYPE(MPORuleSet), inout

Rule set for simulation

llINTEGER, inout

number of sites in the system.

OpsTYPE(tensorlist), inout

Operator alphabet contain all operators to build MPO.

HparamsTYPE(HamiltonianParameters)(*), POINTER, in

Hamiltonian parameters contain coupling etc.

iopINTEGER, in

The index of the identity in the operator list.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_liou_mpo_tensorlistc_mpoc()[source]

fortran-subroutine - May 2017 (dj, updated) Construct an MPO from a set of rules, an alphabet of operators, and a set of hamiltonian parameters (obtained from Python frontend). This subroutine is the open quantum system version constructing the Liouville operator.

Arguments

HamTYPE(Fmpoc), inout

initialized during this subroutine.

RsTYPE(MPORuleSet), inout

Rule set for simulation

llINTEGER, inout

number of sites in the system.

OpsTYPE(tensorlistc), inout

Operator alphabet contain all operators to build MPO.

HparamsTYPE(HamiltonianParameters)(*), POINTER, in

Hamiltonian parameters contain coupling etc.

iopINTEGER, in

The index of the identity in the operator list.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_liou_mpo_qtensorlist_qmpoc()[source]

fortran-subroutine - May 2017 (dj, updated) Construct an MPO from a set of rules, an alphabet of operators, and a set of hamiltonian parameters (obtained from Python frontend). This subroutine is the open quantum system version constructing the Liouville operator.

Arguments

HamTYPE(Fqmpoc), inout

initialized during this subroutine.

RsTYPE(MPORuleSet), inout

Rule set for simulation

llINTEGER, inout

number of sites in the system.

OpsTYPE(qtensorlist), inout

Operator alphabet contain all operators to build MPO.

HparamsTYPE(HamiltonianParameters)(*), POINTER, in

Hamiltonian parameters contain coupling etc.

iopINTEGER, in

The index of the identity in the operator list.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_liou_mpo_qtensorclist_qmpoc()[source]

fortran-subroutine - May 2017 (dj, updated) Construct an MPO from a set of rules, an alphabet of operators, and a set of hamiltonian parameters (obtained from Python frontend). This subroutine is the open quantum system version constructing the Liouville operator.

Arguments

HamTYPE(Fqmpoc), inout

initialized during this subroutine.

RsTYPE(MPORuleSet), inout

Rule set for simulation

llINTEGER, inout

number of sites in the system.

OpsTYPE(qtensorclist), inout

Operator alphabet contain all operators to build MPO.

HparamsTYPE(HamiltonianParameters)(*), POINTER, in

Hamiltonian parameters contain coupling etc.

iopINTEGER, in

The index of the identity in the operator list.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_clliou_mpo_tensorlist_mpo()[source]

fortran-subroutine - May 2017 (dj, updated) Construct an MPO from a set of rules, an alphabet of operators, and a set of hamiltonian parameters (obtained from Python frontend). This subroutine is the open quantum system version constructing the Liouville operator.

Arguments

HamTYPE(Fmpo), inout

initialized during this subroutine.

RsTYPE(MPORuleSet), inout

Rule set for simulation

llINTEGER, inout

number of sites in the system.

OpsTYPE(tensorlist), inout

Operator alphabet contain all operators to build MPO.

HparamsTYPE(HamiltonianParameters)(*), POINTER, in

Hamiltonian parameters contain coupling etc.

iopINTEGER, in

The index of the identity in the operator list.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_clliou_mpo_tensorlistc_mpoc()[source]

fortran-subroutine - May 2017 (dj, updated) Construct an MPO from a set of rules, an alphabet of operators, and a set of hamiltonian parameters (obtained from Python frontend). This subroutine is the open quantum system version constructing the Liouville operator.

Arguments

HamTYPE(Fmpoc), inout

initialized during this subroutine.

RsTYPE(MPORuleSet), inout

Rule set for simulation

llINTEGER, inout

number of sites in the system.

OpsTYPE(tensorlistc), inout

Operator alphabet contain all operators to build MPO.

HparamsTYPE(HamiltonianParameters)(*), POINTER, in

Hamiltonian parameters contain coupling etc.

iopINTEGER, in

The index of the identity in the operator list.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_clliou_mpo_qtensorlist_qmpo()[source]

fortran-subroutine - May 2017 (dj, updated) Construct an MPO from a set of rules, an alphabet of operators, and a set of hamiltonian parameters (obtained from Python frontend). This subroutine is the open quantum system version constructing the Liouville operator.

Arguments

HamTYPE(Fqmpo), inout

initialized during this subroutine.

RsTYPE(MPORuleSet), inout

Rule set for simulation

llINTEGER, inout

number of sites in the system.

OpsTYPE(qtensorlist), inout

Operator alphabet contain all operators to build MPO.

HparamsTYPE(HamiltonianParameters)(*), POINTER, in

Hamiltonian parameters contain coupling etc.

iopINTEGER, in

The index of the identity in the operator list.

Source Code

show / hide f90 code
MPOOps_f90.ruleset_to_clliou_mpo_qtensorclist_qmpoc()[source]

fortran-subroutine - May 2017 (dj, updated) Construct an MPO from a set of rules, an alphabet of operators, and a set of hamiltonian parameters (obtained from Python frontend). This subroutine is the open quantum system version constructing the Liouville operator.

Arguments

HamTYPE(Fqmpoc), inout

initialized during this subroutine.

RsTYPE(MPORuleSet), inout

Rule set for simulation

llINTEGER, inout

number of sites in the system.

OpsTYPE(qtensorclist), inout

Operator alphabet contain all operators to build MPO.

HparamsTYPE(HamiltonianParameters)(*), POINTER, in

Hamiltonian parameters contain coupling etc.

iopINTEGER, in

The index of the identity in the operator list.

Source Code

show / hide f90 code
MPOOps_f90.contractmpol_tensor_tensor()[source]

fortran-subroutine - October 2017 (dj, updated) Do G_{a i b} = \sum_{k' i'} W_{k k'}^{i i'} F^{k'}_{a i' b}. The l stands for left-moving.

Arguments

ToutTYPE(tensor), inout

On exit, transfer matrix for one index in the row bond dimension of the MPO.

kkINTEGER, inout

The index of the row bond dimension in the MPO.

MatTYPE(tensor), inout

Matrix representing the MPO on the specific site.

TinTYPE(tensor), POINTER, inout

??

Details

Contract the MPO matrix M_{(k,a),b,c} with the tensor-array T_{(a),i,b,j} to a tensor T_{c,i,j}. This version works for single site and two-site MPO depending on the rank of the MPO matrix.

Source Code

show / hide f90 code
MPOOps_f90.contractmpol_tensor_tensorc()[source]

fortran-subroutine - October 2017 (dj, updated) Do G_{a i b} = \sum_{k' i'} W_{k k'}^{i i'} F^{k'}_{a i' b}. The l stands for left-moving.

Arguments

ToutTYPE(tensorc), inout

On exit, transfer matrix for one index in the row bond dimension of the MPO.

kkINTEGER, inout

The index of the row bond dimension in the MPO.

MatTYPE(tensor), inout

Matrix representing the MPO on the specific site.

TinTYPE(tensorc), POINTER, inout

??

Details

Contract the MPO matrix M_{(k,a),b,c} with the tensor-array T_{(a),i,b,j} to a tensor T_{c,i,j}. This version works for single site and two-site MPO depending on the rank of the MPO matrix.

Source Code

show / hide f90 code
MPOOps_f90.contractmpol_tensorc_tensorc()[source]

fortran-subroutine - October 2017 (dj, updated) Do G_{a i b} = \sum_{k' i'} W_{k k'}^{i i'} F^{k'}_{a i' b}. The l stands for left-moving.

Arguments

ToutTYPE(tensorc), inout

On exit, transfer matrix for one index in the row bond dimension of the MPO.

kkINTEGER, inout

The index of the row bond dimension in the MPO.

MatTYPE(tensorc), inout

Matrix representing the MPO on the specific site.

TinTYPE(tensorc), POINTER, inout

??

Details

Contract the MPO matrix M_{(k,a),b,c} with the tensor-array T_{(a),i,b,j} to a tensor T_{c,i,j}. This version works for single site and two-site MPO depending on the rank of the MPO matrix.

Source Code

show / hide f90 code
MPOOps_f90.contractmpol_qtensor_qtensor()[source]

fortran-subroutine - October 2017 (dj, updated) Do G_{a i b} = \sum_{k' i'} W_{k k'}^{i i'} F^{k'}_{a i' b}. The l stands for left-moving.

Arguments

ToutTYPE(qtensor), inout

On exit, transfer matrix for one index in the row bond dimension of the MPO.

kkINTEGER, inout

The index of the row bond dimension in the MPO.

MatTYPE(qtensor), inout

Matrix representing the MPO on the specific site.

TinTYPE(qtensor), POINTER, inout

??

Details

Contract the MPO matrix M_{(k,a),b,c} with the tensor-array T_{(a),i,b,j} to a tensor T_{c,i,j}. This version works for single site and two-site MPO depending on the rank of the MPO matrix.

Source Code

show / hide f90 code
MPOOps_f90.contractmpol_qtensor_qtensorc()[source]

fortran-subroutine - October 2017 (dj, updated) Do G_{a i b} = \sum_{k' i'} W_{k k'}^{i i'} F^{k'}_{a i' b}. The l stands for left-moving.

Arguments

ToutTYPE(qtensorc), inout

On exit, transfer matrix for one index in the row bond dimension of the MPO.

kkINTEGER, inout

The index of the row bond dimension in the MPO.

MatTYPE(qtensor), inout

Matrix representing the MPO on the specific site.

TinTYPE(qtensorc), POINTER, inout

??

Details

Contract the MPO matrix M_{(k,a),b,c} with the tensor-array T_{(a),i,b,j} to a tensor T_{c,i,j}. This version works for single site and two-site MPO depending on the rank of the MPO matrix.

Source Code

show / hide f90 code
MPOOps_f90.contractmpol_qtensorc_qtensorc()[source]

fortran-subroutine - October 2017 (dj, updated) Do G_{a i b} = \sum_{k' i'} W_{k k'}^{i i'} F^{k'}_{a i' b}. The l stands for left-moving.

Arguments

ToutTYPE(qtensorc), inout

On exit, transfer matrix for one index in the row bond dimension of the MPO.

kkINTEGER, inout

The index of the row bond dimension in the MPO.

MatTYPE(qtensorc), inout

Matrix representing the MPO on the specific site.

TinTYPE(qtensorc), POINTER, inout

??

Details

Contract the MPO matrix M_{(k,a),b,c} with the tensor-array T_{(a),i,b,j} to a tensor T_{c,i,j}. This version works for single site and two-site MPO depending on the rank of the MPO matrix.

Source Code

show / hide f90 code
MPOOps_f90.contractmpol_lptn_tensor_tensor()[source]

fortran-subroutine - October 2017 (dj, updated) Left-moving building of a transfer matrix for an LPTN.

Arguments

ToutTYPE(tensor), inout

On exit, transfer matrix for one index in the row bond dimension of the MPO.

kkINTEGER, inout

The index of the row bond dimension in the MPO.

MatTYPE(tensor), inout

Matrix representing the MPO on the specific site.

TinTYPE(tensor), POINTER, inout

Tensor resulting from contraction of the transfer matrix and the bra and ket tensor.

Details

The LPTN version only works for single site MPO matrices.

Source Code

show / hide f90 code
MPOOps_f90.contractmpol_lptn_tensor_tensorc()[source]

fortran-subroutine - October 2017 (dj, updated) Left-moving building of a transfer matrix for an LPTN.

Arguments

ToutTYPE(tensorc), inout

On exit, transfer matrix for one index in the row bond dimension of the MPO.

kkINTEGER, inout

The index of the row bond dimension in the MPO.

MatTYPE(tensor), inout

Matrix representing the MPO on the specific site.

TinTYPE(tensorc), POINTER, inout

Tensor resulting from contraction of the transfer matrix and the bra and ket tensor.

Details

The LPTN version only works for single site MPO matrices.

Source Code

show / hide f90 code
MPOOps_f90.contractmpol_lptn_tensorc_tensorc()[source]

fortran-subroutine - October 2017 (dj, updated) Left-moving building of a transfer matrix for an LPTN.

Arguments

ToutTYPE(tensorc), inout

On exit, transfer matrix for one index in the row bond dimension of the MPO.

kkINTEGER, inout

The index of the row bond dimension in the MPO.

MatTYPE(tensorc), inout

Matrix representing the MPO on the specific site.

TinTYPE(tensorc), POINTER, inout

Tensor resulting from contraction of the transfer matrix and the bra and ket tensor.

Details

The LPTN version only works for single site MPO matrices.

Source Code

show / hide f90 code
MPOOps_f90.contractmpol_lptn_qtensor_qtensor()[source]

fortran-subroutine - October 2017 (dj, updated) Left-moving building of a transfer matrix for an LPTN.

Arguments

ToutTYPE(qtensor), inout

On exit, transfer matrix for one index in the row bond dimension of the MPO.

kkINTEGER, inout

The index of the row bond dimension in the MPO.

MatTYPE(qtensor), inout

Matrix representing the MPO on the specific site.

TinTYPE(qtensor), POINTER, inout

Tensor resulting from contraction of the transfer matrix and the bra and ket tensor.

Details

The LPTN version only works for single site MPO matrices.

Source Code

show / hide f90 code
MPOOps_f90.contractmpol_lptn_qtensor_qtensorc()[source]

fortran-subroutine - October 2017 (dj, updated) Left-moving building of a transfer matrix for an LPTN.

Arguments

ToutTYPE(qtensorc), inout

On exit, transfer matrix for one index in the row bond dimension of the MPO.

kkINTEGER, inout

The index of the row bond dimension in the MPO.

MatTYPE(qtensor), inout

Matrix representing the MPO on the specific site.

TinTYPE(qtensorc), POINTER, inout

Tensor resulting from contraction of the transfer matrix and the bra and ket tensor.

Details

The LPTN version only works for single site MPO matrices.

Source Code

show / hide f90 code
MPOOps_f90.contractmpol_lptn_qtensorc_qtensorc()[source]

fortran-subroutine - October 2017 (dj, updated) Left-moving building of a transfer matrix for an LPTN.

Arguments

ToutTYPE(qtensorc), inout

On exit, transfer matrix for one index in the row bond dimension of the MPO.

kkINTEGER, inout

The index of the row bond dimension in the MPO.

MatTYPE(qtensorc), inout

Matrix representing the MPO on the specific site.

TinTYPE(qtensorc), POINTER, inout

Tensor resulting from contraction of the transfer matrix and the bra and ket tensor.

Details

The LPTN version only works for single site MPO matrices.

Source Code

show / hide f90 code
MPOOps_f90.contractmpol_mpdo_tensor_tensor()[source]

fortran-subroutine - October 2017 (dj, updated) Left-moving building of a transfer matrix for an MPDO.

Arguments

ToutTYPE(tensor), inout

On exit, transfer matrix for one index in the row bond dimension of the MPO.

kkINTEGER, inout

The index of the row bond dimension in the MPO.

MatTYPE(tensor), inout

Matrix representing the MPO on the specific site.

TinTYPE(tensor), POINTER, inout

Tensor resulting from contraction of the transfer matrix and the site tensor.

Details

The MPDO version only works for single site MPO matrices.

Source Code

show / hide f90 code
MPOOps_f90.contractmpol_mpdo_tensor_tensorc()[source]

fortran-subroutine - October 2017 (dj, updated) Left-moving building of a transfer matrix for an MPDO.

Arguments

ToutTYPE(tensorc), inout

On exit, transfer matrix for one index in the row bond dimension of the MPO.

kkINTEGER, inout

The index of the row bond dimension in the MPO.

MatTYPE(tensor), inout

Matrix representing the MPO on the specific site.

TinTYPE(tensorc), POINTER, inout

Tensor resulting from contraction of the transfer matrix and the site tensor.

Details

The MPDO version only works for single site MPO matrices.

Source Code

show / hide f90 code
MPOOps_f90.contractmpol_mpdo_tensorc_tensorc()[source]

fortran-subroutine - October 2017 (dj, updated) Left-moving building of a transfer matrix for an MPDO.

Arguments

ToutTYPE(tensorc), inout

On exit, transfer matrix for one index in the row bond dimension of the MPO.

kkINTEGER, inout

The index of the row bond dimension in the MPO.

MatTYPE(tensorc), inout

Matrix representing the MPO on the specific site.

TinTYPE(tensorc), POINTER, inout

Tensor resulting from contraction of the transfer matrix and the site tensor.

Details

The MPDO version only works for single site MPO matrices.

Source Code

show / hide f90 code
MPOOps_f90.contractmpol_mpdo_qtensor_qtensor()[source]

fortran-subroutine - October 2017 (dj, updated) Left-moving building of a transfer matrix for an MPDO.

Arguments

ToutTYPE(qtensor), inout

On exit, transfer matrix for one index in the row bond dimension of the MPO.

kkINTEGER, inout

The index of the row bond dimension in the MPO.

MatTYPE(qtensor), inout

Matrix representing the MPO on the specific site.

TinTYPE(qtensor), POINTER, inout

Tensor resulting from contraction of the transfer matrix and the site tensor.

Details

The MPDO version only works for single site MPO matrices.

Source Code

show / hide f90 code
MPOOps_f90.contractmpol_mpdo_qtensor_qtensorc()[source]

fortran-subroutine - October 2017 (dj, updated) Left-moving building of a transfer matrix for an MPDO.

Arguments

ToutTYPE(qtensorc), inout

On exit, transfer matrix for one index in the row bond dimension of the MPO.

kkINTEGER, inout

The index of the row bond dimension in the MPO.

MatTYPE(qtensor), inout

Matrix representing the MPO on the specific site.

TinTYPE(qtensorc), POINTER, inout

Tensor resulting from contraction of the transfer matrix and the site tensor.

Details

The MPDO version only works for single site MPO matrices.

Source Code

show / hide f90 code
MPOOps_f90.contractmpol_mpdo_qtensorc_qtensorc()[source]

fortran-subroutine - October 2017 (dj, updated) Left-moving building of a transfer matrix for an MPDO.

Arguments

ToutTYPE(qtensorc), inout

On exit, transfer matrix for one index in the row bond dimension of the MPO.

kkINTEGER, inout

The index of the row bond dimension in the MPO.

MatTYPE(qtensorc), inout

Matrix representing the MPO on the specific site.

TinTYPE(qtensorc), POINTER, inout

Tensor resulting from contraction of the transfer matrix and the site tensor.

Details

The MPDO version only works for single site MPO matrices.

Source Code

show / hide f90 code
MPOOps_f90.contractmpor_tensor_tensor()[source]

fortran-subroutine - ?? () G_{a i b} = \sum_{k i'}  F^k_{a i' b} W_{k k'}^{i i'} - only used to define transfermatrices - no FOURtensor verison required.

Arguments

GTYPE(tensor), inout

??

kpINTEGER, inout

??

WTYPE(tensor), inout

??

FTYPE(tensor), POINTER, inout

??

Source Code

show / hide f90 code
MPOOps_f90.contractmpor_tensor_tensorc()[source]

fortran-subroutine - ?? () G_{a i b} = \sum_{k i'}  F^k_{a i' b} W_{k k'}^{i i'} - only used to define transfermatrices - no FOURtensorc verison required.

Arguments

GTYPE(tensorc), inout

??

kpINTEGER, inout

??

WTYPE(tensor), inout

??

FTYPE(tensorc), POINTER, inout

??

Source Code

show / hide f90 code
MPOOps_f90.contractmpor_tensorc_tensorc()[source]

fortran-subroutine - ?? () G_{a i b} = \sum_{k i'}  F^k_{a i' b} W_{k k'}^{i i'} - only used to define transfermatrices - no FOURtensorc verison required.

Arguments

GTYPE(tensorc), inout

??

kpINTEGER, inout

??

WTYPE(tensorc), inout

??

FTYPE(tensorc), POINTER, inout

??

Source Code

show / hide f90 code
MPOOps_f90.contractmpor_qtensor_qtensor()[source]

fortran-subroutine - ?? () G_{a i b} = \sum_{k i'}  F^k_{a i' b} W_{k k'}^{i i'} - only used to define transfermatrices - no FOURqtensor verison required.

Arguments

GTYPE(qtensor), inout

??

kpINTEGER, inout

??

WTYPE(qtensor), inout

??

FTYPE(qtensor), POINTER, inout

??

Source Code

show / hide f90 code
MPOOps_f90.contractmpor_qtensor_qtensorc()[source]

fortran-subroutine - ?? () G_{a i b} = \sum_{k i'}  F^k_{a i' b} W_{k k'}^{i i'} - only used to define transfermatrices - no FOURqtensorc verison required.

Arguments

GTYPE(qtensorc), inout

??

kpINTEGER, inout

??

WTYPE(qtensor), inout

??

FTYPE(qtensorc), POINTER, inout

??

Source Code

show / hide f90 code
MPOOps_f90.contractmpor_qtensorc_qtensorc()[source]

fortran-subroutine - ?? () G_{a i b} = \sum_{k i'}  F^k_{a i' b} W_{k k'}^{i i'} - only used to define transfermatrices - no FOURqtensorc verison required.

Arguments

GTYPE(qtensorc), inout

??

kpINTEGER, inout

??

WTYPE(qtensorc), inout

??

FTYPE(qtensorc), POINTER, inout

??

Source Code

show / hide f90 code
MPOOps_f90.build_kraus_first_order_tensorlist()[source]

fortran-subroutine - September 2017 (dj) Build the first order approximation to the Kraus operators for tensors without symmetry.

Arguments

KrausTYPE(tensorc), inout

First two dimensions are the Hilbert space, third dimension is the Kraus dimension.

OpsTYPE(tensorlist), inout

List of operators necessary to build Hamiltonian and, here, Kraus operators from Lindblad operators.

RsTYPE(MPORuleSet), inout

Rule set containing the list of Lindblad operators.

HparamsTYPE(HamiltonianParameters), inout

Coupling for the Lindblad operators.

iopINTEGER, inout

Position of the identity operator.

xxINTEGER, inout

Indicates the site for which the Kraus operators are built to access site-dependent coupling.

dtREAL, inout

Time step.

Source Code

show / hide f90 code
MPOOps_f90.build_kraus_first_order_tensorlistc()[source]

fortran-subroutine - September 2017 (dj) Build the first order approximation to the Kraus operators for tensors without symmetry.

Arguments

KrausTYPE(tensorc), inout

First two dimensions are the Hilbert space, third dimension is the Kraus dimension.

OpsTYPE(tensorlistc), inout

List of operators necessary to build Hamiltonian and, here, Kraus operators from Lindblad operators.

RsTYPE(MPORuleSet), inout

Rule set containing the list of Lindblad operators.

HparamsTYPE(HamiltonianParameters), inout

Coupling for the Lindblad operators.

iopINTEGER, inout

Position of the identity operator.

xxINTEGER, inout

Indicates the site for which the Kraus operators are built to access site-dependent coupling.

dtREAL, inout

Time step.

Source Code

show / hide f90 code
MPOOps_f90.build_kraus_first_order_qtensorlist()[source]

fortran-subroutine - September 2017 (dj) Build the first order approximation to the Kraus operators for tensors with symmetry.

Arguments

KrausTYPE(qtensorc), inout

???

OpsTYPE(qtensorlist), inout

List of operators necessary to build Hamiltonian and, here, Kraus operators from Lindblad operators.

RsTYPE(MPORuleSet), inout

Rule set containing the list of Lindblad operators.

HparamsTYPE(HamiltonianParameters), inout

Coupling for the Lindblad operators.

iopINTEGER, inout

Position of the identity operator.

xxINTEGER, inout

Indicates the site for which the Kraus operators are built to access site-dependent coupling.

dtREAL, inout

Time step.

Source Code

show / hide f90 code
MPOOps_f90.build_kraus_first_order_qtensorclist()[source]

fortran-subroutine - September 2017 (dj) Build the first order approximation to the Kraus operators for tensors with symmetry.

Arguments

KrausTYPE(qtensorc), inout

???

OpsTYPE(qtensorclist), inout

List of operators necessary to build Hamiltonian and, here, Kraus operators from Lindblad operators.

RsTYPE(MPORuleSet), inout

Rule set containing the list of Lindblad operators.

HparamsTYPE(HamiltonianParameters), inout

Coupling for the Lindblad operators.

iopINTEGER, inout

Position of the identity operator.

xxINTEGER, inout

Indicates the site for which the Kraus operators are built to access site-dependent coupling.

dtREAL, inout

Time step.

Source Code

show / hide f90 code