mus_mrt_d3q27_module Module

This module provides the definition and methods for MRT advection relaxation scheme for D3Q27 stencil. The weighted MRT 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

Density (rho) and velocity (ux, uy, uz) are conserved during collision. i.e. m(1) = meq(1) --> mneq(1) = 0 m(2) = meq(2) --> mneq(2) = 0 m(3) = meq(3) --> mneq(3) = 0 m(4) = meq(4) --> mneq(4) = 0

Collision parameters are chosen as s(1:4) = 0 s(5:9) = omega s(10) = bulk_omega s(11:27) = 1.0


Uses

Used by

  • module~~mus_mrt_d3q27_module~~UsedByGraph module~mus_mrt_d3q27_module mus_mrt_d3q27_module module~mus_initfluid_module mus_initFluid_module module~mus_initfluid_module->module~mus_mrt_d3q27_module module~mus_initfluidincomp_module mus_initFluidIncomp_module module~mus_initfluidincomp_module->module~mus_mrt_d3q27_module module~mus_flow_module mus_flow_module module~mus_flow_module->module~mus_initfluid_module module~mus_flow_module->module~mus_initfluidincomp_module module~mus_dynloadbal_module mus_dynLoadBal_module module~mus_dynloadbal_module->module~mus_flow_module module~mus_program_module mus_program_module module~mus_program_module->module~mus_flow_module module~mus_program_module->module~mus_dynloadbal_module program~mus_harvesting mus_harvesting program~mus_harvesting->module~mus_flow_module program~musubi musubi program~musubi->module~mus_program_module

Variables

Type Visibility Attributes Name Initial
integer, private, parameter :: QQ = 27

Definition of the discrete velocity set

integer, private, parameter :: q000 = 27

Subroutines

public subroutine mus_advRel_kCFD_rMRT_vStdNoOpt_lD3Q27(fieldProp, inState, outState, auxField, neigh, nElems, nSolve, level, layout, params, varSys, derVarPos)

Unoptimized explicit implementation

Read more…

Arguments

Type IntentOptional Attributes Name
type(mus_field_prop_type), intent(in) :: fieldProp(:)

Array of field properties (fluid or species)

real(kind=rk), intent(in) :: inState(nElems*varSys%nScalars)

input pdf vector

real(kind=rk), intent(out) :: outState(nElems*varSys%nScalars)

output pdf vector

real(kind=rk), intent(inout) :: auxField(nElems*varSys%nAuxScalars)

Auxiliary field computed from pre-collision state Is updated with correct velocity field for multicomponent models

integer, intent(in) :: neigh(nElems*layout%fStencil%QQ)

connectivity vector

integer, intent(in) :: nElems

number of elements in state Array

integer, intent(in) :: nSolve

number of elements solved in kernel

integer, intent(in) :: level

current level

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

current layout

type(mus_param_type), intent(in) :: params

global parameters

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys for all fields

public subroutine mus_advRel_kFluid_rMRT_vStd_lD3Q27(fieldProp, inState, outState, auxField, neigh, nElems, nSolve, level, layout, params, varSys, derVarPos)

Semi-optimized explicit implementation

Read more…

Arguments

Type IntentOptional Attributes Name
type(mus_field_prop_type), intent(in) :: fieldProp(:)

Array of field properties (fluid or species)

real(kind=rk), intent(in) :: inState(nElems*varSys%nScalars)

input pdf vector

real(kind=rk), intent(out) :: outState(nElems*varSys%nScalars)

output pdf vector

real(kind=rk), intent(inout) :: auxField(nElems*varSys%nAuxScalars)

Auxiliary field computed from pre-collision state Is updated with correct velocity field for multicomponent models

integer, intent(in) :: neigh(nElems*layout%fStencil%QQ)

connectivity vector

integer, intent(in) :: nElems

number of elements in state Array

integer, intent(in) :: nSolve

number of elements solved in kernel

integer, intent(in) :: level

current level

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

current layout

type(mus_param_type), intent(in) :: params

global parameters

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys for all fields

public subroutine mus_advRel_kFluidIncomp_rMRT_vStd_lD3Q27(fieldProp, inState, outState, auxField, neigh, nElems, nSolve, level, layout, params, varSys, derVarPos)

Semi-optimized explicit implementation

Read more…

Arguments

Type IntentOptional Attributes Name
type(mus_field_prop_type), intent(in) :: fieldProp(:)

Array of field properties (fluid or species)

real(kind=rk), intent(in) :: inState(nElems*varSys%nScalars)

input pdf vector

real(kind=rk), intent(out) :: outState(nElems*varSys%nScalars)

output pdf vector

real(kind=rk), intent(inout) :: auxField(nElems*varSys%nAuxScalars)

Auxiliary field computed from pre-collision state Is updated with correct velocity field for multicomponent models

integer, intent(in) :: neigh(nElems*layout%fStencil%QQ)

connectivity vector

integer, intent(in) :: nElems

number of elements in state Array

integer, intent(in) :: nSolve

number of elements solved in kernel

integer, intent(in) :: level

current level

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

current layout

type(mus_param_type), intent(in) :: params

global parameters

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys for all fields