BoundaryConditionList Derived Type

type, public :: BoundaryConditionList


Inherits

type~~boundaryconditionlist~~InheritsGraph type~boundaryconditionlist BoundaryConditionList type~boundarycondition BoundaryCondition type~boundaryconditionlist->type~boundarycondition current, head, tail type~boundarycondition->type~boundarycondition next, prev c_ptr c_ptr type~boundarycondition->c_ptr elements_gpu, sides_gpu

Inherited by

type~~boundaryconditionlist~~InheritedByGraph type~boundaryconditionlist BoundaryConditionList type~dgmodel2d_t DGModel2D_t type~dgmodel2d_t->type~boundaryconditionlist hyperbolicBCs, parabolicBCs type~dgmodel3d_t DGModel3D_t type~dgmodel3d_t->type~boundaryconditionlist hyperbolicBCs, parabolicBCs type~dgmodel1d_t DGModel1D_t type~dgmodel1d_t->type~boundaryconditionlist hyperbolicBCs, parabolicBCs type~ecdgmodel3d_t ECDGModel3D_t type~ecdgmodel3d_t->type~dgmodel3d_t type~ecdgmodel2d_t ECDGModel2D_t type~ecdgmodel2d_t->type~dgmodel2d_t type~dgmodel1d DGModel1D type~dgmodel1d->type~dgmodel1d_t type~dgmodel2d DGModel2D type~dgmodel2d->type~dgmodel2d_t type~dgmodel3d DGModel3D type~dgmodel3d->type~dgmodel3d_t type~dgmodel2d~2 DGModel2D type~dgmodel2d~2->type~dgmodel2d_t type~dgmodel3d~2 DGModel3D type~dgmodel3d~2->type~dgmodel3d_t type~dgmodel1d~2 DGModel1D type~dgmodel1d~2->type~dgmodel1d_t type~ecdgmodel3d ECDGModel3D type~ecdgmodel3d->type~ecdgmodel3d_t type~ecdgmodel2d~2 ECDGModel2D type~ecdgmodel2d~2->type~ecdgmodel2d_t type~advection_diffusion_1d_t advection_diffusion_1d_t type~advection_diffusion_1d_t->type~dgmodel1d type~nulldgmodel2d_t NullDGModel2D_t type~nulldgmodel2d_t->type~dgmodel2d type~linearshallowwater2d_t LinearShallowWater2D_t type~linearshallowwater2d_t->type~dgmodel2d type~advection_diffusion_3d_t advection_diffusion_3d_t type~advection_diffusion_3d_t->type~dgmodel3d type~nulldgmodel3d_t NullDGModel3D_t type~nulldgmodel3d_t->type~dgmodel3d type~ecadvection3d_t ECAdvection3D_t type~ecadvection3d_t->type~ecdgmodel3d_t type~ecdgmodel2d ECDGModel2D type~ecdgmodel2d->type~ecdgmodel2d_t type~ecdgmodel3d~2 ECDGModel3D type~ecdgmodel3d~2->type~ecdgmodel3d_t type~ecadvection2d_t ECAdvection2D_t type~ecadvection2d_t->type~ecdgmodel2d_t type~nulldgmodel1d_t NullDGModel1D_t type~nulldgmodel1d_t->type~dgmodel1d type~burgers1d_t Burgers1D_t type~burgers1d_t->type~dgmodel1d type~advection_diffusion_2d_t advection_diffusion_2d_t type~advection_diffusion_2d_t->type~dgmodel2d type~lineareuler2d_t LinearEuler2D_t type~lineareuler2d_t->type~dgmodel2d type~lineareuler3d_t LinearEuler3D_t type~lineareuler3d_t->type~dgmodel3d type~nulldgmodel2d NullDGModel2D type~nulldgmodel2d->type~nulldgmodel2d_t type~advection_diffusion_3d advection_diffusion_3d type~advection_diffusion_3d->type~advection_diffusion_3d_t type~advection_diffusion_3d~2 advection_diffusion_3d type~advection_diffusion_3d~2->type~advection_diffusion_3d_t type~lineareuler2d~2 LinearEuler2D type~lineareuler2d~2->type~lineareuler2d_t type~advection_diffusion_1d~2 advection_diffusion_1d type~advection_diffusion_1d~2->type~advection_diffusion_1d_t type~nulldgmodel2d~2 NullDGModel2D type~nulldgmodel2d~2->type~nulldgmodel2d_t type~ecadvection3d ECAdvection3D type~ecadvection3d->type~ecadvection3d_t type~nulldgmodel1d~2 NullDGModel1D type~nulldgmodel1d~2->type~nulldgmodel1d_t type~linearshallowwater2d~2 LinearShallowWater2D type~linearshallowwater2d~2->type~linearshallowwater2d_t type~lineareuler3d~2 LinearEuler3D type~lineareuler3d~2->type~lineareuler3d_t type~ecadvection3d~2 ECAdvection3D type~ecadvection3d~2->type~ecadvection3d_t type~burgers1d Burgers1D type~burgers1d->type~burgers1d_t type~advection_diffusion_2d advection_diffusion_2d type~advection_diffusion_2d->type~advection_diffusion_2d_t type~advection_diffusion_1d advection_diffusion_1d type~advection_diffusion_1d->type~advection_diffusion_1d_t type~nulldgmodel3d~2 NullDGModel3D type~nulldgmodel3d~2->type~nulldgmodel3d_t type~nulldgmodel1d NullDGModel1D type~nulldgmodel1d->type~nulldgmodel1d_t type~burgers1d~2 Burgers1D type~burgers1d~2->type~burgers1d_t type~advection_diffusion_2d~2 advection_diffusion_2d type~advection_diffusion_2d~2->type~advection_diffusion_2d_t type~ecadvection2d ECAdvection2D type~ecadvection2d->type~ecadvection2d_t type~ecadvection2d~2 ECAdvection2D type~ecadvection2d~2->type~ecadvection2d_t type~lineareuler2d LinearEuler2D type~lineareuler2d->type~lineareuler2d_t type~lineareuler3d LinearEuler3D type~lineareuler3d->type~lineareuler3d_t type~linearshallowwater2d LinearShallowWater2D type~linearshallowwater2d->type~linearshallowwater2d_t type~nulldgmodel3d NullDGModel3D type~nulldgmodel3d->type~nulldgmodel3d_t

