====== PotentialExpandedOnClm ======
###
Given the onsite energies of the orbitals of all possible irreducible representations a potential expanded on renormalised Spherical Harmonics is created.
###
###
Within crystal field or ligand field theory it is common practice to expand a potential on Spherical Harmonics. A potential expanded as such can be used to create a crystal field operator with the function NewOperator("C", ...). For more information see the documentation of the crystal field [[documentation:standard_operators:crystal_field|operator]].
###
===== Input =====
* PointGroup : String
* l : Integer
* Energy : Table of Doubles.
===== Output =====
* Akm : Table containing "$\{\{k_1,m_1,A_{k_1,m_1}\},\{k_2,m_2,A_{k_2,m_2}\},...\}$" defining the angular part of the potential such that $\big\langle \varphi_{\tau_1}(\vec{r}) \big| V(\vec{r}) \big| \varphi_{\tau_2}(\vec{r}) \big\rangle = \sum_{k=0}^{\infty}\sum_{m=-k}^{k} A_{k,m} \big\langle Y_{l_1,m_1} \big| C_{k,m} \big| Y_{l_2,m_2} \big\rangle$, with $\varphi_{\tau_1}(\vec{r})=R_{n_1,l_1}(r) Y_{l_1,m_1}(\theta\phi)$
===== Example =====
###
The following example creates a potential expanded on renormalised spherical Harmonics for different point-groups and prints the expansion as well as the Hamiltonian for an p, d and f shell that arises from this potential. The energies of the orbitals of a given irreducible representation are set to arbitrary values.
###
###
The example firstly defines three functions (for the p, d and f shell), that given a potential expanded on spherical harmonics print this potential, create an Hamiltonian on the basis of Spherical Harmonics and creates the Hamiltonian on a basis of Kubic Harmonics. The crystal field Hamiltonians are printed as a matrix, the basis functions used for this matrix are printed above the matrix.
###
==== Input ====
function printAkms(Akm)
local Opp = Chop(NewOperator("CF",1,{0},Akm))
print("\nAkm = ")
print(Akm)
print("\n Operator on basis of spherical Harmonics or Kubic Harmonics (same for s orbital as a matrix")
print("s")
print(Chop(OperatorToMatrix(Opp)))
end
function printAkmp(Akm)
local t=sqrt(1/2)
local u=I*sqrt(1/2)
local rotmatKp = {{ t, 0,-t },
{ u, 0, u },
{ 0, 1, 0 }}
local Opp = Chop(NewOperator("CF",3,{0,1,2},Akm))
print("\nAkm = ")
print(Akm)
print("\n Operator on basis of spherical Harmonics as a matrix")
print("p_{-1},p_{0},p_{1}")
print(Chop(OperatorToMatrix(Opp)))
print("\n Operator on basis of Kubic Harmonics as a matrix")
print("p_x, p_y, p_z")
print(Chop(OperatorToMatrix(Rotate(Opp,rotmatKp))))
end
function printAkmd(Akm)
local t=sqrt(1/2)
local u=I*sqrt(1/2)
local rotmatKd = {{ t, 0, 0, 0, t },
{ 0, 0, 1, 0, 0 },
{ 0, u, 0, u, 0 },
{ 0, t, 0,-t, 0 },
{ u, 0, 0, 0,-u }}
local Opp = Chop(NewOperator("CF",5,{0,1,2,3,4},Akm))
print("\nAkm = ")
print(Akm)
print("\n Operator on basis of spherical Harmonics as a matrix")
print("d_{-2},d_{-1},d_{0},d_{1},d_{2}")
print(Chop(OperatorToMatrix(Opp)))
print("\n Operator on basis of Kubic Harmonics as a matrix")
print("d_{x^2-y^2},d_{z^2},d_{yz},d_{xz},d_{xy}")
print(Chop(OperatorToMatrix(Rotate(Opp,rotmatKd))))
end
function printAkmf(Akm)
local t=sqrt(1/2)
local u=I*sqrt(1/2)
local d=sqrt(3/16)
local q=sqrt(5/16)
local e=I*sqrt(3/16)
local r=I*sqrt(5/16)
local rotmatKf = {{ 0, u, 0, 0, 0,-u, 0 },
{ q, 0,-d, 0, d, 0,-q },
{-r, 0,-e, 0,-e, 0,-r },
{ 0, 0, 0, 1, 0, 0, 0 },
{-d, 0,-q, 0, q, 0, d },
{-e, 0, r, 0, r, 0,-e },
{ 0, t, 0, 0, 0, t, 0 }}
local Opp = Chop(NewOperator("CF",7,{0,1,2,3,4,5,6},Akm))
print("\nAkm = ")
print(Akm)
print("\n Operator on basis of spherical Harmonics as a matrix")
print("f_{-3},f_{-2},f_{-1},f_{0},f_{1},f_{2},f_{3}")
print(Chop(OperatorToMatrix(Opp)))
print("\n Operator on basis of Kubic Harmonics as a matrix")
print("f_{xyz},f_{5x^3-3x},f_{5y^3-3y},f_{5z^3-3z},f_{x(y^2-z^2)},f_{y(z^2-x^2)},f_{z(x^2-y^2)}")
print(Chop(OperatorToMatrix(Rotate(Opp,rotmatKf))))
end
print("\nl=1 Oh")
Et1u=1
Akm = PotentialExpandedOnClm("Oh",1,{Et1u})
printAkmp(Akm)
print("\nl=2 Oh")
Eeg=1
Et2g=2
Akm = PotentialExpandedOnClm("Oh",2,{Eeg,Et2g})
printAkmd(Akm)
print("\nl=3 Oh")
Ea2u=1
Et1u=2
Et2u=3
Akm = PotentialExpandedOnClm("Oh",3,{Ea2u,Et1u,Et2u})
printAkmf(Akm)
==== Result ====
l=1 Oh
Akm =
{ { 0 , 0 , 1 } }
Operator on basis of spherical Harmonics as a matrix
p_{-1},p_{0},p_{1}
{ { 1 , 0 , 0 } ,
{ 0 , 1 , 0 } ,
{ 0 , 0 , 1 } }
Operator on basis of Kubic Harmonics as a matrix
p_x, p_y, p_z
{ { 1 , 0 , 0 } ,
{ 0 , 1 , 0 } ,
{ 0 , 0 , 1 } }
l=2 Oh
Akm =
{ { 0 , 0 , 1.6 } ,
{ 4 , 0 , -2.1 } ,
{ 4 , -4 , -1.2549900398011 } ,
{ 4 , 4 , -1.2549900398011 } }
Operator on basis of spherical Harmonics as a matrix
d_{-2},d_{-1},d_{0},d_{1},d_{2}
{ { 1.5 , 0 , 0 , 0 , -0.5 } ,
{ 0 , 2 , 0 , 0 , 0 } ,
{ 0 , 0 , 1 , 0 , 0 } ,
{ 0 , 0 , 0 , 2 , 0 } ,
{ -0.5 , 0 , 0 , 0 , 1.5 } }
Operator on basis of Kubic Harmonics as a matrix
d_{x^2-y^2},d_{z^2},d_{yz},d_{xz},d_{xy}
{ { 1 , 0 , 0 , 0 , 0 } ,
{ 0 , 1 , 0 , 0 , 0 } ,
{ 0 , 0 , 2 , 0 , 0 } ,
{ 0 , 0 , 0 , 2 , 0 } ,
{ 0 , 0 , 0 , 0 , 2 } }
l=3 Oh
Akm =
{ { 0 , 0 , 2.2857142857143 } ,
{ 4 , 0 , 0.75 } ,
{ 4 , -4 , 0.4482107285004 } ,
{ 4 , 4 , 0.4482107285004 } ,
{ 6 , 0 , -1.8107142857143 } ,
{ 6 , -4 , 3.38753624124 } ,
{ 6 , 4 , 3.38753624124 } }
Operator on basis of spherical Harmonics as a matrix
f_{-3},f_{-2},f_{-1},f_{0},f_{1},f_{2},f_{3}
{ { 2.375 , 0 , 0 , 0 , -0.48412291827593 , 0 , 0 } ,
{ 0 , 2 , 0 , 0 , 0 , 1 , 0 } ,
{ 0 , 0 , 2.625 , 0 , 0 , 0 , -0.48412291827593 } ,
{ 0 , 0 , 0 , 2 , 0 , 0 , 0 } ,
{ -0.48412291827593 , 0 , 0 , 0 , 2.625 , 0 , 0 } ,
{ 0 , 1 , 0 , 0 , 0 , 2 , 0 } ,
{ 0 , 0 , -0.48412291827593 , 0 , 0 , 0 , 2.375 } }
Operator on basis of Kubic Harmonics as a matrix
f_{xyz},f_{5x^3-3x},f_{5y^3-3y},f_{5z^3-3z},f_{x(y^2-z^2)},f_{y(z^2-x^2)},f_{z(x^2-y^2)}
{ { 1 , 0 , 0 , 0 , 0 , 0 , 0 } ,
{ 0 , 2 , 0 , 0 , 0 , 0 , 0 } ,
{ 0 , 0 , 2 , 0 , 0 , 0 , 0 } ,
{ 0 , 0 , 0 , 2 , 0 , 0 , 0 } ,
{ 0 , 0 , 0 , 0 , 3 , 0 , 0 } ,
{ 0 , 0 , 0 , 0 , 0 , 3 , 0 } ,
{ 0 , 0 , 0 , 0 , 0 , 0 , 3 } }
===== Table of contents =====
{{indexmenu>.#1}}