Interpolation Scheme

Hi everyone,
I am running the MFiX-CGP simulation. I notice that there are three interpolation scheme in the Solids subpane.

I check the code calc_interp_weights.f. there are 3 interpolation schemes.

image

But when I check particle_filter_mod.f, it renumbers the interpolation schemes. But here are five methods. Does anyone know why this is?
Because I want to use the Gauss interpolation scheme, I want to know if I could activate it.
image

Thanks a lot!

Hi -
There is no Gaussian interpolation scheme implemented in MFiX. What you found is incomplete - either something that was started and not finished, or removed.

Note that in the definition for the DES_INTERP_SCHEME keyword, in model/des/des_init_namelist.f, “GAUSS” is not listed as one of the “valid values”:

!  <valid value="NONE" note="Do not use interpolation."/>
!  <valid value="GARG_2012" note="Interpolate to/from a particle's
!    position using the corners (nodes) of the fluid cells. This was
!    the default behavior prior to version 2015-1.
!    See Garg et al. (2012) Documentation of the open-source MFiX-DEM
!    software for gas-solids flows."/>
!  <valid value="SQUARE_DPVM" note="Divided Particle Volume Method:
!    Information is interpolated to/from a particles position using
!    a square filter of size DES_INTERP_WIDTH."/>
!  <valid value="LINEAR_HAT" note="Linear interpolation: Hat functions
!    are used to distribute particle information. PIC only."/>

This can also be seen in the keyword broswer:

The input file handler will reject any value that is not listed here. But even if you modify the code to add ‘GAUSS’ as a valid value, it appears that there are no code-paths that will taken that are any different from SQUARE_DPVM:

model/check_data/check_solids_common_discrete.f: 
CASE(DES_INTERP_DPVM, DES_INTERP_GAUSS)

model/des/des_allocate_mod.f: 
CASE(DES_INTERP_DPVM, DES_INTERP_GAUSS, DES_INTERP_LHAT)

model/des/set_filter_des.f: 
CASE(DES_INTERP_DPVM, DES_INTERP_GAUSS)

model/des/calc_interp_weights.f:
SELECT CASE(DES_INTERP_SCHEME_ENUM) 
CASE(DES_INTERP_DPVM); CALL CALC_INTERP_WEIGHTS1 
CASE(DES_INTERP_GAUSS); CALL CALC_INTERP_WEIGHTS1 
CASE(DES_INTERP_LHAT); CALL CALC_INTERP_WEIGHTS2 
END SELECT

so in all cases, it’s identical to DPVM.

If you need a Gaussian interpolation scheme, you are invited to implement it.

– Charles