wenoof_interpolator_js Module

module~~wenoof_interpolator_js~~UsesGraph module~wenoof_interpolator_js wenoof_interpolator_js module~wenoof_base_object wenoof_base_object module~wenoof_base_object->module~wenoof_interpolator_js module~wenoof_optimal_weights wenoof_optimal_weights module~wenoof_base_object->module~wenoof_optimal_weights module~wenoof_interpolator wenoof_interpolator module~wenoof_base_object->module~wenoof_interpolator module~wenoof_polynomials wenoof_polynomials module~wenoof_base_object->module~wenoof_polynomials module~wenoof_smoothness_indicators_js wenoof_smoothness_indicators_js module~wenoof_base_object->module~wenoof_smoothness_indicators_js module~wenoof_polynomials_js wenoof_polynomials_js module~wenoof_base_object->module~wenoof_polynomials_js module~wenoof_alpha_coefficients wenoof_alpha_coefficients module~wenoof_base_object->module~wenoof_alpha_coefficients module~wenoof_alpha_coefficients_m wenoof_alpha_coefficients_m module~wenoof_base_object->module~wenoof_alpha_coefficients_m module~wenoof_smoothness_indicators wenoof_smoothness_indicators module~wenoof_base_object->module~wenoof_smoothness_indicators module~wenoof_objects_factory wenoof_objects_factory module~wenoof_base_object->module~wenoof_objects_factory module~wenoof_optimal_weights->module~wenoof_interpolator_js module~wenoof_optimal_weights->module~wenoof_interpolator module~wenoof_optimal_weights_js wenoof_optimal_weights_js module~wenoof_optimal_weights->module~wenoof_optimal_weights_js module~wenoof_optimal_weights->module~wenoof_objects_factory module~wenoof_interpolator->module~wenoof_interpolator_js module~wenoof_polynomials->module~wenoof_interpolator_js module~wenoof_polynomials->module~wenoof_interpolator module~wenoof_polynomials->module~wenoof_polynomials_js module~wenoof_polynomials->module~wenoof_objects_factory module~wenoof_smoothness_indicators_js->module~wenoof_interpolator_js module~wenoof_smoothness_indicators_js->module~wenoof_objects_factory module~wenoof_polynomials_js->module~wenoof_interpolator_js module~wenoof_polynomials_js->module~wenoof_objects_factory module~wenoof_alpha_coefficients_js wenoof_alpha_coefficients_js module~wenoof_alpha_coefficients_js->module~wenoof_interpolator_js module~wenoof_alpha_coefficients_js->module~wenoof_alpha_coefficients_m module~wenoof_alpha_coefficients_js->module~wenoof_objects_factory iso_fortran_env iso_fortran_env iso_fortran_env->module~wenoof_interpolator_js module~penf_stringify penf_stringify iso_fortran_env->module~penf_stringify module~wenoof_alpha_coefficients->module~wenoof_interpolator_js module~wenoof_alpha_coefficients->module~wenoof_interpolator module~wenoof_alpha_coefficients->module~wenoof_alpha_coefficients_js module~wenoof_alpha_coefficients->module~wenoof_alpha_coefficients_m module~wenoof_alpha_coefficients_z wenoof_alpha_coefficients_z module~wenoof_alpha_coefficients->module~wenoof_alpha_coefficients_z module~wenoof_alpha_coefficients->module~wenoof_objects_factory module~penf penf module~penf->module~wenoof_interpolator_js module~penf->module~wenoof_optimal_weights module~penf->module~wenoof_interpolator module~penf->module~wenoof_polynomials module~penf->module~wenoof_smoothness_indicators_js module~penf->module~wenoof_polynomials_js module~penf->module~wenoof_alpha_coefficients_js module~penf->module~wenoof_alpha_coefficients module~penf->module~wenoof_optimal_weights_js module~penf->module~wenoof_alpha_coefficients_m module~penf->module~wenoof_smoothness_indicators module~penf->module~wenoof_alpha_coefficients_z module~wenoof_optimal_weights_js->module~wenoof_interpolator_js module~wenoof_optimal_weights_js->module~wenoof_objects_factory module~wenoof_alpha_coefficients_m->module~wenoof_interpolator_js module~wenoof_alpha_coefficients_m->module~wenoof_objects_factory module~wenoof_smoothness_indicators->module~wenoof_interpolator_js module~wenoof_smoothness_indicators->module~wenoof_interpolator module~wenoof_smoothness_indicators->module~wenoof_smoothness_indicators_js module~wenoof_smoothness_indicators->module~wenoof_objects_factory module~wenoof_alpha_coefficients_z->module~wenoof_interpolator_js module~wenoof_alpha_coefficients_z->module~wenoof_alpha_coefficients_m module~wenoof_alpha_coefficients_z->module~wenoof_objects_factory module~wenoof_objects_factory->module~wenoof_interpolator module~penf_global_parameters_variables penf_global_parameters_variables module~penf_global_parameters_variables->module~penf module~penf_b_size penf_b_size module~penf_global_parameters_variables->module~penf_b_size module~penf_global_parameters_variables->module~penf_stringify module~penf_b_size->module~penf module~penf_b_size->module~penf_stringify module~penf_stringify->module~penf
Help

