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) |
Construct a single layer
Constructs a new class(material) object at the bottom of the multilayer stack.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structure), | intent(inout) | :: | this | |||
character(len=*), | intent(in) | :: | string |
Configure a single layer
Configures the last material pushed to the multilayer stack.
Todo
Add global config options for the entire stack.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structure), | intent(inout) | :: | this | |||
character(len=*), | intent(in) | :: | key | |||
character(len=*), | intent(in) | :: | val |
Configure all layers
Maps a configuration option onto each element of the multilayer stack.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structure), | intent(inout) | :: | this | |||
character(len=*), | intent(in) | :: | key | |||
class(*), | intent(in) | :: | val |
Manipulate all layers
Maps a subroutine onto each element of the multilayer stack.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structure), | target | :: | this | |||
procedure(mappable) | :: | routine | ||||
logical, | optional | :: | every |
Reset the physical state
Initializes the state of the entire multilayer stack.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structure), | target | :: | this |
Save the physical state
Saves the state of the entire multilayer stack.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structure), | target | :: | this |
Load the physical state
Loads the saved state of the multilayer stack.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structure), | target | :: | this |
Update the physical state
Updates the state of the entire multilayer stack.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structure), | target | :: | this | |||
logical, | optional | :: | bootstrap |
Execute all update prehooks
Silently execute all update prehooks.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structure) | :: | this |
Execute all update posthooks
Silently execute all update posthooks.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structure) | :: | this |
Update until convergence
Performs a convergence procedure, where the state of every material in the stack is repeatedly updated until the residuals drop below some specified threshold and/or a certain number of iterations have been performed. If bootstrap is set to true, the selfconsistency equations will only be solved once at the end, but not inbetween the individual iterations. If a prehook and/or posthook is given, those subroutines will be executed before/after each iteration of the update.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structure), | target | :: | this | |||
real(kind=wp), | optional | :: | threshold | |||
integer, | optional | :: | iterations | |||
logical, | optional | :: | bootstrap | |||
procedure(hook), | optional | :: | prehook | |||
procedure(hook), | optional | :: | posthook |
Write out observables
Writes physical observables to output files.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structure), | target | :: | this |
Check how much the physical state changes
Checks how much the multilayer stack has changed recently.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structure), | target | :: | this |
Check the number of enabled materials
Checks the number of enabled materials in the multilayer stack.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structure), | target | :: | this |
Whether selfconsistency iteration is required
Checks whether selfconsistency iteration is required.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structure), | target | :: | this |
Check the number of enables superconductors
Checks the number of selfconsistent superconductors in the multilayer stack.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structure), | target | :: | this |
Check the violation of charge conservation
Checks how much the charge current varies with position. Since charge current is supposed to be conserved through the junction, this provides a measure of charge conservation violation, i.e. if the solution is physically realistic.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structure), | target | :: | this |
Check the minimum superconducting gap
Obtains the mean gap in the enabled superconductor. If there are multiple such superconductors in the junction, then it returns the minimum of the mean gaps.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structure), | target | :: | this |