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
Jaschke
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 . 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 . 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 . 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 . 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 . 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 . 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 - ?? () - 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 - ?? () - 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 - ?? () - 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 - ?? () - 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 - ?? () - 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 - ?? () - 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