madman.analysis.ejdos
Electron joint density of states.
1r"""Electron joint density of states.""" 2 3from collections.abc import Sequence 4from functools import reduce 5from numbers import Real 6from typing import Type 7 8import numpy as np 9from matplotlib import pyplot as plt 10 11import madman.analysis.absorbance 12from madman.analysis.absorbance import ( 13 SpectralAbsorbance, 14 ResolvedSpectralAbsorbance, 15) 16from madman.analysis.spectrum import ( 17 EnergySpectrumMeta, 18 EnergySpectrum, 19 ResolvedEnergySpectrumMeta, 20 PairResolvedEnergySpectrum, 21 BandPairResolvedEnergySpectrum, 22 CellPairResolvedEnergySpectrum, 23) 24 25 26class ElectronJointDensityOfStatesMeta(EnergySpectrumMeta): 27 r"""Metaclass of ElectronJoinDensityOfStates.""" 28 29 @property 30 def std_axes(cls) -> plt.Axes: 31 r"""Standard axes to plot electron joint density of states. 32 33 Returns: 34 Plot axes. 35 """ 36 _, ax = plt.subplots(tight_layout=True) 37 ax.set_xlabel(r"Photon energy / $\mathrm{eV}$") 38 ax.set_ylabel(r"Electron JDOS / $\mathrm{eV^{-1}}$") 39 return ax 40 41 42class ElectronJointDensityOfStates( 43 EnergySpectrum, metaclass=ElectronJointDensityOfStatesMeta 44): 45 r"""Electron joint density of states. 46 47 Note: 48 `energies`: Photon energies [$\mathrm{eV}$]. 49 `values`: Electron joint density of states values [$\mathrm{eV^{-1}}$]. 50 """ 51 52 def __init__( 53 self, 54 energies: Sequence[Real, ...], 55 values: Sequence[Real, ...], 56 *, 57 d_energy: Real | None = None, 58 ) -> None: 59 r"""Initialize ElectronJointDensityOfStates object. 60 61 Args: 62 energies: Photon energies [$\mathrm{eV}$]. 63 values: Electron joint density of states values 64 [$\mathrm{eV^{-1}}$]. 65 d_energy: Target photon energy increment [$\mathrm{eV}$]. 66 67 Raises: 68 ValueError: If there are negative values. 69 """ 70 if np.less(values, 0.0).any(): 71 raise ValueError("Negative values!") 72 super().__init__(energies, values, d_energy=d_energy) 73 74 def calc_sp_absorb( 75 self, *, ejdos_rth: Real = 1.0, energy_co: Real | None = None 76 ) -> SpectralAbsorbance: 77 r"""Calculate spectral absorbance. 78 79 Note: 80 By assuming that: 81 82 1. the optical transition matrix element is constant; 83 2. there are enough phonons to enable indirect optical transitions; 84 85 the optical absorption coefficient $\alpha$ may be approximated as: 86 87 $$ 88 \alpha(\hbar \, \omega) \propto J(\hbar \, \omega) 89 $$ 90 91 where $J$ is the electron joint density of states and 92 $\hbar \, \omega$ is the photon energy (see 93 [O'Leary et al. (1997)](https://doi.org/10.1063/1.365643) 94 for details). 95 96 By additionally assuming: 97 98 1. negligible reflectance $R$; 99 2. sample thickness $l$ much larger than coherence length; 100 101 the spectral absorbance $A$ may be approximated according to 102 Beer-Lambert's law as: 103 104 $$ 105 A(\hbar \, \omega) = 1 - R(\hbar \, \omega) - T(\hbar \, \omega) = 1 - \exp {\alpha(\hbar \, \omega) \, l} 106 $$ 107 108 (see 109 [Fox (2010)](https://global.oup.com/academic/product/optical-properties-of-solids-9780199573370?q=978-0-19-957337-0&cc=it&lang=en)). 110 111 Then, the optical absorption coefficient is known at less than a 112 multiplicative factor, which can be incorporated into $l$, and it 113 makes sense to write: 114 115 $$ 116 \alpha(\hbar \, \omega) \, l = \frac{3 \, J(\hbar \, \omega)}{\bar{J}_\text{th} \, \max{J(\hbar \, \omega)}} 117 $$ 118 119 where $\bar{J}_\text{th}$ is the electron joint density of states 120 threshold relative to the electron joint density of states maximum 121 above which 95% of radiation is absorbed. 122 123 Args: 124 ejdos_rth: Electron joint density of states threshold relative to 125 the electron joint density of states maximum above which 95% of 126 radiation is absorbed. 127 energy_co: Photon energy cutoff above which absorbance is neglected. 128 """ 129 if energy_co is None: 130 mask = self.energies >= 0.0 131 else: 132 mask = np.logical_and( 133 self.energies >= 0.0, self.energies <= energy_co 134 ) 135 ejdos_max = np.amax(self.values) 136 norm_values = 3 * self.values / (ejdos_rth * ejdos_max) 137 sp_absorb_values = 1.0 - np.exp(-norm_values) 138 return SpectralAbsorbance(self.energies[mask], sp_absorb_values[mask]) 139 140 141class ResolvedElectronJointDensityOfStatesMeta(ResolvedEnergySpectrumMeta): 142 r"""Metaclass of ResolvedElectronJointDensityOfStates.""" 143 144 @property 145 def rsv_sp_absorb(cls) -> Type: 146 r"""Associated resolved spectral absorbance class.""" 147 module = madman.analysis.absorbance 148 name = cls.__name__.replace( 149 "ElectronJointDensityOfStates", "SpectralAbsorbance" 150 ) 151 return getattr(module, name) 152 153 154class ResolvedElectronJointDensityOfStates( 155 PairResolvedEnergySpectrum, 156 metaclass=ResolvedElectronJointDensityOfStatesMeta, 157): 158 r"""Resolved electron joint density of states. 159 160 Note: 161 `energies`: Photon energies [$\mathrm{eV}$]. 162 `rsv_values`: Resolved electron joint density of states values 163 [$\mathrm{eV^{-1}}$]. 164 """ 165 166 def calc_rsv_sp_absorb( 167 self, *, ejdos_rth: Real = 1.0, energy_co: Real | None = None 168 ) -> ResolvedSpectralAbsorbance: 169 r"""Calculate resolved spectral absorbance. 170 171 Note: 172 See 173 `madman.analysis.ejdos.ElectronJointDensityOfStates.ret_sp_absorb` 174 for details. 175 176 Args: 177 ejdos_rth: Electron joint density of states threshold relative to 178 the electron joint density of states maximum above which 95% of 179 radiation is absorbed. 180 energy_co: Photon energy cutoff above which absorbance is neglected. 181 182 Returns: 183 Resolved spectral absorbance. 184 """ 185 if energy_co is None: 186 mask = self.energies >= 0.0 187 else: 188 mask = np.logical_and( 189 self.energies >= 0.0, self.energies <= energy_co 190 ) 191 energies = self.energies[mask] 192 193 ejdos_tot = self.total 194 ejdos_tot_values = ejdos_tot.values[mask] 195 196 sp_absorb_tot = ejdos_tot.calc_sp_absorb( 197 ejdos_rth=ejdos_rth, energy_co=energy_co 198 ) 199 sp_absorb_tot_values = sp_absorb_tot.values 200 201 rsv_sp_absorb_values = {} 202 for feat, values in self.rsv_values.items(): 203 values = values[mask] 204 rsv_sp_absorb_values[feat] = np.zeros_like(values, dtype=float) 205 for i, value in enumerate(values): 206 if ejdos_tot_values[i] != 0.0: 207 rsv_sp_absorb_values[feat][i] = ( 208 value / ejdos_tot_values[i] * sp_absorb_tot_values[i] 209 ) 210 return type(self).rsv_sp_absorb(energies, rsv_sp_absorb_values) 211 212 213class BandResolvedElectronJointDensityOfStates( 214 BandPairResolvedEnergySpectrum, ResolvedElectronJointDensityOfStates 215): 216 r"""Band resolved electron joint density of states. 217 218 Note: 219 `energies`: Photon energies [$\mathrm{eV}$]. 220 `rsv_values`: Band resolved electron joint density of states values 221 [$\mathrm{eV^{-1}}$]. 222 223 Note: 224 See `madman.analysis.spectrum.BandResolvedEnergySpectrum` for details. 225 """ 226 227 228class CellResolvedElectronJointDensityOfStates( 229 CellPairResolvedEnergySpectrum, ResolvedElectronJointDensityOfStates 230): 231 r"""Cell resolved electron joint density of states. 232 233 Note: 234 `energies`: Photon energies [$\mathrm{eV}$]. 235 `rsv_values`: Cell resolved electron joint density of states values 236 [$\mathrm{eV^{-1}}$]. 237 238 Note: 239 See `madman.analysis.spectrum.CellResolvedEnergySpectrum` for details. 240 """
27class ElectronJointDensityOfStatesMeta(EnergySpectrumMeta): 28 r"""Metaclass of ElectronJoinDensityOfStates.""" 29 30 @property 31 def std_axes(cls) -> plt.Axes: 32 r"""Standard axes to plot electron joint density of states. 33 34 Returns: 35 Plot axes. 36 """ 37 _, ax = plt.subplots(tight_layout=True) 38 ax.set_xlabel(r"Photon energy / $\mathrm{eV}$") 39 ax.set_ylabel(r"Electron JDOS / $\mathrm{eV^{-1}}$") 40 return ax
Metaclass of ElectronJoinDensityOfStates.
30 @property 31 def std_axes(cls) -> plt.Axes: 32 r"""Standard axes to plot electron joint density of states. 33 34 Returns: 35 Plot axes. 36 """ 37 _, ax = plt.subplots(tight_layout=True) 38 ax.set_xlabel(r"Photon energy / $\mathrm{eV}$") 39 ax.set_ylabel(r"Electron JDOS / $\mathrm{eV^{-1}}$") 40 return ax
Standard axes to plot electron joint density of states.
Returns:
Plot axes.
Inherited Members
- builtins.type
- type
- mro
43class ElectronJointDensityOfStates( 44 EnergySpectrum, metaclass=ElectronJointDensityOfStatesMeta 45): 46 r"""Electron joint density of states. 47 48 Note: 49 `energies`: Photon energies [$\mathrm{eV}$]. 50 `values`: Electron joint density of states values [$\mathrm{eV^{-1}}$]. 51 """ 52 53 def __init__( 54 self, 55 energies: Sequence[Real, ...], 56 values: Sequence[Real, ...], 57 *, 58 d_energy: Real | None = None, 59 ) -> None: 60 r"""Initialize ElectronJointDensityOfStates object. 61 62 Args: 63 energies: Photon energies [$\mathrm{eV}$]. 64 values: Electron joint density of states values 65 [$\mathrm{eV^{-1}}$]. 66 d_energy: Target photon energy increment [$\mathrm{eV}$]. 67 68 Raises: 69 ValueError: If there are negative values. 70 """ 71 if np.less(values, 0.0).any(): 72 raise ValueError("Negative values!") 73 super().__init__(energies, values, d_energy=d_energy) 74 75 def calc_sp_absorb( 76 self, *, ejdos_rth: Real = 1.0, energy_co: Real | None = None 77 ) -> SpectralAbsorbance: 78 r"""Calculate spectral absorbance. 79 80 Note: 81 By assuming that: 82 83 1. the optical transition matrix element is constant; 84 2. there are enough phonons to enable indirect optical transitions; 85 86 the optical absorption coefficient $\alpha$ may be approximated as: 87 88 $$ 89 \alpha(\hbar \, \omega) \propto J(\hbar \, \omega) 90 $$ 91 92 where $J$ is the electron joint density of states and 93 $\hbar \, \omega$ is the photon energy (see 94 [O'Leary et al. (1997)](https://doi.org/10.1063/1.365643) 95 for details). 96 97 By additionally assuming: 98 99 1. negligible reflectance $R$; 100 2. sample thickness $l$ much larger than coherence length; 101 102 the spectral absorbance $A$ may be approximated according to 103 Beer-Lambert's law as: 104 105 $$ 106 A(\hbar \, \omega) = 1 - R(\hbar \, \omega) - T(\hbar \, \omega) = 1 - \exp {\alpha(\hbar \, \omega) \, l} 107 $$ 108 109 (see 110 [Fox (2010)](https://global.oup.com/academic/product/optical-properties-of-solids-9780199573370?q=978-0-19-957337-0&cc=it&lang=en)). 111 112 Then, the optical absorption coefficient is known at less than a 113 multiplicative factor, which can be incorporated into $l$, and it 114 makes sense to write: 115 116 $$ 117 \alpha(\hbar \, \omega) \, l = \frac{3 \, J(\hbar \, \omega)}{\bar{J}_\text{th} \, \max{J(\hbar \, \omega)}} 118 $$ 119 120 where $\bar{J}_\text{th}$ is the electron joint density of states 121 threshold relative to the electron joint density of states maximum 122 above which 95% of radiation is absorbed. 123 124 Args: 125 ejdos_rth: Electron joint density of states threshold relative to 126 the electron joint density of states maximum above which 95% of 127 radiation is absorbed. 128 energy_co: Photon energy cutoff above which absorbance is neglected. 129 """ 130 if energy_co is None: 131 mask = self.energies >= 0.0 132 else: 133 mask = np.logical_and( 134 self.energies >= 0.0, self.energies <= energy_co 135 ) 136 ejdos_max = np.amax(self.values) 137 norm_values = 3 * self.values / (ejdos_rth * ejdos_max) 138 sp_absorb_values = 1.0 - np.exp(-norm_values) 139 return SpectralAbsorbance(self.energies[mask], sp_absorb_values[mask])
Electron joint density of states.
Note:
energies: Photon energies [$\mathrm{eV}$].values: Electron joint density of states values [$\mathrm{eV^{-1}}$].
53 def __init__( 54 self, 55 energies: Sequence[Real, ...], 56 values: Sequence[Real, ...], 57 *, 58 d_energy: Real | None = None, 59 ) -> None: 60 r"""Initialize ElectronJointDensityOfStates object. 61 62 Args: 63 energies: Photon energies [$\mathrm{eV}$]. 64 values: Electron joint density of states values 65 [$\mathrm{eV^{-1}}$]. 66 d_energy: Target photon energy increment [$\mathrm{eV}$]. 67 68 Raises: 69 ValueError: If there are negative values. 70 """ 71 if np.less(values, 0.0).any(): 72 raise ValueError("Negative values!") 73 super().__init__(energies, values, d_energy=d_energy)
Initialize ElectronJointDensityOfStates object.
Arguments:
- energies: Photon energies [$\mathrm{eV}$].
- values: Electron joint density of states values [$\mathrm{eV^{-1}}$].
- d_energy: Target photon energy increment [$\mathrm{eV}$].
Raises:
- ValueError: If there are negative values.
75 def calc_sp_absorb( 76 self, *, ejdos_rth: Real = 1.0, energy_co: Real | None = None 77 ) -> SpectralAbsorbance: 78 r"""Calculate spectral absorbance. 79 80 Note: 81 By assuming that: 82 83 1. the optical transition matrix element is constant; 84 2. there are enough phonons to enable indirect optical transitions; 85 86 the optical absorption coefficient $\alpha$ may be approximated as: 87 88 $$ 89 \alpha(\hbar \, \omega) \propto J(\hbar \, \omega) 90 $$ 91 92 where $J$ is the electron joint density of states and 93 $\hbar \, \omega$ is the photon energy (see 94 [O'Leary et al. (1997)](https://doi.org/10.1063/1.365643) 95 for details). 96 97 By additionally assuming: 98 99 1. negligible reflectance $R$; 100 2. sample thickness $l$ much larger than coherence length; 101 102 the spectral absorbance $A$ may be approximated according to 103 Beer-Lambert's law as: 104 105 $$ 106 A(\hbar \, \omega) = 1 - R(\hbar \, \omega) - T(\hbar \, \omega) = 1 - \exp {\alpha(\hbar \, \omega) \, l} 107 $$ 108 109 (see 110 [Fox (2010)](https://global.oup.com/academic/product/optical-properties-of-solids-9780199573370?q=978-0-19-957337-0&cc=it&lang=en)). 111 112 Then, the optical absorption coefficient is known at less than a 113 multiplicative factor, which can be incorporated into $l$, and it 114 makes sense to write: 115 116 $$ 117 \alpha(\hbar \, \omega) \, l = \frac{3 \, J(\hbar \, \omega)}{\bar{J}_\text{th} \, \max{J(\hbar \, \omega)}} 118 $$ 119 120 where $\bar{J}_\text{th}$ is the electron joint density of states 121 threshold relative to the electron joint density of states maximum 122 above which 95% of radiation is absorbed. 123 124 Args: 125 ejdos_rth: Electron joint density of states threshold relative to 126 the electron joint density of states maximum above which 95% of 127 radiation is absorbed. 128 energy_co: Photon energy cutoff above which absorbance is neglected. 129 """ 130 if energy_co is None: 131 mask = self.energies >= 0.0 132 else: 133 mask = np.logical_and( 134 self.energies >= 0.0, self.energies <= energy_co 135 ) 136 ejdos_max = np.amax(self.values) 137 norm_values = 3 * self.values / (ejdos_rth * ejdos_max) 138 sp_absorb_values = 1.0 - np.exp(-norm_values) 139 return SpectralAbsorbance(self.energies[mask], sp_absorb_values[mask])
Calculate spectral absorbance.
Note:
By assuming that:
- the optical transition matrix element is constant;
- there are enough phonons to enable indirect optical transitions;
the optical absorption coefficient $\alpha$ may be approximated as:
$$ \alpha(\hbar \, \omega) \propto J(\hbar \, \omega) $$
where $J$ is the electron joint density of states and $\hbar \, \omega$ is the photon energy (see O'Leary et al. (1997) for details).
By additionally assuming:
- negligible reflectance $R$;
- sample thickness $l$ much larger than coherence length;
the spectral absorbance $A$ may be approximated according to Beer-Lambert's law as:
$$ A(\hbar \, \omega) = 1 - R(\hbar \, \omega) - T(\hbar \, \omega) = 1 - \exp {\alpha(\hbar \, \omega) \, l} $$
(see Fox (2010)).
Then, the optical absorption coefficient is known at less than a multiplicative factor, which can be incorporated into $l$, and it makes sense to write:
$$ \alpha(\hbar \, \omega) \, l = \frac{3 \, J(\hbar \, \omega)}{\bar{J}_\text{th} \, \max{J(\hbar \, \omega)}} $$
where $\bar{J}_\text{th}$ is the electron joint density of states threshold relative to the electron joint density of states maximum above which 95% of radiation is absorbed.
Arguments:
- ejdos_rth: Electron joint density of states threshold relative to the electron joint density of states maximum above which 95% of radiation is absorbed.
- energy_co: Photon energy cutoff above which absorbance is neglected.
Inherited Members
142class ResolvedElectronJointDensityOfStatesMeta(ResolvedEnergySpectrumMeta): 143 r"""Metaclass of ResolvedElectronJointDensityOfStates.""" 144 145 @property 146 def rsv_sp_absorb(cls) -> Type: 147 r"""Associated resolved spectral absorbance class.""" 148 module = madman.analysis.absorbance 149 name = cls.__name__.replace( 150 "ElectronJointDensityOfStates", "SpectralAbsorbance" 151 ) 152 return getattr(module, name)
Metaclass of ResolvedElectronJointDensityOfStates.
145 @property 146 def rsv_sp_absorb(cls) -> Type: 147 r"""Associated resolved spectral absorbance class.""" 148 module = madman.analysis.absorbance 149 name = cls.__name__.replace( 150 "ElectronJointDensityOfStates", "SpectralAbsorbance" 151 ) 152 return getattr(module, name)
Associated resolved spectral absorbance class.
Inherited Members
- builtins.type
- type
- mro
155class ResolvedElectronJointDensityOfStates( 156 PairResolvedEnergySpectrum, 157 metaclass=ResolvedElectronJointDensityOfStatesMeta, 158): 159 r"""Resolved electron joint density of states. 160 161 Note: 162 `energies`: Photon energies [$\mathrm{eV}$]. 163 `rsv_values`: Resolved electron joint density of states values 164 [$\mathrm{eV^{-1}}$]. 165 """ 166 167 def calc_rsv_sp_absorb( 168 self, *, ejdos_rth: Real = 1.0, energy_co: Real | None = None 169 ) -> ResolvedSpectralAbsorbance: 170 r"""Calculate resolved spectral absorbance. 171 172 Note: 173 See 174 `madman.analysis.ejdos.ElectronJointDensityOfStates.ret_sp_absorb` 175 for details. 176 177 Args: 178 ejdos_rth: Electron joint density of states threshold relative to 179 the electron joint density of states maximum above which 95% of 180 radiation is absorbed. 181 energy_co: Photon energy cutoff above which absorbance is neglected. 182 183 Returns: 184 Resolved spectral absorbance. 185 """ 186 if energy_co is None: 187 mask = self.energies >= 0.0 188 else: 189 mask = np.logical_and( 190 self.energies >= 0.0, self.energies <= energy_co 191 ) 192 energies = self.energies[mask] 193 194 ejdos_tot = self.total 195 ejdos_tot_values = ejdos_tot.values[mask] 196 197 sp_absorb_tot = ejdos_tot.calc_sp_absorb( 198 ejdos_rth=ejdos_rth, energy_co=energy_co 199 ) 200 sp_absorb_tot_values = sp_absorb_tot.values 201 202 rsv_sp_absorb_values = {} 203 for feat, values in self.rsv_values.items(): 204 values = values[mask] 205 rsv_sp_absorb_values[feat] = np.zeros_like(values, dtype=float) 206 for i, value in enumerate(values): 207 if ejdos_tot_values[i] != 0.0: 208 rsv_sp_absorb_values[feat][i] = ( 209 value / ejdos_tot_values[i] * sp_absorb_tot_values[i] 210 ) 211 return type(self).rsv_sp_absorb(energies, rsv_sp_absorb_values)
Resolved electron joint density of states.
Note:
energies: Photon energies [$\mathrm{eV}$].rsv_values: Resolved electron joint density of states values [$\mathrm{eV^{-1}}$].
167 def calc_rsv_sp_absorb( 168 self, *, ejdos_rth: Real = 1.0, energy_co: Real | None = None 169 ) -> ResolvedSpectralAbsorbance: 170 r"""Calculate resolved spectral absorbance. 171 172 Note: 173 See 174 `madman.analysis.ejdos.ElectronJointDensityOfStates.ret_sp_absorb` 175 for details. 176 177 Args: 178 ejdos_rth: Electron joint density of states threshold relative to 179 the electron joint density of states maximum above which 95% of 180 radiation is absorbed. 181 energy_co: Photon energy cutoff above which absorbance is neglected. 182 183 Returns: 184 Resolved spectral absorbance. 185 """ 186 if energy_co is None: 187 mask = self.energies >= 0.0 188 else: 189 mask = np.logical_and( 190 self.energies >= 0.0, self.energies <= energy_co 191 ) 192 energies = self.energies[mask] 193 194 ejdos_tot = self.total 195 ejdos_tot_values = ejdos_tot.values[mask] 196 197 sp_absorb_tot = ejdos_tot.calc_sp_absorb( 198 ejdos_rth=ejdos_rth, energy_co=energy_co 199 ) 200 sp_absorb_tot_values = sp_absorb_tot.values 201 202 rsv_sp_absorb_values = {} 203 for feat, values in self.rsv_values.items(): 204 values = values[mask] 205 rsv_sp_absorb_values[feat] = np.zeros_like(values, dtype=float) 206 for i, value in enumerate(values): 207 if ejdos_tot_values[i] != 0.0: 208 rsv_sp_absorb_values[feat][i] = ( 209 value / ejdos_tot_values[i] * sp_absorb_tot_values[i] 210 ) 211 return type(self).rsv_sp_absorb(energies, rsv_sp_absorb_values)
Calculate resolved spectral absorbance.
Note:
See
madman.analysis.ejdos.ElectronJointDensityOfStates.ret_sp_absorbfor details.
Arguments:
- ejdos_rth: Electron joint density of states threshold relative to the electron joint density of states maximum above which 95% of radiation is absorbed.
- energy_co: Photon energy cutoff above which absorbance is neglected.
Returns:
Resolved spectral absorbance.
214class BandResolvedElectronJointDensityOfStates( 215 BandPairResolvedEnergySpectrum, ResolvedElectronJointDensityOfStates 216): 217 r"""Band resolved electron joint density of states. 218 219 Note: 220 `energies`: Photon energies [$\mathrm{eV}$]. 221 `rsv_values`: Band resolved electron joint density of states values 222 [$\mathrm{eV^{-1}}$]. 223 224 Note: 225 See `madman.analysis.spectrum.BandResolvedEnergySpectrum` for details. 226 """
Band resolved electron joint density of states.
Note:
energies: Photon energies [$\mathrm{eV}$].rsv_values: Band resolved electron joint density of states values [$\mathrm{eV^{-1}}$].
Note:
See
madman.analysis.spectrum.BandResolvedEnergySpectrumfor details.
229class CellResolvedElectronJointDensityOfStates( 230 CellPairResolvedEnergySpectrum, ResolvedElectronJointDensityOfStates 231): 232 r"""Cell resolved electron joint density of states. 233 234 Note: 235 `energies`: Photon energies [$\mathrm{eV}$]. 236 `rsv_values`: Cell resolved electron joint density of states values 237 [$\mathrm{eV^{-1}}$]. 238 239 Note: 240 See `madman.analysis.spectrum.CellResolvedEnergySpectrum` for details. 241 """
Cell resolved electron joint density of states.
Note:
energies: Photon energies [$\mathrm{eV}$].rsv_values: Cell resolved electron joint density of states values [$\mathrm{eV^{-1}}$].
Note:
See
madman.analysis.spectrum.CellResolvedEnergySpectrumfor details.