Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=wp), | private, | parameter | :: | BH_A(BH_E) | = | [0.23477481312586_wp, 0.28549576238194_wp, 0.28479416718255_wp, 0.26149775537574_wp, 0.32056200511938_wp, 0.35354490689146_wp, 0.39635904496921_wp, 0.42253908596514_wp, 0.48317384225265_wp, 0.63661146557001_wp] |
Non-dimensional weights in BH kernel |
integer, | private, | parameter | :: | BH_E | = | 10 |
Number of exponential functions used to approximate tail of BH kernel |
integer, | private, | parameter | :: | BH_N | = | 5 |
Number of entries to track in time history |
real(kind=wp), | private, | parameter | :: | BH_T(BH_E) | = | [0.1_wp, 0.3_wp, 1.0_wp, 3.9_wp, 10.0_wp, 40.0_wp, 190.0_wp, 1000.0_wp, 6500.0_wp, 50000.0_wp] |
Non-dimensional time in BH kernel |
integer, | private, | parameter | :: | PP_TYPE_BASSET | = | 2 |
Type used when computing Basset History force |
integer, | private, | parameter | :: | PP_TYPE_DEFAULT | = | 1 |
Default type |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(particle_set), | intent(inout) | :: | this |
Lagrangian array to dump |
||
integer, | intent(out) | :: | iter |
Iteration at write |
||
real(kind=wp), | intent(out) | :: | time |
Time at write |
A particle type that supports the computation of Basset History force
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=WP), | public | :: | Fb(3) |
Basset force |
|||
real(kind=WP), | public | :: | Fc(3) |
Collision force applied on particle |
|||
real(kind=WP), | public | :: | Fcold(3) |
Old collision force |
|||
real(kind=WP), | public | :: | Fh(3) |
Hydrodynamic force applied on particle |
|||
real(kind=WP), | public | :: | Fhold(3) |
Old hydrodynamic force |
|||
real(kind=WP), | public | :: | Fix(BH_E) |
Exponential tails of Basset kernel (x-dir) |
|||
real(kind=WP), | public | :: | Fiy(BH_E) |
Exponential tails of Basset kernel (y-dir) |
|||
real(kind=WP), | public | :: | Fiz(BH_E) |
Exponential tails of Basset kernel (z-idr) |
|||
real(kind=WP), | public | :: | Tc(3) |
Collision torque applied on particle |
|||
real(kind=WP), | public | :: | Tcold(3) |
Old collision torque |
|||
real(kind=WP), | public | :: | Th(3) |
Hydrodynamic torque applied on particle |
|||
real(kind=WP), | public | :: | Thold(3) |
Old hydrodynamic torque |
|||
integer, | public | :: | c(3) |
nearest cell |
|||
real(kind=WP), | public | :: | d |
Diameter of the particle |
|||
real(kind=WP), | public | :: | gx(BH_N+1) |
Time series of slip velocity derivatives (x-dir) |
|||
real(kind=WP), | public | :: | gy(BH_N+1) |
Time series of slip velocity derivatives (y-dir) |
|||
real(kind=WP), | public | :: | gz(BH_N+1) |
Time series of slip velocity derivatives (z-idr) |
|||
integer(kind=leapI8), | public | :: | id |
Identifying number (inactive if <0) |
|||
real(kind=WP), | public | :: | p(3) |
position |
|||
real(kind=WP), | public | :: | pold(3) |
Old particle position |
|||
real(kind=WP), | public | :: | rho |
Particle density |
|||
integer, | public | :: | s |
A tag |
|||
real(kind=WP), | public | :: | v(3) |
Particle velocity |
|||
real(kind=WP), | public | :: | vold(3) |
Old particle velocity |
|||
real(kind=WP), | public | :: | vs(3) |
Slip velocity |
|||
real(kind=WP), | public | :: | w(3) |
Particle velocity |
|||
real(kind=WP), | public | :: | wold(3) |
Old particle angular velocity |
procedure, public :: Extrapolate => lagrangian_obj_Extrapolate | |
procedure, public :: Interpolate => lagrangian_obj_Interpolate | |
procedure, public :: Locate => lagrangian_obj_Locate | |
procedure, public :: assign => particle_BH_obj_assign | |
generic, public :: assignment(=) => assign |
An extended Lagrangian object that represents a Lagrangian solid particle or liquid droplet
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=WP), | public | :: | Fc(3) |
Collision force applied on particle |
|||
real(kind=WP), | public | :: | Fcold(3) |
Old collision force |
|||
real(kind=WP), | public | :: | Fh(3) |
Hydrodynamic force applied on particle |
|||
real(kind=WP), | public | :: | Fhold(3) |
Old hydrodynamic force |
|||
real(kind=WP), | public | :: | Tc(3) |
Collision torque applied on particle |
|||
real(kind=WP), | public | :: | Tcold(3) |
Old collision torque |
|||
real(kind=WP), | public | :: | Th(3) |
Hydrodynamic torque applied on particle |
|||
real(kind=WP), | public | :: | Thold(3) |
Old hydrodynamic torque |
|||
integer, | public | :: | c(3) |
nearest cell |
|||
real(kind=WP), | public | :: | d |
Diameter of the particle |
|||
integer(kind=leapI8), | public | :: | id |
Identifying number (inactive if <0) |
|||
real(kind=WP), | public | :: | p(3) |
position |
|||
real(kind=WP), | public | :: | pold(3) |
Old particle position |
|||
real(kind=WP), | public | :: | rho |
Particle density |
|||
integer, | public | :: | s |
A tag |
|||
real(kind=WP), | public | :: | v(3) |
Particle velocity |
|||
real(kind=WP), | public | :: | vold(3) |
Old particle velocity |
|||
real(kind=WP), | public | :: | w(3) |
Particle velocity |
|||
real(kind=WP), | public | :: | wold(3) |
Old particle angular velocity |
procedure, public :: Extrapolate => lagrangian_obj_Extrapolate | |
procedure, public :: Interpolate => lagrangian_obj_Interpolate | |
procedure, public :: Locate => lagrangian_obj_Locate | |
procedure, public :: assign => particle_obj_assign | |
generic, public :: assignment(=) => assign |
Array of particles
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | MPI_SIZE | = | 44 |
MPI size |
|
type(MPI_Datatype), | public | :: | MPI_TYPE |
MPI variable type |
|||
type(block_obj), | public, | pointer | :: | block | => | null() |
Associated block structure |
type(block_obj), | public | :: | cblock |
Collision block |
|||
integer, | public | :: | count | = | 0 |
Total count across all MPI ranks |
|
integer, | public | :: | count_ | = | 0 |
Local count for this rank |
|
integer, | public, | allocatable | :: | count_proc(:) |
|
||
procedure(kernel_1D), | public, | nopass, pointer | :: | g1ex | => | int_g1_triangle |
1D kernel used in extrapolations |
procedure(kernel_1D), | public, | nopass, pointer | :: | g1in | => | g1_triangle |
1D kernel used in interpolations |
real(kind=wp), | public | :: | l_filter |
Half filter width |
|||
character(len=:), | public, | allocatable | :: | name |
Name of the Lagrangian set |
||
type(sllist_obj), | public, | allocatable | :: | neighbors(:,:,:) |
Singly linked list of neighbors |
||
integer, | public, | allocatable | :: | objincell(:,:,:) |
Number of objects in this list |
||
logical, | public | :: | overwrite | = | .true. |
Switch to overwrite IO files |
|
class(lagrangian_obj), | public, | allocatable | :: | p(:) |
Array of Lagrangian_obj or any extended type |
||
type(parallel_obj), | public, | pointer | :: | parallel | => | null() |
Associated parallel structure |
integer, | public | :: | part_type | = | PP_TYPE_DEFAULT |
Particle type to use |
|
character(len=str64), | public | :: | read_file |
file to read |
|||
class(lagrangian_obj), | public, | allocatable | :: | sample |
Sample used in allocation of polymorphic data |
||
integer, | public | :: | stib | = | 3 |
Stencil size for filtering |
|
character(len=str64), | public | :: | write_file |
file to write |
Assignment
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(particle_BH_obj), | intent(inout) | :: | this |
An particle_obj object |
||
class(lagrangian_obj), | intent(in) | :: | val |
An particle_obj object |
Set the sample type used in allocation of polymorphic variables
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(particle_set), | intent(inout) | :: | this |
Lagrangian array to dump |
Assignment
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(particle_obj), | intent(inout) | :: | this |
An particle_obj object |
||
class(lagrangian_obj), | intent(in) | :: | val |
An particle_obj object |
Filter a quantity to the Eulerian grid
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(particle_set), | intent(inout) | :: | this |
Set of Lagrangian objects |
||
character(len=*), | intent(in) | :: | var |
Variable to compute |
||
type(eulerian_obj_r), | intent(inout) | :: | field |
Filtered quantity |
Alternate initialization to be used when particle type is present
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(particle_set), | intent(inout) | :: | this |
Set of particles |
||
character(len=*), | intent(in) | :: | name |
Name of variable |
||
type(block_obj), | intent(in), | target | :: | block |
A block object |
|
type(parallel_obj), | intent(in), | target | :: | parallel |
parallel structure from main program |
|
character(len=*), | intent(in) | :: | type |
particle type |
Read particle data from file in parallel
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(particle_set), | intent(inout) | :: | this |
Lagrangian array to dump |
||
integer, | intent(out) | :: | iter |
Iteration at write |
||
real(kind=wp), | intent(out) | :: | time |
Time at write |
Set up parameters used when creating the MPI derived type
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(particle_set), | intent(inout) | :: | this |
Set of Lagrangian objects |
||
type(MPI_Datatype), | intent(out), | allocatable | :: | types(:) |
Array of types |
|
integer, | intent(out), | allocatable | :: | lengths(:) |
Array of lengths |
|
integer(kind=MPI_ADDRESS_KIND), | intent(out), | allocatable | :: | displacement(:) |
Array of displacements |
Set up parameters used when creating the MPI derived type
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(particle_set), | intent(inout) | :: | this |
Set of Lagrangian objects |
||
type(MPI_Datatype), | intent(out), | allocatable | :: | types(:) |
Array of types |
|
integer, | intent(out), | allocatable | :: | lengths(:) |
Array of lengths |
|
integer(kind=MPI_ADDRESS_KIND), | intent(out), | allocatable | :: | displacement(:) |
Array of displacements |
Set up parameters used when creating the MPI derived type
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(particle_set), | intent(inout) | :: | this |
Set of Lagrangian objects |
||
type(MPI_Datatype), | intent(out), | allocatable | :: | types(:) |
Array of types |
|
integer, | intent(out), | allocatable | :: | lengths(:) |
Array of lengths |
|
integer(kind=MPI_ADDRESS_KIND), | intent(out), | allocatable | :: | displacement(:) |
Array of displacements |
Write particle data to file in parallel
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(particle_set), | intent(inout) | :: | this |
Lagrangian array to dump |
||
integer, | intent(in) | :: | iter |
Iteration at write |
||
real(kind=wp), | intent(in) | :: | time |
Time at write |