spinorbit_m Module

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



Contents


Interfaces

public interface spinorbit

  • public function spinorbit_construct(parent) result(this)

    Constructs a spinorbit object with a given parent material.

    Arguments

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

    Return Value type(spinorbit)


Derived Types

type, public :: spinorbit

Components

TypeVisibility AttributesNameInitial
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 AttributesName
class(material), target:: parent

Return Value type(spinorbit)