mus_particle_interpolator_type Derived Type

type, public :: mus_particle_interpolator_type

Data type containing information required by routines to interpolate fluid properties to particle locations


Components

Type Visibility Attributes Name Initial
integer, public :: bnd_x(2)

Boundaries of interpolation stencil This indicates the offset of cells to each side of the cell containing the point to be interpolated intpBnds = (/ x_lo, x_hi, y_lo, y_hi, z_lo, z_hi /) For example: intpBnds = (/ -1, 1, -1, 1, -1, 1 /) will loop over all neighbor cells, intpBnds = (/ -1 1, -1, 1, 0, 0 /) will only loop over neighbors in x and y direction etc.

integer, public :: bnd_y(2)
integer, public :: bnd_z(2)
integer, public, allocatable :: neighDirs(:,:)

Directions of neighboring elements to interpolate from

integer, public, allocatable :: neighPaths(:,:)

"Paths" in terms of iDirs with which to reach neighboring stencil elements This depends on the stencil being used. We need this because not every element to interpolate from is accessible using just one neighDir e.g. when using the D3Q19 stencil the "corner elements" cannot be reached using just one neighDir.

integer, public :: Nelems

Number of elements (neighbors + the center element) to interpolate from. If all direct neighbors are used this is 27 in 3D and 9 in 2D.

procedure(wghtFunc), public, pointer, nopass :: getWght_x

Functions to calculate interpolation weights

procedure(wghtFunc), public, pointer, nopass :: getWght_y
procedure(wghtFunc), public, pointer, nopass :: getWght_z
character(len=labelLen), public :: interpolation_kind

Label of interpolation scheme used can be e.g. 'delta', 'linear', or 'peskin' Peskin stencil currently only works in serial.