Skip to content

Pass through more settings for environment and gauging sub-algorithms#436

Open
leburgel wants to merge 1 commit into
mainfrom
lb/subroutine_control
Open

Pass through more settings for environment and gauging sub-algorithms#436
leburgel wants to merge 1 commit into
mainfrom
lb/subroutine_control

Conversation

@leburgel

Copy link
Copy Markdown
Member

An attempt to add more control over the VUMPS/VOMPS subroutines.

Previously, only the tol of the environment algorithm was ever actually passed through to the environment solver in the ends, and there was no way to switch the orthogonalization method from the default value (QR-based orthogonalization. Here I tried to address that passing all of the kwargs in the environment_alg down to the solver, and adding the orthogonalization algorithm to the gauging algorithm and passing that down accordingly.

@leburgel leburgel requested a review from lkdvos June 15, 2026 10:33
@codecov

codecov Bot commented Jun 15, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 10.00000% with 18 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/algorithms/approximate/vomps.jl 0.00% 6 Missing ⚠️
src/algorithms/statmech/vomps.jl 0.00% 6 Missing ⚠️
src/algorithms/groundstate/vumps.jl 0.00% 4 Missing ⚠️
src/utility/defaults.jl 50.00% 2 Missing ⚠️
Files with missing lines Coverage Δ
src/utility/defaults.jl 47.36% <50.00%> (-52.64%) ⬇️
src/algorithms/groundstate/vumps.jl 0.00% <0.00%> (-81.12%) ⬇️
src/algorithms/approximate/vomps.jl 0.00% <0.00%> (-66.67%) ⬇️
src/algorithms/statmech/vomps.jl 0.00% <0.00%> (-80.65%) ⬇️

... and 72 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@@ -65,7 +65,8 @@ end
function localupdate_step!(
::IterativeSolver{<:VOMPS}, state::VOMPSState{<:Any, <:Tuple}, ::SerialScheduler

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
::IterativeSolver{<:VOMPS}, state::VOMPSState{<:Any, <:Tuple}, ::SerialScheduler
it::IterativeSolver{<:VOMPS}, state::VOMPSState{<:Any, <:Tuple}, ::SerialScheduler

@lkdvos lkdvos left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like a great addition, thanks!

I had always wanted to have a better way of dealing with the environment algorithms, but I think the annoying part is the distinction between the linear solver for hamiltonians and the eigensolver for MPOs. There might be a case to be made to replace the NamedTuple arguments with actual KrylovKit algorithms from the start too, although I guess that requires slightly more work?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants