spinscattering Derived Type

type, public :: spinscattering


Contents


Components

TypeVisibility AttributesNameInitial
class(material), public, pointer:: material=> null()

Pointer to the material modelled by this instance

type(nambu), public, dimension(0:7):: nambuv

Pauli matrices spanning the 4×4 Spin-Nambu space

real(kind=wp), public :: depairing =0.0_wp

Orbital depairing coefficient

real(kind=wp), public :: spinflip =0.0_wp

Spin-flip scattering coefficient (1/8τΔ)

real(kind=wp), public :: spinorbit =0.0_wp

Spin-orbit scattering coefficient (1/8τΔ)


Constructor

public interface spinscattering

  • public impure function spinscattering_construct(parent) result(this)

    Constructs a spinscattering object with a given parent material.

    Arguments

    Type IntentOptional AttributesName
    class(material), target:: parent

    Return Value type(spinscattering)


Type-Bound Procedures

procedure, public :: diffusion_equation => spinscattering_diffusion_equation

Diffusion equation

  • private pure subroutine spinscattering_diffusion_equation(this, p)

    Calculate the spin-flip and spin-orbit scattering terms in the diffusion equation, and update the second derivatives of the Riccati parameters.

    Arguments

    Type IntentOptional AttributesName
    class(spinscattering), intent(in) :: this
    type(propagator), intent(inout) :: p

procedure, public :: kinetic_equation => spinscattering_kinetic_equation

Kinetic equation

  • private pure subroutine spinscattering_kinetic_equation(this, Gp, R)

    Calculate the self-energies in the kinetic equation.

    Arguments

    Type IntentOptional AttributesName
    class(spinscattering), intent(in) :: this
    type(propagator), intent(in) :: Gp
    complex(kind=wp), intent(inout), dimension(0:7,0:7):: R