Fill coarse target ghost from fine source fluid by average interpolation. 1. Calculate Equilibrium and nonEquilibrium 2. Compute scaling factor 3. calculate target: Eq + Scale * nonEquilibrium
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 | :: | iDir | ||||
integer, | private | :: | iElem | ||||
integer, | private | :: | indElem | ||||
integer, | private | :: | iSourceElem | ||||
integer, | private | :: | nSourceElems | ||||
real(kind=rk), | private | :: | f(layout%fStencil%QQ) | ||||
real(kind=rk), | private | :: | f_eq(layout%fStencil%QQ) | ||||
integer, | private | :: | |||||
real(kind=rk), | private | :: | inv_nSourceElems | ||||
real(kind=rk), | private | :: | t_f_eq(layout%fStencil%QQ) | ||||
real(kind=rk), | private | :: | t_f_neq(layout%fStencil%QQ) | ||||
type(mus_fluid_type), | private, | pointer | :: | fluid | |||
real(kind=rk), | private | :: | cVisc | ||||
real(kind=rk), | private | :: | cOmegaKine | ||||
real(kind=rk), | private | :: | fOmegaKine | ||||
real(kind=rk), | private | :: | rho | ||||
real(kind=rk), | private | :: | vel(3) | ||||
real(kind=rk), | private | :: | fac | ||||
integer, | private | :: | elemOff | ||||
integer, | private | :: | dens_pos | ||||
integer, | private | :: | vel_pos(3) | ||||
integer, | private | :: | nScalars |