structure_m Module

This module defines a data type 'structure', which is useful for constructing and using multilayer hybrid structures. It also exports the type definitions and constructors for all class(material) types, although these should rarely be needed.



Contents


Interfaces

public interface structure

  • private impure function structure_construct() result(this)

    Constructs a multilayer stack from a configuration file.

    Arguments

    None

    Return Value type(structure)


Derived Types

type, public :: structure

Components

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

First material

class(material), public, pointer:: b=> null()

Last material

integer, public, allocatable:: supercurrent

Output unit (allocate to write supercurrents to file)

integer, public, allocatable:: lossycurrent

Output unit (allocate to write lossycurrents to file)

integer, public, allocatable:: accumulation

Output unit (allocate to write accumulations to file)

integer, public, allocatable:: correlation

Output unit (allocate to write correlations to file)

integer, public, allocatable:: magnetization

Output unit (allocate to write magnetizations to file)

integer, public, allocatable:: distribution

Output unit (allocate to write distributions to file)

integer, public, allocatable:: density

Output unit (allocate to write density of states to file)

Constructor

private impure function structure_construct()

Constructs a multilayer stack from a configuration file.

Type-Bound Procedures

procedure, public :: push => structure_push

Construct a single layer

procedure, public :: conf => structure_conf

Configure a single layer

procedure, public :: cmap => structure_cmap

Configure all layers

procedure, public :: fmap => structure_fmap

Manipulate all layers

procedure, public :: initialize => structure_initialize

Reset the physical state

procedure, public :: save => structure_save

Save the physical state

procedure, public :: load => structure_load

Load the physical state

procedure, public :: update => structure_update

Update the physical state

procedure, public :: update_prehook => structure_update_prehook

Execute all update prehooks

procedure, public :: update_posthook => structure_update_posthook

Execute all update posthooks

procedure, public :: converge => structure_converge

Update until convergence

procedure, public :: write => structure_write

Write out observables

procedure, public :: difference => structure_difference

Check how much the physical state changes

procedure, public :: materials => structure_materials

Check the number of enabled materials

procedure, public :: selfconsistency => structure_selfconsistency

Whether selfconsistency iteration is required

procedure, public :: superconductors => structure_superconductors

Check the number of enables superconductors

procedure, public :: chargeviolation => structure_chargeviolation

Check the violation of charge conservation

procedure, public :: gap => structure_gap

Check the minimum superconducting gap