Array of particles
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=wp), | public | :: | CPG(3) | = | 0.0_wp |
Constant Pressure Gradient forcing |
|
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 |
integer, | public | :: | count | = | 0 |
Total count across all MPI ranks |
|
integer, | public | :: | count_ | = | 0 |
Local count for this rank |
|
integer, | public, | allocatable | :: | count_proc(:) |
of lagrangian objects per 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 | :: | gravity(3) | = | 0.0_wp |
Gravity |
|
logical, | public | :: | is_initialized | = | .false. |
Flag to determine whether this has been initialized |
|
real(kind=wp), | public | :: | l_filter |
Half filter width |
|||
type(monitor_set), | public, | pointer | :: | monitors | => | null() |
Monitors to print to stdout and files |
character(len=:), | public, | allocatable | :: | name |
Name of the Lagrangian set |
||
type(op_obj), | public, | pointer | :: | op | => | null() |
operators object |
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 |
type(parser_obj), | public, | pointer | :: | parser | => | null() |
Parser for input file |
integer, | public | :: | part_type | = | PP_TYPE_DEFAULT |
Particle type to use |
|
character(len=str64), | public | :: | read_file |
file to read |
|||
real(kind=wp), | public | :: | rhof | = | 1.0_wp |
Fluid density |
|
class(lagrangian_obj), | public, | allocatable | :: | sample |
Sample used in allocation of polymorphic data |
||
integer, | public | :: | stib | = | 3 |
Stencil size for filtering |
|
type(timer_obj), | public, | pointer | :: | timer | => | null() |
Timer utility |
character(len=str64), | public | :: | write_file |
file to write |
Advance centers to next timestep
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(particle_set), | intent(inout) | :: | this |
Collection of Point Particles |
||
real(kind=wp), | intent(in) | :: | dt |
Timestep |
Apply periodic boundary conditions
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lagrangian_set), | intent(inout) | :: | this |
Set of Lagrangian objects |
Change Particle Type. This delete all existing particle data and redclare the associated MPI type.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(particle_set), | intent(inout) | :: | this |
Set of particles |
||
character(len=*), | intent(in) | :: | type |
particle type |
Communicate lagrangian objects across MPI_rank
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lagrangian_set), | intent(inout) | :: | this |
Set of Lagrangian objects |
||
procedure(locator), | optional | :: | GetOwnerRankOpt |
MPI Rank locator for communications |
Determines the size of the MPI derived type
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lagrangian_set), | intent(inout) | :: | this |
Create monitor file for Point Particles
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(particle_set), | intent(inout) | :: | this |
Collection of Point Particles |
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 |
Finalize the ResPart_set type. This subourtine replaces the inheritted lagrangian_final.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ResPart_set), | intent(inout) | :: | this |
Set of resolved partilces |
Frees the MPI derived type
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lagrangian_set), | intent(inout) | :: | this |
Returns the MPI rank that should own this lagrangian object based on which block it belongs to
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lagrangian_set), | intent(inout) | :: | this |
A set of Lagrangian objects |
||
class(lagrangian_obj), | intent(in) | :: | lagobj |
Lagrangian obj to locate |
rank that should own lagobj
Return the base name of file to write
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lagrangian_set), | intent(inout) | :: | this |
A collection of Eulerian objects |
Name of file
Return the base name of file to write
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lagrangian_set), | intent(inout) | :: | this |
A collection of Eulerian objects |
Name of file
Prints diagnostics information about the derived type
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lagrangian_set), | intent(inout) | :: | this |
Lagrangian array to dump |
Initialize the ResPart_set type. This subourtine replaces the inheritted lagrangian_init.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ResPart_set), | intent(inout) | :: | this |
Set of resolved partilces |
||
character(len=*), | intent(in) | :: | name |
Name of instance |
||
type(block_obj), | intent(in), | target | :: | block |
A block object |
|
type(parallel_obj), | intent(in), | target | :: | parallel |
parallel structure from main program |
Localize a Lagrangian object on the grid Returns the location of the closest collocated cell (staggering=0
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lagrangian_set), | intent(inout) | :: | this |
Lagrangian array to dump |
Prepare for use with solvers.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(particle_set), | intent(inout) | :: | this |
Set of particles |
||
type(timer_obj), | intent(in), | target | :: | timer |
Timer utility |
|
type(parser_obj), | intent(in), | target | :: | parser |
Parser for input file |
|
type(op_obj), | intent(in), | target | :: | operators |
Operators object |
|
type(monitor_set), | intent(in), | target | :: | monitors |
Monitors to print to stdout and files |
|
logical, | intent(in), | optional | :: | update_time |
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 |
||
integer, | intent(in), | optional | :: | step |
User supplied step to open |
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 |
Sorting routine: stacks active lagrangian objects at the beginning of the array then resizes
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lagrangian_set), | intent(inout) | :: | this |
Lagrangian array to dump |
Changes the size of an array of Lagrangian objects
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lagrangian_set), | intent(inout) | :: | this |
Lagrangian array to dump |
||
integer, | intent(in) | :: | n |
New size |
Reset the filter kerrnel Default is Triangle for interpolation and extrapolation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lagrangian_set), | intent(inout) | :: | this |
Set of Lagrangian objects |
||
integer, | intent(in) | :: | kernel_interp |
Filter kernel for interpolations |
||
integer, | intent(in) | :: | kernel_extrap |
Filter kernel for extrapolations |
Adjust the size of the filter
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lagrangian_set), | intent(inout) | :: | this |
Set of Lagrangian objects |
||
real(kind=wp), | intent(in) | :: | l_filter |
Filter size |
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 the sample type used in allocation of polymorphic variables
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(particle_set), | intent(inout) | :: | this |
Lagrangian array to dump |
Set file overwritting
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lagrangian_set), | intent(inout) | :: | this |
A collection of Eulerian objects |
||
logical, | intent(in) | :: | overwrite |
Name of file |
Set the base name of file to read
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lagrangian_set), | intent(inout) | :: | this |
A collection of Eulerian objects |
||
character(len=*), | intent(in) | :: | name |
Name of file |
Set the base name of file to write
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lagrangian_set), | intent(inout) | :: | this |
A collection of Eulerian objects |
||
character(len=*), | intent(in) | :: | name |
Name of file |
Store values from previous timestep
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(particle_set), | intent(inout) | :: | this |
Lagrangian array to dump |
Updates the total count of Lagrangian objects
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lagrangian_set), | intent(inout) | :: | this |
Lagrangian array to dump |
Updates ghost objects Copies objects that lie "dist"-away from the block's boundaries to neighboring MPI-ranks and designate copies as Ghost Objects (id<0)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lagrangian_set), | intent(inout) | :: | this |
Set of Lagrangian objects |
||
real(kind=wp), | intent(in) | :: | dist |
Distance from boundaries |
Update monitoring data
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(particle_set), | intent(inout) | :: | this |
Collection of Point Particles |
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 |
Write data to disk in Silo format
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(particle_set), | intent(inout) | :: | this |
Point particles to write |
||
integer, | intent(in) | :: | iter |
Iteration at write |
||
real(kind=wp), | intent(in) | :: | time |
Time at write |
||
character(len=str8), | intent(in), | optional | :: | list(:) |
Names of components to write |
Finalize the structure
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lagrangian_set), | intent(inout) | :: | this |
A set of Lagrangian objects |
Initialize lagrangian objects related IO
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lagrangian_set), | intent(inout) | :: | this |
A set of Lagrangian objects |
||
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 |