mus_interpolate_d3q19_module Module

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




integer, private, parameter:: QQ =19


public pure function eval_polynomial_3D(a, b, c, coord) result(res)


real(kind=rk), intent(in) :: a(10)
real(kind=rk), intent(in) :: b(10)
real(kind=rk), intent(in) :: c(10)
real(kind=rk), intent(in) :: coord(3)

Return Value real(kind=rk)(3)


public subroutine get_polynomial_3D(u, s, a, b, c)

Construct polynomial and interpolate at target position. To construct polynomial, velocity and strain rate of 4 source locations are needed: H(0,0,0), K(1,1,0), M(1,0,1), N(0,1,1)


real(kind=rk), intent(in) :: u(3,4)
real(kind=rk), intent(in) :: s(6,4)
real(kind=rk), intent(out) :: a(10)
real(kind=rk), intent(out) :: b(10)
real(kind=rk), intent(out) :: c(10)

public subroutine fillCoarser_compactd3q19(method, fieldProp, tLevelDesc, level, sState, snSize, tState, tnSize, tAuxField, layout, nTargets, targetList, physics, time, varSys, derVarPos)

No comment yet!

Read more…


class(mus_interpolation_method_type), intent(in) :: 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) :: snSize
real(kind=rk), intent(inout) :: tState(:)

State vector of TARGET GHOST elements

integer, intent(in) :: tnSize
real(kind=rk), intent(inout) :: tAuxField(:)

AuxField variable to fill on target GHOST elements

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

private subroutine calc_moments(state, nScalars, nSize, elementList, nElems, buffer, toS)


real(kind=rk), intent(in) :: state(:)
integer, intent(in) :: nScalars
integer, intent(in) :: nSize
integer, intent(in) :: elementList(nElems)
integer, intent(in) :: nElems
real(kind=rk), intent(out) :: buffer(10,nElems)
real(kind=rk), intent(in) :: toS