lagrangian_obj Derived Type

type, public, abstract :: lagrangian_obj

Base lagrangian object


Inherited by

type~~lagrangian_obj~~InheritedByGraph type~lagrangian_obj lagrangian_obj type~lagrangian_set lagrangian_set type~lagrangian_set->type~lagrangian_obj p, sample type~marker_obj marker_obj type~marker_obj->type~lagrangian_obj type~particle_obj particle_obj type~particle_obj->type~lagrangian_obj type~respart_obj ResPart_obj type~respart_obj->type~lagrangian_obj type~marker_set marker_set type~marker_set->type~lagrangian_set type~particle_bh_obj particle_BH_obj type~particle_bh_obj->type~particle_obj type~particle_set particle_set type~particle_set->type~lagrangian_set type~respart_set ResPart_set type~respart_set->type~lagrangian_set type~respart_set->type~marker_set ib type~cdifs_obj cdifs_obj type~cdifs_obj->type~marker_set IB type~cdifs_obj->type~respart_set RP type~grans_obj grans_obj type~grans_obj->type~marker_set IB type~grans_obj->type~particle_set PP type~grans_obj->type~respart_set RP type~solid_obj solid_obj type~solid_obj->type~marker_set type~solid_set solid_set type~solid_set->type~solid_obj p

Components

Type Visibility Attributes Name Initial
integer, public :: c(3)

nearest cell

integer(kind=leapI8), public :: id

Identifying number (inactive if <0)

real(kind=WP), public :: p(3)

position


Type-Bound Procedures

procedure, public :: Extrapolate => lagrangian_obj_Extrapolate

  • private subroutine lagrangian_obj_Extrapolate(this, l_filter, slo, shi, block, int_g1ex, bump)

    Get a bump function centered on the lagrangian object

    Arguments

    Type IntentOptional Attributes Name
    class(lagrangian_obj), intent(in) :: this

    A Lagrangian object

    real(kind=wp), intent(in) :: l_filter

    Filter size

    integer, intent(in) :: slo(3)

    Stencil lower bound

    integer, intent(in) :: shi(3)

    Stencil higher bound

    type(block_obj), intent(in), pointer :: block

    A block object

    procedure(kernel_1D), intent(in), pointer :: int_g1ex

    Integrated filter kernel

    real(kind=wp), allocatable :: bump(:,:,:)

    The bump function

procedure, public :: Interpolate => lagrangian_obj_Interpolate

  • private function lagrangian_obj_Interpolate(this, l_filter, slo, shi, block, g1in, f) result(inter)

    Routine to interpolate a field f defined on an Eulerian stencil to the location of a lagrangian object

    Arguments

    Type IntentOptional Attributes Name
    class(lagrangian_obj), intent(in) :: this

    A Lagrangian object

    real(kind=wp), intent(in) :: l_filter

    Filter size

    integer, intent(in) :: slo(3)

    Stencil lower bound

    integer, intent(in) :: shi(3)

    Stencil higher bound

    type(block_obj), intent(in), pointer :: block

    A block object

    procedure(kernel_1D), intent(in), pointer :: g1in

    Filter kernel

    real(kind=WP), intent(in) :: f(slo(1):shi(1),slo(2):shi(2),slo(3):shi(3))

    Quantity to interpolate

    Return Value real(kind=WP)

procedure, public :: Locate => lagrangian_obj_Locate

  • private function lagrangian_obj_Locate(this, block) result(cell)

    Locate a Lagrangian object on an external grid. Returns the location of the cell containing the object.

    Arguments

    Type IntentOptional Attributes Name
    class(lagrangian_obj), intent(inout) :: this

    A Lagrangian object

    class(block_obj), intent(in) :: block

    External block

    Return Value integer, (3)

procedure(lagrangian_obj_assign), public, deferred :: assign

  • subroutine lagrangian_obj_assign(this, val) Prototype

    Deferred assignemnt ofan extended type value

    Arguments

    Type IntentOptional Attributes Name
    class(lagrangian_obj), intent(inout) :: this

    A Lagrangian object

    class(lagrangian_obj), intent(in) :: val

    Value to be assigned

generic, public :: assignment(=) => assign