Data type containing information required by routines to interpolate fluid properties to particle locations
| 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. |