mus_hrrInit_module Module

This module provides the definitions of M and Minv for MRT advection relaxation scheme for all stencils.

The weighted MRT (D3Q27) is based on the following paper Abbas Fakhari, Diogo Bolster, Li-Shi Luo "A weighted multiple-relaxation-time lattice Boltzmann method for multiphase flows and its application to partial coalescence cascades" Journal of Computational Physics, 2017

The MRT (D3Q19) implementation here is taken from:\n J. Toelke, S. Freudiger, and M. Krafczyk, "An adaptive scheme using hierarchical grids for lattice Boltzmann multi-phase flow simulations," Comput. Fluids, vol. 35, pp. 820–830, 2006. \n



Subroutines

public pure subroutine HRR_Correction_d2q9(QQ, weight, gradRHOU3, phi, dens, vel)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: QQ

stencil size

real(kind=rk), intent(in) :: weight(:)

weights of the stencil

real(kind=rk), intent(in) :: gradRHOU3(:)

gradient rho V^3

real(kind=rk), intent(out) :: phi(:)

correction term phi

real(kind=rk), intent(out) :: dens

correction term phi, rho, vel

real(kind=rk), intent(out) :: vel(:)

correction term phi, rho, vel

public pure subroutine HRR_Correction_d3q19(QQ, weight, gradRHOU3, gradRHOUVZ, phi, dens, vel)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: QQ

stencil size

real(kind=rk), intent(in) :: weight(:)

weights of the stencil

real(kind=rk), intent(in) :: gradRHOU3(:)

gradient rho u^3, rho u v w

real(kind=rk), intent(in) :: gradRHOUVZ(:)
real(kind=rk), intent(out) :: phi(:)

correction term phi, rho, vel

real(kind=rk), intent(out) :: dens

correction term phi, rho, vel

real(kind=rk), intent(out) :: vel(:)

correction term phi, rho, vel

public pure subroutine HRR_Correction_d3q27(QQ, weight, gradRHOU3, phi, dens, vel)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: QQ

stencil size

real(kind=rk), intent(in) :: weight(:)

weights of the stencil

real(kind=rk), intent(in) :: gradRHOU3(:)

gradient rho V^3

real(kind=rk), intent(out) :: phi(:)

correction term phi

real(kind=rk), intent(out) :: dens

correction term phi

real(kind=rk), intent(out) :: vel(:)

correction term phi

public subroutine getHermitepolynomials(nDims, QQ, layout, H_order)

This function computes Hermite polinomial. It gives in output minimum

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nDims

number of physical dimensions

integer, intent(in) :: QQ

number of stencil streaming directions

type(mus_scheme_layout_type), intent(in) :: layout

current layout

integer, intent(in) :: H_order

maximum order of the Hermite polynomials

public subroutine getHermitepolynomials_D3Q19(layout)

This function computes Hermite polinomial. It gives in output minimum

Arguments

Type IntentOptional Attributes Name
type(mus_scheme_layout_type), intent(in) :: layout

current layout