c_sbase Derived Type

type, private, ABSTRACT :: c_sbase


Inherits

type~~c_sbase~~InheritsGraph type~c_sbase c_sbase type~sll_c_spline_matrix sll_c_spline_matrix type~c_sbase->type~sll_c_spline_matrix mass

Inherited by

type~~c_sbase~~InheritedByGraph type~c_sbase c_sbase type~t_sbase t_sBase type~t_sbase->type~c_sbase type~t_base t_base type~t_base->type~t_sbase s type~t_sbase_disc t_sBase_disc type~t_sbase_disc->type~t_sbase type~t_sbase_spl t_sBase_spl type~t_sbase_spl->type~t_sbase type~t_transform_sfl t_transform_sfl type~t_transform_sfl->type~t_base X1sfl_base, X2sfl_base, GZ_base, GZsfl_base

Components

Type Visibility Attributes Name Initial
integer, public :: deg

input parameter: degree of Spline/polynomial

integer, public :: degGP

number of Gauss-points (degGP+1) per element >= deg

integer, public :: continuity

input parameter: full spline (=deg-1) or discontinuous (=-1)

integer, public :: nGP

global number of gausspoints = (degGP+1)*nElems

integer, public :: nGP_str

local number of gausspoints = (degGP+1)*nElems per MPI subdomain

integer, public :: nGP_end

local number of gausspoints = (degGP+1)*nElems per MPI subdomain

integer, public :: nbase

total number of degree of freedom / global basis functions

class(sll_c_spline_matrix), public, ALLOCATABLE :: mass

Type-Bound Procedures

procedure(i_sub_sbase_init), public, deferred :: init

  • subroutine i_sub_sbase_init(sf, deg_in, continuity_in, grid_in, degGP_in) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(c_sbase), intent(inout) :: sf
    integer, intent(in) :: deg_in
    integer, intent(in) :: continuity_in
    class(t_sGrid), intent(in), TARGET :: grid_in
    integer, intent(in) :: degGP_in

procedure(i_sub_sbase_free), public, deferred :: free

  • subroutine i_sub_sbase_free(sf) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(c_sbase), intent(inout) :: sf

procedure(i_sub_sbase_copy), public, deferred :: copy

  • subroutine i_sub_sbase_copy(sf, tocopy) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(c_sbase), intent(inout) :: sf
    class(c_sbase), intent(in) :: tocopy

procedure(i_sub_sbase_compare), public, deferred :: compare

  • subroutine i_sub_sbase_compare(sf, tocompare, is_same, cond_out) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(c_sbase), intent(in) :: sf
    class(c_sbase), intent(in) :: tocompare
    logical, intent(out), optional :: is_same
    logical, intent(out), optional :: cond_out(:)

procedure(i_sub_sbase_change_base), public, deferred :: change_base

  • subroutine i_sub_sbase_change_base(sf, old_sBase, iterDim, old_data, sf_data) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(c_sbase), intent(in) :: sf
    class(c_sbase), intent(in) :: old_sBase
    integer, intent(in) :: iterDim
    real(kind=wp), intent(in) :: old_data(:,:)
    real(kind=wp), intent(out) :: sf_data(:,:)

procedure(i_sub_sBase_eval), public, deferred :: eval

  • subroutine i_sub_sBase_eval(sf, x, deriv, iElem, base_x) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(c_sbase), intent(in) :: sf

    self

    real(kind=wp), intent(in) :: x
    integer, intent(in) :: deriv
    integer, intent(out) :: iElem
    real(kind=wp), intent(out) :: base_x(:)

procedure(i_fun_sbase_evalDOF_s), public, deferred :: evalDOF_s

  • function i_fun_sbase_evalDOF_s(sf, x, deriv, DOFs) result(y) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(c_sbase), intent(in) :: sf
    real(kind=wp), intent(in) :: x
    integer, intent(in) :: deriv
    real(kind=wp), intent(in) :: DOFs(:)

    Return Value real(kind=wp)

procedure(i_fun_sbase_evalDOF2D_s), public, deferred :: evalDOF2D_s

  • function i_fun_sbase_evalDOF2D_s(sf, x, nd, deriv, DOFs) result(y) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(c_sbase), intent(in) :: sf
    real(kind=wp), intent(in) :: x
    integer, intent(in) :: nd
    integer, intent(in) :: deriv
    real(kind=wp), intent(in) :: DOFs(1:sf%nBase,1:nd)

    Return Value real(kind=wp), (1:nd)

