spinorbit_m Module

This submodule is included by conductor.f, and contains the equations which model spin-orbit coupling in diffusive materials.



Interfaces

public interface spinorbit

  • public function spinorbit_construct(parent) result(this)

    Constructs a spinorbit object with a given parent material.

    Arguments

    Type IntentOptional Attributes Name
    class(material), target :: parent

    Return Value type(spinorbit)


Derived Types

type, public ::  spinorbit

Components

Type Visibility Attributes Name Initial
class(material), public, pointer :: material => null()

Pointer to the material modelled by this instance

type(spin), public, dimension(1:3) :: field

Spin-orbit coupling field (SU(2) gauge field)

type(spin), public :: Ax

Spin-orbit coupling matrices (the components and square)

type(spin), public :: Ay

Spin-orbit coupling matrices (the components and square)

type(spin), public :: Az

Spin-orbit coupling matrices (the components and square)

type(spin), public :: A2

Spin-orbit coupling matrices (the components and square)

type(spin), public :: Axt

Spin-orbit coupling matrices (tilde-conjugated versions)

type(spin), public :: Ayt

Spin-orbit coupling matrices (tilde-conjugated versions)

type(spin), public :: Azt

Spin-orbit coupling matrices (tilde-conjugated versions)

type(spin), public :: A2t

Spin-orbit coupling matrices (tilde-conjugated versions)

Constructor

public function spinorbit_construct (parent)

Constructs a spinorbit object with a given parent material.

Type-Bound Procedures

procedure, public :: diffusion_equation => spinorbit_diffusion_equation ../../

Diffusion equation

procedure, public :: diffusion_equation_a => spinorbit_diffusion_equation_a ../../

Boundary condition (left)

procedure, public :: diffusion_equation_b => spinorbit_diffusion_equation_b ../../

Boundary condition (right)

procedure, public :: update_prehook => spinorbit_update_prehook ../../

Code to execute before updates


Functions

public function spinorbit_construct(parent) result(this)

Constructs a spinorbit object with a given parent material.

Arguments

Type IntentOptional Attributes Name
class(material), target :: parent

Return Value type(spinorbit)