One run of T3N-DMRG. More...
#include <dmrg.h>
Collaboration diagram for syten::T3N::DMRG::Run:Public Types | |
| typedef syten::DMRG::DMRGConfig | DMRGConfig |
| DMRG Config type. More... | |
| typedef syten::DMRG::DMRGStage | DMRGStage |
| DMRG Stage type. More... | |
Public Member Functions | |
| void | adaptAlpha (SRDef const preTrunc, SRDef const postTrunc) |
| Adapt the mixing factor alpha based on energy gain. More... | |
| void | adaptConf (SRDef error, IterativeExit const &r) |
| Adapts parameters after sweep. More... | |
| MemoryUsage::MemorySize | allocSize () const |
| Returns the total alloced memory. More... | |
| bool | converged () |
| Returns if the state is converged. More... | |
| SRDef const & | getLastEnergy () const |
| Returns the last Energy. More... | |
| std::vector< SRDef > | getMut () const |
| Gives a copy to the Mutual Information Vektor. More... | |
| Index const & | getSweepsPerStage () const |
| Returns the last Energy. More... | |
| void | saveState () |
| Saves state. More... | |
| void | setConf (DMRGConfig conf_) |
| Sets new DMRGConfig to continue with. More... | |
| DMRGConfig const & | showConf () const |
| Shows the DMRGConfig. More... | |
| Operator const & | showH (Index const i) const |
| Overload because pyten does not like the implicit cast and deletes the operator otherwise. More... | |
| std::vector< Operator > const & | showHs () const |
| Returns the operators. More... | |
| State const & | showPsi () const |
| Gives a const. More... | |
Constructors & assignment operators. | |
| Run ()=default | |
| Default constructor. More... | |
| Run & | operator= (Run &&other) |
| Move assignment. More... | |
| Run & | operator= (Run const &other)=delete |
| Copy assignment. More... | |
| Run (Run const &other)=delete | |
| Delete copy constructor. More... | |
| Run (Run &&other) | |
| Move constructor. More... | |
Logging | |
| void | initLog () |
| Initializes logfiles. More... | |
| void | closeLog () |
| Closes logfiles. More... | |
| template<typename... Args> | |
| void | logIteration (Args &&... data) |
| Log the data for a single iteration. More... | |
| template<typename... Args> | |
| void | logTrace (Args &&... data) |
| Log traceing information. More... | |
External interface | |
| void | initArgs (int argc_, char **argv_) |
| Initialize arguments. More... | |
| Run (State &&psi_, std::vector< Operator > &&ops_, DMRGConfig &&conf_, std::vector< State > &&ortho_={}) | |
| Construction. More... | |
| void | run () |
| Peforms a DMRG run. More... | |
| template<typename TypePtr , typename TypeVal > | |
| void | setConfig (TypePtr ptr, TypeVal value) |
| Use to set configuration for all workers. More... | |
| std::vector< DenseTensor< 2 > > const & | get_global_Us () const |
| Gives back the rotation. More... | |
| void | init_obs (std::vector< Operator > obs_) |
| Inititalses observables to rotate during MT. More... | |
| std::vector< Operator > | get_obs () |
| Returns observables. More... | |
| void | setCaching (bool const val) |
| Sets caching flag to state operator and contractions. More... | |
| void | randomise_state () |
| Randomises current state. More... | |
| DMRGStage const & | currentStage () const |
| Const reference to current stage. More... | |
Boost serialisation. | |
| template<typename Archive > | |
| void | save (Archive &ar, unsigned int const in_version) |
| Save a worker object to a boost archive. More... | |
| template<class Archive > | |
| void | save (Archive &ar, unsigned int const in_version) const |
| Overload to satisfy Boost. More... | |
| template<typename Archive > | |
| void | load (Archive &ar, unsigned int const in_version) |
| Load a worker object from a boost archive. More... | |
Static Public Attributes | |
| static std::string const | uuid = "589F7D2E-2992-4F54-A34B-114FC3A19886" |
| UUID. More... | |
| static constexpr unsigned int | version = 4 |
| Version. More... | |
Private Member Functions | |
Contraction of operator and state. | |
| void | build_descendantContr (LegType const which, Position const &pos) const |
| Build a contraction pointing towards the requested direction. More... | |
| void | build_rootContr (Position const &pos) const |
| Build a local root-pointing contraction of the operator with the state (based on) the nodes given as arguments. More... | |
| void | build_rootContr_rec (Position &pos) |
| Recursively build an entire tree of root-pointing contractions. More... | |
Internal functionality | |
| bool | checkSignals () |
| Checks for signals. More... | |
| void | resetPosition () |
| Set position to start. More... | |
| void | checkTopology () const |
| Compare Operators to each other in order to check if they're valid. More... | |
| void | uncache (Tree::Position const &pos, LegType const dir=LegType::Invalid) |
| Uncaches the requested position in all Hamiltonians. More... | |
| void | cache (Tree::Position const &pos, bool const do_cache=true, LegType const dir=LegType::Invalid) |
| Caches the requested position in all Hamiltonians. More... | |
| void | sweep () |
| Do one sweep over the entire system. More... | |
| void | update_rec (Position &pos) |
| Updates a subtree recursively. More... | |
| void | update_node (Position const &pos, LegType const dir) |
| A helper function in order to distinguish the kinds of updates. More... | |
| void | update_branch (LegType const direction, Position const &pos) |
| Performs the actual update on a Branching Node. More... | |
| void | update_phys_branching (Position const &pos, LegType const direction) |
| Contracts the current site w/ a neighboring Branching Node and optimizes. More... | |
| void | update_phys_branching_2site (LegType const direction, LegType const secondDir, Position const &pos) |
| Updates Physical-Branching-Physical Contraction. More... | |
| void | update_phys_1site (LegType const direction, Position const &pos) |
| Does single site DMRG on Physical Node w/ neighboring Physical Node. More... | |
| void | update_phys_2site (Position const &pos, LegType const direction) |
| Does two site DMRG on Physical Node w/ neighboring Physical Node. More... | |
| void | checkNormAndStabilise (STensor &t, Vec< SBasisId > const &keep_size={}) |
| Checks the norm of a tensor and randomises it if needed. More... | |
| DMRGStage & | currentStage () |
| Reference to current stage. More... | |
| IterativeExit | solveContractionWithBranching (Vec< STensor > const &operatorContrs, STensor &stateContr, LegType const contracted, Position const &pos) const |
| Solves for the tensor on a Physical Node, given a neighboring Branching Node. More... | |
| IterativeExit | solvePhysical (Position const &pos, Vec< std::reference_wrapper< T3NTensor const > > const &w_refs) |
| Solves for the tensor on a Physical Node. More... | |
| IterativeExit | solveBranching (Position const &pos, Vec< std::reference_wrapper< T3NTensor const > > const &w_refs) |
| Solves for the tensor on a Branching Node. More... | |
| IterativeExit | solve2Site (Position const &pos, LegType const direction, Vec< std::reference_wrapper< T3NTensor const > > const &w_refs, STensor &site) const |
| Solves two-site. More... | |
| IterativeExit | solve2SitePhysicalBranching (Vec< std::reference_wrapper< T3NTensor const > > const &operatorContrs, STensor &stateContr, LegType const contracted, LegType const secondContr, Position const &pos) const |
| Solves two-site-branching contraction. More... | |
| void | normalise_network (Position const &pos, LegType const towards) |
| Normalises the entire network towards given direction. More... | |
| std::string | directionSymbol (NodeType const posType, NodeType const nextType, LegType const direction, LegType const rootType) const |
| Returns the symbol for the direction of sweeping. More... | |
| std::string | positionInfo (Position const &pos) const |
| Returns position information. More... | |
| void | expand (Position const &pos, LegType const direction) |
| Performs subspace expansion. More... | |
| void | expandPhysical (Position const &pos, LegType const direction) |
| Performs subspace expansion. More... | |
| void | expandBranch (Position const &pos, LegType const direction) |
| Performs subspace expansion. More... | |
| SRDef | normalise (State::Ptr ptr, LegType const dir) |
Normalises the state on node pptr in direction dir. More... | |
| void | contract (Position const &pos, LegType const dir) |
Forwarder to build the contraction on node cptr from the neighbours of cptr, pptr and optr in direction dir. More... | |
| Pair< SRDef, SRDef > | energy (Position const &pos) const |
| Calculates the energy on the specified node, assuming that all neighbouring contractions exist and point in the correct direction. More... | |
| Pair< SRDef, SRDef > | energy (Position const &pos, LegType const dir) const |
| Forwarder to calculate the energy on the neighbouring node of that pointed to be the arguments in the given direction. More... | |
Private Attributes | |
| int | argc |
| char ** | argv |
| DMRGConfig | conf |
| Configuration of the run. More... | |
| Contractions | contrs |
Contractions of op & psi. More... | |
| std::ofstream | iterLog |
| output filestream for each iteration More... | |
| Vec< Operator > | mt_observables = {} |
| Observables to rotate during MT. More... | |
| Vec< SRDef > | mut ={} |
| Mutual Information at each sweep. More... | |
| Vec< Operator > | ops |
| (Hamiltonian-) Operator of which we calculate the ground state. More... | |
| Vec< State > | ortho |
| Orthogonalise against there vectors. More... | |
| Contractions | orthoContrs |
| Contractions of orthogonal states. More... | |
| Position | position |
| Shows the current position during optimisation. More... | |
| State | psi |
Ground state (approximation) for op. More... | |
| bool | smp |
| True if all nodes are physical. More... | |
| Timer | timer |
| For performance testing reasons. More... | |
| std::ofstream | traceLog |
| output filestream for the debug info More... | |
| Vec< DenseTensor< 2 > > | Us = {} |
| For transforming the creation and annihilation operators. More... | |
One run of T3N-DMRG.