Define the abstract type integrator_multistage_multistep_object of FOODIE ODE integrators.
Abstract interfaces of deferred methods of integrator_multistage_multistep_object.
Integrate integrand field, fast mode.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator_multistage_multistep_object), | intent(inout) | :: | self | Integrator. |
||
class(integrand_object), | intent(inout) | :: | U | Field to be integrated. |
||
real(kind=R_P), | intent(in) | :: | Dt | Time step. |
||
real(kind=R_P), | intent(in) | :: | t | Time. |
Abstract interfaces of deferred methods of integrator_multistage_multistep_object.
Integrate integrand field.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator_multistage_multistep_object), | intent(inout) | :: | self | Integrator. |
||
class(integrand_object), | intent(inout) | :: | U | Integrand. |
||
real(kind=R_P), | intent(in) | :: | Dt | Time step. |
||
real(kind=R_P), | intent(in) | :: | t | Time. |
Abstract type of FOODIE ODE integrators of the multistage/multistep family.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=R_P), | public, | allocatable | :: | Dt(:) | Previous time steps. |
||
logical, | public | :: | autoupdate | Perform cyclic autoupdate of previous time steps buffers. |
|||
class(integrand_object), | public, | allocatable | :: | buffer | Buffer used for fast integration. |
||
character(len=:), | public, | allocatable | :: | description_ | Informative description of the integrator. |
||
integer(kind=I_P), | public | :: | error | = | 0 | Error status code. |
|
character(len=:), | public, | allocatable | :: | error_message | Error message, hopefully meaningful. |
||
integer(kind=I_P), | public | :: | iterations | Implicit iterations. |
|||
class(integrand_object), | public, | allocatable | :: | previous(:) | Previous steps. |
||
integer(kind=I_P), | public | :: | registers_stages | Number of registers used for stages. |
|||
integer(kind=I_P), | public | :: | registers_steps | Number of registers used for steps. |
|||
class(integrand_object), | public, | allocatable | :: | stage(:) | Stages. |
||
integer(kind=I_P), | public | :: | stages | Number of stages. |
|||
integer(kind=I_P), | public | :: | steps | Number of time steps. |
|||
real(kind=R_P), | public, | allocatable | :: | t(:) | Previous times. |
procedure, public, pass(self) :: allocate_integrand_members | Allocate integrand members. |
procedure, public, pass(lhs) :: assign_abstract | Assign ony members of abstract integrator_object type. |
procedure, public, pass(lhs) :: assign_multistage_multistep | Assign members of integrator_multistage_multistep_object. |
generic, public :: assignment(=) => integr_assign_integr | Overload |
procedure, public, pass(self) :: check_error | Check for error occurrencies. |
procedure(class_name_interface), public, pass(self) :: class_name | Return the class name of schemes. |
procedure, public, pass(self) :: description | Return informative integrator description. |
procedure, public, pass(self) :: destroy_abstract | Destroy only members of abstract integrator_object type. |
procedure, public, pass(self) :: destroy_multistage_multistep | Destroy the integrator. |
procedure(has_fast_mode_interface), public, pass(self) :: has_fast_mode | Return .true. if the integrator class has fast mode integrate. |
procedure(assignment_interface), public, pass(lhs) :: integr_assign_integr | Operator |
procedure(integrate_interface), public, pass(self) :: integrate | Integrate integrand field. |
procedure(integrate_fast_interface), public, pass(self) :: integrate_fast | Integrate integrand field, fast mode. |
procedure, public, pass(self) :: is_multistage | Return .true. for multistage integrator. |
procedure, public, pass(self) :: is_multistep | Return .true. for multistep integrator. |
procedure(is_supported_interface), public, pass(self) :: is_supported | Return .true. if the integrator class support the given scheme. |
procedure, public, pass(self) :: stages_number | Return number of stages used. |
procedure, public, pass(self) :: steps_number | Return number of steps used. |
procedure(supported_schemes_interface), public, pass(self) :: supported_schemes | Return the list of supported schemes. |
procedure, public, pass(self) :: trigger_error | Trigger an error. |
procedure, public, nopass :: update_previous | Cyclic update previous time steps. |
Return .true. for multistage integrator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator_multistage_multistep_object), | intent(in) | :: | self | Integrator. |
Inquire result.
Return .true. for multistage integrator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator_multistage_multistep_object), | intent(in) | :: | self | Integrator. |
Inquire result.
Return number of stages used.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator_multistage_multistep_object), | intent(in) | :: | self | Integrator. |
Number of stages used.
Return number of steps used.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator_multistage_multistep_object), | intent(in) | :: | self | Integrator. |
Number of steps used.
Allocate members of interpolator being of integrand_object class.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator_multistage_multistep_object), | intent(inout) | :: | self | Integrator. |
||
class(integrand_object), | intent(in) | :: | U | Integrand. |
Assign members of integrator_multistage_multistep_object and parents.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator_multistage_multistep_object), | intent(inout) | :: | lhs | Left hand side. |
||
class(integrator_object), | intent(in) | :: | rhs | Right hand side. |
Destroy the integrator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator_multistage_multistep_object), | intent(inout) | :: | self | Integrator. |
Cyclic update previous time steps.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_object), | intent(in) | :: | U | Field to be integrated. |
||
class(integrand_object), | intent(inout) | :: | previous(1:) | Previous time steps solutions of integrand. |
||
real(kind=R_P), | intent(in), | optional | :: | Dt | Time step. |
|
real(kind=R_P), | intent(in), | optional | :: | t | Time. |
|
real(kind=R_P), | intent(inout), | optional | :: | previous_Dt(1:) | Time step. |
|
real(kind=R_P), | intent(inout), | optional | :: | previous_t(1:) | Time. |