mus_check_omegaKine Subroutine

public subroutine mus_check_omegaKine(schemeRelax, omLvlKine, nSolve, minLevel, maxLevel, general)

This routine checks whether omega is within the stability limit. If not it will terminate the simulation with error message. Using limits given in Tölke, J., Freudiger, S., & Krafczyk, M. (2006). An adaptive scheme using hierarchical grids for lattice Boltzmann multi-phase flow simulations. Computers & Fluids, 35(8–9), 820–830. For BGK: 2/3 < omega < 1.976 For MRT: 2/3 < omega < 1.999

Arguments

TypeIntentOptionalAttributesName
character(len=*), intent(in) :: schemeRelax

scheme relaxation type

type(mus_relaxationParam_type), intent(in) :: omLvlKine(minLevel:maxLevel)

array of kinematic relaxation parameter on all levels

integer, intent(in) :: nSolve(minLevel:maxLevel)

Number of elements to solve in compute kernel

integer, intent(in) :: minLevel

minlevel and maxlevel

integer, intent(in) :: maxLevel

minlevel and maxlevel

type(tem_general_type), intent(inout) :: general

Contains proc, simControl, solveHead


Calls

proc~~mus_check_omegakine~~CallsGraph proc~mus_check_omegakine mus_check_omegaKine mpi_reduce mpi_reduce proc~mus_check_omegakine->mpi_reduce proc~tem_abort tem_abort proc~mus_check_omegakine->proc~tem_abort

Called by

proc~~mus_check_omegakine~~CalledByGraph proc~mus_check_omegakine mus_check_omegaKine proc~perform_checks perform_checks proc~perform_checks->proc~mus_check_omegakine proc~mus_initialize mus_initialize proc~mus_initialize->proc~perform_checks proc~check_flow_status check_flow_status proc~check_flow_status->proc~perform_checks proc~do_recursive_multilevel do_recursive_multiLevel proc~do_recursive_multilevel->proc~check_flow_status program~musubi musubi program~musubi->proc~mus_initialize proc~do_fast_singlelevel do_fast_singleLevel proc~do_fast_singlelevel->proc~check_flow_status proc~do_benchmark do_benchmark proc~do_benchmark->proc~check_flow_status

Contents


Variables

TypeVisibilityAttributesNameInitial
integer, private :: iLevel
integer, private :: iError
real(kind=rk), private :: om_min

minimum omega

real(kind=rk), private :: om_max

minimum omega

real(kind=rk), private :: glob_om_min

minimum omega

real(kind=rk), private :: glob_om_max

minimum omega