Interpolation of flow quantities between different grid levels
The routines defined here, fill up the ghost elements with valid data. Ghost elements are employed at grid level interfaces to provide valid pdf values to the neighboring fluid elements. This way, the solvers can act on elements of the same size only, treating the levels successively. Target elements are the ghost elements, which have to be filled with valid values. Source elements are the fluid elements from other levels, from where to take the input values for the interpolation. The target ghost elements on the target level have corresponding source fluid elements on the source level.
tem_topology_module For a detailed description of the grid
Each interpolation routine acts on a list of ghost elements. This list contains pointers to the position in the total list. For each of these ghost elements, the source elements are identified. Before that, the sourceLevel is identified. However, the code is restricted to work with a level jump of only one level, so the sourceLevel is for sourceLevel = targetLevel+1 sourceLevel = targetLevel-1
For an overview over implemented interpolation methods, see Interpolation methods
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=rk), | private, | parameter | :: | debugValue | = | 1.0_rk |
This routine returns the analytical solution of TGV 2D testcase for a given position and time (coord, t)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=rk), | intent(in) | :: | coord(3) |
position and time |
||
| real(kind=rk), | intent(in) | :: | t |
position and time |
pressure, velX, velY, Sxx, Syy, Sxy
Fill GhostFromFiner elements on my level with debug value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(mus_interpolation_method_type), | intent(inout) | :: | method | |||
| type(mus_field_prop_type), | intent(in), | target | :: | fieldProp(:) |
Array of field properties (fluid or species) |
|
| type(tem_levelDesc_type), | intent(in) | :: | tLevelDesc |
level descriptor on target level |
||
| integer, | intent(in) | :: | level |
my refinement level |
||
| real(kind=rk), | intent(in) | :: | sState(:) |
State vector of SOURCE FLUID elements |
||
| integer, | intent(in) | :: | sNeigh(:) | |||
| integer, | intent(in) | :: | snSize | |||
| real(kind=rk), | intent(inout) | :: | sAuxField(:) |
AuxField variable to read rho and vel from source elements |
||
| real(kind=rk), | intent(inout) | :: | tState(:) |
State vector of TARGET GHOST elements |
||
| integer, | intent(in) | :: | tNeigh(:) | |||
| integer, | intent(in) | :: | tnSize | |||
| type(mus_scheme_layout_type), | intent(in) | :: | layout |
the layout used |
||
| integer, | intent(in) | :: | nTargets |
List of target elements ( their position in depSource list ) |
||
| integer, | intent(in) | :: | targetList(nTargets) | |||
| type(mus_physics_type), | intent(in) | :: | physics |
physics type to convert lattice to physics SI unit and vice versa |
||
| type(tem_time_type), | intent(in) | :: | time |
time required to compute viscosity on target element barycenter |
||
| type(tem_varSys_type), | intent(in) | :: | varSys |
scheme variable system |
||
| type(mus_derVarPos_type), | intent(in) | :: | derVarPos(:) |
position of all derive variable in varSys for all fields |
Fill GhostFromFiner elements on my level with debug value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(mus_interpolation_method_type), | intent(inout) | :: | method | |||
| type(tem_levelDesc_type), | intent(in) | :: | tLevelDesc |
level descriptor on target level |
||
| integer, | intent(in) | :: | level |
my refinement level |
||
| type(tem_stencilHeader_type), | intent(in) | :: | stencil |
stencil header |
||
| real(kind=rk), | intent(in) | :: | sVal(:) |
State vector of SOURCE FLUID elements |
||
| real(kind=rk), | intent(inout) | :: | tVal(:) |
State vector of TARGET GHOST elements |
||
| integer, | intent(in) | :: | nTargets |
List of target elements ( their position in depSource list ) |
||
| integer, | intent(in) | :: | targetList(nTargets) | |||
| integer, | intent(in) | :: | nScalars |
number of scalars to interpolate |