block.dmrg

DMRG calculations.

class block.dmrg.MPS(*args, **kwargs)

Bases: object

get_site_tensors(self: block.dmrg.MPS, arg0: int) → block.VectorMatrix
get_w(self: block.dmrg.MPS) → block.operator.Wavefunction
n_sweep_iters = None
site_blocks = None
write_to_disk(self: block.dmrg.MPS, state_index: int, write_state_average: bool = False) → None
block.dmrg.MPS_init(arg0: bool) → None

Initialize the single site blocks MPS.site_blocks.

class block.dmrg.SweepParams(*args, **kwargs)

Bases: object

additional_noise
backward_starting_size

Initial size of system block if in backward direction.

block_iter

Counter for controlling the blocking iteration (inner loop).

current_root
davidson_tol
env_add

The dot block size near environment block.

forward_starting_size

Initial size of system block if in forward direction.

guess_type
largest_dw

Largest discarded weight (or largest error).

lowest_energy
lowest_energy_spin
lowest_error
n_block_iters

The number of blocking iterations (inner loops) needed in one sweep.

n_keep_qstates

(May not be useful.)

n_keep_states

The bond dimension for states in current sweep.

noise
one_dot

Whether it is the one-dot scheme.

save_state(self: block.dmrg.SweepParams, forward: bool, size: int) → None

Save the sweep direction and number of sites in system block into the disk file ‘statefile.*.tmp’.

set_sweep_parameters(self: block.dmrg.SweepParams) → None
sweep_iter

Counter for controlling the sweep iteration (outer loop).

sys_add

The dot block size near system block.

block.dmrg.block_and_decimate(sweep_params: block.dmrg.SweepParams, system: block.block.Block, new_system: block.block.Block, use_slater: bool, dot_with_sys: bool) → None

Block and decimate to generate the new system block.

block.dmrg.calldmrg(input_file_name: str) → None

Global driver.

block.dmrg.dmrg(sweep_tol: float) → None

Perform DMRG calculation.

block.dmrg.do_one(sweep_params: block.dmrg.SweepParams, warm_up: bool, forward: bool, restart: bool, restart_size: int) → float

Perform one sweep procedure.

block.dmrg.get_dot_with_sys(system: block.block.Block, one_dot: bool, forward: bool) → bool

Return the dot_with_sys variable, determing whether the complementary operators should be defined based on system block indicies.

block.dmrg.guess_wavefunction(solution: block.operator.Wavefunction, e: block.DiagonalMatrix, big: block.block.Block, guess_wave_type: block.block.GuessWaveTypes, one_dot: bool, state: int, transpose_guess_wave: bool, additional_noise: float = 0.0) → None
block.dmrg.make_system_environment_big_overlap_blocks(system_sites: block.VectorInt, system_dot: block.block.Block, environment_dot: block.block.Block, system: block.block.Block, new_system: block.block.Block, environment: block.block.Block, new_environment: block.block.Block, big: block.block.Block, sweep_params: block.dmrg.SweepParams, dot_with_sys: bool, use_slater: bool, integral_index: int, bra_state: int, ket_state: int) → None