fillFinerGhostsFromMe_quadLES Subroutine

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

Fill fine ghost from coarse fluid by quadratic interpolation. 1. Compute moments for all source elements, save in momBuf 2. For each target, interpolate all moments using quadratic least square fit 3. Store target auxilary field 4. Compute viscosity on target element and compute source and target omega 5. Get nonEq scaling factor depeding on scheme layout and relaxation 6. Calculate Equilibrium and nonEquilibrium 7. calculate target: Eq + Scale * nonEquilibrium This routine is used by 3D acoustic quadratic interpolation.

This subroutine's interface must match the abstract interface definition intpRoutine in intp/mus_interpolate_header_module.f90 in order to be callable via do_intp function pointer.


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


proc~~fillfinerghostsfromme_quadles~~CallsGraph proc~fillfinerghostsfromme_quadles fillFinerGhostsFromMe_quadLES proc~mus_intp_getmoments mus_intp_getMoments proc~fillfinerghostsfromme_quadles->proc~mus_intp_getmoments proc~mus_intp_convertmomtopdf3d mus_intp_convertMomToPDF3D proc~fillfinerghostsfromme_quadles->proc~mus_intp_convertmomtopdf3d proc~mus_calcomegafromvisc mus_calcOmegaFromVisc proc~fillfinerghostsfromme_quadles->proc~mus_calcomegafromvisc proc~mus_interpolate_quad3d_leastsq mus_interpolate_quad3D_leastSq proc~fillfinerghostsfromme_quadles->proc~mus_interpolate_quad3d_leastsq



integer, private :: sourceLevel
integer, private :: sourceElem
integer, private :: targetLevel
integer, private :: targetElem
integer, private :: iVal
integer, private :: iElem
integer, private :: indElem
integer, private :: iSourceElem
integer, private :: nSourceElems
real(kind=rk), private :: tPDF(layout%fStencil%QQ)
real(kind=rk), private :: srcMom(layout%fStencil%QQ,layout%fStencil%QQ)
real(kind=rk), private :: tMom(layout%fStencil%QQ)
integer, private :: QQ
integer, private :: posInIntpMatLSF
type(mus_fluid_type), private, pointer:: fluid
real(kind=rk), private :: nonEqScalingFacs(layout%fStencil%QQ)
real(kind=rk), private :: sOmegaKine
real(kind=rk), private :: tOmegaKine
real(kind=rk), private :: sVisc
real(kind=rk), private :: tVisc
real(kind=rk), private :: invRho
real(kind=rk), private :: sTurbVisc(layout%fStencil%QQ)
real(kind=rk), private :: tTurbVisc(1)
integer, private :: nScalars
integer, private :: tOffset
integer, private :: dens_pos
integer, private :: vel_pos(3)