# Tracking max link dimension using observers in TDVP

**URL:** <https://itensor.discourse.group/t/tracking-max-link-dimension-using-observers-in-tdvp/1829>\
**Category:** ITensor Julia Questions\
**Created:** [June 24, 2024, 8:29am UTC](https://itensor.discourse.group/t/tracking-max-link-dimension-using-observers-in-tdvp/1829 "2024-06-24T08:29:03Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![joshperry3110](https://avatars.discourse-cdn.com/v4/letter/j/839c29/32.png) [@joshperry3110](https://itensor.discourse.group/u/joshperry3110)\
**Post date:** [June 24, 2024, 8:29am UTC](https://itensor.discourse.group/t/tracking-max-link-dimension-using-observers-in-tdvp/1829/1 "2024-06-24T08:29:03Z")

</div>

Hello,  
I was hoping you could provide me some guidance for keeping track of the max link dimension in a TDVP calculation. I am using the Observers package.  
Essentially I want to automatically switch to 1-site TDVP once the max link dimension is reached.  
My attempt used

```julia
linkdims(; maxlinkdim) = maxlinkdim

```

and then accessing this with an observer. However this doesn’t seem to work. Is there a way to do this?  
Thanks!

---

<div class="post-metadata">

**Author:** ![ryanlevy](https://yyz2.discourse-cdn.com/free1/user_avatar/itensor.discourse.group/ryanlevy/32/150_2.png) [@ryanlevy](https://itensor.discourse.group/u/ryanlevy)\
**Post date:** [June 24, 2024, 11:11am UTC](https://itensor.discourse.group/t/tracking-max-link-dimension-using-observers-in-tdvp/1829/2 "2024-06-24T11:11:43Z")

</div>

To find the maximum link dimension of a state, you can use the ITensorMPS (/ITensors) function `maxlinkdim`.  
Then you can create a function to capture this similar to what you’ve done

```julia
using ITensorMPS: maxlinkdim
getmaxlinkdims(; state) = maxlinkdim(state)
obs = observer(
# ...
"maxlinkdims" => getmaxlinkdims,
)

```

Note that the example 04 also has `obs.states` (from `return_state(; state) = state`), which you can then also call `maxlinkdim` on as an alternative.

---

<div class="post-metadata">

**Author:** ![joshperry3110](https://avatars.discourse-cdn.com/v4/letter/j/839c29/32.png) [@joshperry3110](https://itensor.discourse.group/u/joshperry3110)\
**Post date:** [June 24, 2024, 12:59pm UTC](https://itensor.discourse.group/t/tracking-max-link-dimension-using-observers-in-tdvp/1829/3 "2024-06-24T12:59:36Z")

</div>

Amazing, thank you so much! This perfectly solves my problem. Cheers!

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/free1/uploads/itensor/original/1X/d3072b13e047cd06df7f3981547c0917d940dfa4.png) [@system](https://itensor.discourse.group/u/system)\
**Post date:** [July 4, 2024, 1:00pm UTC](https://itensor.discourse.group/t/tracking-max-link-dimension-using-observers-in-tdvp/1829/4 "2024-07-04T13:00:27Z")

</div>

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.
