mus_operation_var_module Module

This module provides the routine for applying operators. Currently it is only implemented for 3D and needs to be extended to 2d


Uses

  • module~~mus_operation_var_module~~UsesGraph module~mus_operation_var_module mus_operation_var_module module~env_module env_module module~mus_operation_var_module->module~env_module module~tem_varsys_module tem_varSys_module module~mus_operation_var_module->module~tem_varsys_module iso_c_binding iso_c_binding module~mus_operation_var_module->iso_c_binding module~treelmesh_module treelmesh_module module~mus_operation_var_module->module~treelmesh_module module~tem_topology_module tem_topology_module module~mus_operation_var_module->module~tem_topology_module module~tem_grow_array_module tem_grow_array_module module~mus_operation_var_module->module~tem_grow_array_module module~tem_debug_module tem_debug_module module~mus_operation_var_module->module~tem_debug_module module~mus_varsys_module mus_varSys_module module~mus_operation_var_module->module~mus_varsys_module module~tem_operation_var_module tem_operation_var_module module~mus_operation_var_module->module~tem_operation_var_module module~tem_logging_module tem_logging_module module~mus_operation_var_module->module~tem_logging_module module~tem_time_module tem_time_module module~mus_operation_var_module->module~tem_time_module module~mus_varsys_module->module~env_module module~mus_varsys_module->module~tem_varsys_module module~mus_varsys_module->iso_c_binding module~mus_varsys_module->module~treelmesh_module module~mus_varsys_module->module~tem_topology_module module~mus_varsys_module->module~tem_debug_module module~mus_varsys_module->module~tem_operation_var_module module~mus_varsys_module->module~tem_logging_module module~mus_varsys_module->module~tem_time_module module~mus_physics_module mus_physics_module module~mus_varsys_module->module~mus_physics_module module~tem_pointdata_module tem_pointData_module module~mus_varsys_module->module~tem_pointdata_module module~mus_scheme_type_module mus_scheme_type_module module~mus_varsys_module->module~mus_scheme_type_module module~mus_geom_module mus_geom_module module~mus_varsys_module->module~mus_geom_module module~tem_aux_module tem_aux_module module~mus_varsys_module->module~tem_aux_module module~tem_spacetime_fun_module tem_spacetime_fun_module module~mus_varsys_module->module~tem_spacetime_fun_module module~tem_float_module tem_float_module module~mus_varsys_module->module~tem_float_module module~tem_stencil_module tem_stencil_module module~mus_varsys_module->module~tem_stencil_module module~tem_element_module tem_element_module module~mus_varsys_module->module~tem_element_module module~tem_geometry_module tem_geometry_module module~mus_varsys_module->module~tem_geometry_module

