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.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
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) |
private function structure_construct () | Constructs a multilayer stack from a configuration file. |
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 |