Composite integrator object allowing for different integration stages
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
logical, | public | :: | userDefined | = | .false. |
True only if user explicitly sets it to true |
|
type(IntegratorContainer), | private, | allocatable, dimension(:) | :: | integrators |
Integrators contained in this composite integrator |
||
integer(kind=ik), | private | :: | numIntegratorsAdded |
Counter keeping track of how many integrators have been added |
|||
real(kind=rk), | private | :: | currentTime |
Current time value (should agree with "time" variable if present) |
|||
real(kind=rk), | private | :: | globalTimestep |
Global timestep value |
|||
real(kind=rk), | private | :: | initialTimestep |
Initial timestep value |
|||
real(kind=rk), | private | :: | requestedTimestep |
Externally requested timestep, the global timestep will be set to the minimum between this value and the initialTimestep |
|||
type(VariableContainer), | private, | allocatable | :: | stepBuffer |
Variable container buffer used between steps |
||
type(IntegratorCallStep), | private, | allocatable, dimension(:) | :: | integrationStage |
Integration stages |
||
logical, | private | :: | allIntegratorsAdded |
True when all integrators have been allocated |
|||
class(TimestepController), | private, | allocatable | :: | dtController |
Optional timestep controller object at composite integrator level |
Getter for userDefined
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Object), | intent(in) | :: | this |
Set userDefined to .true.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Object), | intent(inout) | :: | this |
Set userDefined to .false.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Object), | intent(inout) | :: | this |
Call all integrators based on the integration stages and global timestep. The global timestep is updated at the start if there is an allocated timestep controller.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CompositeIntegrator), | intent(inout) | :: | this | |||
class(ModellerSurrogate), | intent(inout) | :: | manipulatedModeller |
Modeller object used in callback |
||
class(VariableContainer), | intent(inout) | :: | outputVars |
Container for integration output |
||
class(VariableContainer), | intent(in) | :: | inputVars |
Integration input variables |
Getter for currentTime
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CompositeIntegrator), | intent(in) | :: | this |
Add Integrator object to composite integrator
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CompositeIntegrator), | intent(inout) | :: | this | |||
class(Integrator), | intent(in) | :: | integ |
Add integration stage to composite integrator
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CompositeIntegrator), | intent(inout) | :: | this | |||
type(IntegratorCallStep), | intent(in) | :: | integStage |
Setter for dtController
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CompositeIntegrator), | intent(inout) | :: | this | |||
class(TimestepController), | intent(in) | :: | controller |
Setter for requestedTimestep
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CompositeIntegrator), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in) | :: | timestep |
Resets the requested timestep to the initial timestep
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CompositeIntegrator), | intent(inout) | :: | this |
Composite integraotr initialization routine
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CompositeIntegrator), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in) | :: | initialTime |
Time value before first step |
||
real(kind=rk), | intent(in) | :: | initialTimestep |
Default timestep |
||
integer(kind=ik), | intent(in) | :: | numIntegrators |
Number of integrators expected |
||
class(TimestepController), | intent(in), | optional | :: | dtController |
Optional timestep controller |