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


Uses

  • module~~mus_hrrinit_module~~UsesGraph module~mus_hrrinit_module mus_hrrInit_module env_module env_module module~mus_hrrinit_module->env_module module~mus_scheme_layout_module mus_scheme_layout_module module~mus_hrrinit_module->module~mus_scheme_layout_module tem_aux_module tem_aux_module module~mus_hrrinit_module->tem_aux_module tem_debug_module tem_debug_module module~mus_hrrinit_module->tem_debug_module tem_param_module tem_param_module module~mus_hrrinit_module->tem_param_module module~mus_scheme_layout_module->env_module module~mus_scheme_layout_module->tem_aux_module module~mus_scheme_layout_module->tem_param_module aot_out_module aot_out_module module~mus_scheme_layout_module->aot_out_module aot_table_module aot_table_module module~mus_scheme_layout_module->aot_table_module aotus_module aotus_module module~mus_scheme_layout_module->aotus_module module~mus_moments_type_module mus_moments_type_module module~mus_scheme_layout_module->module~mus_moments_type_module module~mus_scheme_derived_quantities_module mus_scheme_derived_quantities_module module~mus_scheme_layout_module->module~mus_scheme_derived_quantities_module mpi mpi module~mus_scheme_layout_module->mpi tem_comm_env_module tem_comm_env_module module~mus_scheme_layout_module->tem_comm_env_module tem_dyn_array_module tem_dyn_array_module module~mus_scheme_layout_module->tem_dyn_array_module tem_grow_array_module tem_grow_array_module module~mus_scheme_layout_module->tem_grow_array_module tem_logging_module tem_logging_module module~mus_scheme_layout_module->tem_logging_module tem_stencil_module tem_stencil_module module~mus_scheme_layout_module->tem_stencil_module tem_tools_module tem_tools_module module~mus_scheme_layout_module->tem_tools_module module~mus_moments_type_module->env_module tem_matrix_module tem_matrix_module module~mus_moments_type_module->tem_matrix_module module~mus_scheme_derived_quantities_module->env_module module~mus_scheme_derived_quantities_module->tem_aux_module module~mus_scheme_derived_quantities_module->tem_param_module module~mus_scheme_derived_quantities_module->tem_logging_module tem_compileconf_module tem_compileconf_module module~mus_scheme_derived_quantities_module->tem_compileconf_module

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