ZaletelOps¶
Fortran module ZaletelOps: August 2017 (dj, updated)
Constructs the MPO for time evolution with the Zaletel algorithm based on the MPO of the Hamiltonian.
Authors
Wall
Jaschke
Details
The following procedures are important for call from other modules.
Procedures |
include.f90 |
mpi.f90 |
---|---|---|
zaletel_2nd |
||
zaletel_4th |
- ZaletelOps_f90.extract_op_from_zaletel()[source]¶
fortran-subroutine - April 2016 (dj) Extract from the big exponential the smaller operator.
Arguments
- OpTYPE(tensorc), inout
On exit, this is the matrix in the MPO to be applied to the local Hilbert space. Needs to be allocated before calling this subroutine.
- ZalTYPE(tensorc), in
Is the operator in the Zaletel notation on the complete operator exponential space.
- b1INTEGER, in
Pick element corresponding to b1.
- b2INTEGER, in
Pick element corresponding to b2.
- locdINTEGER, in
Local dimension of the Hilbert space.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.build_hcb_idb()[source]¶
fortran-subroutine - April 2016 (dj) Build the matrices Hcb and Idb, where Hcb is the creation operator for hard-core bosons and Idb is the identity matrix.
Arguments
- HcbTYPE(tensor), out
Creation operator .
- IdbTYPE(tensor), out
Creation operator .
Details
(template defined in ZaletelOps_template.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.get_zaletel_expm_mpo()[source]¶
fortran-subroutine - April 2016 (dj) Build the exponential describing = langle 0 bar{0} | c_{a} c_{bar{a}}` .
Arguments
- MatTYPE(matrixc), out
Contains on exit the argument in the exponential described above.
- dtCOMPLEX, in
Time step to be included in the exponential already multiplied with (- eye) and scalar according to order.
- AATYPE(tensor), in
Matrix belonging to the block A within the Zaletel nomenclature.
- BBTYPE(tensor), in
Matrix belonging to the block B within the Zaletel nomenclature.
- CCTYPE(tensor), in
Matrix belonging to the block C within the Zaletel nomenclature.
- DDTYPE(tensor), in
Matrix belonging to the block D within the Zaletel nomenclature.
- HcbTYPE(tensor), in
Auxiliary matrix (representing c^{dagger}, always?).
- IdbTYPE(tensor), in
Auxiliary matrix (representing Id, always?).
- locdINTEGER, in
Dimension of the local Hilbert space.
Source Code
show / hide f90 code
- ZaletelOps_f90.get_zaletel_expm_mpoc()[source]¶
fortran-subroutine - April 2016 (dj) Build the exponential describing = langle 0 bar{0} | c_{a} c_{bar{a}}` .
Arguments
- MatTYPE(matrixc), out
Contains on exit the argument in the exponential described above.
- dtCOMPLEX, in
Time step to be included in the exponential already multiplied with (- eye) and scalar according to order.
- AATYPE(tensorc), in
Matrix belonging to the block A within the Zaletel nomenclature.
- BBTYPE(tensorc), in
Matrix belonging to the block B within the Zaletel nomenclature.
- CCTYPE(tensorc), in
Matrix belonging to the block C within the Zaletel nomenclature.
- DDTYPE(tensorc), in
Matrix belonging to the block D within the Zaletel nomenclature.
- HcbTYPE(tensor), in
Auxiliary matrix (representing c^{dagger}, always?).
- IdbTYPE(tensor), in
Auxiliary matrix (representing Id, always?).
- locdINTEGER, in
Dimension of the local Hilbert space.
Source Code
show / hide f90 code
- ZaletelOps_f90.get_zaletel_expm_qmpo()[source]¶
fortran-subroutine - April 2016 (dj) Build the exponential describing = langle 0 bar{0} | c_{a} c_{bar{a}}` .
Arguments
- MatTYPE(matrixc), out
Contains on exit the argument in the exponential described above.
- dtCOMPLEX, in
Time step to be included in the exponential already multiplied with (- eye) and scalar according to order.
- AATYPE(qtensor), in
Matrix belonging to the block A within the Zaletel nomenclature.
- BBTYPE(qtensor), in
Matrix belonging to the block B within the Zaletel nomenclature.
- CCTYPE(qtensor), in
Matrix belonging to the block C within the Zaletel nomenclature.
- DDTYPE(qtensor), in
Matrix belonging to the block D within the Zaletel nomenclature.
- HcbTYPE(tensor), in
Auxiliary matrix (representing c^{dagger}, always?).
- IdbTYPE(tensor), in
Auxiliary matrix (representing Id, always?).
- locdINTEGER, in
Dimension of the local Hilbert space.
- DmapTYPE(vector_int), in
Saving the dimensions of a block according to the hash.
- StrmapTYPE(vector_int), in
Saving the sum of the previous dimension of smaller hashes in order to find the starting index writing a non-blocked matrix.
- QidTYPE(qtensor), in
Identity matrix in q-notation.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.get_zaletel_expm_qmpoc()[source]¶
fortran-subroutine - April 2016 (dj) Build the exponential describing = langle 0 bar{0} | c_{a} c_{bar{a}}` .
Arguments
- MatTYPE(matrixc), out
Contains on exit the argument in the exponential described above.
- dtCOMPLEX, in
Time step to be included in the exponential already multiplied with (- eye) and scalar according to order.
- AATYPE(qtensorc), in
Matrix belonging to the block A within the Zaletel nomenclature.
- BBTYPE(qtensorc), in
Matrix belonging to the block B within the Zaletel nomenclature.
- CCTYPE(qtensorc), in
Matrix belonging to the block C within the Zaletel nomenclature.
- DDTYPE(qtensorc), in
Matrix belonging to the block D within the Zaletel nomenclature.
- HcbTYPE(tensor), in
Auxiliary matrix (representing c^{dagger}, always?).
- IdbTYPE(tensor), in
Auxiliary matrix (representing Id, always?).
- locdINTEGER, in
Dimension of the local Hilbert space.
- DmapTYPE(vector_int), in
Saving the dimensions of a block according to the hash.
- StrmapTYPE(vector_int), in
Saving the sum of the previous dimension of smaller hashes in order to find the starting index writing a non-blocked matrix.
- QidTYPE(qtensorc), in
Identity matrix in q-notation.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.get_zaletel_1st_site_tensor()[source]¶
fortran-subroutine - April 2016 (dj) Build the entries of the Zaletel MPO for the first (left) site in the system.
Arguments
- ZalTYPE(sr_matrix_tensorc), out
On exit, MPO-matrix (rank-4 tensor) for time evolution of first (left) site.
- HamTYPE(sr_matrix_tensor), in
MPO-matrix (rank-4 tensor) of the Hamiltonian of the first site.
- dtCOMPLEX, in
Time step to be included in the exponential already multiplied with (- eye) and scalar according to order.
- mpo_is_hermitianLOGICAL, in
Necessary to distighuish betweew exponentials used for local term.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.get_zaletel_1st_site_tensorc()[source]¶
fortran-subroutine - April 2016 (dj) Build the entries of the Zaletel MPO for the first (left) site in the system.
Arguments
- ZalTYPE(sr_matrix_tensorc), out
On exit, MPO-matrix (rank-4 tensor) for time evolution of first (left) site.
- HamTYPE(sr_matrix_tensorc), in
MPO-matrix (rank-4 tensor) of the Hamiltonian of the first site.
- dtCOMPLEX, in
Time step to be included in the exponential already multiplied with (- eye) and scalar according to order.
- mpo_is_hermitianLOGICAL, in
Necessary to distighuish betweew exponentials used for local term.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.get_zaletel_1st_site_qtensor()[source]¶
fortran-subroutine - April 2016 (dj) Build the entries of the Zaletel MPO for the first (left) site in the system.
Arguments
- ZalTYPE(sr_matrix_qtensorc), out
On exit, MPO-matrix (rank-4 tensor) for time evolution of first (left) site.
- HamTYPE(sr_matrix_qtensor), in
MPO-matrix (rank-4 tensor) of the Hamiltonian of the first site.
- dtCOMPLEX, in
Time step to be included in the exponential already multiplied with (- eye) and scalar according to order.
- mpo_is_hermitianLOGICAL, in
Necessary to distighuish betweew exponentials used for local term.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.get_zaletel_1st_site_qtensorc()[source]¶
fortran-subroutine - April 2016 (dj) Build the entries of the Zaletel MPO for the first (left) site in the system.
Arguments
- ZalTYPE(sr_matrix_qtensorc), out
On exit, MPO-matrix (rank-4 tensor) for time evolution of first (left) site.
- HamTYPE(sr_matrix_qtensorc), in
MPO-matrix (rank-4 tensor) of the Hamiltonian of the first site.
- dtCOMPLEX, in
Time step to be included in the exponential already multiplied with (- eye) and scalar according to order.
- mpo_is_hermitianLOGICAL, in
Necessary to distighuish betweew exponentials used for local term.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.extract_qop_from_op_qtensor()[source]¶
fortran-subroutine - April 2016 (dj) Extract blocks according to quantum numbers from operator on complete local Hilbert space.
Arguments
- QPropTYPE(qtensorc), out
On exit, the q matrix of Prop is generated according to the information given.
- PropTYPE(tensorc), in
Matrix on without q-structure to be parsed.
- DmapTYPE(vector_int), in
Vector containing the local dimensions of each block in the q-matrix (gained from identity).
- StrmapTYPE(vector_int), in
Cumulative sum of the dimension of each block (gained from identity).
- locdINTEGER, in
Dimension of the matrix Prop.
- QRefTYPE(qtensor), in
If QRef has no entries (and therefore norm zero), QProp will be empty as well.
- QidTYPE(qtensor), in
The identity matrix as q-matrix.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.extract_qop_from_op_qtensorc()[source]¶
fortran-subroutine - April 2016 (dj) Extract blocks according to quantum numbers from operator on complete local Hilbert space.
Arguments
- QPropTYPE(qtensorc), out
On exit, the q matrix of Prop is generated according to the information given.
- PropTYPE(tensorc), in
Matrix on without q-structure to be parsed.
- DmapTYPE(vector_int), in
Vector containing the local dimensions of each block in the q-matrix (gained from identity).
- StrmapTYPE(vector_int), in
Cumulative sum of the dimension of each block (gained from identity).
- locdINTEGER, in
Dimension of the matrix Prop.
- QRefTYPE(qtensorc), in
If QRef has no entries (and therefore norm zero), QProp will be empty as well.
- QidTYPE(qtensorc), in
The identity matrix as q-matrix.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.get_mapping_qtensor()[source]¶
fortran-subroutine - April 2016 (dj) Get local dimension and position of each block in a q-matrix.
Arguments
- QidTYPE(qtensor), in
Identity matrix as q-matrix representation. It is diagonal and used to identity the dimension and position of each block. Order of blocks is taken as is.
- DmapTYPE(vector_int), out
Contains the dimension of each block.
- StrmapTYPE(vector_int), out
Contains the cumulated dimensions of the previous blocks. The ii-th block starts therefore at Strmap%elem(ii) + 1.
- locdINTEGER, out
Adds up the dimension of each block gaining the dimension of the matrix without q-representation.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.get_mapping_qtensorc()[source]¶
fortran-subroutine - April 2016 (dj) Get local dimension and position of each block in a q-matrix.
Arguments
- QidTYPE(qtensorc), in
Identity matrix as q-matrix representation. It is diagonal and used to identity the dimension and position of each block. Order of blocks is taken as is.
- DmapTYPE(vector_int), out
Contains the dimension of each block.
- StrmapTYPE(vector_int), out
Contains the cumulated dimensions of the previous blocks. The ii-th block starts therefore at Strmap%elem(ii) + 1.
- locdINTEGER, out
Adds up the dimension of each block gaining the dimension of the matrix without q-representation.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.get_zaletel_last_site_tensor()[source]¶
fortran-subroutine - April 2016 (dj) Build the Zaletel MPO for the last (right) site of the system for a qMPO.
Arguments
- ZalTYPE(sr_matrix_tensorc), out
On exit, MPO-matrix (rank-4 tensor) for time evolution of last (right) site.
- HamTYPE(sr_matrix_tensor), in
MPO-matrix (rank-4 tensor) of the Hamiltonian of the last site.
- dtCOMPLEX, in
Time step to be included in the exponential already multiplied with (- eye) and scalar according to order.
- mpo_is_hermitianLOGICAL, in
Necessary to distighuish betweew exponentials used for local term.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.get_zaletel_last_site_tensorc()[source]¶
fortran-subroutine - April 2016 (dj) Build the Zaletel MPO for the last (right) site of the system for a qMPO.
Arguments
- ZalTYPE(sr_matrix_tensorc), out
On exit, MPO-matrix (rank-4 tensor) for time evolution of last (right) site.
- HamTYPE(sr_matrix_tensorc), in
MPO-matrix (rank-4 tensor) of the Hamiltonian of the last site.
- dtCOMPLEX, in
Time step to be included in the exponential already multiplied with (- eye) and scalar according to order.
- mpo_is_hermitianLOGICAL, in
Necessary to distighuish betweew exponentials used for local term.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.get_zaletel_last_site_qtensor()[source]¶
fortran-subroutine - April 2016 (dj) Build the Zaletel MPO for the last (right) site of the system.
Arguments
- ZalTYPE(sr_matrix_qtensorc), out
On exit, MPO-matrix (rank-4 tensor) for time evolution of last (right) site.
- HamTYPE(sr_matrix_qtensor), in
MPO-matrix (rank-4 tensor) of the Hamiltonian of the last site.
- dtCOMPLEX, in
Time step to be included in the exponential already multiplied with (- eye) and scalar according to order.
- mpo_is_hermitianLOGICAL, in
Necessary to distighuish betweew exponentials used for local term.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.get_zaletel_last_site_qtensorc()[source]¶
fortran-subroutine - April 2016 (dj) Build the Zaletel MPO for the last (right) site of the system.
Arguments
- ZalTYPE(sr_matrix_qtensorc), out
On exit, MPO-matrix (rank-4 tensor) for time evolution of last (right) site.
- HamTYPE(sr_matrix_qtensorc), in
MPO-matrix (rank-4 tensor) of the Hamiltonian of the last site.
- dtCOMPLEX, in
Time step to be included in the exponential already multiplied with (- eye) and scalar according to order.
- mpo_is_hermitianLOGICAL, in
Necessary to distighuish betweew exponentials used for local term.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.get_zaletel_bulk_site_tensor()[source]¶
fortran-subroutine - April 2016 (dj) Build the Zaletel MPO for the bulk sites of the system.
Arguments
- ZalTYPE(sr_matrix_tensorc), out
On exit, MPO-matrix (rank-4 tensor) for time evolution of site.
- HamTYPE(sr_matrix_tensor), in
MPO-matrix (rank-4 tensor) of the Hamiltonian.
- dtCOMPLEX, in
Time step to be included in the exponential already multiplied with (- eye) and scalar according to order.
- mpo_is_hermitianLOGICAL, in
Necessary to distighuish betweew exponentials used for local term.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.get_zaletel_bulk_site_tensorc()[source]¶
fortran-subroutine - April 2016 (dj) Build the Zaletel MPO for the bulk sites of the system.
Arguments
- ZalTYPE(sr_matrix_tensorc), out
On exit, MPO-matrix (rank-4 tensor) for time evolution of site.
- HamTYPE(sr_matrix_tensorc), in
MPO-matrix (rank-4 tensor) of the Hamiltonian.
- dtCOMPLEX, in
Time step to be included in the exponential already multiplied with (- eye) and scalar according to order.
- mpo_is_hermitianLOGICAL, in
Necessary to distighuish betweew exponentials used for local term.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.get_zaletel_bulk_site_qtensor()[source]¶
fortran-subroutine - April 2016 (dj) Build the Zaletel MPO for the bulk sites of the system for symmetry conserving qMPOs.
Arguments
- ZalTYPE(sr_matrix_qtensorc), out
On exit, MPO-matrix (rank-4 tensor) for time evolution of site.
- HamTYPE(sr_matrix_qtensor), in
MPO-matrix (rank-4 tensor) of the Hamiltonian.
- dtCOMPLEX, in
Time step to be included in the exponential already multiplied with (- eye) and scalar according to order.
- mpo_is_hermitianLOGICAL, in
Necessary to distighuish betweew exponentials used for local term.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.get_zaletel_bulk_site_qtensorc()[source]¶
fortran-subroutine - April 2016 (dj) Build the Zaletel MPO for the bulk sites of the system for symmetry conserving qMPOs.
Arguments
- ZalTYPE(sr_matrix_qtensorc), out
On exit, MPO-matrix (rank-4 tensor) for time evolution of site.
- HamTYPE(sr_matrix_qtensorc), in
MPO-matrix (rank-4 tensor) of the Hamiltonian.
- dtCOMPLEX, in
Time step to be included in the exponential already multiplied with (- eye) and scalar according to order.
- mpo_is_hermitianLOGICAL, in
Necessary to distighuish betweew exponentials used for local term.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.get_zaletel_mpo()[source]¶
fortran-subroutine - April 2016 (dj) Build the Zaletel MPO for all sites.
Arguments
- ZalTYPE(mpoc), out
On exit this is the Zaletel-MPO for the time evolution of a time step dt.
- HamTYPE(mpo), in
The MPO of the Hamiltonian is needed to build the Zaletel-MPO.
- dtCOMPLEX, in
Time step to be included in the exponential already multiplied with (- eye) and scalar according to order.
- mpo_is_hermitianLOGICAL, in
Necessary to distighuish betweew exponentials used for local term.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.get_zaletel_mpoc()[source]¶
fortran-subroutine - April 2016 (dj) Build the Zaletel MPO for all sites.
Arguments
- ZalTYPE(mpoc), out
On exit this is the Zaletel-MPO for the time evolution of a time step dt.
- HamTYPE(mpoc), in
The MPO of the Hamiltonian is needed to build the Zaletel-MPO.
- dtCOMPLEX, in
Time step to be included in the exponential already multiplied with (- eye) and scalar according to order.
- mpo_is_hermitianLOGICAL, in
Necessary to distighuish betweew exponentials used for local term.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.get_zaletel_qmpo()[source]¶
fortran-subroutine - April 2016 (dj) Build the Zaletel MPO for all sites.
Arguments
- ZalTYPE(qmpoc), out
On exit this is the Zaletel-MPO for the time evolution of a time step dt.
- HamTYPE(qmpo), in
The MPO of the Hamiltonian is needed to build the Zaletel-MPO.
- dtCOMPLEX, in
Time step to be included in the exponential already multiplied with (- eye) and scalar according to order.
- mpo_is_hermitianLOGICAL, in
Necessary to distighuish betweew exponentials used for local term.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.get_zaletel_qmpoc()[source]¶
fortran-subroutine - April 2016 (dj) Build the Zaletel MPO for all sites.
Arguments
- ZalTYPE(qmpoc), out
On exit this is the Zaletel-MPO for the time evolution of a time step dt.
- HamTYPE(qmpoc), in
The MPO of the Hamiltonian is needed to build the Zaletel-MPO.
- dtCOMPLEX, in
Time step to be included in the exponential already multiplied with (- eye) and scalar according to order.
- mpo_is_hermitianLOGICAL, in
Necessary to distighuish betweew exponentials used for local term.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.zaletel_2nd_mpo()[source]¶
fortran-subroutine - April 2016 (dj) Generate the Zaletel MPOs for 2nd order time evolution.
Arguments
- ZalsTYPE(mpoc)(2), out
The array of MPOs is filled corresponding to the second order.
- HamTYPE(mpo), in
Derive Zaletel MPO from this Hamiltonian-MPO.
- dtREAL, in
Time step of the time evolution scaled with (- eye).
- mpo_is_hermitianLOGICAL, in
Necessary to distighuish betweew exponentials used for local term.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.zaletel_2nd_mpoc()[source]¶
fortran-subroutine - April 2016 (dj) Generate the Zaletel MPOs for 2nd order time evolution.
Arguments
- ZalsTYPE(mpoc)(2), out
The array of MPOs is filled corresponding to the second order.
- HamTYPE(mpoc), in
Derive Zaletel MPO from this Hamiltonian-MPO.
- dtREAL, in
Time step of the time evolution scaled with (- eye).
- mpo_is_hermitianLOGICAL, in
Necessary to distighuish betweew exponentials used for local term.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.zaletel_2nd_qmpo()[source]¶
fortran-subroutine - April 2016 (dj) Generate the Zaletel MPOs for 2nd order time evolution.
Arguments
- ZalsTYPE(qmpoc)(2), out
The array of MPOs is filled corresponding to the second order.
- HamTYPE(qmpo), in
Derive Zaletel MPO from this Hamiltonian-MPO.
- dtREAL, in
Time step of the time evolution scaled with (- eye).
- mpo_is_hermitianLOGICAL, in
Necessary to distighuish betweew exponentials used for local term.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.zaletel_2nd_qmpoc()[source]¶
fortran-subroutine - April 2016 (dj) Generate the Zaletel MPOs for 2nd order time evolution.
Arguments
- ZalsTYPE(qmpoc)(2), out
The array of MPOs is filled corresponding to the second order.
- HamTYPE(qmpoc), in
Derive Zaletel MPO from this Hamiltonian-MPO.
- dtREAL, in
Time step of the time evolution scaled with (- eye).
- mpo_is_hermitianLOGICAL, in
Necessary to distighuish betweew exponentials used for local term.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.zaletel_4th_mpo()[source]¶
fortran-subroutine - April 2016 (dj) Generate the Zaletel MPOs for 4th order time evolution.
Arguments
- ZalsTYPE(mpoc)(4), out
The array of MPOs is filled corresponding to the second order.
- HamTYPE(mpo), in
Derive Zaletel MPO from this Hamiltonian-MPO.
- dtREAL, in
Time step of the time evolution scaled with (- eye)
- mpo_is_hermitianLOGICAL, in
Necessary to distighuish betweew exponentials used for local term.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.zaletel_4th_mpoc()[source]¶
fortran-subroutine - April 2016 (dj) Generate the Zaletel MPOs for 4th order time evolution.
Arguments
- ZalsTYPE(mpoc)(4), out
The array of MPOs is filled corresponding to the second order.
- HamTYPE(mpoc), in
Derive Zaletel MPO from this Hamiltonian-MPO.
- dtREAL, in
Time step of the time evolution scaled with (- eye)
- mpo_is_hermitianLOGICAL, in
Necessary to distighuish betweew exponentials used for local term.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.zaletel_4th_qmpo()[source]¶
fortran-subroutine - April 2016 (dj) Generate the Zaletel MPOs for 4th order time evolution.
Arguments
- ZalsTYPE(qmpoc)(4), out
The array of MPOs is filled corresponding to the second order.
- HamTYPE(qmpo), in
Derive Zaletel MPO from this Hamiltonian-MPO.
- dtREAL, in
Time step of the time evolution scaled with (- eye)
- mpo_is_hermitianLOGICAL, in
Necessary to distighuish betweew exponentials used for local term.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.zaletel_4th_qmpoc()[source]¶
fortran-subroutine - April 2016 (dj) Generate the Zaletel MPOs for 4th order time evolution.
Arguments
- ZalsTYPE(qmpoc)(4), out
The array of MPOs is filled corresponding to the second order.
- HamTYPE(qmpoc), in
Derive Zaletel MPO from this Hamiltonian-MPO.
- dtREAL, in
Time step of the time evolution scaled with (- eye)
- mpo_is_hermitianLOGICAL, in
Necessary to distighuish betweew exponentials used for local term.
Details
(template defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.LRK2_mpo()[source]¶
fortran-subroutine - August 2017 (dj, updated) Propagate Psi with the LRK algorithm.
Arguments
- PsiTYPE(mpsc), inout
On entry current state, on exit MPS after evolution step.
- deltatREAL, in
Time step already scaled with (- eye)
- HamTYPE(mpo), inout
Hamiltonian MPO for evolution of this step.
- CpTYPE(ConvParam), in
Maximal bond dimension allowed for Psi.
- convergedLOGICAL, out
On exit flag if step of algorithm converged according to convergence parameters.
- cerrREAL, inout
The cumulated error. The error done during this subroutine is added to the incoming value.
- initmethodCHARACTER, in
Not referenced, init method by default ‘F’ for LRK2
- renormLOGICAL, in
Flag if state vector should be renormalized to 1 (true). ‘N’ : do not normalize (default); ‘M’ : normalize for MPS 1 / sqrt(norm);
- pbcLOGICAL, in
If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.
Details
Currently uses complete reorthogonalization for stability. (defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.LRK2_mpoc()[source]¶
fortran-subroutine - August 2017 (dj, updated) Propagate Psi with the LRK algorithm.
Arguments
- PsiTYPE(mpsc), inout
On entry current state, on exit MPS after evolution step.
- deltatREAL, in
Time step already scaled with (- eye)
- HamTYPE(mpoc), inout
Hamiltonian MPO for evolution of this step.
- CpTYPE(ConvParam), in
Maximal bond dimension allowed for Psi.
- convergedLOGICAL, out
On exit flag if step of algorithm converged according to convergence parameters.
- cerrREAL, inout
The cumulated error. The error done during this subroutine is added to the incoming value.
- initmethodCHARACTER, in
Not referenced, init method by default ‘F’ for LRK2
- renormLOGICAL, in
Flag if state vector should be renormalized to 1 (true). ‘N’ : do not normalize (default); ‘M’ : normalize for MPS 1 / sqrt(norm);
- pbcLOGICAL, in
If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.
Details
Currently uses complete reorthogonalization for stability. (defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.LRK2_qmpo()[source]¶
fortran-subroutine - August 2017 (dj, updated) Propagate Psi with the LRK algorithm.
Arguments
- PsiTYPE(qmpsc), inout
On entry current state, on exit MPS after evolution step.
- deltatREAL, in
Time step already scaled with (- eye)
- HamTYPE(qmpo), inout
Hamiltonian MPO for evolution of this step.
- CpTYPE(ConvParam), in
Maximal bond dimension allowed for Psi.
- convergedLOGICAL, out
On exit flag if step of algorithm converged according to convergence parameters.
- cerrREAL, inout
The cumulated error. The error done during this subroutine is added to the incoming value.
- initmethodCHARACTER, in
Not referenced, init method by default ‘F’ for LRK2
- renormLOGICAL, in
Flag if state vector should be renormalized to 1 (true). ‘N’ : do not normalize (default); ‘M’ : normalize for MPS 1 / sqrt(norm);
- pbcLOGICAL, in
If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.
Details
Currently uses complete reorthogonalization for stability. (defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.LRK2_qmpoc()[source]¶
fortran-subroutine - August 2017 (dj, updated) Propagate Psi with the LRK algorithm.
Arguments
- PsiTYPE(qmpsc), inout
On entry current state, on exit MPS after evolution step.
- deltatREAL, in
Time step already scaled with (- eye)
- HamTYPE(qmpoc), inout
Hamiltonian MPO for evolution of this step.
- CpTYPE(ConvParam), in
Maximal bond dimension allowed for Psi.
- convergedLOGICAL, out
On exit flag if step of algorithm converged according to convergence parameters.
- cerrREAL, inout
The cumulated error. The error done during this subroutine is added to the incoming value.
- initmethodCHARACTER, in
Not referenced, init method by default ‘F’ for LRK2
- renormLOGICAL, in
Flag if state vector should be renormalized to 1 (true). ‘N’ : do not normalize (default); ‘M’ : normalize for MPS 1 / sqrt(norm);
- pbcLOGICAL, in
If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.
Details
Currently uses complete reorthogonalization for stability. (defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.LRK4_mpo()[source]¶
fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm.
Arguments
- cerrREAL, inout
The cumulated error. The error done during this subroutine is added to the incoming value.
- renormLOGICAL, in
Flag if state vector should be renormalized to 1 (true). ‘N’ : do not normalize (default); ‘M’ : normalize for MPS 1 / sqrt(norm);
- pbcLOGICAL, in
If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.
Details
Currently uses complete reorthogonalization for stability. (defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.LRK4_mpoc()[source]¶
fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm.
Arguments
- cerrREAL, inout
The cumulated error. The error done during this subroutine is added to the incoming value.
- renormLOGICAL, in
Flag if state vector should be renormalized to 1 (true). ‘N’ : do not normalize (default); ‘M’ : normalize for MPS 1 / sqrt(norm);
- pbcLOGICAL, in
If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.
Details
Currently uses complete reorthogonalization for stability. (defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.LRK4_qmpo()[source]¶
fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm.
Arguments
- cerrREAL, inout
The cumulated error. The error done during this subroutine is added to the incoming value.
- renormLOGICAL, in
Flag if state vector should be renormalized to 1 (true). ‘N’ : do not normalize (default); ‘M’ : normalize for MPS 1 / sqrt(norm);
- pbcLOGICAL, in
If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.
Details
Currently uses complete reorthogonalization for stability. (defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code
- ZaletelOps_f90.LRK4_qmpoc()[source]¶
fortran-subroutine - August 2017 (dj, updated) Propagate psi with the TEBD algorithm.
Arguments
- cerrREAL, inout
The cumulated error. The error done during this subroutine is added to the incoming value.
- renormLOGICAL, in
Flag if state vector should be renormalized to 1 (true). ‘N’ : do not normalize (default); ‘M’ : normalize for MPS 1 / sqrt(norm);
- pbcLOGICAL, in
If PBC are used in any rule set. There is a check before, but the debugging mode should ensure for now that there are no calls with such a check.
Details
Currently uses complete reorthogonalization for stability. (defined in ZaletelOps_include.f90)
Source Code
show / hide f90 code