Jiang-Shu (upwind) interpolator object.

Used By

module~~wenoof_interpolator_js~~UsedByGraph module~wenoof_interpolator_js wenoof_interpolator_js module~wenoof wenoof module~wenoof_interpolator_js->module~wenoof program~sin_reconstruction sin_reconstruction module~wenoof->program~sin_reconstruction
Help


Derived Types

Jiang-Shu (upwind) interpolator object constructor.

Components

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

Smoothness indicators constructor.

class(alpha_coefficients_constructor), public, allocatable:: alpha

Alpha coefficients constructor.

class(optimal_weights_constructor), public, allocatable:: weights

Optimal weights constructor.

class(polynomials_constructor), public, allocatable:: polynom

Polynomilas constructor.

integer(kind=I_P), private :: S =0

Stencils dimension.

real(kind=R_P), private :: eps =10._R_P**(-6)

Parameter for avoiding division by zero.

Type-Bound Procedures

procedure, public, pass(self) :: create => create_interpolator_constructor

Create interpolator constructor.

procedure, public, pass(self) :: destroy => destroy_interpolator_constructor

Destroy interpolator constructor.

type, public, extends(interpolator) :: interpolator_js

Jiang-Shu (upwind) interpolator object.

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.

integer(kind=I_P), private :: S =0_I_P

Stencil dimension.

real(kind=R_P), private :: eps =0._R_P

Parameter for avoiding divisiion by zero.

Type-Bound Procedures

procedure, public, nopass :: description

Return interpolator string-description.

procedure, public, pass(self) :: interpolate

Interpolate values.

procedure, public, pass(self) :: create

Create interpolator.

procedure, public, pass(self) :: destroy

Destroy interpolator.


Functions

private pure function description() result(string)

Return interpolator string-descripition.

Arguments

None

Return Value character(len=:), allocatable

String-description.


Subroutines

public subroutine create_interpolator_js_constructor(is, alpha, weights, polynom, S, constructor, eps)

Return an instance of [interpolator_js_constructor].

Arguments

Type IntentOptional AttributesName
class(smoothness_indicators_constructor), intent(in) :: is

Smoothness indicators constructor.

class(alpha_coefficients_constructor), intent(in) :: alpha

Alpha coefficients constructor.

class(optimal_weights_constructor), intent(in) :: weights

Optimal weights constructor.

class(polynomials_constructor), intent(in) :: polynom

Polynomilas constructor.

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

Stencil dimension.

class(interpolator_constructor), intent(out), allocatable:: constructor

Interpolator constructor.

real(kind=R_P), intent(in), optional :: eps

Parameter for avoiding division by zero.

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

Interpolate values.

Arguments

Type IntentOptional AttributesName
class(interpolator_js), 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].

private subroutine create(self, constructor)

Create interpolator.

Arguments

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

Interpolator.

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

Constructor.

private elemental subroutine destroy(self)

Destoy interpolator.

Arguments

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

Interpolator.