Fill fine ghost from coarse fluid by linear interpolation for D2Q9 stencil. 1. Compute moments for all source elements, save in momBuf 2. For each target, interpolate moments (den, vel, tau) (10 moments for 3D and 6 moments for 2D) 3. calculate fEq and use it to calculate high order moments 4. convert moments to PDF This routine is used by acoustic linear 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.
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 |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | private | :: | sourceLevel | ||||
integer, | private | :: | sourceElem | ||||
integer, | private | :: | targetLevel | ||||
integer, | private | :: | targetElem | ||||
integer, | private | :: | iElem | ||||
integer, | private | :: | indElem | ||||
integer, | private | :: | iDir | ||||
integer, | private | :: | iSourceElem | ||||
integer, | private | :: | nSourceElems | ||||
real(kind=rk), | private | :: | f(layout%fStencil%QQ) | ||||
real(kind=rk), | private | :: | f_neq(layout%fStencil%QQ,layout%fStencil%QQ) | ||||
real(kind=rk), | private | :: | f_eq(layout%fStencil%QQ,layout%fStencil%QQ) | ||||
real(kind=rk), | private | :: | t_f_eq(layout%fStencil%QQ) | ||||
real(kind=rk), | private | :: | t_f_neq(layout%fStencil%QQ) | ||||
real(kind=rk), | private | :: | fac | ||||
real(kind=rk), | private | :: | rho | ||||
real(kind=rk), | private | :: | vel(3) | ||||
integer, | private | :: | |||||
integer, | private | :: | posInIntpMatLSF | ||||
type(mus_fluid_type), | private, | pointer | :: | fluid | |||
integer, | private | :: | elemOff | ||||
integer, | private | :: | dens_pos | ||||
integer, | private | :: | vel_pos(3) | ||||
integer, | private | :: | nScalars | ||||
real(kind=rk), | private | :: | fVisc | ||||
real(kind=rk), | private | :: | fOmegaKine | ||||
real(kind=rk), | private | :: | cOmegaKine |