mus_source_module Module

Module containing subroutines for initialize Musubi source variables and update source terms


Uses

Used by

  • module~~mus_source_module~~UsedByGraph module~mus_source_module mus_source_module module~mus_control_module mus_control_module module~mus_control_module->module~mus_source_module module~mus_aux_module mus_aux_module module~mus_control_module->module~mus_aux_module module~mus_aux_module->module~mus_source_module module~mus_dynloadbal_module mus_dynLoadBal_module module~mus_dynloadbal_module->module~mus_source_module program~musubi musubi program~musubi->module~mus_control_module program~musubi->module~mus_aux_module module~mus_program_module mus_program_module program~musubi->module~mus_program_module module~mus_program_module->module~mus_control_module module~mus_program_module->module~mus_aux_module module~mus_program_module->module~mus_dynloadbal_module

Contents


Subroutines

public subroutine mus_init_sourceTerms(field, nFields, globSrc, varSys, tree, nElems_solve, levelDesc)

This routine does set_params and setupIndices for all sources terms by gathering points to apply souce term before.

Arguments

TypeIntentOptionalAttributesName
type(mus_field_type), intent(inout) :: field(:)

contains sources of all fields

integer, intent(in) :: nFields

Number of fields

type(mus_source_type), intent(inout) :: globSrc

global source

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

global variable system

type(treelmesh_type), intent(in) :: tree

global treelm mesh

integer, intent(in) :: nElems_solve(tree%global%minLevel:)

Number of elements to solve in all levels nFluids + nGhostFromCoarser

type(tem_levelDesc_type), intent(in) :: levelDesc(tree%global%minLevel:)

Level descriptors

public subroutine mus_apply_sourceTerms(field, nFields, globSrc, pdf, varSys, iLevel, time, phyConvFac, state, auxField, derVarPos)

Apply all source terms i.e field specific source and global source on all fields.

Arguments

TypeIntentOptionalAttributesName
type(mus_field_type), intent(in) :: field(nFields)

contains sources of all fields

integer, intent(in) :: nFields

Number of fields

type(mus_source_type), intent(in) :: globSrc

global source

type(pdf_data_type), intent(inout) :: pdf

pdf datatype

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

global variable system

integer, intent(in) :: iLevel

current level

type(tem_time_type), intent(in) :: time

current timing information

type(mus_convertFac_type), intent(in) :: phyConvFac

Physics conversion factor for current level

real(kind=rk), intent(inout) :: state(:,:)

state type containing the state vector to update

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

auxField array

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

position of derived quantities in varsys

public subroutine mus_update_sourceVars(nFields, field, globSrc, varSys, iLevel, auxField, phyConvFac, derVarPos)

Updated all source variables i.e field specific source and global source on all fields.

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: nFields

Number of fields

type(mus_field_type), intent(inout) :: field(nFields)

contains sources of all fields

type(mus_source_type), intent(inout) :: globSrc

global source

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

global variable system

integer, intent(in) :: iLevel

current level

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

auxField array

type(mus_convertFac_type), intent(in) :: phyConvFac

Physics conversion factor for current level

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

position of derived quantities in varsys

private subroutine mus_setupIndices_forSrc(source, varSys, nSolve, bary, iLevel, tree)

This routines does setup indices for given source within a field or global. Index are stored for points which source term is active

Arguments

TypeIntentOptionalAttributesName
type(mus_source_type), intent(inout) :: source

Source term to fill in

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

global variable system

integer, intent(in) :: nSolve

Number of elements to apply source term on this level

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

Space coordinates to apply source terms

integer, intent(in) :: iLevel

Current level

type(treelmesh_type), intent(in) :: tree

global treelm mesh

private subroutine mus_init_turbChanForce(turbChanForce, tree)

Create subTree and store nElemsGlobal in all proc for turbulent channel force

Arguments

TypeIntentOptionalAttributesName
type(mus_turbChannelForce_type), intent(inout) :: turbChanForce

Contains info for turbulent channel force

type(treelmesh_type), intent(in) :: tree

global treelm mesh

private subroutine mus_init_hrrCorrection(HRR_Corr, nElems, QQ)

Initialize arrays to store time average density and velocity for dynamic absorbing layer. \todo KM: 20210301 Allocate only pressure or velocity depending on absorb_layer_inlet or absorb_layer_outlet

Arguments

TypeIntentOptionalAttributesName
type(mus_HRRCorrectionTerm_type), intent(inout) :: HRR_Corr

HRR correction term type

integer, intent(in) :: nElems

Number of source elements

integer, intent(in) :: QQ

number of stendil dricetions