From 16cbaefa64c3097d7a67258ec25d5d0fb8e49874 Mon Sep 17 00:00:00 2001 From: Mark Dean Date: Fri, 2 Aug 2024 13:18:12 -0400 Subject: [PATCH 1/9] update examples --- examples/sphinx/example_3_AIM_XAS.py | 17 ++-- examples/sphinx/example_5_charge_transfer.py | 98 +++++++++++++++++++ ...ransitions.py => example_7_transitions.py} | 0 ...ons.py => example_8_Hunds_interactions.py} | 0 ...mple_8_Coulomb.py => example_9_Coulomb.py} | 0 5 files changed, 108 insertions(+), 7 deletions(-) create mode 100644 examples/sphinx/example_5_charge_transfer.py rename examples/sphinx/{example_5_transitions.py => example_7_transitions.py} (100%) rename examples/sphinx/{example_7_Hunds_interactions.py => example_8_Hunds_interactions.py} (100%) rename examples/sphinx/{example_8_Coulomb.py => example_9_Coulomb.py} (100%) diff --git a/examples/sphinx/example_3_AIM_XAS.py b/examples/sphinx/example_3_AIM_XAS.py index 6a2b9240..37033b93 100644 --- a/examples/sphinx/example_3_AIM_XAS.py +++ b/examples/sphinx/example_3_AIM_XAS.py @@ -91,12 +91,15 @@ [F0_dd, F2_dd, F4_dd, F0_dp, F2_dp, G1_dp, G3_dp]) # with core hole ################################################################################ -# Charge-transfer energy scales +# Energy of the bath states # ------------------------------------------------------------------------------ -# The charge-transfer :math:`\Delta` and Coulomb :math:`U_{dd}` :math:`U_{dp}` -# parameters determine the centers of the different electronic configurations -# before they are split. Note that as electrons are moved one has to pay energy -# costs associated with both charge-transfer and Coulomb interactions. The +# In the notation used in EDRIXS, :math:`\Delta` sets the energy difference +# between the bath and impurity states. :math:`\Delta` is defined in the atomic +# limit without crystal field (i.e. in terms of the centers of the impurity and +# bath states before hybridization is considered) as the energy for a +# :math:`d^{n_d} \rightarrow d^{n_d + 1} \underline{L}` transition. +# Note that as electrons are moved one has to pay energy +# costs associated with the Coulomb interactions. The # energy splitting between the bath and impurity is consequently not simply # :math:`\Delta`. One must therefore determine the energies by solving # a set of linear equations. See the :ref:`edrixs.utils functions ` @@ -336,6 +339,6 @@ # .. [1] Maurits Haverkort et al # `Phys. Rev. B 85, 165113 (2012) `_. # .. [2] A. E. Bocquet et al., -# `Phys. Rev. B 53, 1161 (1996) `_ +# `Phys. Rev. B 53, 1161 (1996) `_. # .. [3] Arata Tanaka, and Takeo Jo, -# `J. Phys. Soc. Jpn. 63, 2788-2807(1994) `_ +# `J. Phys. Soc. Jpn. 63, 2788-2807(1994) `_. diff --git a/examples/sphinx/example_5_charge_transfer.py b/examples/sphinx/example_5_charge_transfer.py new file mode 100644 index 00000000..8a7a1558 --- /dev/null +++ b/examples/sphinx/example_5_charge_transfer.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python +""" +Charge-transfer energy for NiO +================================================================================ +This example follows the :ref:`sphx_glr_auto_examples_example_3_AIM_XAS.py` +example and considers the same model. This time we outline how to determine +the charge transfer energy in the sense defined by Zaanen, Sawatzky, and Allen +[1]_. That is, a :math:`d^{n_d} \\rightarrow d^{n_d + 1} \\underline{L}` transition +in the atomic limit, after considering crystal field. Although this can be +determined analytically, the easiest way is often just to calculate it, as we will +do here. +""" +import edrixs +import numpy as np +import matplotlib.pyplot as plt +import scipy +import example_3_AIM_XAS +import importlib +_ = importlib.reload(example_3_AIM_XAS) + +################################################################################ +# Determine eigenvectors and occupations +# ------------------------------------------------------------------------------ +# The first step repeats what was done in +# :ref:`sphx_glr_auto_examples_example_4_GS_analysis.py` but it does not apply +# the hybridization between the impurity and both states. + +from example_3_AIM_XAS import (F0_dd, F2_dd, F4_dd, + nd, norb_d, norb_bath, v_noccu, + imp_mat, CF, bath_level, + hyb, ext_B, trans_c2n) +ntot = 20 +umat_delectrons = edrixs.get_umat_slater('d', F0_dd, F2_dd, F4_dd) +umat = np.zeros((ntot, ntot, ntot, ntot), dtype=complex) +umat[:norb_d, :norb_d, :norb_d, :norb_d] += umat_delectrons +emat_rhb = np.zeros((ntot, ntot), dtype='complex') +emat_rhb[0:norb_d, 0:norb_d] += imp_mat +indx = np.arange(norb_d, norb_d*2) +emat_rhb[indx, indx] += bath_level[0] +tmat = np.eye(ntot, dtype=complex) +for i in range(2): + off = i * norb_d + tmat[off:off+norb_d, off:off+norb_d] = np.conj(np.transpose(trans_c2n)) + +emat_chb = edrixs.cb_op(emat_rhb, tmat) +v_orbl = 2 +sx = edrixs.get_sx(v_orbl) +sy = edrixs.get_sy(v_orbl) +sz = edrixs.get_sz(v_orbl) +zeeman = ext_B[0] * (2 * sx) + ext_B[1] * (2 * sy) + ext_B[2] * (2 * sz) +emat_chb[0:norb_d, 0:norb_d] += zeeman +basis = np.array(edrixs.get_fock_bin_by_N(ntot, v_noccu)) +H = (edrixs.build_opers(2, emat_chb, basis) + + edrixs.build_opers(4, umat, basis)) + +e, v = scipy.linalg.eigh(H) +e -= e[0] + +num_d_electrons = basis[:, :norb_d].sum(1) +alphas = np.sum(np.abs(v[num_d_electrons==8, :])**2, axis=0) +betas = np.sum(np.abs(v[num_d_electrons==9, :])**2, axis=0) + +################################################################################ +# Plot +# ------------------------------------------------------------------------------ +# Let's vizualize :math:`\alpha` and :math:`\beta`. + +fig, ax = plt.subplots() + +ax.plot(e, alphas, '.-', label=r'$\alpha$ $d^8L^{10}$') +ax.plot(e, betas, '.-', label=r'$\beta$ $d^9L^{9}$') + +ax.set_xlabel('Energy (eV)') +ax.set_ylabel('Population') +ax.set_title('NiO') +ax.legend() +plt.show() + +################################################################################ +# One can see that the mixing between impurity and bath states has disappered +# because we have turned off the hybridization. The charge transfer energy can +# now we straighforwardly computed + +GS_energy = min(e[np.isclose(alphas, 1)]) +lowest_energy_to_transfer_electron = min(e[np.isclose(alphas, 0)]) +Delta_ZSA = lowest_energy_to_transfer_electron - GS_energy +print(f"Charge transfer energy is {Delta_ZSA:.3f} eV") + +################################################################################ +# where we have used :code:`np.isclose` to avoid errors from finite numerical +# precision. + +############################################################################## +# +# .. rubric:: Footnotes +# +# .. [1] J. Zaanen, G. A. Sawatzky, and J. W. Allen, +# `Phys. Rev. Lett. 55, 418 (1985) `_. diff --git a/examples/sphinx/example_5_transitions.py b/examples/sphinx/example_7_transitions.py similarity index 100% rename from examples/sphinx/example_5_transitions.py rename to examples/sphinx/example_7_transitions.py diff --git a/examples/sphinx/example_7_Hunds_interactions.py b/examples/sphinx/example_8_Hunds_interactions.py similarity index 100% rename from examples/sphinx/example_7_Hunds_interactions.py rename to examples/sphinx/example_8_Hunds_interactions.py diff --git a/examples/sphinx/example_8_Coulomb.py b/examples/sphinx/example_9_Coulomb.py similarity index 100% rename from examples/sphinx/example_8_Coulomb.py rename to examples/sphinx/example_9_Coulomb.py From f36fda074e47c392227a7731697bd8be13412e83 Mon Sep 17 00:00:00 2001 From: Mark Date: Fri, 2 Aug 2024 15:18:12 -0400 Subject: [PATCH 2/9] Update examples/sphinx/example_5_charge_transfer.py Co-authored-by: thomas-jinu <98235678+thomas-jinu@users.noreply.github.com> --- examples/sphinx/example_5_charge_transfer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/sphinx/example_5_charge_transfer.py b/examples/sphinx/example_5_charge_transfer.py index 8a7a1558..ca4eaf31 100644 --- a/examples/sphinx/example_5_charge_transfer.py +++ b/examples/sphinx/example_5_charge_transfer.py @@ -82,7 +82,7 @@ # now we straighforwardly computed GS_energy = min(e[np.isclose(alphas, 1)]) -lowest_energy_to_transfer_electron = min(e[np.isclose(alphas, 0)]) +lowest_energy_to_transfer_electron = min(e[np.isclose(betas, 1)]) Delta_ZSA = lowest_energy_to_transfer_electron - GS_energy print(f"Charge transfer energy is {Delta_ZSA:.3f} eV") From ddd8be6edd1d244286f05c184d5e5194c563999b Mon Sep 17 00:00:00 2001 From: Mark Date: Fri, 2 Aug 2024 15:18:18 -0400 Subject: [PATCH 3/9] Update examples/sphinx/example_5_charge_transfer.py Co-authored-by: thomas-jinu <98235678+thomas-jinu@users.noreply.github.com> --- examples/sphinx/example_5_charge_transfer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/sphinx/example_5_charge_transfer.py b/examples/sphinx/example_5_charge_transfer.py index ca4eaf31..f744afa2 100644 --- a/examples/sphinx/example_5_charge_transfer.py +++ b/examples/sphinx/example_5_charge_transfer.py @@ -27,7 +27,7 @@ from example_3_AIM_XAS import (F0_dd, F2_dd, F4_dd, nd, norb_d, norb_bath, v_noccu, - imp_mat, CF, bath_level, + imp_mat, bath_level, hyb, ext_B, trans_c2n) ntot = 20 umat_delectrons = edrixs.get_umat_slater('d', F0_dd, F2_dd, F4_dd) From d95f0de175357766f736637f02da2087ec4c7788 Mon Sep 17 00:00:00 2001 From: Mark Dean Date: Sat, 10 Aug 2024 14:40:55 -0400 Subject: [PATCH 4/9] Add note about block diagonalization --- examples/sphinx/example_5_charge_transfer.py | 32 ++++++++++++++++++-- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/examples/sphinx/example_5_charge_transfer.py b/examples/sphinx/example_5_charge_transfer.py index f744afa2..6b7078b6 100644 --- a/examples/sphinx/example_5_charge_transfer.py +++ b/examples/sphinx/example_5_charge_transfer.py @@ -51,14 +51,14 @@ emat_chb[0:norb_d, 0:norb_d] += zeeman basis = np.array(edrixs.get_fock_bin_by_N(ntot, v_noccu)) H = (edrixs.build_opers(2, emat_chb, basis) - + edrixs.build_opers(4, umat, basis)) + + edrixs.build_opers(4, umat, basis)) e, v = scipy.linalg.eigh(H) e -= e[0] num_d_electrons = basis[:, :norb_d].sum(1) -alphas = np.sum(np.abs(v[num_d_electrons==8, :])**2, axis=0) -betas = np.sum(np.abs(v[num_d_electrons==9, :])**2, axis=0) +alphas = np.sum(np.abs(v[num_d_electrons == 8, :])**2, axis=0) +betas = np.sum(np.abs(v[num_d_electrons == 9, :])**2, axis=0) ################################################################################ # Plot @@ -90,6 +90,32 @@ # where we have used :code:`np.isclose` to avoid errors from finite numerical # precision. +################################################################################ +# Diagonalizing by blocks +# ------------------------------------------------------------------------------ +# When working on a problem with a large basis, one can take advantage of the +# lack of hybridization and separately diagonalize the impurity and bath +# states + +energies = [] + +for n_ligand_holes in [0, 1]: + basis_d = edrixs.get_fock_bin_by_N(10, nd + n_ligand_holes) + Hd = (edrixs.build_opers(2, emat_chb[:10, :10], basis_d) + + edrixs.build_opers(4, umat[:10, :10, :10, :10], basis_d)) + ed = scipy.linalg.eigh(Hd)[0][0] + + basis_L = edrixs.get_fock_bin_by_N(10, 10 - n_ligand_holes) + HL = (edrixs.build_opers(2, emat_chb[10:, 10:], basis_L) + + edrixs.build_opers(4, umat[10:, 10:, 10:, 10:], basis_L)) + eL = scipy.linalg.eigh(HL)[0][0] + energies.append(ed + eL) + +print(f"Charge transfer energy is {energies[1] - energies[0]:.3f} eV") + +################################################################################ +# which yields the same result. + ############################################################################## # # .. rubric:: Footnotes From 8c0bdf6f7347915578e439cd4bb39626f9961c33 Mon Sep 17 00:00:00 2001 From: Mark Dean Date: Tue, 13 Aug 2024 11:56:30 -0400 Subject: [PATCH 5/9] consider hopping --- docs/source/_static/energy_level.png | Bin 0 -> 15460 bytes examples/sphinx/example_5_charge_transfer.py | 33 ++++++++++++++----- 2 files changed, 24 insertions(+), 9 deletions(-) create mode 100644 docs/source/_static/energy_level.png diff --git a/docs/source/_static/energy_level.png b/docs/source/_static/energy_level.png new file mode 100644 index 0000000000000000000000000000000000000000..3d7d81ba8f9cd721027d1f8b583ddcdd223eafdb GIT binary patch literal 15460 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 Date: Tue, 13 Aug 2024 13:29:39 -0400 Subject: [PATCH 6/9] just get one eigenvalue --- examples/sphinx/example_5_charge_transfer.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/sphinx/example_5_charge_transfer.py b/examples/sphinx/example_5_charge_transfer.py index a7947a19..4f97dc51 100644 --- a/examples/sphinx/example_5_charge_transfer.py +++ b/examples/sphinx/example_5_charge_transfer.py @@ -102,12 +102,13 @@ basis_d = edrixs.get_fock_bin_by_N(10, nd + n_ligand_holes) Hd = (edrixs.build_opers(2, emat_chb[:10, :10], basis_d) + edrixs.build_opers(4, umat[:10, :10, :10, :10], basis_d)) - ed = scipy.linalg.eigh(Hd)[0][0] + ed = scipy.linalg.eigh(Hd, eigvals_only=True, subset_by_index=[0, 0])[0] basis_L = edrixs.get_fock_bin_by_N(10, 10 - n_ligand_holes) HL = (edrixs.build_opers(2, emat_chb[10:, 10:], basis_L) + edrixs.build_opers(4, umat[10:, 10:, 10:, 10:], basis_L)) - eL = scipy.linalg.eigh(HL)[0][0] + eL = scipy.linalg.eigh(HL, eigvals_only=True, subset_by_index=[0, 0])[0] + energies.append(ed + eL) print(f"Energy to lowest energy ligand state is {energies[1] - energies[0]:.3f} eV") From 1eaa2efffcd53efacc3f08784f1759acb7d10f51 Mon Sep 17 00:00:00 2001 From: Mark Dean Date: Tue, 13 Aug 2024 13:54:43 -0400 Subject: [PATCH 7/9] update diag --- docs/source/_static/energy_level.png | Bin 15460 -> 14301 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/source/_static/energy_level.png b/docs/source/_static/energy_level.png index 3d7d81ba8f9cd721027d1f8b583ddcdd223eafdb..9878f7d91ddad2c85716f6b62d7f18b90508eb95 100644 GIT binary patch literal 14301 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 Date: Wed, 14 Aug 2024 13:40:52 -0400 Subject: [PATCH 8/9] final typo --- examples/sphinx/example_5_charge_transfer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/sphinx/example_5_charge_transfer.py b/examples/sphinx/example_5_charge_transfer.py index 4f97dc51..78d98cc8 100644 --- a/examples/sphinx/example_5_charge_transfer.py +++ b/examples/sphinx/example_5_charge_transfer.py @@ -120,7 +120,7 @@ # Energy splitting in ligand states # ------------------------------------------------------------------------------ # The last thing to consider is that our definition of the charge transfer -# energy refers to the atomic limit with all hopping terms switch off, whereas +# energy refers to the atomic limit with all hopping terms switched off, whereas # the ligand states in the model are already split by the oxygen-oxygen hopping # term :math:`T_{pp}` as illustrated below. So the final charge transer energy # needs to account for this. From 47ded2b493f783444cb20243f026777ba4c6837a Mon Sep 17 00:00:00 2001 From: Mark Dean Date: Wed, 14 Aug 2024 13:44:53 -0400 Subject: [PATCH 9/9] final typo --- examples/sphinx/example_5_charge_transfer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/sphinx/example_5_charge_transfer.py b/examples/sphinx/example_5_charge_transfer.py index 78d98cc8..ca259206 100644 --- a/examples/sphinx/example_5_charge_transfer.py +++ b/examples/sphinx/example_5_charge_transfer.py @@ -6,7 +6,7 @@ example and considers the same model. This time we outline how to determine the charge transfer energy in the sense defined by Zaanen, Sawatzky, and Allen [1]_. That is, a :math:`d^{n_d} \\rightarrow d^{n_d + 1} \\underline{L}` transition -in the atomic limit, after considering Coulomb interactins and crystal field. Although +in the atomic limit, after considering Coulomb interactions and crystal field. Although this can be determined analytically in some cases, the easiest way is often just to calculate it, as we will do here. """