Used by

  • module~~mus_operation_var_module~~UsedByGraph module~mus_operation_var_module mus_operation_var_module module~mus_derquanphysics_module mus_derQuanPhysics_module module~mus_derquanphysics_module->module~mus_operation_var_module module~mus_derquanps_module mus_derQuanPS_module module~mus_derquanps_module->module~mus_operation_var_module module~mus_derquan_module mus_derQuan_module module~mus_derquanps_module->module~mus_derquan_module module~mus_variable_module mus_variable_module module~mus_variable_module->module~mus_operation_var_module module~mus_variable_module->module~mus_derquanphysics_module module~mus_variable_module->module~mus_derquanps_module module~mus_derquanmsgas_module mus_derQuanMSGas_module module~mus_variable_module->module~mus_derquanmsgas_module module~mus_derquanmsliquid_module mus_derQuanMSLiquid_module module~mus_variable_module->module~mus_derquanmsliquid_module module~mus_derquanincomp_module mus_derQuanIncomp_module module~mus_variable_module->module~mus_derquanincomp_module module~mus_derquanpoisson_module mus_derQuanPoisson_module module~mus_variable_module->module~mus_derquanpoisson_module module~mus_variable_module->module~mus_derquan_module module~mus_derquannernstplanck_module mus_derQuanNernstPlanck_module module~mus_variable_module->module~mus_derquannernstplanck_module module~mus_derquanisothermaceq_module mus_derQuanIsothermAcEq_module module~mus_variable_module->module~mus_derquanisothermaceq_module module~mus_derquanmsgas_module->module~mus_operation_var_module module~mus_derquanmsgas_module->module~mus_derquanmsliquid_module module~mus_derquanmsliquid_module->module~mus_operation_var_module module~mus_derquanincomp_module->module~mus_operation_var_module module~mus_derquanincomp_module->module~mus_derquan_module module~mus_derquanpoisson_module->module~mus_operation_var_module module~mus_derquan_module->module~mus_operation_var_module module~mus_derquannernstplanck_module->module~mus_operation_var_module module~mus_derquanisothermaceq_module->module~mus_operation_var_module module~mus_bc_species_module mus_bc_species_module module~mus_bc_species_module->module~mus_derquanmsliquid_module module~mus_scheme_module mus_scheme_module module~mus_scheme_module->module~mus_variable_module module~mus_bc_general_module mus_bc_general_module module~mus_bc_general_module->module~mus_bc_species_module module~mus_hvs_config_module mus_hvs_config_module module~mus_hvs_config_module->module~mus_scheme_module module~mus_config_module mus_config_module module~mus_hvs_config_module->module~mus_config_module module~mus_config_module->module~mus_scheme_module module~mus_tools_module mus_tools_module module~mus_config_module->module~mus_tools_module program~mus_harvesting mus_harvesting program~mus_harvesting->module~mus_scheme_module program~mus_harvesting->module~mus_hvs_config_module module~mus_dynloadbal_module mus_dynLoadBal_module module~mus_dynloadbal_module->module~mus_scheme_module module~mus_dynloadbal_module->module~mus_bc_general_module module~mus_dynloadbal_module->module~mus_tools_module module~mus_program_module mus_program_module module~mus_program_module->module~mus_scheme_module module~mus_program_module->module~mus_bc_general_module module~mus_program_module->module~mus_dynloadbal_module module~mus_program_module->module~mus_tools_module module~mus_tools_module->module~mus_scheme_module module~mus_debug_module mus_debug_module module~mus_debug_module->module~mus_bc_general_module program~musubi musubi program~musubi->module~mus_config_module program~musubi->module~mus_program_module module~mus_hvs_aux_module mus_hvs_aux_module module~mus_hvs_aux_module->module~mus_tools_module module~mus_control_module mus_control_module module~mus_control_module->module~mus_bc_general_module module~mus_tracking_module mus_tracking_module module~mus_tracking_module->module~mus_tools_module module~mus_aux_module mus_aux_module module~mus_aux_module->module~mus_tools_module module~mus_interpolate_verify_module mus_interpolate_verify_module module~mus_interpolate_verify_module->module~mus_config_module

Contents


Subroutines

public subroutine mus_set_opVar_getElement(solData_evalElem, fun)

Routine to store musubi varSys Data in operation variable solver_bundle. Unline Ateles, Musubi operations does not require any special treatment so it uses to generic routines in treelm

Arguments

TypeIntentOptionalAttributesName
class(tem_varSys_solverData_evalElem_type), intent(in) :: solData_evalElem

Description on how to set the element retrieval function for stfuns.

type(tem_varSys_op_type), intent(inout) :: fun

Description of the method to obtain the variables, here some preset values might be stored, like the space time function to use or the required variables.

public recursive subroutine mus_opVar_setupIndices(fun, varSys, point, offset_bit, iLevel, tree, nPnts, idx)

Arguments

TypeIntentOptionalAttributesName
class(tem_varSys_op_type), intent(in) :: fun

Description of the method to obtain the variables, here some preset values might be stored, like the space time function to use or the required variables.

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

The variable system to obtain the variable from.

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

List of space coordinate points to store as growing array in method_data

character, intent(in), optional :: offset_bit(:)

Offset bit encoded as character for every point.

