<div dir="ltr">HI,<div><br></div><div>In a previous post https://groups.google.com/forum/#!topic/cp2k/qgxhP1oPRhU, Prof. Hutter suggested to use the berry phase formula to calculate the transition dipole moment (mu) in periodic </div><div><br></div><div>systems. So mu = IMAG LOG <phi_a | exp(i*k*r) |phi_b>, where phi_a and phi_b are the 3D grid data in MO_CUBE files. </div><div><br></div><div>Now I'm trying to test this for a water molecule in a cubic box with length of 10 Ang. I first calculated the MO_CUBE files for HOMO (phi_a) and LUMO (phi_b), then evaluated the dipole moment </div><div><br></div><div>integrals for < phi_a | r | phi_a >,   < phi_b | r | phi_b >, and < phi_a | r | phi_b > in the length form. The results are (<span style="color: rgb(0, 0, 0); font-family: Menlo; font-size: 11px;">9.44853,</span><span style="color: rgb(0, 0, 0); font-family: Menlo; font-size: 11px;">9.44853,</span><span style="color: rgb(0, 0, 0); font-family: Menlo; font-size: 11px;">9.50373</span>), (<span style="color: rgb(0, 0, 0); font-family: Menlo; font-size: 11px;">9.44198</span><span style="color: rgb(0, 0, 0); font-family: Menlo; font-size: 11px;">,</span><span style="color: rgb(0, 0, 0); font-family: Menlo; font-size: 11px;">9.43416</span><span style="color: rgb(0, 0, 0); font-family: Menlo; font-size: 11px;">,</span><span style="color: rgb(0, 0, 0); font-family: Menlo; font-size: 11px;">7.97643</span>), and </div><div><br></div><div>(<span style="color: rgb(0, 0, 0); font-family: Menlo; font-size: 11px;">0.37276,</span><span style="color: rgb(0, 0, 0); font-family: Menlo; font-size: 11px;">0.00003,</span><span style="color: rgb(0, 0, 0); font-family: Menlo; font-size: 11px;">-0.00006</span>), respectively. The three numbers in a.u. for each moment  are for x,y,z directions. Then, with the same CUBE files, I evaluated the dipole moment integrals using the </div><div><br></div><div>berry phase formula, the results are (<span style="color: rgb(0, 0, 0); font-family: Menlo; font-size: 11px;">9.44861</span><span style="color: rgb(0, 0, 0); font-family: Menlo; font-size: 11px;">,</span><span style="color: rgb(0, 0, 0); font-family: Menlo; font-size: 11px;">9.44861</span><span style="color: rgb(0, 0, 0); font-family: Menlo; font-size: 11px;">,</span><span style="color: rgb(0, 0, 0); font-family: Menlo; font-size: 11px;">9.50564</span>) (<span style="color: rgb(0, 0, 0); font-family: Menlo; font-size: 11px;">9.44906,</span><span style="color: rgb(0, 0, 0); font-family: Menlo; font-size: 11px;">9.44318,</span><span style="color: rgb(0, 0, 0); font-family: Menlo; font-size: 11px;">7.80957</span>), and (<span style="color: rgb(0, 0, 0); font-family: Menlo; font-size: 11px;">14.17324,</span><span style="color: rgb(0, 0, 0); font-family: Menlo; font-size: 11px;">15.90214,</span><span style="color: rgb(0, 0, 0); font-family: Menlo; font-size: 11px;">4.07160</span>). As can be seen, the two formula don't give same numbers, </div><div><br></div><div>especially for the transition dipole moment integral which I guess my implementation is completely wrong. So my question is how much of difference should the results from the two formula be? </div><div><br></div><div>Besides, I'll appreciate if anyone could help me point out my mistakes in my implementation.</div><div><br></div><div>My implementation is as follows:</div><div><br></div><div>n is the number of grid points of CUBE file in each direction. b is the step length. So the lattice constant L is n*b. r is the coordinate. phi_a and phi_b are the volumetric data which are changed to 1D arrays.</div><div><br></div><div>---------------------</div><div>ii = 0</div><div>DO i = 0, n-1</div><div>      DO j = 0, n-1</div><div>            DO k = 0, n-1</div><div>                  ii = ii+1</div><div>                  r(1) = i*b</div><div>                  r(2) = j*b</div><div>                  r(3) = k*b</div><div>                  r = r*2Pi/L </div><div>                  dd(ii,1) = CMPLX( COS( r(1) ), SIN( r(1) ) )</div><div>                  dd(ii,2) = CMPLX( COS( r(2) ), SIN( r(2) ) )</div><div>                  dd(ii,3) = CMPLX( COS( r(3) ), SIN( r(3) ) )</div><div>             ENDDO</div><div>       ENDDO</div><div>ENDDO</div><div><br></div><div>mu(1) = IMAG( LOG (SUM(phi_a*phi_b*dd(:,1))*b**3) )</div><div>mu(2) = IMAG( LOG (SUM(phi_a*phi_b*dd(:,2))*b**3) )<br></div><div>mu(3) = IMAG( LOG (SUM(phi_a*phi_b*dd(:,3))*b**3) )<br></div><div><br></div><div>mu = MODULO(mu, 2Pi)*L/2Pi</div><div><br></div><div>-----------------</div><div><br></div><div><br></div><div>Best,</div><div>Xiaoming</div></div>