Re: Polarization calculation ( No.1 ) 
 Date: 2020/10/04 01:23
 Name: Naoya Yamaguchi
 Hi,
Can you show the given input parameters through the standard input?
Regards, Naoya Yamaguchi

Re: Polarization calculation ( No.2 ) 
 Date: 2020/10/04 11:15
 Name: Sergey
 Hi Naoya,
You mean input parameters for polB executable? It was just this:
11 7 11 1 0 1

Re: Polarization calculation ( No.3 ) 
 Date: 2020/10/04 12:23
 Name: Naoya Yamaguchi
 Dear Sergey,
Input parameters are normal. From the electronic contribution, I wondered if the calculation od Berry phases was not done. But, I can't find solution only from the standard output you showed. If you can, please share the input for OpenMX or scfout file.
Regards, Naoya Yamaguchi

Re: Polarization calculation ( No.4 ) 
 Date: 2020/10/04 18:24
 Name: Sergey
 Dear Naoya,
Thanks for your help. I put an archive (input, scfout files) on Google Drive:
https://drive.google.com/file/d/1JYEij2WCNMESC5OOTtaS7mLDk5Z8b3aD/view?usp=sharing
Sergey

Re: Polarization calculation ( No.5 ) 
 Date: 2020/10/05 12:49
 Name: Naoya Yamaguchi
 Dear Sergey,
I tried it from the scfout file with your input for polB, and the calculation seemed to be finished normally.
$ mpiexec n 64 polB TMCM.scfout < pol.inp
****************************************************************** ****************************************************************** polB: code for calculating the electric polarization of bulk systems Copyright (C), 20062019, Fumiyuki Ishii, Naoya Yamaguchi and Taisuke Ozaki This is free software, and you are welcome to redistribute it under the constitution of the GNUGPL. ****************************************************************** ******************************************************************
Read the scfout file (TMCM.scfout) *** The file format of the SCFOUT file: 3 And it supports the following functions:  jx  polB  kSpin  Z2FH  calB *** Previous eigenvalue solver = Band atomnum = 84 ChemP = 0.141551193615 (Hartree) E_Temp = 300.000000000000 (K) Total_SpinS = 0.000000000002 (K) Spin treatment = collinear spinpolarized
rspace primitive vector (Bohr) tv1= 18.317201 0.000209 0.040939 tv2= 0.000099 29.965707 0.000204 tv3= 1.161491 0.000686 12.377636 kspace primitive vector (Bohr^1) rtv1= 0.343093 0.000001 0.032195 rtv2= 0.000002 0.209679 0.000012 rtv3= 0.001135 0.000003 0.507730
Cell_Volume=6792.509631 (Bohr^3)
Specify the number of grids to discretize reciprocal a, b, and cvectors (e.g 2 4 3) k1 0.00000 0.09091 0.18182 0.27273 0.36364 0.45455 0.54545 0.63636 0.72727 0.81818 0.90909 k2 0.00000 0.14286 0.28571 0.42857 0.57143 0.71429 0.85714 k3 0.00000 0.09091 0.18182 0.27273 0.36364 0.45455 0.54545 0.63636 0.72727 0.81818 0.90909
Specify the direction of polarization as reciprocal a, b, and cvectors (e.g 0 0 1 ) calculating the polarization along the aaxis ....
The number of strings for Berry phase : AB mesh=77
calculating the polarization along the aaxis .... 1/ 2 calculating the polarization along the aaxis .... 2/ 2
calculating the polarization along the caxis ....
The number of strings for Berry phase : AB mesh=77
calculating the polarization along the caxis .... 1/ 2
calculating the polarization along the caxis .... 2/ 2
******************************************************* Electric dipole (Debye) : Berry phase *******************************************************
Absolute dipole moment 13656.21945973
Background Core Electron Total
Dx 0.00000000 5913.39719351 29.28751007 5884.10968344 Dy 0.00000000 11424.63009830 0.00052855 11424.63062685 Dz 0.00000000 4604.99017214 15.33429759 4620.32446973
*************************************************************** Electric polarization (muC/cm^2) : Berry phase ***************************************************************
Background Core Electron Total
Px 0.00000000 1959.68575398 9.70581112 1949.97994286 Py 0.00000000 3786.09521997 0.00017516 3786.09539513 Pz 0.00000000 1526.08278156 5.08174972 1531.16453128
Elapsed time = 854.170981 (s) for myid= 0
The calculation was finished normally in myid= 0.
I used the following CC with gcc 9.3.0, and Intel MPI and MKL. CC= /opt/intel/impi/2019.7.217/intel64/bin/mpicc Dkcomp Ofast ffastmath march=znver2 mfma fomitframepointer fopenmp I${MKLROOT}/include/fftw Note that "Dkcomp" doesn't affect building polB. You may solve it by adjusting compiler options.
Regards, Naoya Yamaguchi

