smoothness_indicators_js Derived Type

type, public, extends(smoothness_indicators) :: smoothness_indicators_js

type~~smoothness_indicators_js~~InheritsGraph type~smoothness_indicators_js smoothness_indicators_js type~smoothness_indicators smoothness_indicators type~smoothness_indicators->type~smoothness_indicators_js type~base_object base_object type~base_object->type~smoothness_indicators
Help


Jiang-Shu and Gerolymos-Senechal-Vallet smoothness indicators object.



Components

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

Smoothness indicators [1:2,0:S-1].

real(kind=R_P), private, allocatable:: coef(:,:,:)

Smoothness indicators coefficients [1:2,0:S-1,0:S-1].


Type-Bound Procedures

procedure, public, pass(self) :: compute

Compute smoothness indicators.

  • private pure subroutine compute(self, S, stencil, f1, f2, ff)

    Compute smoothness indicators.

    Arguments

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

    Smoothness indicator.

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

    Number of stencils actually used.

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

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

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

    Faces to be computed.

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

    Faces to be computed.

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

    Faces to be computed.

procedure, public, nopass :: description

Return smoothness indicators string-description.

  • private pure function description() result(string)

    Return smoothness indicators string-description.

    Arguments

    None

    Return Value character(len=:), allocatable

    String-description.

procedure, public, pass(self) :: create

Create smoothness indicators.

  • private pure subroutine create(self, constructor)

    Create smoothness indicators.

    Arguments

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

    Smoothness indicators.

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

    Smoothness indicators constructor.

procedure, public, pass(self) :: destroy

Destroy smoothness indicators.

  • private elemental subroutine destroy(self)

    Destroy smoothness indicators.

    Arguments

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

    Smoothenss indicators.

Source Code

type, extends(smoothness_indicators) :: smoothness_indicators_js
  !< Jiang-Shu and Gerolymos-Senechal-Vallet smoothness indicators object.
  !<
  !< @note The provided WENO optimal weights implements the optimal weights defined in *Efficient Implementation of Weighted ENO
  !< Schemes*, Guang-Shan Jiang, Chi-Wang Shu, JCP, 1996, vol. 126, pp. 202--228, doi:10.1006/jcph.1996.0130 and
  !< *Very-high-order weno schemes*, G. A. Gerolymos, D. Sénéchal, I. Vallet, JCP, 2009, vol. 228, pp. 8481-8524,
  !< doi:10.1016/j.jcp.2009.07.039
  private
  real(R_P), allocatable :: coef(:,:,:) !< Smoothness indicators coefficients [1:2,0:S-1,0:S-1].
  contains
    ! deferred public methods
    procedure, pass(self) :: compute     !< Compute smoothness indicators.
    procedure, nopass     :: description !< Return smoothness indicators string-description.
    ! overridden public methods
    procedure, pass(self) :: create  !< Create smoothness indicators.
    procedure, pass(self) :: destroy !< Destroy smoothness indicators.
endtype smoothness_indicators_js