Interpolation of flow quantities between different grid levels
Interpolation
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
Workflow
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
module~~mus_interpolate_debug_module~~UsesGraph
module~mus_interpolate_debug_module
mus_interpolate_debug_module
env_module
env_module
module~mus_interpolate_debug_module->env_module
iso_c_binding
iso_c_binding
module~mus_interpolate_debug_module->iso_c_binding
module~mus_dervarpos_module
mus_derVarPos_module
module~mus_interpolate_debug_module->module~mus_dervarpos_module
module~mus_field_prop_module
mus_field_prop_module
module~mus_interpolate_debug_module->module~mus_field_prop_module
module~mus_fluid_module
mus_fluid_module
module~mus_interpolate_debug_module->module~mus_fluid_module
module~mus_interpolate_header_module
mus_interpolate_header_module
module~mus_interpolate_debug_module->module~mus_interpolate_header_module
module~mus_physics_module
mus_physics_module
module~mus_interpolate_debug_module->module~mus_physics_module
module~mus_scheme_layout_module
mus_scheme_layout_module
module~mus_interpolate_debug_module->module~mus_scheme_layout_module
tem_construction_module
tem_construction_module
module~mus_interpolate_debug_module->tem_construction_module
tem_debug_module
tem_debug_module
module~mus_interpolate_debug_module->tem_debug_module
tem_element_module
tem_element_module
module~mus_interpolate_debug_module->tem_element_module
tem_logging_module
tem_logging_module
module~mus_interpolate_debug_module->tem_logging_module
tem_param_module
tem_param_module
module~mus_interpolate_debug_module->tem_param_module
tem_stencil_module
tem_stencil_module
module~mus_interpolate_debug_module->tem_stencil_module
tem_time_module
tem_time_module
module~mus_interpolate_debug_module->tem_time_module
tem_topology_module
tem_topology_module
module~mus_interpolate_debug_module->tem_topology_module
tem_varSys_module
tem_varSys_module
module~mus_interpolate_debug_module->tem_varSys_module
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
module~~mus_interpolate_debug_module~~UsedByGraph
module~mus_interpolate_debug_module
mus_interpolate_debug_module
module~mus_interpolate_average_module
mus_interpolate_average_module
module~mus_interpolate_average_module->module~mus_interpolate_debug_module
module~mus_interpolate_linear_module
mus_interpolate_linear_module
module~mus_interpolate_linear_module->module~mus_interpolate_debug_module
module~mus_interpolate_module
mus_interpolate_module
module~mus_interpolate_module->module~mus_interpolate_debug_module
module~mus_interpolate_module->module~mus_interpolate_average_module
module~mus_interpolate_module->module~mus_interpolate_linear_module
module~mus_aux_module
mus_aux_module
module~mus_aux_module->module~mus_interpolate_module
module~mus_construction_module
mus_construction_module
module~mus_construction_module->module~mus_interpolate_module
module~mus_dynloadbal_module
mus_dynLoadBal_module
module~mus_dynloadbal_module->module~mus_interpolate_module
module~mus_dynloadbal_module->module~mus_construction_module
module~mus_hvs_aux_module
mus_hvs_aux_module
module~mus_hvs_aux_module->module~mus_interpolate_module
module~mus_control_module
mus_control_module
module~mus_control_module->module~mus_aux_module
module~mus_hvs_construction_module
mus_hvs_construction_module
module~mus_hvs_construction_module->module~mus_construction_module
module~mus_program_module
mus_program_module
module~mus_program_module->module~mus_aux_module
module~mus_program_module->module~mus_construction_module
module~mus_program_module->module~mus_dynloadbal_module
module~mus_program_module->module~mus_control_module
program~mus_harvesting
mus_harvesting
program~mus_harvesting->module~mus_construction_module
program~mus_harvesting->module~mus_hvs_aux_module
program~mus_harvesting->module~mus_hvs_construction_module
program~musubi
musubi
program~musubi->module~mus_aux_module
program~musubi->module~mus_control_module
program~musubi->module~mus_program_module
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Variables
Type
Visibility Attributes
Name
Initial
real(kind=rk),
private,
parameter
::
debugValue
=
1.0_rk
Functions
This routine returns the analytical solution of TGV 2D testcase for a given
position and time (coord, t)
Arguments
Type
Intent Optional Attributes
Name
real(kind=rk),
intent(in)
::
coord (3)
position and time
real(kind=rk),
intent(in)
::
t
position and time
Return Value
real(kind=rk), (6)
pressure, velX, velY, Sxx, Syy, Sxy
Subroutines
Fill GhostFromFiner elements on my level with debug value
Read more…
Arguments
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
Read more…
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
Read more…
Arguments
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