Re: Polarization calculation ( No.6 ) 
 Date: 2020/10/06 18:18
 Name: Sergey
 Hi Naoya,
It seems I found what is the problem. For some reason on our platform (this is new IBM Power9, where only GNU/PGI compilers and OpenMPI/IBM Spectrum MPI under LSF is available) I don't know how to read from standard input ("<"). So, basically polB ignores "< pol.inp".
Is there a way to read input file for polB in the same way as for OpenMX (like "polB file.scfout inp pol.inp")?
thanks, sergey

Re: Polarization calculation ( No.7 ) 
 Date: 2020/10/06 21:09
 Name: Naoya Yamaguchi
 Dear Sergey,
Please try the following. https://gist.github.com/Ncmexp2717/c2f5da3404089abfdc477d7f82bd97bd
You can run the modified polB as follows. $ mpiexec n 64 polB TMCM.scfout 11 7 11 1 0 1
Regards, Naoya Yamaguchi

Re: Polarization calculation ( No.8 ) 
 Date: 2020/10/07 04:12
 Name: Sergey
 Thanks, Naoya
I have trouble analyzing the results though.
According results of planewave calculations (quantumespresso), polarization should be about (4,0,3) muC/cm^2.

Re: Polarization calculation ( No.9 ) 
 Date: 2020/10/07 14:18
 Name: Naoya Yamaguchi
 Dear Sergey,
Please calculate the difference of polarization from the reference that has P=(0, 0, 0). As you know it, in solids, the difference is meaningful, so please also calculate the reference structure and take the difference of polarization.
And, from the above result I showed, I also got Px = 4.57331998 muC/cm^2 and Pz = 3.20007758 muC/cm^2 by removing the unimportant part of polarization through adjustment of arbitrary part of Berry phases.
Regards, Naoya Yamaguchi

Re: Polarization calculation ( No.10 ) 
 Date: 2020/10/08 01:18
 Name: Sergey
 Thanks, Naoya,
Yes, I'm aware that only polarization difference is meaningful.
Can you show, how did you get those numbers? I calculated by hand a quantum of polarization (e*R/volume), but numbers don't match with yours.
Sergey

Re: Polarization calculation ( No.11 ) 
 Date: 2020/10/08 13:31
 Name: Naoya Yamaguchi
 Dear Sergey,
In units of muC/cm^2, the polarization is as follows. Background Core Electron Total Px 0.00000000 1959.68575398 9.70581112 1949.97994286 Py 0.00000000 3786.09521997 0.00017516 3786.09539513 Pz 0.00000000 1526.08278156 5.08174972 1531.16453128
And, I got vectors of quantums of polarization, in units of muC/cm^2, as follows. R1 R2 R3 eRix/V 15.42911253 0.00008333 0.97835742 eRiy/V 0.00017640 25.24098885 0.00057825 eRiz/V 0.03448369 0.00017196 10.42604382
And, the values of Px and Pz was slightly different from those in No. 9 after I modified the function in Excel to calculate it. (I used Excel but now the value was changed in using an older version of Excel than I had used for No. 9.) And, I got Px(modified)=3.25166558 muC/cm^2 and Pz(modified)=4.54832098 muC/cm^2.
And, I got them with the following relation. Px(modified)=Px(Total)+N1*eR1x/V+N2*eR2x/V+N3*eR3x/V Pz(modified)=Pz(Total)+N1*eR1z/V+N2*eR2z/V+N3*eR3z/V , where N1, N2, and N3 are arbitrary integers.
N2 was found to be 150 from Py(Total)/(eR2y/V)=3786.09539513/25.24098885. Then, N1 and N3 were found to be 136 and 147, respectively by hand. As such, I can get Px and Pz as follows. Px(modified)=1949.97994286+(136)*15.42911253+150*0.00008333+(147)*(0.97835742)=3.25166558 muC/cm^2 Pz(modified)=1531.16453128+(136)*(0.03448369)+150*0.00017196+(147)*10.42604382=4.54832098 muC/cm^2 I omitted Py because there is an error due to omitting the calculation along the baxis.
Regards, Naoya Yamaguchi
