Module that defines an abstract class for the concept of an ODE integrator. As this is just an abstract class, there is no implementation.
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.
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. |
Take a time step.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator), | intent(inout) | :: | this | The routine is called on this object. |
Shut down this integrator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator), | intent(inout) | :: | this | The routine is called on this object. |
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. |
procedure(integrator_ntemp_interface), public, pass :: ntemp | A procedure that allows an integrator to tell the equations how much temporary storage is needed. |
procedure(integrator_init_interface), public, pass :: init | A procedure that initializes an integrator. |
procedure(integrator_step_interface), public, pass :: step | A procedure that takes one time step. |
procedure(integrator_shutdown_interface), public, pass :: shutdown | A procedure that shuts down an integrator. |