qcscine / qcmaquis

Release-only repository for SCINE QCMaquis, the DMRG software from the Reiher group.
BSD 3-Clause "New" or "Revised" License
32 stars 15 forks source link

inquiry of mutual information plot #23

Closed zhaivanczha closed 4 months ago

zhaivanczha commented 4 months ago

Hello qcmaquis developers,

I am currently using qcmaquis 3.0.4 in conjunction with OpenMolcas to analyze mutual information. From what I understand, generating mutual information plots is feasible under the 2u1pg symmetry. Based on previous documentation, it was necessary to run dmrg_meas and mps_transform_pg before one could obtain a mutual information plot, though I have not personally attempted this. However, in qcmaquis 3.0.4, I've found that executing mutinf.py xx.result_state.0.h5 without dmrg_meas and mps_transform_pg directly results in a PNG file of the mutual information plot, but I am uncertain if such a plot is correct.

Therefore, I am curious whether qcmaquis 3.0.4 (or OpenMolcas) automatically performs the steps that were previously handled by dmrg_meas and mps_transform_pg, or if the requirements for the 2u1pg symmetry have been removed for generating accurate mutual information plots.

I greatly appreciate your time and assistance, and thank you for developing such powerful programs.

Ivan

mmoerchen commented 4 months ago

Hi Ivan,

First a small disclaimer that I'm not completely sure if the following is correct, as you use a rather old version of QCMaquis and my workflow does not involve dmrg_meas or the mutinf.py.

To evaluate the entropies, the MPS still has to be transformed from SU2 to 2U1 symmetry. When you run QCMaquis through the OpenMolcas interface, you can check the xx.QCMaquis.log in the OpenMolcas scratch dir (the path is set by the WorkDir environment variable of OpenMolcas). There you should see something similar (and more) to:

Measuring Nup
Measuring Ndown
Measuring Nupdown
Measuring oneptspdm
 measuring in 2u1 version of tagged_nrank 

In this example the first 3 operators are measured in SU2, while for the last one (and the following) the MPS is transformed to 2U1 to measure the corresponding operator. The mutinf.py extracts the measured operators to construct the entropies, which are then plotted. So I don't think that you have to run dmrg_meas and mps_transform_pg, if you run QCMaquis through OpenMolcas.

However, I do not use the mutinf.py to plot my entanglement diagrams. Also I do not know which OpenMolcas version you use, which could also behave differently.

I hope that helped a bit.

Best, Max

zhaivanczha commented 4 months ago

Hi Max,

I've checked the QCMaquis.log file of my calculation, and indeed seen the following output:

Measuring Nup
Measuring Ndown
Measuring Nupdown
Measuring oneptspdm
 measuring in 2u1 version of tagged_nrank
Measuring dm_up
 measuring in 2u1 version of tagged_nrank
...

Thank you for the helpful information!

Best regards, Ivan