Contents

Source Code


Components

TypeVisibilityAttributesNameInitial
type(BoundaryCondition), public, pointer:: current=> null()
type(BoundaryCondition), public, pointer:: head=> null()
integer, public :: nbc
type(BoundaryCondition), public, pointer:: tail=> null()

Type-Bound Procedures

procedure, public :: Free => Free_BCList

procedure, public :: GetBCForID

  • public function GetBCForID(list, bcid) result(node)

    Returns the node associated with the given bcid. If the bcid is not found, a null pointer is returned.

    Arguments

    TypeIntentOptionalAttributesName
    class(BoundaryConditionList), intent(in) :: list
    integer, intent(in) :: bcid

    Return Value type(BoundaryCondition),pointer

procedure, public :: Init => Init_BCList

procedure, private :: MoveNext

procedure, public :: PopulateBoundaries

  • public subroutine PopulateBoundaries(list, bcid, nBoundaries, elements, sides)

    Populate the elements and sides arrays for a registered boundary condition. Called after scanning the mesh to determine which faces belong to each bcid.

    Arguments

    TypeIntentOptionalAttributesName
    class(BoundaryConditionList), intent(inout) :: list
    integer, intent(in) :: bcid
    integer, intent(in) :: nBoundaries
    integer, intent(in) :: elements(1:nBoundaries)
    integer, intent(in) :: sides(1:nBoundaries)

generic, public :: RegisterBoundaryCondition => RegisterbcMethod

  • public subroutine RegisterbcMethod(list, bcid, bcname, bcfunc)

    Register a boundary condition function with the given bcid and bcname. If the bcid is already registered, the function pointer is updated. The elements and sides arrays are not allocated here; call PopulateBoundaries after scanning the mesh.

    Arguments

    TypeIntentOptionalAttributesName
    class(BoundaryConditionList), intent(inout) :: list
    integer, intent(in) :: bcid
    character, intent(in) :: bcname
    procedure(SELF_bcMethod), intent(in), pointer:: bcfunc

procedure, private :: RegisterbcMethod

  • public subroutine RegisterbcMethod(list, bcid, bcname, bcfunc)

    Register a boundary condition function with the given bcid and bcname. If the bcid is already registered, the function pointer is updated. The elements and sides arrays are not allocated here; call PopulateBoundaries after scanning the mesh.

    Arguments

    TypeIntentOptionalAttributesName
    class(BoundaryConditionList), intent(inout) :: list
    integer, intent(in) :: bcid
    character, intent(in) :: bcname
    procedure(SELF_bcMethod), intent(in), pointer:: bcfunc

procedure, private :: rewind

Source Code

  type BoundaryConditionList
    type(BoundaryCondition),pointer :: current => null()
    type(BoundaryCondition),pointer :: head => null()
    type(BoundaryCondition),pointer :: tail => null()
    integer :: nbc

  contains
    procedure,public :: Init => Init_BCList
    procedure,public :: Free => Free_BCList
    procedure,private :: MoveNext
    procedure,private :: rewind
    procedure,public :: GetBCForID
    generic,public :: RegisterBoundaryCondition => RegisterbcMethod
    procedure,private :: RegisterbcMethod
    procedure,public :: PopulateBoundaries

  endtype BoundaryConditionList