interpolator Derived Type

type, public, extends(base_object) :: interpolator

type~~interpolator~~InheritsGraph type~interpolator interpolator type~smoothness_indicators smoothness_indicators type~smoothness_indicators->type~interpolator is type~polynomials polynomials type~polynomials->type~interpolator polynom type~alpha_coefficients alpha_coefficients type~alpha_coefficients->type~interpolator alpha type~optimal_weights optimal_weights type~optimal_weights->type~interpolator weights type~base_object base_object type~base_object->type~interpolator type~base_object->type~smoothness_indicators type~base_object->type~polynomials type~base_object->type~alpha_coefficients type~base_object->type~optimal_weights
Help


Abstract interpolator object.

Inherited By

type~~interpolator~~InheritedByGraph type~interpolator interpolator type~interpolator_js interpolator_js type~interpolator->type~interpolator_js
Help

Source Code


Components

TypeVisibility AttributesNameInitial
class(smoothness_indicators), public, allocatable:: is

Smoothness indicators.

class(alpha_coefficients), public, allocatable:: alpha

Alpha coefficients.

class(optimal_weights), public, allocatable:: weights

Optimal weights.

class(polynomials), public, allocatable:: polynom

Polynomilas.


Type-Bound Procedures

procedure, public, nopass :: description

Return interpolator string-description.

  • private pure function description() result(string)

    Return interpolator string-description.

    Arguments

    None

    Return Value character(len=:), allocatable

    String-description.

procedure, public, pass(self) :: interpolate

Interpolate values.

  • private pure subroutine interpolate(self, S, stencil, location, interpolation)

    Interpolate values.

    Arguments

    Type IntentOptional AttributesName
    class(interpolator), intent(inout) :: self

    Interpolator.

    integer(kind=I_P), intent(in) :: S

    Number of stencils actually used.

    real(kind=R_P), intent(in) :: stencil(1:,1-S:)

    Stencil of the interpolation [1:2, 1-S:-1+S].

    character(len=*), intent(in) :: location

    Location of interpolation: left, right, both.

    real(kind=R_P), intent(out) :: interpolation(1:)

    Result of the interpolation, [1:2].

procedure, public, pass(self) :: create

Create interpolator.

  • private subroutine create(self, constructor)

    Create interpolator.

    Arguments

    Type IntentOptional AttributesName
    class(interpolator), intent(inout) :: self

    Interpolator.

    class(base_object_constructor), intent(in) :: constructor

    Constructor.

procedure, public, pass(self) :: destroy

Destroy interpolator.

  • private elemental subroutine destroy(self)

    Destroy interpolator

    Arguments

    Type IntentOptional AttributesName
    class(interpolator), intent(inout) :: self

    Interpolator.

Source Code

type, extends(base_object) :: interpolator
  !< Abstract interpolator object.
  !<
  !< @note Do not implement any actual interpolator: provide the interface for the different interpolators implemented.
  class(smoothness_indicators), allocatable :: is      !< Smoothness indicators.
  class(alpha_coefficients),    allocatable :: alpha   !< Alpha coefficients.
  class(optimal_weights),       allocatable :: weights !< Optimal weights.
  class(polynomials),           allocatable :: polynom !< Polynomilas.
  contains
    ! public deferred methods
    procedure, nopass     :: description !< Return interpolator string-description.
    procedure, pass(self) :: interpolate !< Interpolate values.
    ! public methods
    procedure, pass(self) :: create  !< Create interpolator.
    procedure, pass(self) :: destroy !< Destroy interpolator.
endtype interpolator