Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spin-orbit interaction assumes Hydrogenic potential #14

Closed
gerardhiggins opened this issue Nov 30, 2017 · 2 comments
Closed

Spin-orbit interaction assumes Hydrogenic potential #14

gerardhiggins opened this issue Nov 30, 2017 · 2 comments

Comments

@gerardhiggins
Copy link

gerardhiggins commented Nov 30, 2017

In the code nvwcpp.c and on the primer on the website, the spin-orbit interaction

V_{so}(r)= \frac{\alpha \vec{L} \cdot \vec{S}}{2r^3}

It should be

V_{so}(r)= \frac{\alpha^2 \vec{L} \cdot \vec{S}}{2r^3} \frac{dV}{dr}

In a Hydrogenic potential

\frac{dV}{dr} =  \frac{e^2}{4\pi \epsilon_0 r^2} =  \frac{1}{\alpha}

Which matches the formula in the code (I think the minus signs are all fine).

Anyway why not use the screened potential when calculating the spin-orbit interaction?
Then one would change nvwcpp.c to

inline double Potenital(double r, double step){
	// l<4
	double V1 = CorePotential(r);
	double V2 = CorePotential(r+step);
	double dVdr = (V2-V1)/step;
	double Vso = pow(alpha,2)*commonTerm1*dVdr/(2*r);
	return V1 + Vso;
}

or if one wants to have a spin-orbit interaction which is well-behaved as r->0 an extra term can be included as is done in eq 3.31 of Aymar et al Rev. Mod. Phys. 68, 1015 (1996)

inline double Potenital(double r, double step){
	// l<4
	double V1 = CorePotential(r);
	double V2 = CorePotential(r+step);
	double dVdr = (V2-V1)/step;
	double Vso = pow(alpha,2)*commonTerm1*dVdr/(2.0*r*pow((1.0-pow(alpha,2)*V1/2.0),2));
	return V1 + Vso;
}
@nikolasibalic
Copy link
Owner

nikolasibalic commented May 9, 2018

One would have to test if the simplest numerical approximation of dVdr = (V2-V1)/step is not introducing more errors than current implementation. The current implementation is done in this way since spin-orbit interaction can have (relatively) significant effect only for high l states anyway, and this states are essentially a Hydrogen states (quantum defects go to 0).

@gerardhiggins Do you any specific example showing that this is introducing observable inaccuracy in calculation?

@nikolasibalic
Copy link
Owner

I am closing this issue due to inactivity. In my tests I couldn't see need for change (due to above explained reasoning), but please reopen this issue if you have example where this causes some known inaccuracies.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants