Class to handle oscillation test(s).
Test is driven by the Command Line Interface (CLI) options.
Test has only 1 public method execute
: it executes test(s) accordingly to cli options.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=R_P), | private, | allocatable | :: | Dt(:) | Time step(s) exercised. |
||
real(kind=R_P), | private | :: | U0(1:2) | = | [0._R_P, 0._R_P] | Initial conditions. |
|
type(command_line_interface), | private | :: | cli | Command line interface handler. |
|||
integer(kind=I_P), | private | :: | error | = | 0 | Error handler. |
|
logical, | private | :: | errors_analysis | = | .false. | Flag for activating errors analysis. |
|
logical, | private | :: | exact_solution | = | .false. | Flag for activating exact solution saving. |
|
real(kind=R_P), | private | :: | final_time | = | 0.0_R_P | Final integration time. |
|
real(kind=R_P), | private | :: | frequency | = | 0.0_R_P | Oscillation frequency. |
|
integer(kind=I_P), | private | :: | implicit_iterations | = | 0 | Number of iterations (implicit solvers). |
|
logical, | private | :: | is_fast | = | .false. | Flag for activating fast schemes. |
|
character(len=99), | private | :: | output | = | '' | Output files basename. |
|
logical, | private | :: | results | = | .false. | Flag for activating results saving. |
|
character(len=99), | private | :: | scheme | = | '' | Scheme used. |
|
integer(kind=I_P), | private | :: | stages | = | 0 | Number of stages. |
Execute selected test(s).
Execute test(s).
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(oscillation_test), | intent(inout) | :: | self | Test. |
Initialize test: set Command Line Interface, parse it and check its validity.
Initialize test: set Command Line Interface, parse it and check its validity.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(oscillation_test), | intent(inout) | :: | self | Test. |
Perform the test.
Perform the test.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(oscillation_test), | intent(in) | :: | self | Test. |
||
character(len=*), | intent(in) | :: | scheme | Selected scheme. |
type :: oscillation_test
!< Class to handle oscillation test(s).
!<
!< Test is driven by the Command Line Interface (CLI) options.
!<
!< Test has only 1 public method `execute`: it executes test(s) accordingly to cli options.
private
type(command_line_interface) :: cli !< Command line interface handler.
integer(I_P) :: error=0 !< Error handler.
character(99) :: scheme='' !< Scheme used.
logical :: is_fast=.false. !< Flag for activating fast schemes.
integer(I_P) :: implicit_iterations=0 !< Number of iterations (implicit solvers).
integer(I_P) :: stages=0 !< Number of stages.
real(R_P), allocatable :: Dt(:) !< Time step(s) exercised.
real(R_P) :: frequency=0.0_R_P !< Oscillation frequency.
real(R_P) :: U0(1:2)=[0._R_P,0._R_P] !< Initial conditions.
real(R_P) :: final_time=0.0_R_P !< Final integration time.
logical :: results=.false. !< Flag for activating results saving.
character(99) :: output='' !< Output files basename.
logical :: exact_solution=.false. !< Flag for activating exact solution saving.
logical :: errors_analysis=.false. !< Flag for activating errors analysis.
contains
! public methods
procedure, pass(self) :: execute !< Execute selected test(s).
! private methods
procedure, pass(self), private :: initialize !< Initialize test: set Command Line Interface, parse it and check its validity.
procedure, pass(self), private :: test !< Perform the test.
endtype oscillation_test