calculateLinearResponseSpinTransferTorkance¶
- calculateLinearResponseSpinTransferTorkance(configuration, energy=None, kpoints=None, self_energy_calculator=None, energy_zero_parameter=None, infinitesimal=None)¶
Calculate the atom-resolved spin transfer torkance in the linear response approximation.
- Parameters:
configuration (
DeviceConfiguration
) – The configuration to calculate the spin torque transfer torkance. The configuration must have a calculator with non-collinear spin.energy (PhysicalQuantity of type energy) – The energy for which the spin transfer torque should be calculated. Default:
0.0 * eV
kpoints (sequence (size 3) of int |
MonkhorstPackGrid
|KpointDensity
) – The k-points for which the spin transfer torque should be calculated. Default: The Monkhorst-Pack grid used for the self-consistent calculation.self_energy_calculator (
DirectSelfEnergy
|RecursionSelfEnergy
|SparseRecursionSelfEnergy
|KrylovSelfEnergy
) – The self energy calculator to use. Default:RecursionSelfEnergy(storage_strategy=NoStorage())
energy_zero_parameter (
AverageFermiLevel
|AbsoluteEnergy
) – Specifies the choice for the energy zero. Default:AverageFermiLevel
infinitesimal (PhysicalQuantity of type energy) – Small energy, used to move the spin transfer torque calculation away from the real axis. This is only relevant for recursion-style self-energy calculators. Default:
1.0e-6 * eV
- Returns:
A tuple with the total torkance, the torkance per k-point, the k-points and weights used for the integration.
- Return type:
A tuple
(torkance, torkance_per_kpoint, kpoints, weights)
wheretorkance
is a(3, natoms)
numpy.array
, torkance_per_kpoint is a(3, natoms, nk)
numpy.array
.
Usage Examples¶
A usage example is shown together with a finite bias calculation in calculateNonSelfConsistentFiniteBiasSpinTransferTorque documentation.
Notes¶
The linear response spin transfer torkance is evaluated as [1]:
where \(\rho_{CD} = \rho_{neq} - \rho_{eq}\) is the current driven density matrix [2]. Assuming a left-right symmetric junction resulting in a small bias drop \(\pm V_{b}/2\), and slowly varying spectral density around the Fermi energy \(E_F\), we use:
This is similar, but not identical, to the implementation in the analysis object SpinTransferTorque. Moreover this method returns the atom-resolved torkance, while SpinTransferTorque evaluates the torkance in real space.