alpha_coefficients_m Derived Type

type, public, extends(alpha_coefficients) :: alpha_coefficients_m

type~~alpha_coefficients_m~~InheritsGraph type~alpha_coefficients_m alpha_coefficients_m type~alpha_coefficients alpha_coefficients type~alpha_coefficients->type~alpha_coefficients_m alpha_base type~alpha_coefficients->type~alpha_coefficients_m type~base_object base_object type~base_object->type~alpha_coefficients
Help


Henrick alpha coefficients object.


Source Code


Components

TypeVisibility AttributesNameInitial
real(kind=R_P), public, allocatable:: alpha_coef(:,:)

Alpha coefficients [1:2,0:S-1]

real(kind=R_P), public, allocatable:: alpha_tot(:)

Sum of alpha coefficients

class(alpha_coefficients), public, allocatable:: alpha_base

Base alpha coefficients to be re-mapped.


Type-Bound Procedures

procedure, public, pass(self) :: compute

Compute alpha coefficients.

  • private pure subroutine compute(self, S, weight_opt, IS, eps, f1, f2)

    Compute alpha coefficients.

    Arguments

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

    Alpha coefficients.

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

    Number of stencils used.

    real(kind=R_P), intent(in) :: weight_opt(1:2,0:S-1)

    Optimal weight of the stencil.

    real(kind=R_P), intent(in) :: IS(1:2,0:S-1)

    Smoothness indicators of the stencils.

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

    Parameter for avoiding divided by zero.

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

    Faces to be computed.

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

    Faces to be computed.

procedure, public, nopass :: description

Return alpha coefficients string-description.

  • private pure function description() result(string)

    Return alpha coefficients string-descripition.

    Arguments

    None

    Return Value character(len=:), allocatable

    String-description.

procedure, public, pass(self) :: create

Create alpha coefficients.

  • private pure subroutine create(self, constructor)

    Create alpha coefficients.

    Arguments

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

    Alpha coefficients.

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

    Alpha coefficients constructor.

procedure, public, pass(self) :: destroy

Destroy alpha coefficients.

  • private elemental subroutine destroy(self)

    Destroy alpha coefficients.

    Arguments

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

    Alpha coefficients.

Source Code

type, extends(alpha_coefficients) :: alpha_coefficients_m
  !< Henrick alpha coefficients object.
  !<
  !< @note The provided WENO alpha coefficient implements the alpha coefficients defined in *Mapped weighted essentially
  !< non-oscillatory schemes: Achieving optimal order near critical points*, Andrew K. Henrick, Tariq D. Aslam, Joseph M. Powers,
  !< JCP, 2005, vol. 207, pp. 542-567, doi:10.1016/j.jcp.2005.01.023.
  class(alpha_coefficients), allocatable :: alpha_base !< Base alpha coefficients to be re-mapped.
  contains
    ! deferred public methods
    procedure, pass(self) :: compute     !< Compute alpha coefficients.
    procedure, nopass     :: description !< Return alpha coefficients string-description.
    ! public methods
    procedure, pass(self) :: create  !< Create alpha coefficients.
    procedure, pass(self) :: destroy !< Destroy alpha coefficients.
endtype alpha_coefficients_m