|
| 1 | +using Accessors: @set |
1 | 2 | using Printf: @printf |
2 | 3 | using ITensors: truncerror |
3 | 4 |
|
4 | 5 | @kwdef mutable struct EigsolveProblem{State,Operator} <: AbstractProblem |
5 | 6 | operator::Operator |
6 | 7 | state::State |
7 | 8 | eigenvalue::Number = Inf |
8 | | - max_truncerr::Real = 0.0 |
| 9 | + max_truncerror::Real = 0.0 |
9 | 10 | end |
10 | 11 |
|
11 | 12 | eigenvalue(E::EigsolveProblem) = E.eigenvalue |
12 | 13 | state(E::EigsolveProblem) = E.state |
13 | 14 | operator(E::EigsolveProblem) = E.operator |
14 | | -max_truncerr(E::EigsolveProblem) = E.max_truncerr |
| 15 | +max_truncerror(E::EigsolveProblem) = E.max_truncerror |
15 | 16 |
|
16 | | -function set_operator(E::EigsolveProblem, operator) |
17 | | - EigsolveProblem(operator, E.state, E.eigenvalue, E.max_truncerr) |
18 | | -end |
19 | | -function set_eigenvalue(E::EigsolveProblem, eigenvalue) |
20 | | - EigsolveProblem(E.operator, E.state, eigenvalue, E.max_truncerr) |
21 | | -end |
22 | | -function set_state(E::EigsolveProblem, state) |
23 | | - EigsolveProblem(E.operator, state, E.eigenvalue, E.max_truncerr) |
24 | | -end |
25 | | -function set_max_truncerr(E::EigsolveProblem, truncerr) |
26 | | - EigsolveProblem(E.operator, E.state, E.eigenvalue, truncerr) |
27 | | -end |
| 17 | +set_operator(E::EigsolveProblem, operator) = (@set E.operator = operator) |
| 18 | +set_eigenvalue(E::EigsolveProblem, eigenvalue) = (@set E.eigenvalue = eigenvalue) |
| 19 | +set_state(E::EigsolveProblem, state) = (@set E.state = state) |
| 20 | +set_max_truncerror(E::EigsolveProblem, truncerror) = (@set E.max_truncerror = truncerror) |
28 | 21 |
|
29 | 22 | function set_truncation_info(E::EigsolveProblem; spectrum=nothing) |
30 | 23 | if !isnothing(spectrum) |
31 | | - E = set_max_truncerr(E, max(max_truncerr(E), truncerror(spectrum))) |
| 24 | + E = set_max_truncerror(E, max(max_truncerror(E), truncerror(spectrum))) |
32 | 25 | end |
33 | 26 | return E |
34 | 27 | end |
@@ -60,7 +53,7 @@ function sweep_printer(problem::EigsolveProblem; outputlevel, sweep, nsweeps, kw |
60 | 53 | end |
61 | 54 | @printf("eigenvalue=%.12f", eigenvalue(problem)) |
62 | 55 | @printf(" maxlinkdim=%d", maxlinkdim(state(problem))) |
63 | | - @printf(" max truncerr=%d", max_truncerr(problem)) |
| 56 | + @printf(" max truncerror=%d", max_truncerror(problem)) |
64 | 57 | println() |
65 | 58 | flush(stdout) |
66 | 59 | end |
|
0 commit comments