MPO Evolution in ITensor example

Dear ITensors team,

I was looking at some examples of MPO evolutions given in ITensors github page’s example i.e., ITensors.jl/examples at main · ITensor/ITensors.jl · GitHub

For the example of purification (ITensors.jl/examples/finite_temperature/purification.jl at main · ITensor/ITensors.jl · GitHub), MPO evolution is used and the apply function is used as

apply(gates, rho; cutoff).

Whereas in another example of MPO gate evolution (ITensors.jl/examples/gate_evolution/mpo_gate_evolution.jl at main · ITensor/ITensors.jl · GitHub) , I see the gate evolution is done via

apply(gates, rho; cutoff, apply_dag=true)

Ok, so the main question is can you clarify why apply_dag=true is missing in the first example? I am not sure which procedure is correct (may be both are but then can you please point out when to use apply_dag=True for MPO evolution and when not)?

Best,
Sourav

apply when apply_dag=false (the default) applies the gate to just one side of the MPO (the primed side), while apply_dag=true applies the gate and it’s conjugate on either side of the MPO.

Thanks a lot !