1D PBE class.
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 |
Initialize pbe
object.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(grid1), | intent(in), | target | :: | grid |
|
|
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 |
|
logical, | intent(in), | optional | :: | update_b |
if |
|
logical, | intent(in), | optional | :: | update_d |
if |
|
character(len=*), | intent(in), | optional | :: | name |
name (default="pbe") |
Setter method for name.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(base), | intent(inout) | :: | self |
object |
||
character(len=*), | intent(in), | optional | :: | name |
name |
|
character(len=*), | intent(in), | optional | :: | default |
default name |
Error method.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(base), | intent(inout) | :: | self |
object |
||
character(len=*), | intent(in) | :: | msg |
message |
Check initialization method.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(base), | intent(inout) | :: | self |
object |
Setter method for grid.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(pbeterm), | intent(inout) | :: | self |
object |
||
type(grid1), | intent(in), | target | :: | grid |
|
Allocator for arrays of pbeterm
class.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(pbeterm), | intent(inout) | :: | self |
object |
Evaluate total rate of change at a given instant.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(pbe), | intent(inout) | :: | self |
object |
||
real(kind=rk), | intent(in) | :: | u(:) |
cell-average number density, |
||
real(kind=rk), | intent(in) | :: | y(:) |
environment vector, |
||
real(kind=rk), | intent(in), | optional | :: | uin(:) |
inlet cell-average number density, |
|
real(kind=rk), | intent(in), | optional | :: | qin |
inlet flowrate, |
|
real(kind=rk), | intent(in), | optional | :: | qout |
outlet flowrate, |
|
real(kind=rk), | intent(in), | optional | :: | v |
system volume, |
|
real(kind=rk), | intent(in), | optional | :: | vdot |
volume derivative, |
|
real(kind=rk), | intent(out), | optional | :: | udot(:) |
total rate of change, |
Integrate PBE using LSODA as ODE solver.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(pbe), | intent(inout) | :: | self |
object |
||
real(kind=rk), | intent(in) | :: | times(:) |
time sequence for which output is wanted; the first value of |
||
procedure(u0fnc_t) | :: | u0fnc |
initial condition of number density, |
|||
real(kind=rk), | intent(in), | optional | :: | y0(:) |
initial condition of environment vector, |
|
procedure(ydotfnc_t), | optional | :: | ydotfnc |
derivative of environment vector, |
||
real(kind=rk), | intent(in), | optional | :: | atol |
absolute tolerance (default=1e-15) |
|
real(kind=rk), | intent(in), | optional | :: | rtol |
relative tolerance (default=1e-5) |
|
logical, | intent(in), | optional | :: | verbose |
verbose flag (default=false) |
type, extends(pbeterm) :: pbe !! 1D PBE class. type(aggterm) :: agg !! aggregation object type(breakterm) :: break !! breakage object type(growthterm) :: growth !! growth object type(flowterm) :: flow !! flow object contains procedure, pass(self), public :: eval => pbe_eval procedure, pass(self), public :: integrate => pbe_integrate end type pbe