Parallel TDVP run, containing TDVP workers executing the actual calculations. More...
#include <tdvp_parallel.h>
Public Member Functions | |
void | do_step () |
Does an entire time step sweeping forward and backward. More... | |
Conf const & | get_conf () const |
Get const lvalue ref to internal config, used by Python module. More... | |
Errors const & | get_errs () const |
Returns the total errors. More... | |
GSEConf const & | get_gse_conf () const |
Get const lvalue ref to internal GSE config, used by Python module. More... | |
SRDef | get_last_norm () const |
Returns the last norm. More... | |
State | get_psi (bool const move=false, bool const verbose=false) |
Creates the full MPS from the partial MPSes in the workers. More... | |
State const & | get_ref_psi () const |
Gives a const ref. More... | |
syten::TDVP::Mode | get_tdvp_mode () |
Returns the current TDVP Mode More... | |
SDef | get_tdvp_timestep () |
Returns the current TDVP timestep More... | |
std::vector< Timer > | get_timers () const |
Return timers. More... | |
SRDef | get_total_norm_change () const |
Returns the current norm. More... | |
void | init_timers () |
Initialises the timer. More... | |
template<typename Archive > | |
void | load (Archive &ar, const unsigned int in_version) |
Serialization. More... | |
template<typename... Args> | |
void | logTrace (Index const rank, int const level, Args &&... whatever) const |
Log tracing information. More... | |
void | logTrace (Index const, int const level, Args &&... whatever) const |
Index | mpi_rank () const |
Index | mpi_size () const |
PTDVP & | operator= (PTDVP &&other) |
Move assignment operator. More... | |
PTDVP ()=default | |
Default ctor. More... | |
PTDVP (PTDVP &&other) | |
Move ctor. More... | |
PTDVP (State &&psi_, std::vector< Operator > &&ops_, Conf &&conf_, std::vector< Index > &&rbounds_) | |
Standard ctor, constructs and assigns the worker objects and prepares the calculation. More... | |
bool | reached_final_T () const |
True if final time is reached. More... | |
void | run (int argc, char **argv, bool const do_step_=false) |
Run TDVP. More... | |
void | save () const |
void | save () const |
Sends necessary data for serialization to main thread. More... | |
template<typename Archive > | |
void | save (Archive &ar, const unsigned) |
Serialization. More... | |
template<typename Archive > | |
void | save (Archive &ar, const unsigned) const |
Overload to satisfy boost. More... | |
void | set_gse_conf (GSEConf new_conf) |
Overwrites the current TDVP GSE Conf. More... | |
void | set_tdvp_mode (syten::TDVP::Mode new_mode) |
Overwrites the current TDVP Mode. More... | |
void | set_tdvp_timestep (SDef time_step) |
Overwrites the current TDVP timestep. More... | |
Static Public Attributes | |
static constexpr unsigned int | version = 1 |
Bump this if data changes. More... | |
Private Member Functions | |
void | check_norms_renormalise (Vec< SRDef > const &n) |
void | check_norms_renormalise (Vec< SRDef > const &n) |
Check norms and renormalise. More... | |
bool | checkSignals () const |
Return false if we must exit due to having received some signal. More... | |
std::vector< SRDef > | compute_norms () const |
std::vector< SRDef > | compute_norms () const |
Compute norms. More... | |
template<typename T > | |
void | init_distribute (Index const t, T &input, T &target) const |
Distribute data in setup. More... | |
void | init_distribute (Index const t, T &input, T &target) const |
void | init_worker (Index const t, std::vector< Operator > &&op, State &&psi, Vec< Conf > &confs, Tensor< 2 > &c, Index const lbound, Index const rbound) |
void | init_worker (Index const t, std::vector< Operator > &&op, State &&psi, Vec< Conf > &confs, Tensor< 2 > &c, Index const lbound, Index const rbound) |
Initialises workers. More... | |
void | mpi_clear (std::vector< T > &) const |
void | mpi_clear_save () |
void | mpi_comm_after_sync () |
void | mpi_comm_before_sync () |
void | mpi_init (bool const) |
void | mpi_sync_errs () |
void | mpi_sync_positions () |
void | mpi_sync_save () |
void | mpi_sync_zero_pos () |
void | print_timers () const |
void | print_timers () const |
Prints timers. More... | |
std::string | saveState (bool const verbose=false) |
Saves the state to disk and returns the filename used. More... | |
void | sweep () |
void | sweep () |
Performs the actual sweeping. More... | |
void | sync (SRDef const forward_prefactor, SRDef const backward_prefactor, std::string const &id) |
void | sync (SRDef const forward_prefactor, SRDef const backward_prefactor, std::string const &id) |
Performs sync of the boundaries. More... | |
std::vector< State > | sync_state (bool const move) |
std::vector< State > | sync_state (bool const move) |
Sync to construct state. More... | |
Private Attributes | |
Conf | conf |
Config containing the parameters. More... | |
std::vector< Tensor< 2 > > | connections |
vector of connectors between consecutive segments, already inverted More... | |
Errors | errs |
Total errors. More... | |
SRDef | last_norm = 1 |
norm after last time step More... | |
Index | length |
Total system size. More... | |
Index | numWorkers |
number of workers, constant throughout the calculation More... | |
SRDef | total_norm_change = 1 |
Total norm change during time evolution. More... | |
std::vector< Worker > | workers |
vector of worker objects More... | |
Static Private Attributes | |
static std::string const | uuid = "877097c2-ceba-11eb-b8bc-0242ac130003" |
UUID. More... | |
MPI related stuff. | |
mpi::Communicator | world = SYTEN_MPI_VOID_COMMUNICATOR |
Used for MPI communication. More... | |
static constexpr mpi::Enable | enabled = enable |
Stores switch. More... | |
void | mpi_init (bool const is_copy) |
Initialises communicator. More... | |
void | mpi_comm_before_sync () |
Communication before sync. More... | |
void | mpi_comm_after_sync () |
Communication after sync. More... | |
void | mpi_sync_positions () |
Syncronize all worker positions to main. More... | |
void | mpi_sync_zero_pos () |
Syncronizes zero position of all workers. More... | |
template<typename T > | |
void | mpi_clear (std::vector< T > &v) const |
Clear all but this slot. More... | |
void | mpi_sync_errs () |
Syncs all errors to main worker. More... | |
void | mpi_sync_save () |
Syncs workers and connectors before serialization. More... | |
void | mpi_clear_save () |
Clears unnecessary stuff afterwards. More... | |
Index | mpi_size () const |
Number of slots. More... | |
Index | mpi_rank () const |
Current rank. More... | |
bool | mpi_main () const |
One of these is not like the others. More... | |
Parallel TDVP run, containing TDVP workers executing the actual calculations.