The abstract tester integrand.
This abstract provided some auxiliary methods useful for the tester machinery.
Overloading add_fast
method.
+
fast operator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_oscillation), | intent(inout) | :: | opr | Operator result. |
||
class(integrand_object), | intent(in) | :: | lhs | Left hand side. |
||
class(integrand_object), | intent(in) | :: | rhs | Right hand side. |
=
operator.
Symmetric assignment integrand = integrand.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_object), | intent(inout) | :: | lhs | Left hand side. |
||
class(integrand_object), | intent(in) | :: | rhs | Right hand side. |
= real
operator.
Symmetric assignment integrand = integrand.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_object), | intent(inout) | :: | lhs | Left hand side. |
||
real(kind=R_P), | intent(in) | :: | rhs(1:) | Right hand side. |
Overloading =
assignament.
=
operator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_oscillation), | intent(inout) | :: | lhs | Left hand side. |
||
class(integrand_object), | intent(in) | :: | rhs | Right hand side. |
= real
operator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_oscillation), | intent(inout) | :: | lhs | Left hand side. |
||
real(kind=R_P), | intent(in) | :: | rhs(1:) | Right hand side. |
Return an informative description of the test.
Return informative integrator description.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_tester_object), | intent(in) | :: | self | Integrand. |
||
character(len=*), | intent(in), | optional | :: | prefix | Prefixing string. |
Description.
Return error.
Return error.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_tester_object), | intent(in) | :: | self | Integrand. |
||
real(kind=R_P), | intent(in) | :: | t | Time. |
||
real(kind=R_P), | intent(in), | optional | :: | t0 | Initial time. |
|
class(integrand_object), | intent(in), | optional | :: | U0 | Initial conditions. |
Error.
Return exact solution.
Return exact solution.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_tester_object), | intent(in) | :: | self | Integrand. |
||
real(kind=R_P), | intent(in) | :: | t | Time. |
||
real(kind=R_P), | intent(in), | optional | :: | t0 | Initial time. |
|
class(integrand_object), | intent(in), | optional | :: | U0 | Initial conditions. |
Exact solution.
Export integrand to Tecplot file.
Export integrand to Tecplot file.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_tester_object), | intent(in) | :: | self | Integrand. |
||
character(len=*), | intent(in), | optional | :: | file_name | File name. |
|
real(kind=R_P), | intent(in), | optional | :: | t | Time. |
|
character(len=*), | intent(in), | optional | :: | scheme | Scheme used to integrate integrand. |
|
logical, | intent(in), | optional | :: | close_file | Flag for closing file. |
|
logical, | intent(in), | optional | :: | with_exact_solution | Flag for export also exact solution. |
|
class(integrand_object), | intent(in), | optional | :: | U0 | Initial conditions. |
Initialize integrand.
Initialize integrand.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_tester_object), | intent(inout) | :: | self | Integrand. |
||
real(kind=R_P), | intent(in) | :: | Dt | Time step. |
+
operator.
Symmetric type operator integrand.op.integrand.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_object), | intent(in) | :: | lhs | Left hand side. |
||
class(integrand_object), | intent(in) | :: | rhs | Right hand side. |
Operator result.
+
fast operator.
+
fast operator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_object), | intent(inout) | :: | opr | Operator result. |
||
class(integrand_object), | intent(in) | :: | lhs | Left hand side. |
||
class(integrand_object), | intent(in) | :: | rhs | Right hand side. |
+ real
operator.
Asymmetric type operator integrand.op.real
.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_object), | intent(in) | :: | lhs | Left hand side. |
||
real(kind=R_P), | intent(in) | :: | rhs(1:) | Right hand side. |
Operator result.
Return integrand dimension.
Return integrand dimension.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_object), | intent(in) | :: | self | Integrand. |
Integrand dimension.
*
operator.
Symmetric type operator integrand.op.integrand.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_object), | intent(in) | :: | lhs | Left hand side. |
||
class(integrand_object), | intent(in) | :: | rhs | Right hand side. |
Operator result.
*
fast operator.
*
fast operator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_object), | intent(inout) | :: | opr | Operator result. |
||
class(integrand_object), | intent(in) | :: | lhs | Left hand side. |
||
class(integrand_object), | intent(in) | :: | rhs | Right hand side. |
* real
operator.
Asymmetric type operator integrand.op.real
.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_object), | intent(in) | :: | lhs | Left hand side. |
||
real(kind=R_P), | intent(in) | :: | rhs(1:) | Right hand side. |
Operator result.
* real_scalar
operator.
Asymmetric type operator integrand.op.real
.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_object), | intent(in) | :: | lhs | Left hand side. |
||
real(kind=R_P), | intent(in) | :: | rhs | Right hand side. |
Operator result.
* real_scalar
fast operator.
* real_scalar
fast operator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_object), | intent(inout) | :: | opr | Operator result. |
||
class(integrand_object), | intent(in) | :: | lhs | Left hand side. |
||
real(kind=R_P), | intent(in) | :: | rhs | Right hand side. |
-
operator.
Symmetric type operator integrand.op.integrand.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_object), | intent(in) | :: | lhs | Left hand side. |
||
class(integrand_object), | intent(in) | :: | rhs | Right hand side. |
Operator result.
- real
operator.
Asymmetric type operator integrand.op.real
.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_object), | intent(in) | :: | lhs | Left hand side. |
||
real(kind=R_P), | intent(in) | :: | rhs(1:) | Right hand side. |
Operator result.
-
fast operator.
-
fast operator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_object), | intent(inout) | :: | opr | Operator result. |
||
class(integrand_object), | intent(in) | :: | lhs | Left hand side. |
||
class(integrand_object), | intent(in) | :: | rhs | Right hand side. |
||integrand - integrand||
operator.
Estimate local truncation error between 2 solution approximations.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_object), | intent(in) | :: | lhs | Left hand side. |
||
class(integrand_object), | intent(in) | :: | rhs | Right hand side. |
Error estimation.
Overloading multiply_fast
method.
*
fast operator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_oscillation), | intent(inout) | :: | opr | Operator result. |
||
class(integrand_object), | intent(in) | :: | lhs | Left hand side. |
||
class(integrand_object), | intent(in) | :: | rhs | Right hand side. |
* real_scalar
fast operator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_oscillation), | intent(inout) | :: | opr | Operator result. |
||
class(integrand_object), | intent(in) | :: | lhs | Left hand side. |
||
real(kind=R_P), | intent(in) | :: | rhs | Right hand side. |
Overloading *
operator.
*
operator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_oscillation), | intent(in) | :: | lhs | Left hand side. |
||
class(integrand_object), | intent(in) | :: | rhs | Right hand side. |
Operator result.
* real_scalar
operator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_oscillation), | intent(in) | :: | lhs | Left hand side. |
||
real(kind=R_P), | intent(in) | :: | rhs(1:) | Right hand side. |
Operator result.
real_scalar *
operator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=R_P), | intent(in) | :: | lhs(1:) | Left hand side. |
||
class(integrand_oscillation), | intent(in) | :: | rhs | Right hand side. |
Operator result.
* real_scalar
operator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_oscillation), | intent(in) | :: | lhs | Left hand side. |
||
real(kind=R_P), | intent(in) | :: | rhs | Right hand side. |
Operator result.
real_scalar *
operator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=R_P), | intent(in) | :: | lhs | Left hand side. |
||
class(integrand_oscillation), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Overloading +
operator.
+
operator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_oscillation), | intent(in) | :: | lhs | Left hand side. |
||
class(integrand_object), | intent(in) | :: | rhs | Right hand side. |
Operator result.
+ real
operator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_oscillation), | intent(in) | :: | lhs | Left hand side. |
||
real(kind=R_P), | intent(in) | :: | rhs(1:) | Right hand side. |
Operator result.
real +
operator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=R_P), | intent(in) | :: | lhs(1:) | Left hand side. |
||
class(integrand_oscillation), | intent(in) | :: | rhs | Left hand side. |
Operator result.
Overloading -
operator.
-
operator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_oscillation), | intent(in) | :: | lhs | Left hand side. |
||
class(integrand_object), | intent(in) | :: | rhs | Right hand side. |
Operator result.
- real
operator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_oscillation), | intent(in) | :: | lhs | Left hand side. |
||
real(kind=R_P), | intent(in) | :: | rhs(1:) | Right hand side. |
Operator result.
real -
operator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=R_P), | intent(in) | :: | lhs(1:) | Left hand side. |
||
class(integrand_oscillation), | intent(in) | :: | rhs | Left hand side. |
Operator result.
Estimate local truncation error.
Estimate local truncation error between 2 oscillation approximations.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_oscillation), | intent(in) | :: | lhs | Left hand side. |
||
class(integrand_object), | intent(in) | :: | rhs | Right hand side. |
Error estimation.
Initialize from command line interface.
Initialize from command line interface.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_tester_object), | intent(inout) | :: | self | Integrand. |
||
type(command_line_interface), | intent(inout) | :: | cli | Command line interface handler. |
real +
operator.
Asymmetric type operator real.op.integrand
.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=R_P), | intent(in) | :: | lhs(1:) | Left hand side. |
||
class(integrand_object), | intent(in) | :: | rhs | Right hand side. |
Operator result.
real *
operator.
Asymmetric type operator real.op.integrand
.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=R_P), | intent(in) | :: | lhs(1:) | Left hand side. |
||
class(integrand_object), | intent(in) | :: | rhs | Right hand side. |
Operator result.
real_scalar *
operator.
Asymmetric type operator real.op.integrand
.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=R_P), | intent(in) | :: | lhs | Left hand side. |
||
class(integrand_object), | intent(in) | :: | rhs | Right hand side. |
Operator result.
real -
operator.
Asymmetric type operator real.op.integrand
.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=R_P), | intent(in) | :: | lhs(1:) | Left hand side. |
||
class(integrand_object), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Set command line interface.
Set command line interface.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(command_line_interface), | intent(inout) | :: | cli | Command line interface handler. |
Overloading subtract_fast
method.
-
fast operator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_oscillation), | intent(inout) | :: | opr | Operator result. |
||
class(integrand_object), | intent(in) | :: | lhs | Left hand side. |
||
class(integrand_object), | intent(in) | :: | rhs | Right hand side. |
Time derivative, residuals.
Time derivative function of integrand class, i.e. the residuals function.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_object), | intent(in) | :: | self | Integrand field. |
||
real(kind=R_P), | intent(in), | optional | :: | t | Time. |
Result of the time derivative function of integrand field.
Time derivative, residuals, fast mode.
Time derivative function of integrand class, i.e. the residuals function. Fast mode acting directly on self.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integrand_object), | intent(inout) | :: | self | Integrand field. |
||
real(kind=R_P), | intent(in), | optional | :: | t | Time. |
type, abstract, extends(integrand_object) :: integrand_tester_object
!< The abstract tester integrand.
!<
!< This abstract provided some auxiliary methods useful for the tester machinery.
contains
procedure(description_interface), pass(self), deferred :: description !< Return an informative description of the test.
procedure(error_interface), pass(self), deferred :: error !< Return error.
procedure(exact_solution_interface), pass(self), deferred :: exact_solution !< Return exact solution.
procedure(export_tecplot_interface), pass(self), deferred :: export_tecplot !< Export integrand to Tecplot file.
procedure(initialize_interface), pass(self), deferred :: initialize !< Initialize integrand.
procedure(parse_cli_interface), pass(self), deferred :: parse_cli !< Initialize from command line interface.
procedure(set_cli_interface), nopass, deferred :: set_cli !< Set command line interface.
endtype integrand_tester_object