|
MPS::Operator | build_global_T (MPS::Lattice const &lat, MPS::Operator const &bond_operator, SDef dt, BondOperatorType const type) |
| builds one MPO for time evolution More...
|
|
Tensor4Pair | build_local_T (Tensor< 6 > const &local_bond_6, SDef const dt) |
| builds the two-site time evolution operator via matrix-exponential of the local bond operator and decompose it into two single-site MPO operators More...
|
|
void | contract_local_sites (Tensor< 2 > &contractor, Tensor< 4 > const ¤t_op, Tensor< 4 > const ¤t_i, bool const from_left=true) |
| Contracts sites of an MPO into an contractor: More...
|
|
void | doTEBD_parallel (MPS::Lattice const &lat, MPS::State &psi, MPS::Operator const &H_even, MPS::Operator const &H_odd, Conf conf, bool const bpo_quiet) |
| launches parallel TEBD time evolution More...
|
|
void | doTEBD_serial (MPS::Lattice const &lat, MPS::State &psi, MPS::Operator const &H_even, MPS::Operator const &H_odd, Conf conf, bool const bpo_quiet) |
| launches serial TEBD time evolution More...
|
|
LocalBonds | get_local_bonds (MPS::Lattice const &lat, MPS::Operator const &global_bond_operator, BondOperatorType const type) |
| Takes the Hamiltonian for odd or even sites and decomposites it into local bond "double-site" operators (rank 6 tensors) More...
|
|
std::vector< MPS::Operator > | getTEvolOps (Index const order, MPS::Lattice const &lat, MPS::Operator const &H_even, MPS::Operator const &H_odd, SDef const dt, bool const bpo_quiet) |
| gives the time evolution operators for a certain order. More...
|
|
std::vector< MPS::Operator > | getTEvolOps (Index const order, MPS::Lattice const &lat, MPS::Operator const &H_even, MPS::Operator const &H_odd, SDef const dt, bool const bpo_quiet, std::vector< BondOperatorType > &parities) |
| gives the time evolution operators for a certain order. More...
|
|
void | save_state (MPS::State s, SDef const T, std::string prefix, std::ostream &out) |
| builds filename and calls save function in order to save a state to a file More...
|
|
|
template<Rank irank> |
Tensor< irank-1 > | merge (Tensor< irank > const &itensor, MergeConfig &bases, int const merge_at=irank-1, bool const switch_bases=false) |
| Takes a Tensor with rang irank and merges the legs with indices merge_at and merge_at+1 into a leg with index merge_at . More...
|
|
template<Rank irank> |
Tensor< irank+1 > | split (Tensor< irank > const &itensor, MergeConfig const &bases, int const split_at=irank) |
| Takes a Tensor with rank irank and splits the leg with index split_at into two legs with indices split_at and split_at+1 . More...
|
|
template<typename IndexType , Rank irank> |
Tensor< irank > | rearrange (Tensor< irank > const &itensor, std::array< IndexType, irank > const &indices) |
| Simply change the indicces (labels) of the legs. More...
|
|
Tensor< 6 > | connect_local_operators (Tensor< 4 > const &op1, Tensor< 4 > const &op2) |
| Connects two singe site operators (rank 4 tensors) to a "double-site" operator (rank 6 tensor): More...
|
|
TEBD implementation, primarily by Felix.