procedure(i_fun_sbase_evalDOF_base), public, deferred :: evalDOF_base

  • function i_fun_sbase_evalDOF_base(sf, iElem, base_x, DOFs) result(y) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(c_sbase), intent(in) :: sf
    integer, intent(in) :: iElem
    real(kind=wp), intent(in) :: base_x(0:sf%deg)
    real(kind=wp), intent(in) :: DOFs(:)

    Return Value real(kind=wp)

procedure(i_fun_sbase_evalDOF_GP), public, deferred :: evalDOF_GP

  • function i_fun_sbase_evalDOF_GP(sf, deriv, DOFs) result(y_GP) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(c_sbase), intent(in) :: sf
    integer, intent(in) :: deriv
    real(kind=wp), intent(in) :: DOFs(:)

    Return Value real(kind=wp), (sf%nGP)

procedure(i_fun_sbase_initDOF), public, deferred :: initDOF

  • function i_fun_sbase_initDOF(sf, g_IP) result(DOFs) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(c_sbase), intent(in) :: sf
    real(kind=wp), intent(in) :: g_IP(:)

    Return Value real(kind=wp), (1:sf%nBase)

procedure(i_sub_sBase_applyBCtoDOF), public, deferred :: applyBCtoDOF

  • subroutine i_sub_sBase_applyBCtoDOF(sf, DOFs, BC_Type, BC_Val) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(c_sbase), intent(in) :: sf
    real(kind=wp), intent(inout) :: DOFs(1:sf%nBase)
    integer, intent(in) :: BC_Type(2)
    real(kind=wp), intent(in) :: BC_Val(2)

procedure(i_sub_sBase_applyBCtoRHS), public, deferred :: applyBCtoRHS

  • subroutine i_sub_sBase_applyBCtoRHS(sf, RHS, BC_Type) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(c_sbase), intent(in) :: sf
    real(kind=wp), intent(inout) :: RHS(1:sf%nBase)
    integer, intent(in) :: BC_Type(2)

Source Code

TYPE, ABSTRACT :: c_sbase
  !---------------------------------------------------------------------------------------------------------------------------------
  !input parameters
  INTEGER              :: deg                      !! input parameter: degree of Spline/polynomial
  INTEGER              :: degGP                    !! number of Gauss-points (degGP+1) per element >= deg
  INTEGER              :: continuity               !! input parameter: full spline (=deg-1) or discontinuous (=-1)
  !---------------------------------------------------------------------------------------------------------------------------------
  INTEGER              :: nGP                      !! global number of gausspoints = (degGP+1)*nElems
  INTEGER              :: nGP_str, nGP_end         !! local number of gausspoints = (degGP+1)*nElems per MPI subdomain
  INTEGER              :: nbase                    !! total number of degree of freedom / global basis functions
  CLASS(sll_c_spline_matrix),ALLOCATABLE :: mass
  CONTAINS
    PROCEDURE(i_sub_sbase_init          ),DEFERRED :: init
    PROCEDURE(i_sub_sbase_free          ),DEFERRED :: free
    PROCEDURE(i_sub_sbase_copy          ),DEFERRED :: copy
    PROCEDURE(i_sub_sbase_compare       ),DEFERRED :: compare
    PROCEDURE(i_sub_sbase_change_base   ),DEFERRED :: change_base
    PROCEDURE(i_sub_sbase_eval          ),DEFERRED :: eval
    PROCEDURE(i_fun_sbase_evalDOF_s     ),DEFERRED :: evalDOF_s
    PROCEDURE(i_fun_sbase_evalDOF2D_s   ),DEFERRED :: evalDOF2D_s
    PROCEDURE(i_fun_sbase_evalDOF_base  ),DEFERRED :: evalDOF_base
    PROCEDURE(i_fun_sbase_evalDOF_GP    ),DEFERRED :: evalDOF_GP
    PROCEDURE(i_fun_sbase_initDOF       ),DEFERRED :: initDOF
    PROCEDURE(i_sub_sbase_applyBCtoDOF  ),DEFERRED :: applyBCtoDOF
    PROCEDURE(i_sub_sbase_applyBCtoRHS  ),DEFERRED :: applyBCtoRHS

END TYPE c_sbase