pbepack_pbe Module

Derived types and procedures to solve 1D PBEs.


Uses

  • module~~pbepack_pbe~~UsesGraph module~pbepack_pbe pbepack_pbe hrweno_grids hrweno_grids module~pbepack_pbe->hrweno_grids module~pbepack_agg pbepack_agg module~pbepack_pbe->module~pbepack_agg module~pbepack_basetypes pbepack_basetypes module~pbepack_pbe->module~pbepack_basetypes module~pbepack_break pbepack_break module~pbepack_pbe->module~pbepack_break module~pbepack_flow pbepack_flow module~pbepack_pbe->module~pbepack_flow module~pbepack_growth pbepack_growth module~pbepack_pbe->module~pbepack_growth module~pbepack_kinds pbepack_kinds module~pbepack_pbe->module~pbepack_kinds module~pbepack_lib pbepack_lib module~pbepack_pbe->module~pbepack_lib module~pbepack_quadratures pbepack_quadratures module~pbepack_pbe->module~pbepack_quadratures odepack_mod odepack_mod module~pbepack_pbe->odepack_mod module~pbepack_agg->hrweno_grids module~pbepack_agg->module~pbepack_basetypes module~pbepack_agg->module~pbepack_kinds module~pbepack_agg->module~pbepack_lib 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->hrweno_grids module~pbepack_basetypes->module~pbepack_kinds module~pbepack_basetypes->module~pbepack_lib module~pbepack_break->hrweno_grids module~pbepack_break->module~pbepack_basetypes module~pbepack_break->module~pbepack_kinds module~pbepack_flow->hrweno_grids module~pbepack_flow->module~pbepack_basetypes module~pbepack_flow->module~pbepack_kinds module~pbepack_growth->hrweno_grids module~pbepack_growth->module~pbepack_basetypes module~pbepack_growth->module~pbepack_kinds hrweno_fluxes hrweno_fluxes module~pbepack_growth->hrweno_fluxes hrweno_weno hrweno_weno module~pbepack_growth->hrweno_weno 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 module~pbepack_quadratures->hrweno_grids module~pbepack_quadratures->module~pbepack_kinds module~pbepack_quadratures->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

Used by

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

Interfaces

public interface pbe

  • private function pbe_init(grid, g, a, b, d, moment, update_a, update_b, update_d, name) result(self)

    Initialize pbe object.

    Arguments

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

    grid1 object

    procedure(gfnc_t), optional :: g

    growth rate function,

    procedure(afnc_t), optional :: a

    aggregation frequency function,

    procedure(bfnc_t), optional :: b

    breakage frequency function,

    procedure(dfnc_t), optional :: d

    daughter distribution function,

    integer, intent(in), optional :: moment

    moment of conserved during aggregation/breakage (default=1)

    logical, intent(in), optional :: update_a

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

    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="pbe")

    Return Value type(pbe)

public interface pbesol

  • private pure function pbesol_init(npoints, ncells, nenvs) result(res)

    Initialize pbesol object.

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: npoints

    number of time points, i.e. size(times)

    integer, intent(in) :: ncells

    number of grid cells, i.e. size(u)

    integer, intent(in) :: nenvs

    number of environment variables, i.e. size(y)

    Return Value type(pbesol)


Derived Types

type, public, extends(pbeterm) ::  pbe

1D PBE 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,

type(aggterm), public :: agg

aggregation object

type(breakterm), public :: break

breakage object

type(growthterm), public :: growth

growth object

type(flowterm), public :: flow

flow object

Constructor

private function pbe_init (grid, g, a, b, d, moment, update_a, update_b, update_d, name)

Initialize pbe object.

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) :: eval => pbe_eval
procedure, public, pass(self) :: integrate => pbe_integrate

type, public, extends(base) ::  pbesol

1D PBE solution 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

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

vector(npoints) of time points

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

array(ncells,npoints) of

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

array(nenvs,npoints) of

integer, public :: nfev = 0

number of evaluations of

logical, public :: success = .false.

flag indicating if integration was successfull

Constructor

private pure function pbesol_init (npoints, ncells, nenvs)

Initialize pbesol object.

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) :: write => pbesol_write