pbepack_break Module

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


Uses

  • module~~pbepack_break~~UsesGraph module~pbepack_break pbepack_break hrweno_grids hrweno_grids module~pbepack_break->hrweno_grids module~pbepack_basetypes pbepack_basetypes module~pbepack_break->module~pbepack_basetypes module~pbepack_kinds pbepack_kinds module~pbepack_break->module~pbepack_kinds module~pbepack_basetypes->hrweno_grids module~pbepack_basetypes->module~pbepack_kinds module~pbepack_lib pbepack_lib 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_break~~UsedByGraph module~pbepack_break pbepack_break module~pbepack_pbe pbepack_pbe module~pbepack_pbe->module~pbepack_break module~pbepack pbepack module~pbepack->module~pbepack_pbe

Interfaces

public interface breakterm

  • private function breakterm_init(grid, b, d, moment, update_b, update_d, name) result(self)

    Initialize breakterm object. where is the moment of conserved upon breakage. 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(bfnc_t) :: b

    breakage frequency function,

    procedure(dfnc_t) :: d

    daughter distribution function,

    integer, intent(in), optional :: moment

    moment of conserved during breakage (default=1)

    logical, intent(in), optional :: update_b

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

    logical, intent(in), optional :: update_d

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

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

    name (default="break-term")

    Return Value type(breakterm)


Abstract Interfaces

abstract interface

  • public pure function bfnc_t(x, y)

    Breakage frequency for 1D system

    Arguments

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

    internal coordinate of particle

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

    environment vector

    Return Value real(kind=rk)

abstract interface

  • public pure function dfnc_t(xd, xo, y)

    Daughter distribution for 1D system

    Arguments

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

    internal coordinate of daughter particle

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

    internal coordinate of original particle

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

    environment vector

    Return Value real(kind=rk)


Derived Types

type, public, extends(particleterm) ::  breakterm

Breakage 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 breakterm_init (grid, b, d, moment, update_b, update_d, name)

Initialize breakterm object. where is the moment of conserved upon breakage. 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 => breakterm_eval