propagator Interface

public interface propagator

Module Procedures

private pure function propagator_construct_vacuum() result(this)

Construct a vacuum propagator, i.e. a propagator which satisfies G=0.

Arguments

None

Return Value type(propagator)

Constructed object

private pure function propagator_construct_riccati(g, gt, dg, dgt) result(this)

Construct an arbitrary state by explicitly providing Riccati parameters. Unspecified Riccati parameters default to zero due to spin constructors. The distribution function defaults to equilibrium at zero temperature.

Arguments

Type IntentOptional Attributes Name
type(spin), intent(in) :: g

Riccati parameter γ

type(spin), intent(in) :: gt

Riccati parameter γ~

type(spin), intent(in), optional :: dg

Riccati parameter ∇γ

type(spin), intent(in), optional :: dgt

Riccati parameter ∇γ~

Return Value type(propagator)

Constructed object

private pure function propagator_construct_bcs(energy, gap) result(this)

Constructs the state of a a BCS superconductor at a given energy, which may have an imaginary term representing inelastic scattering. The second argument 'gap' is used to provide the superconducting order parameter Δ. The distribution function defaults to equilibrium at zero temperature.

Arguments

Type IntentOptional Attributes Name
complex(kind=wp), intent(in) :: energy

Quasiparticle energy

complex(kind=wp), intent(in) :: gap

Order parameter

Return Value type(propagator)

Constructed object