Derived types and procedures to solve 1D PBEs.
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") |
Initialize pbesol
object.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | npoints |
number of time points, i.e. |
||
integer, | intent(in) | :: | ncells |
number of grid cells, i.e. |
||
integer, | intent(in) | :: | nenvs |
number of environment variables, i.e. |
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 |
private function pbe_init (grid, g, a, b, d, moment, update_a, update_b, update_d, name) | Initialize |
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 |
1D PBE solution 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 |
|
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 |
private pure function pbesol_init (npoints, ncells, nenvs) | Initialize |
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 |