Skip to main content

dmrg0s

Overloads

NameDescription
dmrg0s(const ComplexMPS initial_state, const ComplexMPO hamiltonian, const Map options) -> ListCompute a ground state using the zero-site (single-site) Density Matrix Renormalization Group algorithm.
dmrg0s(const RealMPS initial_state, const RealMPO hamiltonian, const Map options) -> ListCompute a ground state using the zero-site (single-site) Density Matrix Renormalization Group algorithm.

dmrg0s(const ComplexMPS initial_state, const ComplexMPO hamiltonian, const Map options) -> List

Compute a ground state using the zero-site (single-site) Density Matrix Renormalization Group algorithm.

This implementation optimizes one site at a time and supports global and local enrichment heuristics. Unlike the two-site DMRG implementation, it also supports chains with three or fewer sites.

The algorithm supports multiple optimization schedules, configurable enrichment strategies, and logging for monitoring convergence.

Parameters

  • initial_state: Initial MPS guess for the ground state. Must have the same number of sites as the Hamiltonian.
  • hamiltonian: Hamiltonian operator in MPO form representing the quantum system.
  • options: Map of algorithm parameters.
    • schedule ("static", "logarithmic", "polynomial"): Optimization schedule type controlling bond dimension growth. default: "logarithmic". Formulas (χ\chi = current max bond dimension): • "static": χ\chi remains constant (fixed max bond dimension). • "logarithmic": χnew=χ+log2(χ+1)×slope\chi_{\text{new}} = \chi + \lfloor \log_2(\chi + 1) \times \text{slope} \rfloor (slope 1.0\geq 1.0) • "polynomial": χnew=χ+slope×χ(degree1)/degree\chi_{\text{new}} = \chi + \lfloor \text{slope} \times \chi^{(\text{degree}-1)/\text{degree}} \rfloor (slope 0.0\geq 0.0)
    • max_iterations (positive integer): Maximum number of DMRG sweeps. default: 100.
    • energy_accuracy (positive real number): Energy convergence tolerance. Stops when |E_new - E_old| < tolerance. default: 1e-04.
    • truncation_accuracy (positive real number): SVD truncation tolerance for bond dimension reduction. default: 1e-10.
    • max_bond_dimension (positive integer): Maximum allowed bond dimension. default: 18446744073709551615.
    • degree (positive integer): Polynomial degree (only for polynomial schedule). default: 1.
    • slope (positive real number): Schedule slope parameter affecting convergence rate. default: 2.
    • verbose ("none", "sweep", "update", "all"): Logging level for monitoring convergence. default: "none".
    • global_enrichment ("none", "power", "lanczos"): Global enrichment strategy. Choose "none", "power", or "lanczos". default: "power".
    • lanczos_iterations (positive integer): Number of Lanczos enrichment iterations. default: 1.
    • local_enrichment ("move_only", "memory"): Local enrichment strategy. Choose "move_only" or "memory". default: "move_only".
    • memory_depth (integer in the range 1-254): Number of remembered bond tensors for the memory heuristic. default: 2.
    • memory_once_per_sweep (boolean): Advance memory once per sweep instead of at every bond update. default: false.

Returns

List containing two elements:

  • [0]: Ground state energy (real number)
  • [1]: Optimized ground state MPS

Example

// Compute a ground state with zero-site DMRG
var L = 4
var H = Ising_1d(L, complex(0.0))
var psi0 = random_mps(L, 2, 2, as_complex)
var options = [
"schedule": "static",
"max_iterations": 10,
"max_bond_dimension": 4,
"energy_accuracy": 1.0e-8,
"truncation_accuracy": 1.0e-8,
"global_enrichment": "power",
"local_enrichment": "move_only",
"verbose": "none"
]
var result = dmrg0s(psi0, H, options)
print("Ground state energy: " + string(result[0]))

dmrg0s(const RealMPS initial_state, const RealMPO hamiltonian, const Map options) -> List

Compute a ground state using the zero-site (single-site) Density Matrix Renormalization Group algorithm.

This implementation optimizes one site at a time and supports global and local enrichment heuristics. Unlike the two-site DMRG implementation, it also supports chains with three or fewer sites.

The algorithm supports multiple optimization schedules, configurable enrichment strategies, and logging for monitoring convergence.

Parameters

  • initial_state: Initial MPS guess for the ground state. Must have the same number of sites as the Hamiltonian.
  • hamiltonian: Hamiltonian operator in MPO form representing the quantum system.
  • options: Map of algorithm parameters.
    • schedule ("static", "logarithmic", "polynomial"): Optimization schedule type controlling bond dimension growth. default: "logarithmic". Formulas (χ\chi = current max bond dimension): • "static": χ\chi remains constant (fixed max bond dimension). • "logarithmic": χnew=χ+log2(χ+1)×slope\chi_{\text{new}} = \chi + \lfloor \log_2(\chi + 1) \times \text{slope} \rfloor (slope 1.0\geq 1.0) • "polynomial": χnew=χ+slope×χ(degree1)/degree\chi_{\text{new}} = \chi + \lfloor \text{slope} \times \chi^{(\text{degree}-1)/\text{degree}} \rfloor (slope 0.0\geq 0.0)
    • max_iterations (positive integer): Maximum number of DMRG sweeps. default: 100.
    • energy_accuracy (positive real number): Energy convergence tolerance. Stops when |E_new - E_old| < tolerance. default: 1e-04.
    • truncation_accuracy (positive real number): SVD truncation tolerance for bond dimension reduction. default: 1e-10.
    • max_bond_dimension (positive integer): Maximum allowed bond dimension. default: 18446744073709551615.
    • degree (positive integer): Polynomial degree (only for polynomial schedule). default: 1.
    • slope (positive real number): Schedule slope parameter affecting convergence rate. default: 2.
    • verbose ("none", "sweep", "update", "all"): Logging level for monitoring convergence. default: "none".
    • global_enrichment ("none", "power", "lanczos"): Global enrichment strategy. Choose "none", "power", or "lanczos". default: "power".
    • lanczos_iterations (positive integer): Number of Lanczos enrichment iterations. default: 1.
    • local_enrichment ("move_only", "memory"): Local enrichment strategy. Choose "move_only" or "memory". default: "move_only".
    • memory_depth (integer in the range 1-254): Number of remembered bond tensors for the memory heuristic. default: 2.
    • memory_once_per_sweep (boolean): Advance memory once per sweep instead of at every bond update. default: false.

Returns

List containing two elements:

  • [0]: Ground state energy (real number)
  • [1]: Optimized ground state MPS

Example

// Compute a ground state with zero-site DMRG
var L = 4
var H = Ising_1d(L, real(0.0))
var psi0 = random_mps(L, 2, 2, as_real)
var options = [
"schedule": "static",
"max_iterations": 10,
"max_bond_dimension": 4,
"energy_accuracy": 1.0e-8,
"truncation_accuracy": 1.0e-8,
"global_enrichment": "power",
"local_enrichment": "move_only",
"verbose": "none"
]
var result = dmrg0s(psi0, H, options)
print("Ground state energy: " + string(result[0]))