pbepack_agg Module

Derived types and procedures to compute the aggregation term for 1D PBEs.


Uses

  • module~~pbepack_agg~~UsesGraph module~pbepack_agg pbepack_agg hrweno_grids hrweno_grids module~pbepack_agg->hrweno_grids module~pbepack_aggtypes pbepack_aggtypes module~pbepack_agg->module~pbepack_aggtypes module~pbepack_algebra pbepack_algebra module~pbepack_agg->module~pbepack_algebra module~pbepack_basetypes pbepack_basetypes module~pbepack_agg->module~pbepack_basetypes module~pbepack_kinds pbepack_kinds module~pbepack_agg->module~pbepack_kinds module~pbepack_lib pbepack_lib module~pbepack_agg->module~pbepack_lib module~pbepack_aggtypes->module~pbepack_kinds ftlListDoubleModule ftlListDoubleModule module~pbepack_aggtypes->ftlListDoubleModule ftlListIntModule ftlListIntModule module~pbepack_aggtypes->ftlListIntModule module~pbepack_algebra->module~pbepack_kinds module~pbepack_basetypes->hrweno_grids module~pbepack_basetypes->module~pbepack_kinds module~pbepack_basetypes->module~pbepack_lib iso_fortran_env iso_fortran_env module~pbepack_kinds->iso_fortran_env module~pbepack_lib->module~pbepack_kinds stdlib_math stdlib_math module~pbepack_lib->stdlib_math stdlib_optval stdlib_optval module~pbepack_lib->stdlib_optval stdlib_strings stdlib_strings module~pbepack_lib->stdlib_strings

Used by

  • module~~pbepack_agg~~UsedByGraph module~pbepack_agg pbepack_agg module~pbepack_pbe pbepack_pbe module~pbepack_pbe->module~pbepack_agg module~pbepack pbepack module~pbepack->module~pbepack_pbe

Interfaces

public interface aggterm

  • private function aggterm_init(grid, a, moment, update_a, name) result(self)

    Initialize aggterm object. where is the moment of conserved upon aggregation. For example, if denotes particle mass or volume, then , whereas if denotes particle radius or diameter, then .

    Arguments

    Type IntentOptional Attributes Name
    type(grid1), intent(in) :: grid

    grid1 object

    procedure(afnc_t) :: a

    aggregation frequency function,

    integer, intent(in), optional :: moment

    moment of conserved during aggregation (default=1)

    logical, intent(in), optional :: update_a

    if true, is reevaluated at each step (default=true)

    character(len=*), intent(in), optional :: name

    name (default="agg-term")

    Return Value type(aggterm)


Abstract Interfaces

abstract interface

  • public pure function afnc_t(xa, xb, y)

    Aggregation frequency for 1D system

    Arguments

    Type IntentOptional Attributes Name
    real(kind=rk), intent(in) :: xa

    internal coordinate of particle a

    real(kind=rk), intent(in) :: xb

    internal coordinate of particle b

    real(kind=rk), intent(in) :: y(:)

    environment vector

    Return Value real(kind=rk)


Derived Types

type, public, extends(particleterm) ::  aggterm

Aggregation term class.

Components

Type Visibility Attributes Name Initial
character(len=:), public, allocatable :: name

object name

character(len=:), public, allocatable :: msg

error message

integer, public :: ierr = 0

error code

logical, public :: inited = .false.

initialization flag

type(grid1), public, pointer :: grid => null()

pointer to grid object

real(kind=rk), public, allocatable :: udot(:)

net rate of change,

integer, public :: moment = 1

moment of conserved during aggregation/breakage

real(kind=rk), public, allocatable :: udot_birth(:)

rate of birth

real(kind=rk), public, allocatable :: udot_death(:)

rate of death

Constructor

private function aggterm_init (grid, a, moment, update_a, name)

Initialize aggterm object. where is the moment of conserved upon aggregation. For example, if denotes particle mass or volume, then , whereas if denotes particle radius or diameter, then .

Type-Bound Procedures

procedure, public, pass(self) :: set_name
procedure, public, pass(self) :: error_msg
procedure, public, pass(self) :: check_inited
procedure, public, pass(self) :: set_grid
procedure, public, pass(self) :: pbeterm_allocations
procedure, public, pass(self) :: set_moment
procedure, public, pass(self) :: particleterm_allocations
procedure, public, pass(self) :: eval => aggterm_eval