Abstract type of FOODIE ODE integrators.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
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. |
Assign ony members of abstract integrator_object type.
Assign ony members of abstract integrator_object type.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator_object), | intent(inout) | :: | lhs | Left hand side. |
||
class(integrator_object), | intent(in) | :: | rhs | Right hand side. |
Overload =
.
Operator =
.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator_adams_bashforth_moulton), | intent(inout) | :: | lhs | Left hand side. |
||
class(integrator_object), | intent(in) | :: | rhs | Right hand side. |
Check for error occurrencies.
Check for error occurencies.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator_object), | intent(in) | :: | self | Integrator. |
||
logical, | intent(in), | optional | :: | is_severe | Flag to activate severe faliure, namely errors trigger a stop. |
Return the class name of schemes.
Return the class name of schemes.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator_object), | intent(in) | :: | self | Integrator. |
Class name.
Return informative integrator description.
Return informative integrator description.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator_object), | intent(in) | :: | self | Integrator. |
||
character(len=*), | intent(in), | optional | :: | prefix | Prefixing string. |
Description.
Destroy only members of abstract integrator_object type.
Destroy only members of abstract integrator_object type.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator_object), | intent(inout) | :: | self | Integrator. |
Return .true. if the integrator class has fast mode integrate.
Return .true. if the integrator class has fast mode integrate.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator_object), | intent(in) | :: | self | Integrator. |
Inquire result.
Operator =
.
Operator =
.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator_object), | intent(inout) | :: | lhs | Left hand side. |
||
class(integrator_object), | intent(in) | :: | rhs | Right hand side. |
Return .true. for multistage integrator.
Return .true. for multistage or multistep integrator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator_object), | intent(in) | :: | self | Integrator. |
Inquire result.
Return .true. for multistep integrator.
Return .true. for multistage or multistep integrator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator_object), | intent(in) | :: | self | Integrator. |
Inquire result.
Return .true. if the integrator class support the given scheme.
Return .true. if the integrator class support the given scheme.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator_object), | intent(in) | :: | self | Integrator. |
||
character(len=*), | intent(in) | :: | scheme | Queried scheme. |
Inquire result.
Return number of stages used.
Return number of stages/steps used.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator_object), | intent(in) | :: | self | Integrator. |
Inquire result.
Return number of steps used.
Return number of stages/steps used.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator_object), | intent(in) | :: | self | Integrator. |
Inquire result.
Return the list of supported schemes.
Return the list of supported schemes.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator_object), | intent(in) | :: | self | Integrator. |
Queried scheme.
Trigger an error.
Check for error occurencies.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrator_object), | intent(inout) | :: | self | Integrator. |
||
integer(kind=I_P), | intent(in) | :: | error | Error status code. |
||
character(len=*), | intent(in), | optional | :: | error_message | Error message, hopefully meaningful. |
|
logical, | intent(in), | optional | :: | is_severe | Flag to activate severe faliure, namely errors trigger a stop. |
type, abstract :: integrator_object
!< Abstract type of FOODIE ODE integrators.
character(len=:), allocatable :: description_ !< Informative description of the integrator.
integer(I_P) :: error=0 !< Error status code.
character(len=:), allocatable :: error_message !< Error message, hopefully meaningful.
contains
! public methods
procedure, pass(lhs) :: assign_abstract !< Assign ony members of abstract [[integrator_object]] type.
procedure, pass(self) :: check_error !< Check for error occurrencies.
procedure, pass(self) :: description !< Return informative integrator description.
procedure, pass(self) :: destroy_abstract !< Destroy only members of abstract [[integrator_object]] type.
procedure, pass(self) :: trigger_error !< Trigger an error.
! deferred methods
procedure(class_name_interface), pass(self), deferred :: class_name !< Return the class name of schemes.
procedure(has_fast_mode_interface), pass(self), deferred :: has_fast_mode !< Return .true. if the integrator class
!< has *fast mode* integrate.
procedure(assignment_interface), pass(lhs), deferred :: integr_assign_integr !< Operator `=`.
procedure(is_multistagestep_interface), pass(self), deferred :: is_multistage !< Return .true. for multistage integrator.
procedure(is_multistagestep_interface), pass(self), deferred :: is_multistep !< Return .true. for multistep integrator.
procedure(is_supported_interface), pass(self), deferred :: is_supported !< Return .true. if the integrator class
!< support the given scheme.
procedure(stagesteps_number_interface), pass(self), deferred :: stages_number !< Return number of stages used.
procedure(stagesteps_number_interface), pass(self), deferred :: steps_number !< Return number of steps used.
procedure(supported_schemes_interface), pass(self), deferred :: supported_schemes !< Return the list of supported schemes.
! operators
generic :: assignment(=) => integr_assign_integr !< Overload `=`.
endtype integrator_object