Offset integer coord(3) is converted into a character with offset_bit = achar( (coord(1)+1) + (coord(2)+1)4 + (coord(3)+1)16 ) Backward transformation form character to 3 integer: coord(1) = mod(ichar(offset_bit),4) - 1 coord(2) = mod(ichar(offset_bit),16)/4 - 1 coord(3) = ichar(offset_bit)/16 - 1

If not present default is to center i.e offset_bit = achar(1+4+16)

integer, intent(in) :: iLevel

Level to which input points belong to

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

global treelm mesh info

integer, intent(in) :: nPnts

Number of points to add in method_data of this variable

integer, intent(out) :: idx(:)

Index of points in the growing array and variable val array. Size: nPoints

This must be stored in boundary or source depends on who calls this routine. This index is required to return a value using getValOfIndex.

public recursive subroutine mus_opVar_gradU_forElement(fun, varSys, elempos, time, tree, nElems, nDofs, res)

This routine returns the velocity gradient from velocity in auxField

Read more…

Arguments

TypeIntentOptionalAttributesName
class(tem_varSys_op_type), intent(in) :: fun

Description of the method to obtain the variables, here some preset values might be stored, like the space time function to use or the required variables.

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

The variable system to obtain the variable from.

integer, intent(in) :: elempos(:)

Position of the TreeID of the element to get the variable for in the global treeID list.

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

Point in time at which to evaluate the variable.

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

global treelm mesh info

integer, intent(in) :: nElems

Number of values to obtain for this variable (vectorized access).

integer, intent(in) :: nDofs

Number of degrees of freedom within an element.

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

Resulting values for the requested variable.

Linearized array dimension: (n requested entries) x (nComponents of this variable) x (nDegrees of freedom) Access: (iElem-1)fun%nComponentsnDofs + (iDof-1)*fun%nComponents + iComp

public recursive subroutine mus_opVar_vorticity_forElement(fun, varSys, elempos, time, tree, nElems, nDofs, res)

This routine computes vorticity from curl of velocity in auxField.

Read more…

Arguments

TypeIntentOptionalAttributesName
class(tem_varSys_op_type), intent(in) :: fun

Description of the method to obtain the variables, here some preset values might be stored, like the space time function to use or the required variables.

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

The variable system to obtain the variable from.

integer, intent(in) :: elempos(:)

Position of the TreeID of the element to get the variable for in the global treeID list.

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

Point in time at which to evaluate the variable.

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

global treelm mesh info

integer, intent(in) :: nElems

Number of values to obtain for this variable (vectorized access).

integer, intent(in) :: nDofs

Number of degrees of freedom within an element.

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

Resulting values for the requested variable.

Linearized array dimension: (n requested entries) x (nComponents of this variable) x (nDegrees of freedom) Access: (iElem-1)fun%nComponentsnDofs + (iDof-1)*fun%nComponents + iComp

public recursive subroutine mus_opVar_QCriterion_forElement(fun, varSys, elempos, time, tree, nElems, nDofs, res)

This routine computes Q-criterion from velocity in auxField. , where and S are asymmetric (vorticity tensor) and symmetric (rate of strain) part of velocity gradient. i.e and .

Read more…

Arguments

TypeIntentOptionalAttributesName
class(tem_varSys_op_type), intent(in) :: fun

Description of the method to obtain the variables, here some preset values might be stored, like the space time function to use or the required variables.

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

The variable system to obtain the variable from.

integer, intent(in) :: elempos(:)

Position of the TreeID of the element to get the variable for in the global treeID list.

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

Point in time at which to evaluate the variable.

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

global treelm mesh info

integer, intent(in) :: nElems

Number of values to obtain for this variable (vectorized access).

integer, intent(in) :: nDofs

Number of degrees of freedom within an element.

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

Resulting values for the requested variable.

Linearized array dimension: (n requested entries) x (nComponents of this variable) x (nDegrees of freedom) Access: (iElem-1)fun%nComponentsnDofs + (iDof-1)*fun%nComponents + iComp