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 operator.
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.
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)
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 } }