Aggregation term 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, |
||
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 |
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 | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(grid1), | intent(in) | :: | grid |
|
||
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 |
|
character(len=*), | intent(in), | optional | :: | name |
name (default="agg-term") |
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 |
Setter method for moment.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(particleterm), | intent(inout) | :: | self |
object |
||
integer, | intent(in) | :: | moment |
moment of to be preserved upon aggregation/breakage |
Allocator for arrays of particleterm
class.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(particleterm), | intent(inout) | :: | self |
object |
Evaluate rate of aggregation at a given instant .
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(aggterm), | 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(out), | optional | :: | udot(:) |
net rate of change (birth-death), |
|
real(kind=rk), | intent(out), | optional | :: | udot_birth(:) |
rate of birth |
|
real(kind=rk), | intent(out), | optional | :: | udot_death(:) |
rate of death |
type, extends(particleterm) :: aggterm !! Aggregation term class. private procedure(afnc_t), nopass, pointer :: afnc => null() !! aggregation frequency function type(spmatrix) :: a !! matrix of aggregation frequencies type(combarray), allocatable :: array_comb(:) !! array of particle combinations and weights for birth term logical :: update_a = .true. !! flag to select if matrix **a** should be updated at each step. logical :: empty_a = .true. !! flag indicating state of matrix **a**. contains procedure, pass(self), public :: eval => aggterm_eval procedure, pass(self), private :: compute_combinations procedure, pass(self), private :: compute_a end type aggterm