dmrg0s
Overloads
| Name | Description |
|---|---|
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. |
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. |
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 ( = current max bond dimension): • "static": remains constant (fixed max bond dimension). • "logarithmic": (slope ) • "polynomial": (slope )
- 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 ( = current max bond dimension): • "static": remains constant (fixed max bond dimension). • "logarithmic": (slope ) • "polynomial": (slope )
- 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]))