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
Uses
module~~mus_interpolate_debug_module~~UsesGraph
module~mus_interpolate_debug_module
mus_interpolate_debug_module
module~mus_physics_module
mus_physics_module
module~mus_interpolate_debug_module->module~mus_physics_module
module~env_module
env_module
module~mus_interpolate_debug_module->module~env_module
module~mus_field_prop_module
mus_field_prop_module
module~mus_interpolate_debug_module->module~mus_field_prop_module
module~mus_dervarpos_module
mus_derVarPos_module
module~mus_interpolate_debug_module->module~mus_dervarpos_module
module~mus_interpolate_header_module
mus_interpolate_header_module
module~mus_interpolate_debug_module->module~mus_interpolate_header_module
module~tem_varsys_module
tem_varSys_module
module~mus_interpolate_debug_module->module~tem_varsys_module
iso_c_binding
iso_c_binding
module~mus_interpolate_debug_module->iso_c_binding
module~mus_fluid_module
mus_fluid_module
module~mus_interpolate_debug_module->module~mus_fluid_module
module~tem_param_module
tem_param_module
module~mus_interpolate_debug_module->module~tem_param_module
module~tem_logging_module
tem_logging_module
module~mus_interpolate_debug_module->module~tem_logging_module
module~tem_topology_module
tem_topology_module
module~mus_interpolate_debug_module->module~tem_topology_module
module~tem_debug_module
tem_debug_module
module~mus_interpolate_debug_module->module~tem_debug_module
module~tem_stencil_module
tem_stencil_module
module~mus_interpolate_debug_module->module~tem_stencil_module
module~tem_construction_module
tem_construction_module
module~mus_interpolate_debug_module->module~tem_construction_module
module~tem_element_module
tem_element_module
module~mus_interpolate_debug_module->module~tem_element_module
module~mus_scheme_layout_module
mus_scheme_layout_module
module~mus_interpolate_debug_module->module~mus_scheme_layout_module
module~tem_time_module
tem_time_module
module~mus_interpolate_debug_module->module~tem_time_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.
Used by
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
program~musubi
musubi
program~musubi->module~mus_aux_module
module~mus_control_module
mus_control_module
program~musubi->module~mus_control_module
module~mus_program_module
mus_program_module
program~musubi->module~mus_program_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
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
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
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
public pure function TGV_2D (coord, t) result(res)
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
public subroutine do_nothing (method, fieldProp, tLevelDesc, level, sState, sNeigh, snSize, sAuxField, tState, tNeigh, tnSize, layout, nTargets, targetList, physics, time, varSys, derVarPos)
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
Todo : This can be replaced by scale factor by level
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
public subroutine do_nothing_arbi (method, tLevelDesc, level, stencil, sVal, tVal, nTargets, targetList, nScalars)
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