An abstract class that defines an equation time integrator.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=ip), | public | :: | nequations | The number of equations to integrate. |
|||
class(equation_pointer), | public, | dimension(:), allocatable | :: | eqs | A 1d array of equation pointers. Will be of length nequations. |
A procedure that allows an integrator to tell the equations how much temporary storage is needed.
The return value is the number of temporary storage levels are needed.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator), | intent(in) | :: | this | The routine is called on this object. |
The number of temporary storage levels needed.
A procedure that initializes an integrator.
Initialize an integrator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator), | intent(inout) | :: | this | The routine is called on this object. |
||
type(equation_pointer), | intent(in), | dimension(:) | :: | eqs | A 1d array of pointers to the equations that will be integrated. |
A procedure that takes one time step.
Take a time step.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator), | intent(inout) | :: | this | The routine is called on this object. |
A procedure that shuts down an integrator.
Shut down this integrator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator), | intent(inout) | :: | this | The routine is called on this object. |
type, abstract :: integrator
!! An abstract class that defines an equation time integrator.
integer(ip) :: nequations
!! The number of equations to integrate.
class(equation_pointer), dimension(:), allocatable :: eqs
!! A 1d array of equation pointers. Will be of length nequations.
contains
procedure (integrator_ntemp_interface), deferred, pass :: ntemp
!! A procedure that allows an integrator to tell the equations how much
!! temporary storage is needed.
procedure (integrator_init_interface), deferred, pass :: init
!! A procedure that initializes an integrator.
procedure (integrator_step_interface), deferred, pass :: step
!! A procedure that takes one time step.
procedure (integrator_shutdown_interface), deferred, pass :: shutdown
!! A procedure that shuts down an integrator.
end type integrator