This thread is locked.Only browsing is available.
Top Page > Browsing
The conventions for real spherical harmonics in OpenMX
Date: 2011/10/06 12:06
Name: H.

Dear Prof. T. Ozaki.

The real spherical harmonics for l=1 are defined in Eqs. (157)-(159) in the technical note (http://www.openmx-square.org/tech_notes/tech2-1_0.pdf).

Among these, the case for m=0 [Eq. (159), Y_{pz}=-Y_1^0] is defined with the "-" sign, which is different from the definition that I know [See (Cf.) below].

I would like to know the definition for real spherical harmonics used in OpenMX for l=1 and 2 cases.
[Though I check the subroutine, Set_Comp2Real() in SetPara_DFT.c, I still don't know the conventions for real spherical harmonics]

I think the definition for even m (m=0, 2, 4, etc.) is different from the usual convention in that the "-1" is multiplied. Is it right?

Regards.

(Cf.)
The definitions for real spherical harmonics, \bar{Y}_l^m, which I know are as follows:

For positive m,

\bar{Y}_l^m=\frac{1}{\sqrt{2}} [ Y_l^m+(-1)^m*Y_l^{-m} ]
\bar{Y}_l^{-m}=\frac{1}{i\sqrt{2}} [ Y_l^m-(-1)^m*Y_l^{-m} ]

For m=0,
\bar{Y}_l^0=Y_l^0
メンテ
Page: [1]

Re: The conventions for real spherical harmonics in OpenMX ( No.1 )
Date: 2011/10/12 18:08
Name: T.Ozaki

Hi,

Sorry for causing your confusion about the convention of
real spherical harmonics.

In the actual implementation, the convention follows
the definition in Set_Comp2Real() as:

/* p */

Comp2Real[1][0][0] = Complex( 1.0/sqrt(2.0), 0.0);
Comp2Real[1][0][1] = Complex( 0.0, 0.0);
Comp2Real[1][0][2] = Complex(-1.0/sqrt(2.0), 0.0);

Comp2Real[1][1][0] = Complex( 0.0, 1.0/sqrt(2.0));
Comp2Real[1][1][1] = Complex( 0.0, 0.0);
Comp2Real[1][1][2] = Complex( 0.0, 1.0/sqrt(2.0));

Comp2Real[1][2][0] = Complex( 0.0, 0.0);
Comp2Real[1][2][1] = Complex( 1.0, 0.0);
Comp2Real[1][2][2] = Complex( 0.0, 0.0);

/* d */

Comp2Real[2][0][0] = Complex( 0.0, 0.0);
Comp2Real[2][0][1] = Complex( 0.0, 0.0);
Comp2Real[2][0][2] = Complex( 1.0, 0.0);
Comp2Real[2][0][3] = Complex( 0.0, 0.0);
Comp2Real[2][0][4] = Complex( 0.0, 0.0);

Comp2Real[2][1][0] = Complex( 1.0/sqrt(2.0), 0.0);
Comp2Real[2][1][1] = Complex( 0.0, 0.0);
Comp2Real[2][1][2] = Complex( 0.0, 0.0);
Comp2Real[2][1][3] = Complex( 0.0, 0.0);
Comp2Real[2][1][4] = Complex( 1.0/sqrt(2.0), 0.0);

Comp2Real[2][2][0] = Complex( 0.0, 1.0/sqrt(2.0));
Comp2Real[2][2][1] = Complex( 0.0, 0.0);
Comp2Real[2][2][2] = Complex( 0.0, 0.0);
Comp2Real[2][2][3] = Complex( 0.0, 0.0);
Comp2Real[2][2][4] = Complex( 0.0,-1.0/sqrt(2.0));

Comp2Real[2][3][0] = Complex( 0.0, 0.0);
Comp2Real[2][3][1] = Complex( 1.0/sqrt(2.0), 0.0);
Comp2Real[2][3][2] = Complex( 0.0, 0.0);
Comp2Real[2][3][3] = Complex(-1.0/sqrt(2.0), 0.0);
Comp2Real[2][3][4] = Complex( 0.0, 0.0);

So, the definition in Eq. (159) in the note is not consistent
with that in the code.

Regards,

TO
メンテ
Re: The conventions for real spherical harmonics in OpenMX ( No.2 )
Date: 2011/10/13 16:18
Name: H.

Dear Prof. T. Ozaki.

Given the conventions in Set_Comp2Real(),

is Eq. (158), i.e.,
Y_{py}=\frac{1}{i\sqrt{2}}(Y_1^{-1}+Y_1^1}
right?

The convention below in Set_Comp2Real() differs from Eq. (158) in the overall "-" sign.

...
Comp2Real[1][1][0] = Complex( 0.0, 1.0/sqrt(2.0));
Comp2Real[1][1][1] = Complex( 0.0, 0.0);
Comp2Real[1][1][2] = Complex( 0.0, 1.0/sqrt(2.0));
...


Also, is the imaginary part of Eq. (76) (spin up-spin down component) right?

I think that Eq. (76) in the technical note (http://www.openmx-square.org/tech_notes/tech2-1_0.pdf) is obtained with the conventions, Eq. (157)-(159), not those in Set_Comp2Real().

Thanks for your kindly reply.

Regards.
メンテ
Re: The conventions for real spherical harmonics in OpenMX ( No.3 )
Date: 2011/11/11 21:55
Name: T.Ozaki

Hi,

In Set_Comp2Real(), the unitary matrices for p-states are defined by

Comp2Real[1][0][0] = Complex( 1.0/sqrt(2.0), 0.0);
Comp2Real[1][0][1] = Complex( 0.0, 0.0);
Comp2Real[1][0][2] = Complex(-1.0/sqrt(2.0), 0.0);

Comp2Real[1][1][0] = Complex( 0.0, 1.0/sqrt(2.0));
Comp2Real[1][1][1] = Complex( 0.0, 0.0);
Comp2Real[1][1][2] = Complex( 0.0, 1.0/sqrt(2.0));

Comp2Real[1][2][0] = Complex( 0.0, 0.0);
Comp2Real[1][2][1] = Complex( 1.0, 0.0);
Comp2Real[1][2][2] = Complex( 0.0, 0.0);

They are all opposite compared to Eqs.(157)-(159) in the notes in terms of sign.
Then, the difference regarding sign does not matter when the matrices F and G
are calculated, since they are cancelled out.

Regards

TO
メンテ

Page: [1]