Re: [Wannier] Unitary property of U^{dis}

2020-03-13 Thread 周哲弘
Hello Professor Arash Mostofi and Hung,



Thanks for replying my question so quickly and thank Hung for providing
your code.

I think that might be some problem with my seedname_u_dis.mat.

I tried to use Hung’s code to check my seedname_u_dis.mat but the result
showed the U^{dis} matrix is still not unitary, so I run the wannier90
again and I found that the segmentation fault (forrtl: severe (174):
SIGSEGV, segmentation fault occurred) appeared in my window. The wannier90
still can output the seedname_u.mat and seedname_u_dis.mat, and I have
checked the U matrix is unitary but U^{dis} matrix is not.

Is there any way to fix the segmentation fault error?



The link (
https://drive.google.com/drive/folders/1-FptFSxeMugjKk27V9OKiYKQdSbyPQkP?usp=sharing)
contains some of my input and output file.

The following is my input setting (seedname.win) .

num_wann = 11

num_bands = 32



!postproc_setup = T

guiding_centres = T



begin projections

S:p

Mo:d

end projections



!bands_plot = T

!begin kpoint_path

!K 0.333 -0.333 0.000 G 0.000 0.000 0.000

!G 0.000 0.000 0.000 M 0.500 0.000 0.000

!M 0.500 0.000 0.000 K 0.333 -0.333 0.000

!end kpoint_path

!bands_num_points = 79



dis_win_min = -8

dis_froz_min = -7

dis_froz_max = 3



!wannier_plot = T

!wannier_plot_supercell = 5 5 1



!write_xyz = T

write_u_matrices = T

write_hr = T



begin unit_cell_cart

 1.590 2.7539610 0.000

-1.590 2.7539610 0.000

 0.000 0.00015.000

end unit_cell_cart



begin atoms_cart

Mo  -0.000 3.6719461 7.500

S0.000 1.8359713 9.0639323

S0.000 1.8359713 5.9360677

end atoms_cart



mp_grid =2424 1


Hung Pham  於 2020年3月4日 週三 上午9:15寫道:
>
> Hello Che-Hong,
>
> I think it is possible that the U_dis matrix wasn't read and stored
properly. U and U_dis matrix must be unitary.
> And the orthogonality of U_dis is always checked internally using the
internal_check_orthonorm() function in disentangle.F90 as Arash mentioned.
> I just included a function to read wannier90 U_matrices (either U_mat or
U_mat_opt) in my MCU package. Please see the function here.
>
> The unitary of U or U_dis can be checked by using a simple python script:
>
> import numpy as np
> import mcu
> kpts, U_kpts = mcu.read_U_matrix("wannier90_u_dis.mat")
> nkpts, nband, nwann = U_kpts.shape
> for i, kpt in enumerate(kpts):
> is_unitary = np.linalg.norm(U_kpts[i].T.conj() @ U_kpts[i] -
np.eye(nwann)) < 1.e-8
> print("kpt = {0:6.3f} {1:6.3f} {2:6.3f} ;Is U_kpt unitary?:
{3}".format(kpt[0], kpt[1], kpt[2], is_unitary))
>
> I attached the in/out files from my testing on the MoS2 layer so you can
check it out yourself.
> Let me know if it solves your problem.
>
> Best,
> Hung
>
>
> On Tue, Mar 3, 2020 at 11:42 AM Mostofi, Arash 
wrote:
>>
>> Dear Che-Hong
>> I believe the code internally does this check (in subroutine dis_project
in src/disentangle.F90) and reports an error if it is not satisfied.
Admittedly, I’ve never explicitly checked that u_matrix_opt, as written to
the seed name_u_dis.mat file, satisfies it... Note that the order of the
matrix multiplication matters: U_{dis}^{\dagger}U_{dis} = 1, but not
U_{dis}U_{dis}^{\dagger}, so a little care is needed in the evaluation.
Perhaps you could check and, if you are sure it’s a problem, then post your
input and output files (and script to read the matrices and evaluate the
matrix product) and someone will try to take a look.
>> Best wishes,
>> Arash
>>
>> —
>> Professor Arash Mostofi — www.mostofigroup.org
>> Director, CDT in Theory and Simulation of Materials
>> Imperial College London
>>
>>
>>
>>
>> On 1 Mar 2020, at 14:00, 周哲弘  wrote:
>>
>> Dear Wannier developers
>>
>>
>>
>> I have used a combination of VASP (PAW-GGA package) and Wannier90 to
obtain
>>
>> MLWFs in the system of monolayer MoS2.
>>
>>
>>
>> Recently I am trying to output the U and U^{dis} matrices
(seedname_u.mat and seedname_u_dis.mat), and I find that U^{dis} doesn’t
follow the rule (U^{dis})dagger* U^{dis}=1 (User Guide v3.0, p.14, footnote
2).
>>
>>
>>
>> Could anyone help me with this problem?
>>
>>
>>
>> Che-Hong Chou
>>
>> Graduate Student
>>
>> Department of Electrophysics
>>
>> National Chiao Tung University
>>
>> Taiwan
>>
>>
>>
>>
>>
>> ___
>> Wannier mailing list
>> Wannier@lists.quantum-espresso.org
>> https://lists.quantum-espresso.org/mailman/listinfo/wannier
>>
>>
>> ___
>> Wannier mailing list
>> Wannier@lists.quantum-espresso.org
>> https://lists.quantum-espresso.org/mailman/listinfo/wannier
>
>
>
> --
>
> Hung Q. Pham
> Gagliardi Group
> Office: Smith 101
> Email: phamx...@umn.edu
> Personal page: hungpham2017.github.io
> Department of Chemistry
> University of Minnesota - Twin Cities, Minneapolis, MN 55455

>
___
Wannier mailing list

Re: [Wannier] Unitary property of U^{dis}

2020-03-03 Thread Hung Pham
Hello Che-Hong,

I think it is possible that the U_dis matrix wasn't read and stored
properly. U and U_dis matrix must be unitary.
And the orthogonality of U_dis is always checked internally using the
*internal_check_orthonorm()* function in *disentangle.F90 *as Arash
mentioned.
I just included a function to read wannier90 U_matrices (either U_mat or
U_mat_opt) in my MCU 
package. Please see the function here

.

The unitary of U or U_dis can be checked by using a simple python script:

import numpy as np
import mcu
kpts, U_kpts = mcu.read_U_matrix("wannier90_u_dis.mat")
nkpts, nband, nwann = U_kpts.shape
for i, kpt in enumerate(kpts):
is_unitary = np.linalg.norm(U_kpts[i].T.conj() @ U_kpts[i] -
np.eye(nwann)) < 1.e-8
print("kpt = {0:6.3f} {1:6.3f} {2:6.3f} ;Is U_kpt unitary?:
{3}".format(kpt[0], kpt[1], kpt[2], is_unitary))

I attached the in/out files from my testing on the MoS2 layer so you can
check it out yourself.
Let me know if it solves your problem.

Best,
Hung


On Tue, Mar 3, 2020 at 11:42 AM Mostofi, Arash 
wrote:

> Dear Che-Hong
> I believe the code internally does this check (in subroutine dis_project
> in src/disentangle.F90) and reports an error if it is not satisfied.
> Admittedly, I’ve never explicitly checked that u_matrix_opt, as written to
> the seed name_u_dis.mat file, satisfies it... Note that the order of the
> matrix multiplication matters: U_{dis}^{\dagger}U_{dis} = 1, but not
> U_{dis}U_{dis}^{\dagger}, so a little care is needed in the evaluation.
> Perhaps you could check and, if you are sure it’s a problem, then post your
> input and output files (and script to read the matrices and evaluate the
> matrix product) and someone will try to take a look.
> Best wishes,
> Arash
>
> —
> Professor Arash Mostofi — www.mostofigroup.org
> Director, CDT in Theory and Simulation of Materials
> Imperial College London
>
>
>
>
> On 1 Mar 2020, at 14:00, 周哲弘  wrote:
>
> Dear Wannier developers
>
>
>
> I have used a combination of VASP (PAW-GGA package) and Wannier90 to obtain
>
> MLWFs in the system of monolayer MoS2.
>
>
>
> Recently I am trying to output the U and U^{dis} matrices (seedname_u.mat
> and seedname_u_dis.mat), and I find that U^{dis} doesn’t follow the rule
> (U^{dis})dagger* U^{dis}=1 (User Guide v3.0, p.14, footnote 2).
>
>
>
> Could anyone help me with this problem?
>
>
>
> Che-Hong Chou
>
> Graduate Student
>
> Department of Electrophysics
>
> National Chiao Tung University
>
> Taiwan
>
>
>
>
> ___
> Wannier mailing list
> Wannier@lists.quantum-espresso.org
> https://lists.quantum-espresso.org/mailman/listinfo/wannier
>
>
> ___
> Wannier mailing list
> Wannier@lists.quantum-espresso.org
> https://lists.quantum-espresso.org/mailman/listinfo/wannier
>


-- 

Hung Q. Pham
Gagliardi Group
Office: Smith 101
Email: phamx...@umn.edu
Personal page: hungpham2017.github.io
Department of Chemistry
University of Minnesota - Twin Cities, Minneapolis, MN 55455


POSCAR
Description: Binary data


INCAR
Description: Binary data


wannier90_u_dis.mat
Description: Binary data


wannier90.win
Description: Binary data
___
Wannier mailing list
Wannier@lists.quantum-espresso.org
https://lists.quantum-espresso.org/mailman/listinfo/wannier


Re: [Wannier] Unitary property of U^{dis}

2020-03-03 Thread Mostofi, Arash
Dear Che-Hong
I believe the code internally does this check (in subroutine dis_project in 
src/disentangle.F90) and reports an error if it is not satisfied. Admittedly, 
I’ve never explicitly checked that u_matrix_opt, as written to the seed 
name_u_dis.mat file, satisfies it... Note that the order of the matrix 
multiplication matters: U_{dis}^{\dagger}U_{dis} = 1, but not 
U_{dis}U_{dis}^{\dagger}, so a little care is needed in the evaluation. Perhaps 
you could check and, if you are sure it’s a problem, then post your input and 
output files (and script to read the matrices and evaluate the matrix product) 
and someone will try to take a look.
Best wishes,
Arash

—
Professor Arash Mostofi — www.mostofigroup.org
Director, CDT in Theory and Simulation of Materials
Imperial College London




On 1 Mar 2020, at 14:00, 周哲弘 
mailto:lion08130...@gmail.com>> wrote:

Dear Wannier developers

I have used a combination of VASP (PAW-GGA package) and Wannier90 to obtain
MLWFs in the system of monolayer MoS2.

Recently I am trying to output the U and U^{dis} matrices (seedname_u.mat and 
seedname_u_dis.mat), and I find that U^{dis} doesn’t follow the rule 
(U^{dis})dagger* U^{dis}=1 (User Guide v3.0, p.14, footnote 2).

Could anyone help me with this problem?


Che-Hong Chou

Graduate Student

Department of Electrophysics

National Chiao Tung University

Taiwan


___
Wannier mailing list
Wannier@lists.quantum-espresso.org
https://lists.quantum-espresso.org/mailman/listinfo/wannier

___
Wannier mailing list
Wannier@lists.quantum-espresso.org
https://lists.quantum-espresso.org/mailman/listinfo/wannier